平行斜率线性回归

R 中级回归

Richie Cotton

Data Evangelist at DataCamp

前置课程

本课程默认已掌握《R 回归入门》中的内容:https://learn.datacamp.com/courses/introduction-to-regression-in-r。

R 中级回归

从简单回归到多元回归

多元回归是含有多个解释变量的回归模型。

更多解释变量可带来更深入的洞察和更好的预测。

R 中级回归

课程目录

第1章

  • "平行斜率"回归

第2章

  • 交互项
  • 辛普森悖论

第3章

  • 更多解释变量
  • 线性回归的工作原理

第4章

  • 多元逻辑回归
  • 逻辑分布
  • 逻辑回归的工作原理
R 中级回归

鱼类数据集

mass_g length_cm species
242.0 23.2 Bream
5.9 7.5 Perch
200.0 30.0 Pike
40.0 12.9 Roach
  • 每行代表一条鱼
  • mass_g 为响应变量
  • 1 个数值、1 个分类型解释变量
R 中级回归

一次只用一个解释变量

mdl_mass_vs_length <- lm(mass_g ~ length_cm, data = fish)
Call:
lm(formula = mass_g ~ length_cm, data = fish)

Coefficients:
(Intercept)    length_cm  
     -536.2         34.9
  • 1 个截距系数
  • 1 个斜率系数
mdl_mass_vs_species <- lm(mass_g ~ species + 0, data = fish)
Call:
lm(formula = mass_g ~ species + 0, data = fish)

Coefficients:
speciesBream  speciesPerch   speciesPike  speciesRoach  
       617.8         382.2         718.7         152.0
  • 每个类别 1 个截距系数
R 中级回归

同时使用两个变量

mdl_mass_vs_both <- lm(mass_g ~ length_cm + species + 0, data = fish)
Call:
lm(formula = mass_g ~ length_cm + species + 0, data = fish)

Coefficients:
   length_cm  speciesBream  speciesPerch   speciesPike  speciesRoach  
       42.57       -672.24       -713.29      -1089.46       -726.78 
  • 1 个斜率系数
  • 每个类别 1 个截距系数
R 中级回归

比较系数

coefficients(mdl_mass_vs_length)
(Intercept)   length_cm 
     -536.2        34.9
coefficients(mdl_mass_vs_species)
speciesBream speciesPerch  speciesPike speciesRoach 
       617.8        382.2        718.7        152.0
coefficients(mdl_mass_vs_both)
length_cm speciesBream speciesPerch  speciesPike speciesRoach 
    42.57      -672.24      -713.29     -1089.46      -726.78 
R 中级回归

可视化:1 个数值解释变量

library(ggplot2)

ggplot(fish, aes(length_cm, mass_g)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

鱼重 vs 鱼长散点图

R 中级回归

可视化:1 个分类型解释变量

ggplot(fish, aes(species, mass_g)) +
  geom_boxplot() + 
  stat_summary(fun.y = mean, shape = 15)

不同物种的鱼重分布

R 中级回归

可视化:两个解释变量

library(moderndive)

ggplot(fish, aes(length_cm, mass_g, color = species)) +
  geom_point() +
  geom_parallel_slopes(se = FALSE)

按物种的平行斜率回归

R 中级回归

Passons à la pratique !

R 中级回归

Preparing Video For Download...