Дві числові пояснювальні змінні

Середній рівень Regression у R

Richie Cotton

Data Evangelist at DataCamp

Візуалізація 3 числових змінних

  • Тривимірна точкова діаграма
  • Двовимірна точкова діаграма з відгуком як кольором
Середній рівень Regression у R

Ще одна колонка в наборі даних про риб

species mass_g length_cm height_cm
Bream 1000 33.5 18.96
Bream 925 36.2 18.75
Roach 290 24.0 8.88
Roach 390 29.5 9.48
Perch 1100 39.0 12.80
Perch 1000 40.2 12.60
Pike 1250 52.0 10.69
Pike 1650 59.0 10.81
Середній рівень Regression у R

Тривимірна точкова діаграма

library(plot3D)

scatter3D(fish$length_cm, fish$height_cm, fish$mass_g)
library(plot3D)
library(magrittr)

fish %$%
  scatter3D(length_cm, height_cm, mass_g)
Середній рівень Regression у R

Тривимірна точкова діаграма

library(plot3D)
library(magrittr)

fish %$%
  scatter3D(length_cm, height_cm, mass_g)

Тривимірна розсіювальна діаграма: довжина, висота, маса риб

Середній рівень Regression у R

Двовимірна діаграма, колір — відгук

ggplot(
  fish, 
  aes(length_cm, height_cm, color = mass_g)
) +
  geom_point()

Двовимірна діаграма: колір = маса риб

Середній рівень Regression у R

Кольорові шкали Viridis

ggplot(
  fish, 
  aes(length_cm, height_cm, color = mass_g)
) +
  geom_point() +
  scale_color_viridis_c(option = "inferno")

Viridis: палітра "inferno" для маси риб

Середній рівень Regression у R

Моделювання з 2 числовими пояснювальними змінними

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

Coefficients:
(Intercept)    length_cm    height_cm  
    -622.16        28.97        26.34
Середній рівень Regression у R

Процес отримання прогнозів

explanatory_data <- expand_grid(
  length_cm = seq(5, 60, 5),
  height_cm = seq(2, 20, 2)
)

prediction_data <- explanatory_data %>% 
  mutate(
    mass_g = predict(mdl_mass_vs_both, explanatory_data)
  )
Середній рівень Regression у R

Візуалізація прогнозів

ggplot(
  fish, 
  aes(length_cm, height_cm, color = mass_g)
) +
  geom_point() +
  scale_color_viridis_c(option = "inferno") +
  geom_point(
    data = prediction_data, shape = 15, size = 3
  )

Прогнози на діаграмі: сітка точок поверх кольорів маси

Середній рівень Regression у R

Додавання взаємодії

mdl_mass_vs_both_inter <- lm(mass_g ~ length_cm * height_cm, data = fish)
Call:
lm(formula = mass_g ~ length_cm * height_cm, data = fish)

Coefficients:
        (Intercept)            length_cm            height_cm  length_cm:height_cm  
           159.1144               0.3001             -78.1234               3.5455
Середній рівень Regression у R

Процес прогнозування знову

explanatory_data <- expand_grid(
  length_cm = seq(5, 60, 5),
  height_cm = seq(2, 20, 2)
)

prediction_data <- explanatory_data %>% 
  mutate(
    mass_g = predict(mdl_mass_vs_both_inter, explanatory_data)
  )
Середній рівень Regression у R

Візуалізація прогнозів

ggplot(
  fish, 
  aes(length_cm, height_cm, color = mass_g)
) +
  geom_point() +
  scale_color_viridis_c(option = "inferno") +
  geom_point(
    data = prediction_data, shape = 15, size = 3
  )

Прогнози з взаємодією: сітка точок на кольоровій діаграмі

Середній рівень Regression у R

Давайте потренуємось!

Середній рівень Regression у R

Preparing Video For Download...