在lm
和glm
模型,我使用的功能coef
和confint
要实现的目标:
m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
coef(m)
confint(m)
现在,我加入到模型中随机效应-使用使用混合效应模型的lmer
功能从lme4包。 但随后,功能coef
和confint
不工作了我!
> mix1 = lmer(resp ~ 0 + var1 + var1:var2 + (1|var3))
# var1, var3 categorical, var2 continuous
> coef(mix1)
Error in coef(mix1) : unable to align random and fixed effects
> confint(mix1)
Error: $ operator not defined for this S4 class
我试图谷歌和使用文档,但没有结果。 请点我在正确的方向。
编辑:我也在想这个问题,是否适合更多的https://stats.stackexchange.com/ ,但我认为它比统计更多的技术,所以我断定它最适合在这里(SO)...你觉得呢?
有两个新的软件包, lmerTest和LSMEANS ,可以计算95%置信区间为lmer
和glmer
输出。 也许你可以看看那些? 而coefplot2 ,我觉得能做到这一点(虽然本·低于所指出的,在一个不那么复杂的方式,从沃尔德统计的标准误差,而不是Kenward罗杰和/或萨特斯韦特DF近似中使用lmerTest
和lsmeans
)...只是一个耻辱,还有在包中没有内置绘图设施lsmeans
(因为有在包装effects()
这顺便说一句也返回上95%置信区间lmer
和glmer
对象,但通过改装的模型没有任何这样做的随机因素的影响,这是明显不正确的)。
我建议大家用好老LME(封装NLME)。 它有confint,如果你需要对比的confint,有一系列的选择(在gmodels难能可贵的,在对比度反差,glht在multcomp)。
为什么p值和confint是11聚物中缺席:看http://finzi.psych.upenn.edu/R/Rhelp02a/archive/76742.html 。
假设为固定效应的正态近似(其中confint也做了),我们可以得到95个%的置信区间
估计+ 1.96 *标准错误。
以下不适用于方差分量/随机效应。
library("lme4")
mylm <- lmer(Reaction ~ Days + (Days|Subject), data =sleepstudy)
# standard error of coefficient
days_se <- sqrt(diag(vcov(mylm)))[2]
# estimated coefficient
days_coef <- fixef(mylm)[2]
upperCI <- days_coef + 1.96*days_se
lowerCI <- days_coef - 1.96*days_se
不知道什么时候加入,但现在confint()在lme4实现。 例如,下面的示例:
library(lme4)
m = lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
confint(m)
为了找到系数,你可以简单地使用lme4的汇总函数
m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
m_summary <- summary(m)
让所有的系数:
m_summary$coefficient
如果你想的置信区间,1.96乘以非标准错误:
CI <- m_summary$coefficient[,"Std. Error"]*1.96
print(CI)
文章来源: How to get coefficients and their confidence intervals in mixed effects models?