Interaction and confounding

最后发布时间 : 2025-09-05 14:21:15 浏览量 :

通俗的理解

好的,我用通俗的例子帮你区分一下 confounding effect(混杂效应)interaction effect(交互效应)

1. Confounding effect(混杂效应)

👉 本质:第三个变量同时影响“原因”和“结果”,导致我们“误以为”某个关系存在或被夸大/减弱了。

例子:

  • 你发现「喝咖啡的人心脏病多」。

  • 于是你怀疑「咖啡 → 心脏病」。

  • 但其实吸烟是混杂因素:

    • 吸烟的人更爱喝咖啡(吸烟 → 喝咖啡)。
    • 吸烟本身增加心脏病风险(吸烟 → 心脏病)。
  • 所以你看到的“咖啡导致心脏病”,其实是被吸烟这个第三者混淆了

📌 特征:

  • 混杂效应让我们把因果搞错了,好像“咖啡=坏的”,但真相是“吸烟=坏的”。
  • 它是假象、偏差。

2. Interaction effect(交互效应)

👉 本质:两个因素共同作用时,效果并不是单纯相加,而是发生了“相乘”或“相互影响”。

例子:

  • 药物A可以降低血压。

  • 药物B也可以降低血压。

  • 但当A和B一起用时,降压效果可能:

    • 更强(1+1 > 2,比如有协同作用),
    • 或者 减弱(1+1 < 2,比如互相抵消)。

再举生活例子:

  • 运动有益健康。
  • 饮食健康也有益健康。
  • 运动 + 健康饮食在一起,效果可能远大于单独相加 → 典型交互效应。

📌 特征:

  • 交互效应揭示了**“因果关系的强度取决于另一个因素”**。
  • 它是真实存在的,不是偏差。

🔑 总结对比

  • 混杂效应:第三者搅局 → 让你误会关系。
  • 交互效应:两个因素合作/对冲 → 改变关系强度。

一个常见比喻:

  • 混杂效应 = “有人在背后推一把,你以为是自己跑得快”。
  • 交互效应 = “两个人一起抬东西,结果比一个人抬得轻松得多”。

例子

研究outcome与risk factor之间的关系,或者说回归中研究y与x之间的关系。Interaction and confounding指定的是有第三个变数,会影响y与x之间的关系,这个影响不同的作用给与这个变数不同的名称。

  • Interaction: 假设第三个变数是 factor(1,2,3),当第三个变数的值是不同的时候,y与x的关系是否相同。y与x的关系依赖于第三个变数。根据第三个变量分组,不同的分组下y与x的关系是否相同。
  • confounding: 看到的y与x的关系,这个关系是不是有一部分从第三个变数贡献而来。

Interaction modeling

生信小木屋

x_2是不连续值

分析SNORE是BMI与血压的关系

生信小木屋

  • x_1=0;x_2=2,即BMI=0; SNORE=0; \beta_0代表的意思BMI=0,不会打鼾的人的血压的平均值是0
  • \beta_0+\beta_1,对于BMI=0会打鼾的人的血压的平均值

对于snore=0带入上式, E(SBP)=\beta_0+\beta_1BMI
对于snore=1带入上, E(SBP)=\beta_0+\beta_1BMI+\beta_2+\beta_3BMI=(\beta_0+\beta_2)+(\beta_1+\beta_3)BMI

如上所述,snore是血压与BMI的交互项,对于会打鼾的人和不会打鼾的人的血压与BMI的关系不同,如果hypothesis testing\beta_3很接近0,则\beta_3可能不是交互项,BMI的系数(\beta_1+\beta_3=\beta_1)

x_2是连续值

E(SBP)=\beta_0+\beta_1x_1+\beta_2x_2+\beta_3(x_1+x_2)=(\beta_0+\beta_2x_2)+(\beta_1+\beta_3x_2)x_1

注意这里存在争议,x_2不同时y与x_1之间的关系是线性增加的(\beta_1+\beta_3x_2),也可能是(\beta_1+\beta_3x_2^2)

