I have a mer object that has fixed and random effects (lmer). How do I extract the variance or standard deviation estimates for the random and fixed effects? Here is a simplified version of my question: pcrpred <- lmer(PCR ~ (1|TIME) + (1|ID), data = mydataPCRlong) pcrpred This gives a long output - not too long in this case. Anyway, how do I explicitly select the variance? I can I extract part of the output? I want the values themselves.> pcrpredLinear mixed model fit by REML ['merModLmerTest'] Formula: PCR ~ (1 | TIME) + (1 | ID) Data: mydataPCRlong REML criterion at convergence: 127761.9 Random effects: Groups Name Std.Dev. ID (Intercept) 22031 TIME (Intercept) 15182 Residual 33635 Number of obs: 5346, groups: ID, 891; TIME, 6 Fixed Effects: (Intercept) 26791 I also tried: summary(pcrpred) Linear mixed model fit by REML t-tests use Satterthwaite approximations to degrees of freedom [merModLmerTest] Formula: PCR ~ (1 | TIME) + (1 | ID) Data: mydataPCRlong REML criterion at convergence: 127761.9 Scaled residuals: Min 1Q Median 3Q Max -2.6822 -0.5974 -0.2283 0.5681 2.8165 Random effects: Groups Name Variance Std.Dev. ID (Intercept) 4.854e+08 22031 TIME (Intercept) 2.305e+08 15182 Residual 1.131e+09 33635 Number of obs: 5346, groups: ID, 891; TIME, 6 Fixed effects: Estimate Std. Error df t value Pr(>|t|) (Intercept) 26790.662 6258.611 5.142 4.281 0.00738 ** --- Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1> print(VarCorr(pcrpred),comp=c("Variance","Std.Dev."))Groups Name Variance Std.Dev. ID (Intercept) 485373501 22031 TIME (Intercept) 230483110 15182 Residual 1131284840 33635 When I do: print(VarCorr(pcrpred),comp=c(?Variance?,?Std.Dev.?)) I get: Groups Name Variance Std.Dev. ID (Intercept) 485373501 22031 TIME (Intercept) 230483110 15182 Residual 1131284840 33635 And I searched in forums, but another command I found was: summary(pcrpred)@REmat however I get: Error: trying to get slot ?REmat" from an object (class "summary.merMod") that is not an S4 object Can anyone I have taken long looks at str(study) and there's nothing there! Also checked any extractor functions in the lme4 package to no avail. Please help! [[alternative HTML version deleted]]
Ista Zahn
2014-Dec-09 03:28 UTC
[R] Extract random effect variances from lmer (lme4) model
Perhaps as.data.frame(VarCorr(pcrpred)) ? Best, Ista On Mon, Dec 8, 2014 at 4:15 PM, GMAIL <rosita21 at gmail.com> wrote:> I have a mer object that has fixed and random effects (lmer). > > How do I extract the variance or standard deviation estimates for the random and fixed effects? Here is a simplified version of my question: > > > pcrpred <- lmer(PCR ~ (1|TIME) + (1|ID), data = mydataPCRlong) > > pcrpred > > > This gives a long output - not too long in this case. Anyway, how do I explicitly select the variance? I can I extract part of the output? I want the values themselves. > >> pcrpred > Linear mixed model fit by REML ['merModLmerTest'] > Formula: PCR ~ (1 | TIME) + (1 | ID) > Data: mydataPCRlong > REML criterion at convergence: 127761.9 > Random effects: > Groups Name Std.Dev. > ID (Intercept) 22031 > TIME (Intercept) 15182 > Residual 33635 > Number of obs: 5346, groups: ID, 891; TIME, 6 > Fixed Effects: > (Intercept) > 26791 > > I also tried: > summary(pcrpred) > > Linear mixed model fit by REML t-tests use Satterthwaite approximations to degrees of > freedom [merModLmerTest] > Formula: PCR ~ (1 | TIME) + (1 | ID) > Data: mydataPCRlong > > REML criterion at convergence: 127761.9 > > Scaled residuals: > Min 1Q Median 3Q Max > -2.6822 -0.5974 -0.2283 0.5681 2.8165 > > Random effects: > Groups Name Variance Std.Dev. > ID (Intercept) 4.854e+08 22031 > TIME (Intercept) 2.305e+08 15182 > Residual 1.131e+09 33635 > Number of obs: 5346, groups: ID, 891; TIME, 6 > > Fixed effects: > Estimate Std. Error df t value Pr(>|t|) > (Intercept) 26790.662 6258.611 5.142 4.281 0.00738 ** > --- > Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1 >> print(VarCorr(pcrpred),comp=c("Variance","Std.Dev.")) > Groups Name Variance Std.Dev. > ID (Intercept) 485373501 22031 > TIME (Intercept) 230483110 15182 > Residual 1131284840 33635 > > > When I do: > > print(VarCorr(pcrpred),comp=c(?Variance?,?Std.Dev.?)) > > I get: > > Groups Name Variance Std.Dev. > ID (Intercept) 485373501 22031 > TIME (Intercept) 230483110 15182 > Residual 1131284840 33635 > > And I searched in forums, but another command I found was: > summary(pcrpred)@REmat > however I get: > > Error: trying to get slot ?REmat" from an object (class "summary.merMod") that is not an S4 object > > Can anyone > > > I have taken long looks at > > str(study) > and there's nothing there! Also checked any extractor functions in the lme4 package to no avail. Please help! > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.