lme4 版本 1.1.26 不再打印固定效果的 p 值?
lme4 version 1.1.26 no longer printing p values for fixed effects?
这是我的数据:https://pastebin.com/ZgWHcrTi
我今天启动了 R,突然我无法从我的回归模型中获得 p 值! lme4 版本 1.1.26
我仍然可以用 sjPlot::tab_model(data$dv1, p.val = "kr")
library(lme4)
summary(lmer(dv1 ~ group + (1|id),
data=data,
REML=T))
Linear mixed model fit by REML ['lmerMod']
Formula: dv1 ~ group + (1 | id)
Data: regression.data
REML criterion at convergence: 637.4
Scaled residuals:
Min 1Q Median 3Q Max
-3.3455 -0.5839 0.0699 0.6999 2.0728
Random effects:
Groups Name Variance Std.Dev.
id (Intercept) 2.189 1.479
Residual 62.981 7.936
Number of obs: 92, groups: id, 3
Fixed effects:
Estimate Std. Error t value
(Intercept) -7.749 1.412 -5.488
group1 -13.872 1.661 -8.351
Correlation of Fixed Effects:
(Intr)
group1 -0.537
不打印 p 值一直是 lme4
的“特性”(参见 here and here)。我强烈怀疑你之前加载了 lmerTest
包(它包装了 lme4
函数并给出相同的输出 除了 包含一个 p 值列)并且您有 failed/forgotten 在当前会话中加载它...
library(lme4)
coef(summary(m1 <- lmer(Reaction~Days + (Days|Subject), sleepstudy)))
## Estimate Std. Error t value
## (Intercept) 251.40510 6.824597 36.838090
## Days 10.46729 1.545790 6.771481
library(lmerTest)
coef(summary(m2 <- lmer(Reaction~Days + (Days|Subject), sleepstudy)))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 251.40510 6.824597 16.99973 36.838090 1.171558e-17
## Days 10.46729 1.545790 16.99998 6.771481 3.263824e-06
如果您已经使用 lme4::lmer()
拟合模型,您可以通过加载 lmerTest
并转换类型来获取 p 值:coef(summary(as(m1,"merModLmerTest")))
您可能需要注意您的规范:lmerTest
中的默认分母-df 是 Satterthwaite,而您的 tab_model
使用的是 Kenward-Roger。 (你可以用summary(., ddf="Kenward-Roger")
从lmerTest
得到freedom/p-values的K-R度。Kenward-Roger一般来说更准确一点,但是对于大数据集来说慢到不可行的地步,这大概是为什么 Satterthwaite 是 lmerTest
中的默认值。)
这是我的数据:https://pastebin.com/ZgWHcrTi
我今天启动了 R,突然我无法从我的回归模型中获得 p 值! lme4 版本 1.1.26
我仍然可以用 sjPlot::tab_model(data$dv1, p.val = "kr")
library(lme4)
summary(lmer(dv1 ~ group + (1|id),
data=data,
REML=T))
Linear mixed model fit by REML ['lmerMod']
Formula: dv1 ~ group + (1 | id)
Data: regression.data
REML criterion at convergence: 637.4
Scaled residuals:
Min 1Q Median 3Q Max
-3.3455 -0.5839 0.0699 0.6999 2.0728
Random effects:
Groups Name Variance Std.Dev.
id (Intercept) 2.189 1.479
Residual 62.981 7.936
Number of obs: 92, groups: id, 3
Fixed effects:
Estimate Std. Error t value
(Intercept) -7.749 1.412 -5.488
group1 -13.872 1.661 -8.351
Correlation of Fixed Effects:
(Intr)
group1 -0.537
不打印 p 值一直是 lme4
的“特性”(参见 here and here)。我强烈怀疑你之前加载了 lmerTest
包(它包装了 lme4
函数并给出相同的输出 除了 包含一个 p 值列)并且您有 failed/forgotten 在当前会话中加载它...
library(lme4)
coef(summary(m1 <- lmer(Reaction~Days + (Days|Subject), sleepstudy)))
## Estimate Std. Error t value
## (Intercept) 251.40510 6.824597 36.838090
## Days 10.46729 1.545790 6.771481
library(lmerTest)
coef(summary(m2 <- lmer(Reaction~Days + (Days|Subject), sleepstudy)))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 251.40510 6.824597 16.99973 36.838090 1.171558e-17
## Days 10.46729 1.545790 16.99998 6.771481 3.263824e-06
如果您已经使用 lme4::lmer()
拟合模型,您可以通过加载 lmerTest
并转换类型来获取 p 值:coef(summary(as(m1,"merModLmerTest")))
您可能需要注意您的规范:lmerTest
中的默认分母-df 是 Satterthwaite,而您的 tab_model
使用的是 Kenward-Roger。 (你可以用summary(., ddf="Kenward-Roger")
从lmerTest
得到freedom/p-values的K-R度。Kenward-Roger一般来说更准确一点,但是对于大数据集来说慢到不可行的地步,这大概是为什么 Satterthwaite 是 lmerTest
中的默认值。)