So führen Sie einen Chow-Test in Python durch

Von Fabian
Kategorie: Python
Lesezeit: 3 Minuten

Ein Chow-Test wird verwendet, um zu testen, ob die Koeffizienten in zwei verschiedenen Regressionsmodellen auf verschiedenen Datensätzen gleich sind.

Dieser Test wird typischerweise im Bereich der Ökonometrie mit Zeitreihendaten verwendet, um festzustellen, ob an irgendeiner Stelle ein Strukturbruch in den Daten vorliegt.

Das folgende Schritt-für-Schritt-Beispiel zeigt, wie Sie einen Chow-Test in Python durchführen.

Schritt 1: Erstellen Sie die Daten

Zuerst erstellen wir einige gefälschte Daten:

import pandas as pd

#Dataframe erstellen
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, 3

#erste fünf Zeilen von DataFrame anzeigen
df.head()

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

Schritt 2: Visualisieren Sie die Daten

Als Nächstes erstellen wir ein einfaches Streudiagramm, um die Daten zu visualisieren:

import matplotlib.pyplot as plt

#Streudiagramm erstellen
plt.plot(df.x, df.y, 'o')

Chow

Aus dem Streudiagramm können wir sehen, dass sich das Muster in den Daten bei x = 10 zu ändern scheint.

Daher können wir den Chow-Test durchführen, um festzustellen, ob es bei x = 10 einen strukturellen Bruchpunkt in den Daten gibt.

Schritt 3: Führen Sie den Chow-Test durch

Wir können die chowtest-Funktion aus dem chowtest- Paket in Python verwenden, um einen Chow-Test durchzuführen.

Zuerst müssen wir dieses Paket mit pip installieren:

pip install chowtest

Als nächstes können wir die folgende Syntax verwenden, um den Chow-Test durchzuführen:

from chow_test import chowtest

chowtest(y=df[['y']], X=df[['x']],
         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)

So bedeuten die einzelnen Argumente in der Funktion chowtest():

  • y: Die Antwortvariable im DataFrame
  • x: Die Prädiktorvariable im DataFrame
  • last_index_in_model_1: Der Indexwert für den letzten Punkt vor dem Strukturbruch
  • first_index_in_model_2: Der Indexwert für den ersten Punkt nach dem Strukturbruch
  • significance_level: Das für den Hypothesentest zu verwendende Signifikanzniveau

Aus der Ausgabe des Tests können wir sehen:

  • F test statistic: 118,14
  • p-value: <.0000

Da der p-Wert kleiner als 0,05 ist, können wir die Nullhypothese des Tests ablehnen. Dies bedeutet, dass wir genügend Beweise haben, um zu sagen, dass in den Daten eine strukturelle Bruchstelle vorhanden ist.

Mit anderen Worten, zwei Regressionslinien passen das Muster in den Daten besser an als eine einzelne Regressionslinie.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere gängige Tests in Python durchführen:

So führen Sie einen Granger-Kausalitätstest in Python durch
So führen Sie einen Breusch-Pagan-Test in Python durch
So führen Sie den White-Test in Python durch

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: