Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Estacionaridade | Processamento de Dados de Séries Temporais
Pré-processamento de Dados

book
Estacionaridade

Um dos principais passos é o processo de conversão de uma série temporal não estacionária em uma estacionária, eliminando a tendência, sazonalidade e outros fatores que afetam a mudança nas propriedades estatísticas da série ao longo do tempo. Uma série temporal estacionária transformada pode ser mais previsível e mais fácil de analisar do que uma série não estacionária. Existem vários métodos de transformação de dados em estacionários:

Diferenciação

Diferenciação - calcular a diferença entre o valor atual e o valor anterior da série temporal. Mas como escolher a ordem da diferenciação? Se as primeiras diferenças não se estabilizarem em torno de uma média e variância constantes, então encontramos a segunda diferenciação usando os valores da primeira diferenciação. Você pode repetir isso até obter uma série estacionária.

Você também pode plotar a série diferenciada e verificar se há uma média e variância constantes para determinar se a série está suficientemente diferenciada.

Decomposição

Decomposição - decompor a série temporal nos seus componentes de tendência, sazonalidade e ruído aleatório.

Transformação Box-Cox

A transformação Box-Cox é um método que generaliza a transforma em logaritmo natural e converte dados não normais em uma distribuição mais normal.

Remoção de Outliers

Remoção de outliers - um método que remove os outliers da série temporal não estacionária, o que ajuda a melhorar sua estacionariedade.

No exemplo abaixo, vamos considerar como implementar a transformação de dados em dados estacionários usando o método de decomposição:

1234567891011121314151617181920212223
import pandas as pd import numpy as np from statsmodels.tsa.seasonal import seasonal_decompose from statsmodels.tsa.stattools import adfuller # Read the dataset dataset = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/9c23bf60-276c-4989-a9d7-3091716b4507/datasets/df_diamond_data.csv', index_col=0, parse_dates=True) # Time series decomposition result = seasonal_decompose(dataset['diamond price'], model='additive', period=365) # Dickey-Fuller test result = adfuller(result.resid.dropna()) print(f'ADF Statistic: {result[0]:.3f}') print(f'p-value: {result[1]:.3f}') # Differencing dataset_diff = dataset['diamond price'].diff().dropna() # Dickey-Fuller test result = adfuller(dataset_diff) print(f'ADF Statistic: {result[0]:.3f}') print(f'p-value: {result[1]:.3f}')
copy

Você pode observar os gráficos abaixo. O primeiro é o conjunto de dados original, e o segundo é após a aplicação do método de diferenciação.

question mark

Quais dos seguintes métodos podem ser usados para converter uma série temporal não estacionária em uma estacionária?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3
some-alt