Как выполнить тест Бреуша-Пагана в 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 multiplier 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. Используйте взвешенную регрессию. Другой способ исправить гетероскедастичность — использовать взвешенную регрессию. Этот тип регрессии присваивает вес каждой точке данных на основе дисперсии ее подобранного значения. Когда используются правильные веса, это может устранить проблему гетероскедастичности.

Подробнее о каждом из этих трех способов читайте в этом посте .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.