Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extracting results from a `lmermod` object

Tags:

r

lme4

I would like to extract some results from a lmermod object

require(lme4)
(fm1 <- lmer(Yield ~ 1|Batch, Dyestuff))

This produces

Linear mixed model fit by REML ['lmerMod']
Formula: Yield ~ 1 | Batch
   Data: Dyestuff
REML criterion at convergence: 319.6543
Random effects:
 Groups   Name        Std.Dev.
 Batch    (Intercept) 42.00   
 Residual             49.51   
Number of obs: 30, groups:  Batch, 6
Fixed Effects:
(Intercept)  
       1527 

In particular, I would like to extract the standard devations of the 2 random effects, ie 42.00 and 49.51. I guess there may be a built-in method to do this, but I couldn't find it quickly so I thought I should be able to find it by using str(fm1), which produces this:

Formal class 'lmerMod' [package "lme4"] with 13 slots
  ..@ resp   :Reference class 'lmerResp' [package "lme4"] with 9 fields
  .. ..$ Ptr    :<externalptr> 
  .. ..$ mu     : num [1:30] 1510 1510 1510 1510 1510 ...
  .. ..$ offset : num [1:30] 0 0 0 0 0 0 0 0 0 0 ...
  .. ..$ sqrtXwt: num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ sqrtrwt: num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ weights: num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ wtres  : num [1:30] 35.1 -69.9 -69.9 10.1 70.1 ...
  .. ..$ y      : num [1:30] 1545 1440 1440 1520 1580 ...
  .. ..$ REML   : int 1
  .. ..and 26 methods, of which 14 are possibly relevant:
  .. ..  allInfo, copy#envRefClass, initialize, initialize#lmResp,
  .. ..  initializePtr, initializePtr#lmResp, objective, ptr, ptr#lmResp,
  .. ..  setOffset, setResp, setWeights, updateMu, wrss
  ..@ Gp     : int [1:2] 0 6
  ..@ call   : language lmer(formula = Yield ~ 1 | Batch, data = Dyestuff)
  ..@ frame  :'data.frame':     30 obs. of  2 variables:
  .. ..$ Yield: num [1:30] 1545 1440 1440 1520 1580 ...
  .. ..$ Batch: Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 1 2 2 2 2 2 ...
  .. ..- attr(*, "terms")=Classes 'terms', 'formula' length 3 Yield ~ 1 + Batch
  .. .. .. ..- attr(*, "variables")= language list(Yield, Batch)
  .. .. .. ..- attr(*, "factors")= int [1:2, 1] 0 1
  .. .. .. .. ..- attr(*, "dimnames")=List of 2
  .. .. .. .. .. ..$ : chr [1:2] "Yield" "Batch"
  .. .. .. .. .. ..$ : chr "Batch"
  .. .. .. ..- attr(*, "term.labels")= chr "Batch"
  .. .. .. ..- attr(*, "order")= int 1
  .. .. .. ..- attr(*, "intercept")= int 1
  .. .. .. ..- attr(*, "response")= int 1
  .. .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
  .. .. .. ..- attr(*, "predvars")= language list(Yield, Batch)
  .. .. .. ..- attr(*, "dataClasses")= Named chr [1:2] "numeric" "factor"
  .. .. .. .. ..- attr(*, "names")= chr [1:2] "Yield" "Batch"
  .. .. .. ..- attr(*, "predvars.fixed")= language list(Yield)
  .. ..- attr(*, "formula")=Class 'formula' length 3 Yield ~ 1 | Batch
  .. .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
  ..@ flist  :List of 1
  .. ..$ Batch: Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 1 2 2 2 2 2 ...
  .. ..- attr(*, "assign")= int 1
  ..@ cnms   :List of 1
  .. ..$ Batch: chr "(Intercept)"
  ..@ lower  : num 0
  ..@ theta  : num 0.848
  ..@ beta   : num 1527
  ..@ u      : num [1:6] -20.755 0.461 33.669 -27.212 66.877 ...
  ..@ devcomp:List of 2
  .. ..$ cmp : Named num [1:10] 9.15 1.88 61495.41 9590.84 71086.25 ...
  .. .. ..- attr(*, "names")= chr [1:10] "ldL2" "ldRX2" "wrss" "ussq" ...
  .. ..$ dims: Named int [1:12] 30 30 1 29 1 6 1 1 0 1 ...
  .. .. ..- attr(*, "names")= chr [1:12] "N" "n" "p" "nmp" ...
  ..@ pp     :Reference class 'merPredD' [package "lme4"] with 18 fields
  .. ..$ Lambdat:Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. .. .. ..@ i       : int [1:6] 0 1 2 3 4 5
  .. .. .. ..@ p       : int [1:7] 0 1 2 3 4 5 6
  .. .. .. ..@ Dim     : int [1:2] 6 6
  .. .. .. ..@ Dimnames:List of 2
  .. .. .. .. ..$ : NULL
  .. .. .. .. ..$ : NULL
  .. .. .. ..@ x       : num [1:6] 0.848 0.848 0.848 0.848 0.848 ...
  .. .. .. ..@ factors : list()
  .. ..$ LamtUt :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. .. .. ..@ i       : int [1:30] 0 0 0 0 0 1 1 1 1 1 ...
  .. .. .. ..@ p       : int [1:31] 0 1 2 3 4 5 6 7 8 9 ...
  .. .. .. ..@ Dim     : int [1:2] 6 30
  .. .. .. ..@ Dimnames:List of 2
  .. .. .. .. ..$ : NULL
  .. .. .. .. ..$ : NULL
  .. .. .. ..@ x       : num [1:30] 0.848 0.848 0.848 0.848 0.848 ...
  .. .. .. ..@ factors : list()
  .. ..$ Lind   : int [1:6] 1 1 1 1 1 1
  .. ..$ Ptr    :<externalptr> 
  .. ..$ RZX    : num [1:6, 1] 1.98 1.98 1.98 1.98 1.98 ...
  .. ..$ Ut     :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. .. .. ..@ i       : int [1:30] 0 0 0 0 0 1 1 1 1 1 ...
  .. .. .. ..@ p       : int [1:31] 0 1 2 3 4 5 6 7 8 9 ...
  .. .. .. ..@ Dim     : int [1:2] 6 30
  .. .. .. ..@ Dimnames:List of 2
  .. .. .. .. ..$ : chr [1:6] "A" "B" "C" "D" ...
  .. .. .. .. ..$ : NULL
  .. .. .. ..@ x       : num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
  .. .. .. ..@ factors : list()
  .. ..$ Utr    : num [1:6] 6384 6481 6634 6354 6787 ...
  .. ..$ V      : num [1:30, 1] 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ VtV    : num [1, 1] 30
  .. ..$ Vtr    : num 45825
  .. ..$ X      : num [1:30, 1] 1 1 1 1 1 1 1 1 1 1 ...
  .. .. ..- attr(*, "dimnames")=List of 2
  .. .. .. ..$ : chr [1:30] "1" "2" "3" "4" ...
  .. .. .. ..$ : chr "(Intercept)"
  .. .. ..- attr(*, "assign")= int 0
  .. ..$ Xwts   : num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ Zt     :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. .. .. ..@ i       : int [1:30] 0 0 0 0 0 1 1 1 1 1 ...
  .. .. .. ..@ p       : int [1:31] 0 1 2 3 4 5 6 7 8 9 ...
  .. .. .. ..@ Dim     : int [1:2] 6 30
  .. .. .. ..@ Dimnames:List of 2
  .. .. .. .. ..$ : chr [1:6] "A" "B" "C" "D" ...
  .. .. .. .. ..$ : NULL
  .. .. .. ..@ x       : num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
  .. .. .. ..@ factors : list()
  .. ..$ beta0  : num 0
  .. ..$ delb   : num 1527
  .. ..$ delu   : num [1:6] -20.755 0.461 33.669 -27.212 66.877 ...
  .. ..$ theta  : num 0.848
  .. ..$ u0     : num [1:6] 0 0 0 0 0 0
  .. ..and 42 methods, of which 30 are possibly relevant:
  .. ..  b, beta, CcNumer, copy#envRefClass, initialize, initializePtr,
  .. ..  installPars, L, ldL2, ldRX2, linPred, P, ptr, RX, RXdiag, RXi,
  .. ..  setBeta0, setDelb, setDelu, setTheta, solve, solveU, sqrL, u, unsc,
  .. ..  updateDecomp, updateL, updateLamtUt, updateRes, updateXwts
  ..@ optinfo:List of 7
  .. ..$ optimizer: chr "bobyqa"
  .. ..$ control  :List of 1
  .. .. ..$ iprint: int 0
  .. ..$ derivs   :List of 2
  .. .. ..$ gradient: num 1.61e-07
  .. .. ..$ Hessian : num [1, 1] 14.1
  .. ..$ conv     :List of 2
  .. .. ..$ opt : int 0
  .. .. ..$ lme4: list()
  .. ..$ feval    : int 16
  .. ..$ warnings : list()
  .. ..$ val      : num 0.848

