我正在试图弄清楚我是否可以为一个项目使用多水平模型,我需要模拟一些数据,拟合一个随机效果模型,然后 for each 组(在我的情况下是参与者或受试者)生成边际效果.然而,我似乎不能从我的模型匹配中产生不同的边际影响,尽管它与一个工作示例(例如,睡眠研究)相匹配.
睡眠研究提供了一个很好的起点:
library(tidyverse)
library(lme4)
library(ggeffects)
data("sleepstudy")
m <- lmer(Reaction ~ Days + (1 + Days | Subject), data = sleepstudy)
me <- ggpredict(m, terms = c("Days", "Subject [sample=8]"), type = "random")
plot(me)
该图展示了八个不同主题的八个不同的斜坡.
然而,如果我模拟的数据与睡眠研究大致匹配,我的模型拟合不会产生不同的斜率,我不知道为什么不:
N = 18 # Number of people
Nt = 9 # Number of trials
d <- tibble(
Subject = factor(sprintf("%03d", 1:N)), # create subject numbers
subj_b0 = rnorm(n = N, mean = 250, sd = 20), # create random intercepts
subj_b1 = rnorm(n = N, mean = 10, sd = 6) # create random slopes
) %>%
mutate(Days = list(0:Nt)) %>%
unnest(Days) %>%
mutate(
Y = subj_b0 + Days*subj_b1,
Y = Y + rnorm(n = nrow(.), sd = 15) # Add error
)
fit <- lmer(Y ~ 1 + Days + (1 + Days|Subject), data = d)
p <- ggpredict(fit, terms = c("Days", "Subject [sample=8]"), type = "random")
plot(p)
我无论如何也弄不明白为什么ggpredict()
对每个科目都返回相同的斜率.
模型总结证实,斜坡周围有几天的变化,据我所知,其他估计参数与睡眠研究类似.
summary(fit)
Linear mixed model fit by REML ['lmerMod']
Formula: Y ~ 1 + Days + (1 + Days | Subject)
Data: d
REML criterion at convergence: 1553.3
Scaled residuals:
Min 1Q Median 3Q Max
-2.57322 -0.57070 -0.01073 0.59463 3.02611
Random effects:
Groups Name Variance Std.Dev. Corr
Subject (Intercept) 745.22 27.30
Days 37.95 6.16 0.12
Residual 176.54 13.29
Number of obs: 180, groups: Subject, 18
Fixed effects:
Estimate Std. Error t value
(Intercept) 254.517 6.693 38.030
Days 9.033 1.492 6.053
sleepstudy模型比较总结:
summary(m)
Linear mixed model fit by REML ['lmerMod']
Formula: Reaction ~ Days + (1 + Days | Subject)
Data: sleepstudy
REML criterion at convergence: 1743.6
Scaled residuals:
Min 1Q Median 3Q Max
-3.9536 -0.4634 0.0231 0.4634 5.1793
Random effects:
Groups Name Variance Std.Dev. Corr
Subject (Intercept) 612.10 24.741
Days 35.07 5.922 0.07
Residual 654.94 25.592
Number of obs: 180, groups: Subject, 18
Fixed effects:
Estimate Std. Error t value
(Intercept) 251.405 6.825 36.838
Days 10.467 1.546 6.771