sjplot::tab_model()与lmer summary()的P值差异原因咨询
线性混合模型P值差异的原因
你遇到的summary()和sjPlot::tab_model()输出P值不一致的问题,核心原因是两者计算P值的统计方法不同:
summary(lmer())默认采用普通Wald检验:它把模型输出的t值近似为正态分布的z值来计算P值,或者用残差自由度做简单近似。这种方法计算简便,但对于混合模型来说,自由度的估计并不准确,你得到的0.0376和0.0488就是这种近似方法的结果。sjPlot::tab_model()默认使用Kenward-Roger自由度校正的Wald检验:这种方法会针对混合模型的结构,更精准地估计固定效应的自由度,校正后得到的P值通常更符合真实的统计显著性,你看到的0.003和0.022就是经过这种校正后的结果。
你可以通过以下方式验证:
- 让
tab_model()使用和summary()相同的方法计算P值,指定参数p.val = "wald":
sjPlot::tab_model(BurstEn, p.val = "wald")
此时输出的P值会和summary(BurstEn)完全一致。
- 用
lmerTest包的校正方法对比,它默认支持Kenward-Roger或Satterthwaite自由度校正:
library(lmerTest) summary(BurstEn, ddf = "Kenward-Roger")
这个结果会和tab_model()的默认输出匹配。
简单来说,两种工具的P值差异源于对混合模型自由度的处理方式不同,tab_model默认的方法更严谨,而summary(lmer())的方法是简化近似。
内容的提问来源于stack exchange,提问作者Michaela
相关产品推荐
相关产品推荐

