如何提取 R 中交互作用的 beta 系数?
How to extract beta coefficients for interaction effect in R?
我正在研究连续变量 (bloodq) 和具有三个水平(ER、RB 和 WB)的分类变量之间的交互作用。为了了解不同组织类型的 beta 有何不同,我想知道所有三种组织类型的组织特异性 beta。输出仅显示 WB 和 RB 的 beta,因为 ER 被设置为参照组。我怎样才能提取 RB 的 beta?
不确定我是否完全理解你的问题,我的理解是你想知道为什么没有“Bloodq*ER”交互系数。
您在问题中给出了答案:ER 是参考水平,在模型中添加这样的交互项会引发确切的共线性问题,如:
Bloodq == Bloodq*ER + Bloodq*RB + Bloodq*WB
(其中 ER == 1
如果 Tissue == "ER"
,否则为 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) 和具有三个水平(ER、RB 和 WB)的分类变量之间的交互作用。为了了解不同组织类型的 beta 有何不同,我想知道所有三种组织类型的组织特异性 beta。输出仅显示 WB 和 RB 的 beta,因为 ER 被设置为参照组。我怎样才能提取 RB 的 beta?
不确定我是否完全理解你的问题,我的理解是你想知道为什么没有“Bloodq*ER”交互系数。
您在问题中给出了答案:ER 是参考水平,在模型中添加这样的交互项会引发确切的共线性问题,如:
Bloodq == Bloodq*ER + Bloodq*RB + Bloodq*WB
(其中 ER == 1
如果 Tissue == "ER"
,否则为 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。