r-使用nlme从混合效果模型的输出中提取元素



我正试图从由混合效果模型的摘要调用创建的对象中包含的随机效果表中提取单个元素。具体来说,我想提取每一个二级随机效应。

玩具数据:

set.seed(1234)
score <- c(rnorm(8, 20, 3), rnorm(8, 35, 5))
rep <- rep(c(0,1,2,3), each = 8)
group <- rep(0:1, times = 16)
id <- factor(rep(1:8, times = 4))
df <- data.frame(id, group, rep, score)

现在创建一个模型

require(nlme)
modelLME <- summary(lme(score ~ group*rep, data = df, random = ~ rep|id))
modelLME

当我们调用它时,我们得到输出

Linear mixed-effects model fit by REML
 Data: df 
       AIC      BIC    logLik
  219.6569 230.3146 -101.8285
Random effects:
 Formula: ~rep | id
 Structure: General positive-definite, Log-Cholesky parametrization
            StdDev       Corr  
(Intercept) 2.664083e-04 (Intr)
rep         2.484345e-05 0     
Residual    7.476621e+00       
Fixed effects: score ~ group * rep 
                Value Std.Error DF   t-value p-value
(Intercept) 22.624455  3.127695 22  7.233587  0.0000
group       -1.373324  4.423229  6 -0.310480  0.7667
rep          2.825635  1.671823 22  1.690152  0.1051
group:rep    0.007129  2.364315 22  0.003015  0.9976
 Correlation: 
          (Intr) group  rep   
group     -0.707              
rep       -0.802  0.567       
group:rep  0.567 -0.802 -0.707
Standardized Within-Group Residuals:
        Min          Q1         Med          Q3         Max 
-1.86631781 -0.74498367  0.03515508  0.76672652  1.91896578 
Number of Observations: 32
Number of Groups: 8 

现在我可以通过从上面的随机效应表中提取残差

modelLME$sigma

但我在这个输出中找不到随机效果表StdDev列的(Intercept)rep行中的值(分别为2.664083e-042.484345e-05)。它一定在某个地方,我通过搜索str(modelLME)找到了它,但找不到。

你想要这样的东西吗?

library(nlme)
library(broom)
modelLME = lme(score ~ group*rep, data = df, random = ~ rep|id)
tidy(modelLME)

最新更新