Як виконати тест брейша-пейгана в python
У регресійному аналізі гетероскедастичність відноситься до нерівномірної дисперсії залишків. Точніше, це той випадок, коли є систематична зміна розподілу залишків у діапазоні виміряних значень.
Гетероскедастичність є проблемою, оскільки звичайна регресія найменших квадратів (OLS) припускає, що залишки походять від популяції, яка має гомоскедастичність , тобто постійну дисперсію.
Коли гетероскедастичність присутня в регресійному аналізі, у результати аналізу стає важко повірити.
Одним із способів визначити, чи присутній гетероскедастичність у регресійному аналізі , є використання тесту Брейша-Пейгана .
Цей підручник пояснює, як виконати тест Брейша-Пейгана в 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
Ми підберемо модель множинної лінійної регресії, використовуючи оцінку як змінну реакції та очки, передачі та підбирання як пояснювальні змінні. Далі ми виконаємо тест Брейша-Пейгана, щоб визначити, чи присутня гетероскедастичність у регресії.
Крок 1. Підберіть модель множинної лінійної регресії.
Спочатку ми підберемо модель множинної лінійної регресії:
import statsmodels.formula.api as smf #fit regression model fit = smf.ols('rating ~ points+assists+rebounds', data=df). fit () #view model summary print (fit.summary())
Крок 2: Виконайте тест Брейша-Пейгана.
Далі ми виконаємо тест Брейша-Пейгана, щоб визначити наявність гетероскедастичності.
from statsmodels.compat import lzip import statsmodels.stats.api as sms #perform Bresuch-Pagan test names = ['Lagrange multiplier statistic', 'p-value', 'f-value', 'f p-value'] test = sms.het_breuschpagan(fit.resid, fit.model.exog) lzip(names, test) [('Lagrange multiply statistic', 6.003951995818433), ('p-value', 0.11141811013399583), ('f-value', 3.004944880309618), ('f p-value', 0.11663863538255281)]
Тест Брейша-Пейгана використовує такі нульові та альтернативні гіпотези:
Нульова гіпотеза (H 0 ): гомоскедастичність присутня.
Альтернативна гіпотеза: (Ha): гомоскедастичність відсутня (тобто гетероскедастичність існує)
У цьому прикладі статистика множника Лагранжа для тесту становить 6,004 , а відповідне значення p — 0,1114 . Оскільки це p-значення не менше 0,05, ми не можемо відхилити нульову гіпотезу. У нас немає достатніх доказів, щоб стверджувати, що гетероскедастичність присутня в регресійній моделі.
Як виправити гетероскедастичність
У попередньому прикладі ми побачили, що гетероскедастичність не була присутня в регресійній моделі.
Однак, коли гетероскедастичність дійсно присутня, є три загальні способи виправити ситуацію:
1. Перетворення залежної змінної. Один із способів виправити гетероскедастичність – певним чином трансформувати залежну змінну. Звичайним перетворенням є просто взяття журналу залежної змінної.
2. Перевизначте залежну змінну. Інший спосіб виправити гетероскедастичність – перевизначити залежну змінну. Поширеним способом зробити це є використання ставки для залежної змінної, а не вихідного значення.
3. Використовуйте зважену регресію. Інший спосіб виправлення гетероскедастичності – це використання зваженої регресії. Цей тип регресії призначає вагу кожній точці даних на основі дисперсії її підігнаного значення. Якщо використовуються відповідні ваги, це може усунути проблему гетероскедастичності.
Детальніше про кожен із цих трьох методів читайте в цій статті .