2014-12-17 20 views
5

vorrei estrarre alcuni risultati da un oggetto lmermodEstrazione risultati di un `lmermod` oppongo

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

Questo produce

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 particolare, vorrei estrarre i devations standard i 2 effetti casuali, cioè 42,00 e 49,51. Credo che ci possa essere un metodo incorporato per fare questo, ma non riuscivo a trovare in fretta così ho pensato che dovrei essere in grado di trovarlo utilizzando str(fm1), che produce questo:

Formal class 'lmerMod' [package "lme4"] with 13 slots 
    [email protected] 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 
    [email protected] Gp  : int [1:2] 0 6 
    [email protected] call : language lmer(formula = Yield ~ 1 | Batch, data = Dyestuff) 
    [email protected] 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> 
    [email protected] 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 
    [email protected] cnms :List of 1 
    .. ..$ Batch: chr "(Intercept)" 
    [email protected] lower : num 0 
    [email protected] theta : num 0.848 
    [email protected] beta : num 1527 
    [email protected] u  : num [1:6] -20.755 0.461 33.669 -27.212 66.877 ... 
    [email protected] 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" ... 
    [email protected] pp  :Reference class 'merPredD' [package "lme4"] with 18 fields 
    .. ..$ Lambdat:Formal class 'dgCMatrix' [package "Matrix"] with 6 slots 
    .. .. .. [email protected] i  : int [1:6] 0 1 2 3 4 5 
    .. .. .. [email protected] p  : int [1:7] 0 1 2 3 4 5 6 
    .. .. .. [email protected] Dim  : int [1:2] 6 6 
    .. .. .. [email protected] Dimnames:List of 2 
    .. .. .. .. ..$ : NULL 
    .. .. .. .. ..$ : NULL 
    .. .. .. [email protected] x  : num [1:6] 0.848 0.848 0.848 0.848 0.848 ... 
    .. .. .. [email protected] factors : list() 
    .. ..$ LamtUt :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots 
    .. .. .. [email protected] i  : int [1:30] 0 0 0 0 0 1 1 1 1 1 ... 
    .. .. .. [email protected] p  : int [1:31] 0 1 2 3 4 5 6 7 8 9 ... 
    .. .. .. [email protected] Dim  : int [1:2] 6 30 
    .. .. .. [email protected] Dimnames:List of 2 
    .. .. .. .. ..$ : NULL 
    .. .. .. .. ..$ : NULL 
    .. .. .. [email protected] x  : num [1:30] 0.848 0.848 0.848 0.848 0.848 ... 
    .. .. .. [email protected] 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 
    .. .. .. [email protected] i  : int [1:30] 0 0 0 0 0 1 1 1 1 1 ... 
    .. .. .. [email protected] p  : int [1:31] 0 1 2 3 4 5 6 7 8 9 ... 
    .. .. .. [email protected] Dim  : int [1:2] 6 30 
    .. .. .. [email protected] Dimnames:List of 2 
    .. .. .. .. ..$ : chr [1:6] "A" "B" "C" "D" ... 
    .. .. .. .. ..$ : NULL 
    .. .. .. [email protected] x  : num [1:30] 1 1 1 1 1 1 1 1 1 1 ... 
    .. .. .. [email protected] 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 
    .. .. .. [email protected] i  : int [1:30] 0 0 0 0 0 1 1 1 1 1 ... 
    .. .. .. [email protected] p  : int [1:31] 0 1 2 3 4 5 6 7 8 9 ... 
    .. .. .. [email protected] Dim  : int [1:2] 6 30 
    .. .. .. [email protected] Dimnames:List of 2 
    .. .. .. .. ..$ : chr [1:6] "A" "B" "C" "D" ... 
    .. .. .. .. ..$ : NULL 
    .. .. .. [email protected] x  : num [1:30] 1 1 1 1 1 1 1 1 1 1 ... 
    .. .. .. [email protected] 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 
    [email protected] 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 

... ma questo non mi lascia nessuno più saggio.

+0

Hai provato a usare 'attributi (FM1)'? –

+0

@DavidArenburg Non l'avevo, quindi ho appena provato e ho trovato il secondo elemento come 'fm1 @ devcomp $ cmp [10]' ma non riesco ancora a trovare il primo –

+0

La classe è digitata 'lmerMod' –

risposta

5

forniture lme4 VarCorr per l'estrazione di componenti di varianza e correlazione:

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 
+2

se l'OP può suggerire dove nella documentazione ha guardato/si aspettava di trovare queste informazioni, potrei provare a migliorare i documenti in modo che questo sia più facile da trovare ... –

+0

Bene. Ho appena guardato (in sequenza) a '? Lmer' e dopo aver guardato nell'Index a'? 'LMod-class'' e ho provato '? Summary.lmerMod' (anche se quest'ultimo non esiste.) Ho anche considerato' vcov' ma non ci sono andato poiché il contesto indicava che era solo per effetti fissi. Probabilmente avrei dovuto esserci andato da quando qualche utile annotator potrebbe in futuro mettere un link anche lì. –

+0

Penso che la cosa scomoda è che 'class (fm1)' è 'lmerMod', ma i metodi che vuoi sono per la classe' VarCorr.merMod'. Quando fai 'metodi (class =" lm ")', ottieni un un sacco di funzioni utili, ma 'metodi (class =" lmerMod ")' non restituisce nulla. A meno che l'utente non sia a conoscenza della funzione 'VarCorr' (leggendo la documentazione) o abbia estratto' summary (fm1) $ varcor' dopo aver guardato attraverso 'str', può essere difficile per un utente trovare le informazioni che desidera. Quando mi sono imbattuto in questo problema all'inizio dell'anno scorso, ho usato il super ghetto 'capture.output' nel metodo di elaborazione del testo. modificato per riflettere 'lmerMod' – Vlo