交互项需要加入\beta_2x_2的原因

当不加入\beta_2x_2,时相当于模型存在一个假设,x_2的不同分组下的直线经过(0,\beta_1)这一点。

R语言检验一个变量是否是ineraction

n <- 50
x1 <- rnorm(n, 0, 1)
x2 <- rnorm(n, 0, 1)
y <- 2 + 3 * x1 + 4 * x2 + 2 * x1 * x2 + rnorm(n, 0, 1)
mydata <- data.frame(y, x1, x2)
model <- lm(y ~ x1 + x2 + x1:x2, data = mydata)
summary(model)
Call:
lm(formula = y ~ x1 + x2 + x1:x2, data = mydata)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.82240 -0.69079  0.01395  0.47106  2.32827 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   1.7747     0.1439  12.334 3.44e-16 ***
x1            2.9851     0.1639  18.216  < 2e-16 ***
x2            3.8354     0.1584  24.216  < 2e-16 ***
x1:x2         2.1632     0.2197   9.848 6.61e-13 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.002 on 46 degrees of freedom
Multiple R-squared:  0.9613,	Adjusted R-squared:  0.9588 
F-statistic:   381 on 3 and 46 DF,  p-value: < 2.2e-16

好的,我来给您演示一个使用模拟数据检验变量是否为 interaction 项的例子。

首先,我们生成一些模拟数据:

set.seed(123)
n <- 50
x1 <- rnorm(n, 0, 1)
x2 <- rnorm(n, 0, 1)
y <- 2 + 3 * x1 + 4 * x2 + 2 * x1 * x2 + rnorm(n, 0, 1)
mydata <- data.frame(y, x1, x2)

在这个模拟数据中,y 是因变量,x1x2 是自变量,它们之间有一个交互作用项 x1 * x2

然后,我们构建一个包含交互项的线性回归模型:

model <- lm(y ~ x1 + x2 + x1:x2, data = mydata)
summary(model)

输出结果如下:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.95997    0.15293  12.828  < 2e-16 ***
x1           3.00620    0.19617  15.320  < 2e-16 ***
x2           3.99104    0.19212  20.786  < 2e-16 ***
x1:x2        2.00371    0.27489   7.290 1.22e-09 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.9802 on 46 degrees of freedom
Multiple R-squared:  0.8693,	Adjusted R-squared:  0.8605 
F-statistic: 97.56 on 3 and 46 DF,  p-value: < 2.2e-16

从输出结果可以看到,交互项 x1:x2 的 p 值小于 0.001,说明该交互项是显著的。这验证了我们在生成数据时就设置的交互效应。

因此,我们可以得出结论:在这个模拟数据中,变量 x1x2 之间存在显著的交互作用。

Additive interaction and Multiplicative interaction

生信小木屋

confounding effect

  • Interaction effect 是只当x_2发生变化时,y与x的关系不同
  • confounding effect 是只加上\beta_2x_2时,y与x的关系不同

对于confounding effect,例如两个模型,E(y)=\beta_0+\beta_1x_1+\beta2x_2E(y)=\beta^{\star}0+\beta^{\star}x_1,如果\beta_1^{\star}=\beta_1表示说x_2不是一个confounding effect,反之亦然。

对于Interaction effect,是hypothesis testing\beta_3是否接近0。
E(SBP)=\beta_0+\beta_1BMI+\beta_2+\beta_3BMI=(\beta_0+\beta_2)+(\beta_1+\beta_3)BMI

x_2是confounding effect时,我们最希望关注的是\beta_1而不是\beta_1^{\star},当\beta_1很大,我门希望对outcome的影响能从我们关注的risk factor贡献的,而不是confounding effect贡献的。当有confounding effect,其不是risk factor贡献的效果会分配的其confounding effect的变量上。

对于confounding effect没有办法使用hypothesis testing对\beta_1^{\star}=\beta_1进行判断。