Як створити залишковий графік у 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)
Виробляється чотири ділянки. У верхньому правому куті — це залишковий графік порівняно зі скоригованим графіком. Вісь абсцис на цьому графіку показує фактичні значення точок змінної предиктора, а вісь ординат показує залишкове значення для цього значення.
Оскільки залишки здаються випадковим чином розкиданими навколо нуля, це вказує на те, що гетероскедастичність не є проблемою для предикторної змінної.
Графіки залишків для множинної лінійної регресії
Припустімо, що натомість ми підходимо до моделі множинної лінійної регресії, використовуючи результативні передачі та підбирання як змінну прогностику та рейтинг як змінну відповіді:
#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)
На обох графіках залишки випадково розкидані навколо нуля, що вказує на те, що гетероскедастичність не є проблемою для жодної зі змінних предиктора в моделі.