如何在 lme4 混合模型中获得效果的 p 值(检查显着性)?

机器算法验证 r 假设检验 混合模式 p 值 lme4-nlme
2022-01-18 23:28:27

我在 R 中使用 lme4 来拟合混合模型

lmer(value~status+(1|experiment)))

其中价值是连续的,状态和实验是因素,我得到

Linear mixed model fit by REML 
Formula: value ~ status + (1 | experiment) 
  AIC   BIC logLik deviance REMLdev
 29.1 46.98 -9.548    5.911    19.1
Random effects:
 Groups     Name        Variance Std.Dev.
 experiment (Intercept) 0.065526 0.25598 
 Residual               0.053029 0.23028 
Number of obs: 264, groups: experiment, 10

Fixed effects:
            Estimate Std. Error t value
(Intercept)  2.78004    0.08448   32.91
statusD      0.20493    0.03389    6.05
statusR      0.88690    0.03583   24.76

Correlation of Fixed Effects:
        (Intr) statsD
statusD -0.204       
statusR -0.193  0.476

我怎么知道地位的影响是显着的?R 只报告 $t$-values 而不是 $p$-values。

4个回答

GLMM FAQ中有很多关于这个主题的信息但是,在您的特定情况下,我建议使用

library(nlme)
m1 <- lme(value~status,random=~1|experiment,data=mydata)
anova(m1)

因为您不需要任何提供的东西lmer(更高的速度,交叉随机效果的处理,GLMM ...)。lme应该为您提供完全相同的系数和方差估计值,但也会为您计算 df 和 p 值(这在您似乎拥有的“经典”设计中确实有意义)。您可能还需要考虑随机项~status|experiment(允许跨块的状态影响变化,或等效地包括状态与实验的交互)。上面的海报也是正确的,因为您的t统计数据如此之大,以至于您的 p 值肯定会小于 0.05,但我可以想象您想要“真实”的 p 值。

您可以使用包lmerTest您只需安装/加载它,lmer 模型就会得到扩展。所以例如

library(lmerTest)
lmm <- lmer(value~status+(1|experiment)))
summary(lmm)
anova(lmm)

会给你p值的结果。如果 p 值是正确的指示有点争议,但如果你想拥有它们,这就是获取它们的方法。

如果您可以处理放弃 p 值(并且您应该),您可以计算一个似然比,该似然比通过以下方式表示状态影响的证据权重:

#compute a model where the effect of status is estimated
unrestricted_fit = lmer(
    formula = value ~ (1|experiment) + status
    , REML = F #because we want to compare models on likelihood
)
#next, compute a model where the effect of status is not estimated
restricted_fit = lmer(
    formula = value ~ (1|experiment)
    , REML = F #because we want to compare models on likelihood
)
#compute the AIC-corrected log-base-2 likelihood ratio (a.k.a. "bits" of evidence)
(AIC(restricted_fit)-AIC(unrestricted_fit))*log2(exp(1))

问题是这些模型的 p 值的计算并非微不足道,请参阅此处的讨论,因此lme4包的作者故意选择不在输出中包含 p 值。您可能会找到一种计算方法,但它们不一定是正确的。