【发布时间】:2022-01-10 03:16:53
【问题描述】:
我想平均一些连续预测变量对结果变量的影响,所以我在这里使用了对比编码 (https://towardsdatascience.com/how-to-correctly-interpret-your-continuous-and-categorical-variable-interactions-in-regressions-51e5eed5de1e)
但是,我注意到当我运行简单斜率分析时,p 值会发生变化(以及一些固定效应,代码部分未显示)。
为什么?哪个rlmer 模型最适合趋势分析?
您可以在下面看到代码和输出(首先是虚拟编码,然后是对比编码)
TIME、AGE、FAQ、医疗都是数字 步态是一个因素(正常 = 参考猫,异常)
tmtar = rlmer(TMT_A ~
GAIT_*TIME+
AGE+
FAQ+
medical+(1|SITE:RID),
data = df)
trend
rrg = qdrg(formula = ~ GAIT_*TIME+AGE+FAQ+medical, data = df,
coef = fixef(tmtar), vcov = as.matrix(vcov(tmtar)),
at = list(TIME = c(0,36)))
update(pairs(rrg, reverse = T, simple = "TIME"), by = NULL)
输出
Fixed effects:
Estimate Std. Error t value
(Intercept) 18.178377 7.691289 2.364
GAIT_abnormal -0.928555 2.758425 -0.337
TIME -0.002426 0.024642 -0.098
AGE 0.270401 0.104385 2.590
FAQ 0.715653 0.068665 10.422
medical -0.027960 0.302248 -0.093
GAIT_abnormal:TIME 0.272333 0.067935 4.009
trend
contrast GAIT_ AGE FAQ medical estimate SE df z.ratio p.value
36 - 0 normal 74.8 6.5 6.52 -0.0873 0.887 Inf -0.098 0.9216
36 - 0 abnormal 74.8 6.5 6.52 9.7167 2.389 Inf 4.068 <.0001
对比编码
contrasts(df$GAIT_) <- c(-0.5,0.5)
tmtar = rlmer(TMT_A ~
GAIT_*TIME+
AGE+
FAQ+
medical+(1|SITE:RID),
data = df)
rrg = qdrg(formula = ~ GAIT_*TIME+AGE+FAQ+medical, data = df,
coef = fixef(tmtar), vcov = as.matrix(vcov(tmtar)),
at = list(TIME = c(0,36)))
update(pairs(rrg, reverse = T, simple = "TIME"), by = NULL)
输出
contrast
[,1]
normal -0.5
abnormal 0.5
Fixed effects:
Estimate Std. Error t value
(Intercept) 17.71410 7.95539 2.227
GAIT_1 -0.92856 2.75843 -0.337
TIME 0.13374 0.03676 3.639
AGE 0.27040 0.10438 2.590
FAQ 0.71565 0.06866 10.422
medical -0.02796 0.30225 -0.093
GAIT_1:TIME 0.27233 0.06794 4.009
contrast GAIT_ AGE FAQ medical estimate SE df z.ratio p.value
36 - 0 normal 74.8 6.5 6.52 4.81 1.32 Inf 3.639 0.0003
36 - 0 abnormal 74.8 6.5 6.52 14.62 3.56 Inf 4.110 <.0001
【问题讨论】:
-
我强烈怀疑这个问题与
rlmer等无关。如果您制作一个更简单的 [mcve] 可能会更容易回答。此外,如果您的代码明确包含所有需要加载的包(robustlmm、emmeans),这会有所帮助,因为并不是每个人都知道所有函数的来源...... -
对于初学者来说,R(和之前的 S)错误地使用“对比”这个词来定义因子编码为虚拟变量的方式。回归系数通常不是那些相关“对比”的估计。 “对比”编码显示回归系数的倍数产生均值,而您要估计的对比是它的倒数:均值的指定倍数。
-
非常感谢教授!我不确定我是否理解获得 1)数值预测变量的主要影响(主要影响不是参考类别的简单影响)2)运行简单斜率分析的最佳模型的最佳方法是什么;对于后面的分析,我应该使用虚拟编码还是使用偏差编码(-.5,.5,就像我一样)?
-
我的建议是不要担心编码,只需使用 emmeans,无论编码如何,它都会以相同的方式工作。
-
我不应该在乐池中戴着音乐眼镜在手机上回答问题...看看 emmeans 中的
emmtrends()功能..虽然这么说,但我看到你必须使用qdrg,这样就无法使用了;所以你需要做的是使用at指定协变量的两个值相隔一个单位,然后得到估计均值的差异(使用“revpairwise”或“consec”对比),这将是所需的斜率。
标签: r regression lme4-nlme lsmeans