Teste dickey-fuller aumentado em python (com exemplo)


Uma série temporal é dita “estacionária” se não tem tendência, apresenta uma variância constante ao longo do tempo e tem uma estrutura de autocorrelação constante ao longo do tempo.

Uma maneira de testar se uma série temporal é estacionária é realizar um teste Dickey-Fuller aumentado , que usa as seguintes hipóteses nulas e alternativas:

H 0 : A série temporal é não estacionária. Em outras palavras, sua estrutura depende do tempo e sua variação não é constante ao longo do tempo.

HA : A série temporal é estacionária.

Se o valor p do teste estiver abaixo de um certo nível de significância (por exemplo, α = 0,05), então podemos rejeitar a hipótese nula e concluir que a série temporal é estacionária.

O exemplo passo a passo a seguir mostra como realizar um teste Dickey-Fuller aumentado em Python para uma determinada série temporal.

Exemplo: teste Dickey-Fuller aumentado em Python

Suponha que temos os seguintes dados de série temporal em Python:

 data = [3, 4, 4, 5, 6, 7, 6, 6, 7, 8, 9, 12, 10]

Antes de realizar um teste Dickey-Fuller aumentado nos dados, podemos criar um gráfico rápido para visualizar os dados:

 import matplotlib. pyplot as plt

plt. plot (data) 

Para realizar um teste Dickey-Fuller aumentado, podemos usar a função adfuller() da biblioteca statsmodels . Primeiro, precisamos instalar modelos de estatísticas:

 pip install statsmodels

Então podemos usar o seguinte código para realizar o teste Dickey-Fuller aumentado:

 from statsmodels. tsa . stattools import adfuller

#perform augmented Dickey-Fuller test
adfuller(data)

(-0.9753836234744063,
 0.7621363564361013,
 0,
 12,
 {'1%': -4.137829282407408,
  '5%': -3.1549724074074077,
  '10%': -2.7144769444444443},
 31.2466098872313)

Veja como interpretar os valores mais importantes do resultado:

  • Estatística de teste: -0,97538
  • Valor P: 0,7621

Como o valor p não é inferior a 0,05, não rejeitamos a hipótese nula.

Isso significa que a série temporal não é estacionária. Em outras palavras, sua estrutura depende do tempo e sua variação não é constante ao longo do tempo.

Recursos adicionais

Como traçar uma série temporal no Matplotlib
Como plotar várias séries de um DataFrame do Pandas
Como realizar um teste de tendência Mann-Kendall em Python

Add a Comment

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