JMP与R回归截距及结果差异原因,如何在JMP复现R结果?
截距差异原因及JMP复现方法
差异核心原因:因子编码方式不同
R和JMP默认采用了不同的因子编码规则,导致截距含义和数值出现差异:
- R默认:虚拟编码(Dummy Coding):将因子的第一个水平设为参考组,模型截距代表「所有因子都取参考水平时的响应均值」。你的代码里
time参考水平是Pre,treatment参考水平是Control,所以截距就是Pre+Control组的响应均值(1.016379),和该组样本均值一致。 - JMP默认:效应编码(Effect Coding):截距代表所有组的总响应均值,也就是四个组(Pre-Control、Pre-Treatment、Post-Control、Post-Treatment)的响应平均值,计算下来约为1.54,和你得到的JMP结果匹配。JASP里的H0/H1结果差异,本质也是这两种编码方式的切换。
在JMP中复现R的回归结果
要得到和R一致的输出,需要把JMP的因子编码改为虚拟编码(JMP中称为「指示变量编码」),步骤如下:
- 打开
Fit Model窗口,将time、treatment以及两者的交互项选入模型效应列表 - 分别点击
time和treatment因子旁的红色三角菜单,选择「Estimates」→「Indicator Coding」 - 确认参考水平:确保
time的参考组是Pre,treatment的参考组是Control(JMP默认会以因子的第一个水平为参考,和你的R代码设置一致,无需额外调整) - 点击「Run」重新拟合模型,即可得到和R完全一致的截距及系数结果
内容的提问来源于stack exchange,提问作者Andrzej Andrzej
相关产品推荐
相关产品推荐

