Come eseguire un test di chow in python


Un test di Chow viene utilizzato per verificare se i coefficienti di due diversi modelli di regressione su diversi set di dati sono uguali.

Questo test viene generalmente utilizzato nel campo dell’econometria con dati di serie temporali per determinare se esiste una rottura strutturale nei dati in un dato momento.

Il seguente esempio passo passo mostra come eseguire un test Chow in Python.

Passaggio 1: creare i dati

Per prima cosa creeremo dati falsi:

 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

Passaggio 2: visualizzare i dati

Successivamente, creeremo un semplice grafico a dispersione per visualizzare i dati:

 import matplotlib. pyplot as plt

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

Dal grafico a dispersione possiamo vedere che la tendenza dei dati sembra cambiare a x = 10.

Pertanto, possiamo eseguire il test di Chow per determinare se esiste un punto di interruzione strutturale nei dati in x = 10.

Passaggio 3: eseguire il test di Chow

Possiamo usare la funzione chowtest del pacchetto chowtest in Python per eseguire un test Chow.

Innanzitutto, dobbiamo installare questo pacchetto usando pip:

 pip install chowtest

Quindi possiamo utilizzare la seguente sintassi per eseguire il test di 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)

Ecco cosa significano i singoli argomenti nella funzione chowtest() :

  • y : la variabile di risposta nel DataFrame
  • x : la variabile predittiva nel DataFrame
  • last_index_in_model_1 : il valore dell’indice dell’ultimo punto prima dell’interruzione strutturale
  • first_index_in_model_2 : il valore dell’indice per il primo punto dopo l’interruzione strutturale
  • significatività_level : il livello di significatività da utilizzare per il test di ipotesi

Dal risultato del test possiamo vedere:

  • Statistica del test F : 118,14
  • valore p: <.0000

Poiché il valore p è inferiore a 0,05, possiamo rifiutare l’ipotesi nulla del test. Ciò significa che abbiamo prove sufficienti per affermare che nei dati è presente un punto di rottura strutturale.

In altre parole, due linee di regressione possono adattare il modello ai dati in modo più efficace rispetto a una singola linea di regressione.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altri test comuni in Python:

Come eseguire un test di causalità di Granger in Python
Come eseguire un test di Breusch-Pagan in Python
Come eseguire il test di White in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *