Як створити залишковий графік у python


Діаграма залишків – це тип графіка, який відображає відповідні значення відносно залишків регресійної моделі .

Цей тип графіка часто використовується для оцінки того, чи модель лінійної регресії підходить для даного набору даних, і для перевірки залишків на гетероскедастичність .

У цьому посібнику пояснюється, як створити графік залишків для моделі лінійної регресії в Python.

Приклад: діаграма залишків у Python

Для цього прикладу ми використаємо набір даних, який описує атрибути 10 баскетболістів:

 import numpy as np
import pandas as pd

#create dataset
df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
                   'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#view dataset
df

	rating points assists rebounds
0 90 25 5 11
1 85 20 7 8
2 82 14 7 10
3 88 16 8 6
4 94 27 5 6
5 90 20 7 9
6 76 12 6 6
7 75 15 9 10
8 87 14 9 10
9 86 19 5 7

Діаграма залишку для простої лінійної регресії

Припустімо, що ми підбираємо просту модель лінійної регресії, використовуючи бали як змінну предиктора та оцінку як змінну відповіді:

 #import necessary libraries
import matplotlib.pyplot as plt
import statsmodels.api as sm
from statsmodels.formula.api import ols

#fit simple linear regression model
model = ols('rating ~ points', data=df). fit ()

#view model summary
print(model.summary())

Ми можемо створити залишковий або підігнаний графік за допомогою функції plot_regress_exog() із бібліотеки statsmodels:

 #define figure size
fig = plt.figure(figsize=(12,8))

#produce regression plots
fig = sm.graphics.plot_regress_exog(model, ' points ', fig=fig)

Діаграма залишку в Python

Виробляється чотири ділянки. У верхньому правому куті — це залишковий графік порівняно зі скоригованим графіком. Вісь абсцис на цьому графіку показує фактичні значення точок змінної предиктора, а вісь ординат показує залишкове значення для цього значення.

Оскільки залишки здаються випадковим чином розкиданими навколо нуля, це вказує на те, що гетероскедастичність не є проблемою для предикторної змінної.

Графіки залишків для множинної лінійної регресії

Припустімо, що натомість ми підходимо до моделі множинної лінійної регресії, використовуючи результативні передачі та підбирання як змінну прогностику та рейтинг як змінну відповіді:

 #fit multiple linear regression model
model = ols('rating ~ assists + rebounds', data=df). fit ()

#view model summary
print(model.summary())

Знову ж таки, ми можемо створити графік залежності залишків від предикторів для кожного окремого предиктора за допомогою функції plot_regress_exog() із бібліотеки statsmodels.

Наприклад, ось як виглядає графік залишків/прогнозів для допоміжних змінних предиктора:

 #create residual vs. predictor plot for 'assists'
fig = plt.figure(figsize=(12,8))
fig = sm.graphics.plot_regress_exog(model, ' assists ', fig=fig)

Залишкова або скоригована земля

І ось як виглядає графік залишку/прогнозування для відскоків змінної предиктора:

 #create residual vs. predictor plot for 'assists'
fig = plt.figure(figsize=(12,8))
fig = sm.graphics.plot_regress_exog(model, ' rebounds ', fig=fig)

Залишковий або скоригований графік у Python

На обох графіках залишки випадково розкидані навколо нуля, що вказує на те, що гетероскедастичність не є проблемою для жодної зі змінних предиктора в моделі.

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *