Як виконати тест брейша-пейгана в 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. Використовуйте зважену регресію. Інший спосіб виправлення гетероскедастичності – це використання зваженої регресії. Цей тип регресії призначає вагу кожній точці даних на основі дисперсії її підігнаного значення. Якщо використовуються відповідні ваги, це може усунути проблему гетероскедастичності.

Детальніше про кожен із цих трьох методів читайте в цій статті .

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

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