Jak wykonać test chow w pythonie


Test Chowa służy do sprawdzania, czy współczynniki dwóch różnych modeli regresji na różnych zbiorach danych są równe.

Test ten jest zwykle stosowany w dziedzinie ekonometrii z danymi szeregów czasowych w celu ustalenia, czy w danym momencie występuje strukturalna przerwa w danych.

Poniższy przykład krok po kroku pokazuje, jak wykonać test Chow w Pythonie.

Krok 1: Utwórz dane

Najpierw stworzymy fałszywe dane:

 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

Krok 2: Wizualizuj dane

Następnie utworzymy prosty wykres rozrzutu do wizualizacji danych:

 import matplotlib. pyplot as plt

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

Z wykresu punktowego widzimy, że trend danych wydaje się zmieniać przy x = 10.

W związku z tym możemy wykonać test Chow, aby określić, czy w danych występuje strukturalny punkt przerwania przy x = 10.

Krok 3: Wykonaj test Chow

Możemy użyć funkcji chowtest z pakietu chowtest w Pythonie, aby wykonać test Chow.

Najpierw musimy zainstalować ten pakiet za pomocą pip:

 pip install chowtest

Następnie możemy użyć następującej składni, aby wykonać test Chow:

 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)

Oto znaczenie poszczególnych argumentów funkcji chowtest() :

  • y : Zmienna odpowiedzi w ramce danych
  • x : Zmienna predykcyjna w ramce danych
  • last_index_in_model_1 : Wartość indeksu ostatniego punktu przed przerwaniem konstrukcyjnym
  • First_index_in_model_2 : Wartość indeksu dla pierwszego punktu po przerwie konstrukcyjnej
  • poziom istotności : poziom istotności stosowany przy testowaniu hipotezy

Z wyniku testu możemy zobaczyć:

  • Statystyka testu F : 118,14
  • Wartość p: <.0000

Ponieważ wartość p jest mniejsza niż 0,05, możemy odrzucić hipotezę zerową testu. Oznacza to, że mamy wystarczające dowody, aby stwierdzić, że w danych występuje strukturalny punkt przerwania.

Innymi słowy, dwie linie regresji mogą skuteczniej dopasować model do danych niż pojedyncza linia regresji.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe testy w Pythonie:

Jak wykonać test przyczynowości Grangera w Pythonie
Jak wykonać test Breuscha-Pagana w Pythonie
Jak wykonać test White’a w Pythonie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *