Як виконати тест chow в python


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

Цей тест зазвичай використовується в галузі економетрики з даними часових рядів, щоб визначити, чи існує структурний розрив у даних у певний момент часу.

Наступний покроковий приклад показує, як виконати тест Chow у 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 : значення індексу для першої точки після структурного розриву
  • significance_level : рівень значущості для перевірки гіпотези

З результатів тесту ми бачимо:

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

Оскільки p-значення менше 0,05, ми можемо відхилити нульову гіпотезу тесту. Це означає, що ми маємо достатньо доказів, щоб стверджувати, що в даних присутній структурний розрив.

Іншими словами, дві лінії регресії можуть більш ефективно вписати модель у дані, ніж одна лінія регресії.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші стандартні тести в Python:

Як виконати тест причинності Грейнджера в Python
Як виконати тест Брейша-Пагана в Python
Як виконати тест Уайта на Python

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

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