another question about lmer, this time involving coef()

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

another question about lmer, this time involving coef()

Andrew Gelman
I'm having another problem with lmer(), this time something simpler (I
think) involving the coef() function for a model with varying
coefficients.  Here's the R code.  It's a simple model with 2
observations per group and 10 groups:

# set up the predictors

n.groups <- 10
n.reps <- 2
n <- n.groups*n.reps
group.id <- rep (1:n.groups, each=n.reps)

# simulate the varying parameters

a.group <- rnorm (n.groups, 1, 2)

# simulate the data and print to check that i did it right

y <- rnorm (n, a.group[group.id], 1)
print (cbind (y, group.id))

# fit and summarize the model

fit.1 <- lmer (y ~ 1 + (1 | group.id))
summary (fit.1)

# coef() doesn't work!
coef (fit.1)

--

The following error message came:

Error in "rownames<-"(x, value) : attempt to set rownames on object with
no dimensions

--

So I went into the code and the coefficient info is there.  There just
seems to be some "bookkeeping problem" within coef().  I could kludge
something but I'd rather work within the existing structures and use
coef() which seems intended for this purpose.

OK, then I tried adding a predictor and it worked fine:

x <- rnorm (n)
fit.2 <- lmer (y ~ 1 + x + (1 | group.id))
summary (fit.2)
coef (fit.2)

--

Am I doing something stupid here or is it actually a (minor) bug?

Thanks
Andrew


--
Andrew Gelman
Professor, Department of Statistics
Professor, Department of Political Science
[hidden email]
www.stat.columbia.edu/~gelman

Tues, Wed, Thurs:  
  Social Work Bldg (Amsterdam Ave at 122 St), Room 1016
  212-851-2142
Mon, Fri:
  International Affairs Bldg (Amsterdam Ave at 118 St), Room 711
  212-854-7075

Mailing address:
  1255 Amsterdam Ave, Room 1016
  Columbia University
  New York, NY 10027-5904
  212-851-2142
  (fax) 212-851-2164

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Reply | Threaded
Open this post in threaded view
|

Re: another question about lmer, this time involving coef()

Peter Dalgaard
Andrew Gelman <[hidden email]> writes:

> Error in "rownames<-"(x, value) : attempt to set rownames on object with
> no dimensions
....
> Am I doing something stupid here or is it actually a (minor) bug?

The latter. There's a drop=FALSE missing in the coef() method,
specifically in the line

   val <- lapply(ref, function(x) fef[rep(1, nrow(x)), ])

which should read

   val <- lapply(ref, function(x) fef[rep(1, nrow(x)), , drop=FALSE])


--
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - ([hidden email])                  FAX: (+45) 35327907

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html