我正在尝试对我的 GLMM 进行事后分析,但我不确定我做得是否正确。
我使用以下代码测试连续变量 X 和 Y 对二元响应 Z 的影响,并将我的 ID 作为随机效应:
model <- glmer(Z ~ ns(X, 3) * ns(Y, 2) + (1 | id),
data = df,
family = binomial(link = "logit"),
control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05)),
nAGQ = 1)
完成“经典”分析后,我想知道当 Y = 0 时是否有差异。这就是我所做的:
emm <- emtrends(model, ~ X * Y, var = "X",
max.degree = 3,
at = list(Y = c(0)))
test(emm, adjust = "bonferroni")
这给了我:
degree = linear:
Y X X.trend SE df z.ratio p.value
0 -5.79 -0.18800 0.06186 Inf -3.039 0.0024
degree = quadratic:
Y X X.trend SE df z.ratio p.value
0 -5.79 0.01569 0.00518 Inf 3.030 0.0024
degree = cubic:
Y X X.trend SE df z.ratio p.value
0 -5.79 0.00295 0.00143 Inf 2.067 0.0388
我由此推断,Y = 0 条件似乎确实存在差异。为了更进一步,我选择了一些 X 值,我想在这种情况下进行两两比较:
emm <- emtrends(model, pairwise ~ X * Y, var = "X",
max.degree = 3,
at = list(X = c(-16, -14, -12, -10, -8, -6, -4, -2, 0, 2),
Y = c(0)))
test(emm, adjust = "bonferroni")
有什么好处吗?
在第一个分析中,您应该澄清这些估计值都是以 X 等于其平均值为条件的(它确实在输出中显示了 X,但仍然如此)。此外,这些不是差异,而是线性、二次和三次趋势的估计。
在第二个分析中,您最终将进行大量比较(其中 30*29/2 = 435),我认为对于大多数读者来说,要理解您正在比较不同点的趋势和/或不同程度。小心你的愿望。我强烈建议重新思考在这里沟通真正重要的是什么。由于您正在安装光滑的表面,我希望您尝试以图形方式显示它。如果您想进行比较,比较拟合值(又名 emmeans)而不是趋势不是更有意义吗?