在 r 中的线性模型中报告交互
Reporting interactions in a linear model in r
我正在尝试报告线性模型中的所有交互,该模型显示为:
mod1.lme <- lm(volume ~ Group * Treatment + Group + Treatment, data = df)
组是一个具有 3 个水平的因子变量:A、B 和 C。
我目前得到的结果是(我编的数据):
这两个估计值参考了 Treatment:A,但我想单独查看每个效果。所以我想得到的输出是:
Treatment:A
Treatment:B
Treatment:C
如果我消除在末尾添加 -1 的截距,我得到:
最好的编码方式是什么?
谢谢
您之所以看到现在的输出,是因为 Treatment
的一个因子水平变成了参考水平。在解释模型时,系数变成“与参考水平的影响差异”。只要模型包含截距,这是必要的,因此获得所有显示系数的解释的唯一方法是删除截距,如下所示。
mod1.lme <- lm(volume ~ Group * Treatment - 1, data = df)
编辑:
要更改交互效果的名称,必须手动编辑名称
sum.lm <- summary(mod1.lme)
rownames(sum.lm$coef) <- c("groupA","groupB","groupC", "groupA:Treatment", "groupB:Treatment", "groupC:Treatment")
或者使用另一个包进行摘要,例如 sjPlot
library(sjPlot)
tab_model(mod1.lme, pred.labels = c("groupA","groupB","groupC", "groupA:Treatment", "groupB:Treatment", "groupC:Treatment"))
我正在尝试报告线性模型中的所有交互,该模型显示为:
mod1.lme <- lm(volume ~ Group * Treatment + Group + Treatment, data = df)
组是一个具有 3 个水平的因子变量:A、B 和 C。
我目前得到的结果是(我编的数据):
这两个估计值参考了 Treatment:A,但我想单独查看每个效果。所以我想得到的输出是:
Treatment:A
Treatment:B
Treatment:C
如果我消除在末尾添加 -1 的截距,我得到:
最好的编码方式是什么?
谢谢
您之所以看到现在的输出,是因为 Treatment
的一个因子水平变成了参考水平。在解释模型时,系数变成“与参考水平的影响差异”。只要模型包含截距,这是必要的,因此获得所有显示系数的解释的唯一方法是删除截距,如下所示。
mod1.lme <- lm(volume ~ Group * Treatment - 1, data = df)
编辑:
要更改交互效果的名称,必须手动编辑名称
sum.lm <- summary(mod1.lme)
rownames(sum.lm$coef) <- c("groupA","groupB","groupC", "groupA:Treatment", "groupB:Treatment", "groupC:Treatment")
或者使用另一个包进行摘要,例如 sjPlot
library(sjPlot)
tab_model(mod1.lme, pred.labels = c("groupA","groupB","groupC", "groupA:Treatment", "groupB:Treatment", "groupC:Treatment"))