...but this leaves me none the wiser.

like image 323
Joe King Avatar asked Dec 17 '14 18:12

Joe King


People also ask

Why is memisc no longer working with lme4 objects?

At the time of edit the lme4 package has updated and memisc no longer works with these objects. Package texreg is an alternative. I've left this answer up in case memisc gets updated and it starts working again.

What is the difference between class FM1 and lmermod?

I think the inconvenient thing is that class (fm1) is lmerMod, but the methods you want are for class VarCorr.merMod. When you do methods (class="lm"), you get a bunch of useful functions, but methods (class="lmerMod") returns nothing.

How to display all the variables in a summary (LME(....))?

Check if in your locale there is a columen "p-value" when you so a summary (lme (....)) Here is my solution: Suppose fit is the result of your lme model, e.g. fit <- lme (...). If you want to have all the variables displayed by summary (fit) you can simply type and you will see the structure-like result.

How to extract regression coefficients from the LM() function in R?

You can use the following methods to extract regression coefficients from the lm () function in R: Method 2: Extract Regression Coefficients with Standard Error, T-Statistic, & P-values The following example shows how to use these methods in practice. Suppose we fit the following multiple linear regression model in R:


1 Answers

lme4 supplies VarCorr for extracting variance and correlation components:

varcor <- VarCorr(fm1)
as.data.frame(varcor)
#       grp        var1 var2    vcov   sdcor
#1    Batch (Intercept) <NA> 1764.05 42.0006
#2 Residual        <NA> <NA> 2451.25 49.5101
like image 118
Roland Avatar answered Oct 05 '22 19:10

Roland