Как выполнить тест chow в python


Тест Чоу используется для проверки того, равны ли коэффициенты двух разных моделей регрессии в разных наборах данных.

Этот тест обычно используется в области эконометрики с данными временных рядов, чтобы определить, есть ли структурный разрыв в данных в данный момент времени.

В следующем пошаговом примере показано, как выполнить тест Чоу в Python.

Шаг 1. Создайте данные

Сначала мы создадим поддельные данные:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' x ': [1, 1, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10,
                         11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 20],
                   ' y ': [3, 5, 6, 10, 13, 15, 17, 14, 20, 23, 25, 27, 30, 30, 31,
                         33, 32, 32, 30, 32, 34, 34, 37, 35, 34, 36, 34, 37, 38, 36]})

#view first five rows of DataFrame
df. head ()

        x y
0 1 3
1 1 5
2 2 6
3 3 10
4 4 13

Шаг 2. Визуализируйте данные

Далее мы создадим простую диаграмму рассеяния для визуализации данных:

 import matplotlib. pyplot as plt

#create scatterplot
plt. plot (df. x , df. y , ' o ')

Из диаграммы рассеяния мы видим, что тенденция данных меняется при x = 10.

Таким образом, мы можем выполнить тест Чоу, чтобы определить, есть ли в данных структурная точка останова при x = 10.

Шаг 3: Проведите тест чау

Мы можем использовать функцию chowtest пакета chowtest в Python для выполнения теста Chow.

Сначала нам нужно установить этот пакет с помощью pip:

 pip install chowtest

Затем мы можем использовать следующий синтаксис для выполнения теста Чоу:

 from chow_test import chowtest

chowtest ( y=df[[' y ']],
         last_index_in_model_1= 15 ,
         first_index_in_model_2= 16 ,
         significance_level= .05 )

************************************************** *********************************
Reject the null hypothesis of equality of regression coefficients in the 2 periods.
************************************************** *********************************
Chow Statistic: 118.14097335479373 p value: 0.0
************************************************** *********************************
(118.14097335479373, 1.1102230246251565e-16)

Вот что означают отдельные аргументы функции chowtest() :

  • y : переменная ответа в DataFrame.
  • x : прогнозируемая переменная в DataFrame.
  • Last_index_in_model_1 : значение индекса последней точки перед структурным сдвигом.
  • first_index_in_model_2 : значение индекса для первой точки после структурного разрыва.
  • значимость_уровень : уровень значимости, используемый для проверки гипотезы.

По результатам теста мы видим:

  • Статистика F-теста : 118,14
  • p-значение: <.0000

Поскольку значение p меньше 0,05, мы можем отвергнуть нулевую гипотезу теста. Это означает, что у нас есть достаточно доказательств, чтобы сказать, что в данных присутствует структурная точка излома.

Другими словами, две линии регрессии могут более эффективно соответствовать модели данным, чем одна линия регрессии.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные тесты в Python:

Как выполнить тест на причинность Грейнджера в Python
Как выполнить тест Бреуша-Пэгана в Python
Как выполнить тест Уайта на Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *