二分类预测变量回归系数为负与实际结果矛盾的技术咨询
问题背景与矛盾
说明
我对二分类预测变量segment进行了对比编码,代码如下:
vid_df$segment <- forcats::fct_relevel(vid_df$segment, 'Long', 'Short') contrasts(vid_df$segment) = cbind(c(-.5,.5)) contrasts(vid_df$segment) # Long -0.5, Short 0.5
随后运行了包含三因素交互项的混合效应逻辑回归模型:
m1 <- glmer (correct ~ segment * subtitles * LexTALE_score_log + span_z + (1|item) + (1|participant_private_id), glmerControl(optimizer="bobyqa", optCtrl = list(maxfun = 100000)), data = vid_df, family = binomial)
模型固定效应输出如下:
Fixed effects: Estimate Std. Error z value Pr(>|z|) (Intercept) -0.35536 0.87681 -0.405 0.68527 segment1 -4.59902 1.67671 -2.743 0.00609 ** subtitles1 3.07357 1.66044 1.851 0.06416 . LexTALE_score_log 0.82987 0.46737 1.776 0.07580 . span_z 0.02952 0.08801 0.335 0.73728 segment1:subtitles1 -1.49222 3.32560 -0.449 0.65364 segment1:LexTALE_score_log 2.65948 0.93924 2.832 0.00463 ** subtitles1:LexTALE_score_log -1.59378 0.93008 -1.714 0.08660 . segment1:subtitles1:LexTALE_score_log 0.85002 1.86369 0.456 0.64832
我最初认为segment1的负系数意味着:与Long segment相比,Short segment中正确响应的对数几率降低。
核心矛盾
但描述性统计和模型预测结果却显示Short segment的正确响应更多:
# Long Short # Incorrect 177 169 # Correct 423 441 plot_model(m1, type = "pred", term = "segment") # higher predicted probabilities for "correct" in the short segment
计算得Short组正确率(72.29%)略高于Long组(70.5%),请问如何调和这一矛盾?
后续思考与疑问
根据提示,含交互项的模型中单个系数的解读需调整:segment1表示当LexTALE/vocabulary得分为0时,跨两种字幕条件(总和编码:-.5无字幕,.5有字幕)的Short segment的估计值。
我认为负的segment1可解读为:词汇得分较低的参与者在Short segment条件下,跨字幕条件的错误响应比Long segment组的对应参与者更多。请问该解读是否正确?
解答
矛盾的核心原因
你遇到的矛盾源于含交互项模型中,主效应系数并非“整体平均效应”,而是特定参考点下的条件效应:
- 模型包含
segment * LexTALE_score_log的显著交互项(segment1:LexTALE_score_log系数为正且显著),这意味着segment对正确率的效应会随LexTALE得分变化而反转。 segment1的负系数仅代表:当LexTALE_score_log=0(即词汇得分处于log转换后的参考点,对应较低的词汇水平)、且subtitles取平均水平(跨两种字幕条件)时,Short segment的正确响应对数几率低于Long segment。
而描述性统计是所有参与者的整体平均效应,由于segment1:LexTALE_score_log的正系数,当LexTALE得分较高时,Short segment的效应会由负转正:
当
LexTALE_score_log足够大时,Short相对于Long的总效应为:segment1 + segment1:LexTALE_score_log * LexTALE_score_log,这个值会从负变正。
整体样本中,较高LexTALE得分的参与者贡献的正效应抵消甚至超过了低得分参与者的负效应,最终呈现出Short segment整体正确率更高的结果。
关于解读的正确性
你的解读方向是正确的,但可以更精准:
负的segment1系数意味着:在LexTALE_score_log=0(低词汇水平)、且跨字幕条件平均的情况下,Short segment的正确响应对数几率显著低于Long segment——也就是该群体在Short segment中的错误响应更多。这与你观察到的分组结果完全一致。
额外建议
- 若想查看
segment在不同LexTALE得分下的条件效应,可以用plot_model(m1, type = "pred", terms = c("segment", "LexTALE_score_log"))绘制交互效应图,直观展示不同词汇水平下segment的效应变化。 - 若需要报告
segment的“平均主效应”,可以考虑使用边际效应分析,比如用emmeans包计算segment在所有协变量平均水平下的边际预测概率,这比直接看原始系数更贴近描述性统计的结果。
内容的提问来源于stack exchange,提问作者Alaa

