Como realizar um teste chow em python


Um teste de Chow é usado para testar se os coeficientes de dois modelos de regressão diferentes em conjuntos de dados diferentes são iguais.

Este teste é normalmente usado no campo da econometria com dados de séries temporais para determinar se há uma quebra estrutural nos dados em um determinado momento.

O exemplo passo a passo a seguir mostra como realizar um teste Chow em Python.

Etapa 1: crie os dados

Primeiro, criaremos dados falsos:

 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

Etapa 2: visualize os dados

A seguir, criaremos um gráfico de dispersão simples para visualizar os dados:

 import matplotlib. pyplot as plt

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

No gráfico de dispersão podemos ver que a tendência nos dados parece mudar em x = 10.

Assim, podemos realizar o teste de Chow para determinar se existe um ponto de ruptura estrutural nos dados em x = 10.

Etapa 3: execute o teste de comida

Podemos usar a função chowtest do pacote chowtest em Python para realizar um teste Chow.

Primeiro, precisamos instalar este pacote usando pip:

 pip install chowtest

Então podemos usar a seguinte sintaxe para realizar o teste 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)

Aqui está o que significam os argumentos individuais na função chowtest() :

  • y : A variável de resposta no DataFrame
  • x : A variável preditiva no DataFrame
  • last_index_in_model_1 : O valor do índice do último ponto antes da quebra estrutural
  • first_index_in_model_2 : O valor do índice para o primeiro ponto após a quebra estrutural
  • significância_nível : O nível de significância a ser usado para o teste de hipótese

Pelo resultado do teste podemos ver:

  • Estatística do teste F : 118,14
  • valor p: <0,0000

Como o valor p é inferior a 0,05, podemos rejeitar a hipótese nula do teste. Isto significa que temos evidências suficientes para afirmar que um ponto de ruptura estrutural está presente nos dados.

Em outras palavras, duas linhas de regressão podem ajustar o modelo aos dados de forma mais eficaz do que uma única linha de regressão.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outros testes comuns em Python:

Como realizar um teste de causalidade Granger em Python
Como realizar um teste Breusch-Pagan em Python
Como realizar o teste de White em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *