【问题标题】:Reporting interactions in a linear model in r在 r 中报告线性模型中的交互
【发布时间】:2021-01-14 13:19:30
【问题描述】:

我正在尝试报告线性模型中的所有交互:

mod1.lme <- lm(volume ~ Group * Treatment + Group + Treatment, data = df)

组是一个因子变量,具有 3 个水平:A、B 和 C。

我目前得到的结果是(我自己编的):

这两个估计值参考了治疗:A,但我想单独查看每个效果。所以我想得到的输出是:

Treatment:A
Treatment:B
Treatment:C

如果我消除在末尾添加 -1 的截距,我会得到:

最好的编码方式是什么?

谢谢

【问题讨论】:

    标签: r linear-regression interaction


    【解决方案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"))
    

    【讨论】:

    • 谢谢。我知道消除拦截可以避免引用,但仅在组中作为整体效果。我的兴趣在于互动。 A:治疗,B:治疗e,C:治疗。是否有意义?能做到吗?
    • 嗨@Lili,你所说的听起来就像删除拦截一样。您正在寻找的效果与 summary(mod1.lme) 显示的效果有何不同?
    • 我已经编辑了文本以提高准确性:) 谢谢
    • 嗯,有道理。您想将“Treatment”更改为“Treatment:groupA”,以使其明显仍受研究组的影响。在这里你会碰壁。这绝对是可能的,但格式化系数名称不是help(summary.lm) 中的选项,或者它的打印方法(同一页)。最简单的方法是将摘要存储在一个变量中,然后更改名称,或者使用提供更多选项的包(例如sjPlot)。
    • 对不起,我不确定我理解正确。我不想改名字。我只想要自己的交互而不被引用。目前,我看到的是与 A 组相比,B 组的治疗如何影响体积,C 组也是如此。但我想知道每组体积治疗的效果。是否有意义? - 谢谢!! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 2021-01-29
    相关资源
    最近更新 更多