SE для BLUP в функции lmer в r - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь найти стандартную ошибку (SE) для значения BLUP случайного эффекта в функции lmer. Я попытался получить ошибку SE прогнозируемого значения путем усреднения по имени инбреда, а затем найти SE среднего значения для каждого инбреда. Есть ли способ извлечь SE для значений BLUP. Я разместил свой код ниже того, что у меня есть, и последний фрейм данных - это то, к чему я пытаюсь добраться.

library(lme4)
df<-data.frame(inbred=c("x1","x2","x3","x4","x5","x1","x2","x3","x4","x5","x1","x2","x3","x4","x5","x1","x2","x3","x4","x5",
                        "x1","x2","x3","x4","x5","x1","x2","x3","x4","x5","x1","x2","x3","x4","x5","x1","x2","x3","x4","x5"),
               trait1=rnorm(40,0,1),
               rep=c(1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2),
               block=c(rep(1,20),rep(2,20)))
df

Я использую функцию lmer для запуска модели, чтобы я мог извлечь некоторые отклонения.

df.reml<-lmer(trait1 ~  block + (1|inbred) + (1|inbred:rep),
                data=df, REML=T)
df.lme=summary(df.reml)
df.ran = ranef(df.reml)$inbred
df.ran

Здесь я нашел значения BLUP для блоков inbred over с некоторыми репликациями внутри блоков.

Затем я опубликовал столбец SE для BLUP. Здесь я бы хотел, чтобы R извлекал их из модели или что-то еще ... В столбце с изменяемым значением есть столбец ...

SE.Blup<-data.frame(inbred=c("x1","x2","x3","x4","x5"),SE.blups=c(.23,.2,.3,.1,.32))

cbind(SE.Blup$inbred,data.frame(df.ran$`(Intercept)`),SE.Blup$SE.blups)

  SE.Blup$inbred df.ran...Intercept.. **SE.Blup$SE.blups**
1             x1        -7.094560e-08             **0.23**
2             x2         1.321873e-07             **0.20**
3             x3        -6.094754e-09             **0.30**
4             x4        -8.614915e-08             **0.10**
5             x5         3.100222e-08             **0.32**
...