【问题标题】:How to extract beta coefficients for interaction effect in R?如何提取 R 中交互作用的 beta 系数?
【发布时间】:2021-05-06 06:27:27
【问题描述】:

我正在检查一个连续变量 (bloodq) 和一个具有三个级别(ER、RB 和 WB)的分类变量之间的交互作用。为了了解不同组织类型的 beta 有何不同,我想知道所有三种组织类型的组织特异性 beta。输出仅显示 WB 和 RB 的 beta,因为 ER 被设置为参照组。我怎样才能也为 RB 提取 beta?

【问题讨论】:

    标签: r regression mixed-models interaction dummy-variable


    【解决方案1】:

    不确定我是否完全理解了您的问题,我理解的是您想知道为什么没有“Bloodq*ER”交互系数。

    您在问题中给出答案:ER 是参考水平,在​​模型中添加这样的交互项会引发确切的共线性问题,例如: Bloodq == Bloodq*ER + Bloodq*RB + Bloodq*WB(如果Tissue == "ER",则为ER == 1,否则为0,等等)

    因此,从模型中删除 Bloodq 应该会显示 Bloodq*ER 系数。

    例如,试试这个:

    n <- 100
    df <- data.frame(s1 = runif(n), s2 = sample(factor(c("A", "B")), n, replace = TRUE), y = runif(n))
    lm(y ~ s1 + s1:s2, data = df)
    lm(y ~ s1:s2, data = df)
    

    您可以看到第一个模型只有 s1:s2B 交互,而第二个模型有 s1:s2A 和 s1:s2B。

    【讨论】:

    • 我没有在我的模型中加入bloodq,但是,除了交互。模型
    • 您确实将 Bloodq 隐含在模型中(如图所示 Bloodq 存在 beta 参数):“'*' 运算符表示因子交叉:'a*b' 解释为 'a+b +a:b'"(来自?公式)。仅将“:”运算符用于交互。
    • 哇,我简直不敢相信。我一直认为并读到“*”等同于“:”。我只是用运算符替换运行了相同的代码,结果却大不相同!我害怕现在必须重新运行约 100 个模型。你的回答很痛苦,但解决了这个问题。谢谢你让我看到光。
    猜你喜欢
    • 2018-12-03
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    相关资源
    最近更新 更多