分类与交互项

Python 中的广义线性模型

Ita Cirovic Donev

Data Science Consultant

分类变量

  • 简单二元变量
    • Yes, No
  • 名义变量
    • 颜色:red, green, blue
  • 有序变量
    • 教育程度:Education1, Education2,...,Education4
Python 中的广义线性模型

协方差分析

  • 解释变量

    • $x_1$:分类(二元)
    • $x_2$:连续
  • 逻辑模型 $$ \text{logit}(y=1|X)=\beta_0 + \beta_1x_1 + \beta_2x_2 $$

Python 中的广义线性模型

协方差分析

  • 解释变量
    • $x_1$:分类(二元)
    • $x_2$:连续
  • 逻辑模型 $$ \text{logit}(y=1|\color{red}{X})=\beta_0 + \beta_1\color{red}{x_1} + \beta_2\color{red}{x_2} $$
Python 中的广义线性模型

协方差分析

  • 解释变量
    • $x_1$:分类(二元)
    • $x_2$:连续
  • 逻辑模型 $$ \text{logit}(y=1|X)=\beta_0 + \beta_1\color{red}{x_1} + \beta_2x_2 $$

  • 若 $x_1=0$,则 $$ \text{logit}(y=1|\color{red}{x_1=0},x_2)=\beta_0 + \color{red}{0} + \beta_2x_2 $$

Python 中的广义线性模型

协方差分析

  • 解释变量
    • $x_1$:分类(二元)
    • $x_2$:连续
  • 逻辑模型 $$ \text{logit}(y=1|X)=\beta_0 + \beta_1\color{red}{x_1} + \beta_2x_2 $$

  • 若 $x_1=0$,则 $$ \text{logit}(y=1|x_1=0,x_2)=\beta_0 + 0 + \beta_2x_2 $$

  • 若 $x_1=1$,则 $$ \text{logit}(y=1|\color{red}{x_1=1},x_2)=\beta_0 + \color{red}{\beta_1} + \beta_2x_2 $$ $$ \text{logit}(y=1|\color{red}{x_1=1},x_2)=(\beta_0 + \color{red}{\beta_1}) + \beta_2x_2 $$

Python 中的广义线性模型

假设

无交互情形的平行线可视化。

Python 中的广义线性模型

假设

无交互模型中截距差异的突出显示。

Python 中的广义线性模型

假设

无交互模型

非平行线导致含交互项的模型。

Python 中的广义线性模型

交互项

  • 斜率不等 $\rightarrow$ 存在交互
  • $x_1$ 对 $y$ 的影响取决于 $x_2$ 的水平,反之亦然
  • 允许交互的逻辑模型 $$ \text{logit}(y=1|X)=\beta_0 + \beta_1x_1 + \beta_2x_2 + \color{red}{\beta_3x_1x_2} $$
Python 中的广义线性模型

交互项

  • 斜率不等 $\rightarrow$ 存在交互
  • $x_1$ 对 $y$ 的影响取决于 $x_2$ 的水平,反之亦然
  • 允许交互的逻辑模型 $$ \text{logit}(y=1|X)=\beta_0 + \beta_1x_1 + \beta_2x_2 + \beta_3x_1x_2 $$

  • 若 $x_1=0$,则 $$ \text{logit}(y=1|\color{red}{x_1=0},x_2)=\beta_0 + \color{red}{0} + \beta_2x_2 + \color{red}{0} $$

Python 中的广义线性模型

交互项

  • 斜率不等 $\rightarrow$ 存在交互
  • $x_1$ 对 $y$ 的影响取决于 $x_2$ 的水平,反之亦然
  • 允许交互的逻辑模型 $$ \text{logit}(y=1|X)=\beta_0 + \beta_1x_1 + \beta_2x_2 + \beta_3x_1x_2 $$

  • 若 $x_1=0$,则 $$ \text{logit}(y=1|x_1=0,x_2)=\beta_0 + \beta_2x_2 $$

  • 若 $x_1=1$,则 $$ \text{logit}(y=1|\color{red}{x_1=1},x_2)=\beta_0 + \color{red}{\beta_1} + \beta_2x_2 + \color{red}{\beta_3}x_2 $$ $$ \text{logit}(y=1|\color{red}{x_1=1},x_2)=(\beta_0 + \color{red}{\beta_1}) + (\beta_2 + \color{red}{\beta_3})x_2 $$

Python 中的广义线性模型

交互项

  • 斜率不等 $\rightarrow$ 存在交互
  • $x_1$ 对 $y$ 的影响取决于 $x_2$ 的水平,反之亦然
  • 允许交互的逻辑模型 $$ \text{logit}(y=1|X)=\beta_0 + \beta_1x_1 + \beta_2x_2 + \beta_3x_1x_2 $$

  • 若 $x_1=0$,则 $$ \text{logit}(y=1|x_1=0,x_2)=\color{red}{\beta_0} + \color{red}{\beta_2}x_2 $$

  • 若 $x_1=1$,则 $$ \text{logit}(y=1|x_1=1,x_2)=\beta_0 + \beta_1 + \beta_2x_2 + \beta_3x_2 $$ $$ \text{logit}(y=1|x_1=1,x_2)=\color{red}{(\beta_0 + \beta_1)} + \color{red}{(\beta_2 + \beta_3)}x_2 $$

Python 中的广义线性模型

交互的可视化

含交互项模型的表示(非平行线)。

交互使:

  • 截距与斜率可随 $x_1$ 不同而异
  • $\beta_1$:两条截距之差
  • $\beta_3$:两条斜率之差
Python 中的广义线性模型

交互类型

  • 二元 × 二元
  • 二元 × 分类
  • 二元 × 连续
  • 连续 × 分类
  • 连续 × 连续
  • 分类 × 分类
  • 超过 2 个变量的交互
Python 中的广义线性模型

让我们来练习!

Python 中的广义线性模型

Preparing Video For Download...