Análise de Big Data - Análise de série temporal

A série temporal é uma sequência de observações de variáveis ​​categóricas ou numéricas indexadas por uma data ou registro de data e hora. Um exemplo claro de dados de série temporal é a série temporal do preço de uma ação. Na tabela a seguir, podemos ver a estrutura básica dos dados da série temporal. Neste caso, as observações são registradas a cada hora.

Timestamp Estoque - Preço
11/10/2015 09:00:00 100
11/10/2015 10:00:00 110
11/10/2015 11:00:00 105
11/10/2015 12:00:00 90
11/10/2015 13:00:00 120

Normalmente, a primeira etapa na análise de série temporal é plotar a série; isso normalmente é feito com um gráfico de linha.

A aplicação mais comum da análise de série temporal é prever valores futuros de um valor numérico usando a estrutura temporal dos dados. Isso significa que as observações disponíveis são usadas para prever valores do futuro.

A ordenação temporal dos dados implica que os métodos tradicionais de regressão não são úteis. Para construir uma previsão robusta, precisamos de modelos que levem em consideração a ordenação temporal dos dados.

O modelo mais usado para Análise de Séries Temporais é chamado Autoregressive Moving Average(ARMA). O modelo consiste em duas partes, umautoregressive (AR) parte e um moving average(MA) parte. O modelo é geralmente referido como modelo ARMA (p, q) , onde p é a ordem da parte autorregressiva eq é a ordem da parte média móvel.

Modelo Autoregressivo

O AR (p) é lido como um modelo autoregressivo de ordem p. Matematicamente, é escrito como -

$$ X_t = c + \ sum_ {i = 1} ^ {P} \ phi_i X_ {t - i} + \ varepsilon_ {t} $$

onde {φ 1 ,…, φ p } são parâmetros a serem estimados, c é uma constante e a variável aleatória ε t representa o ruído branco. Algumas restrições são necessárias nos valores dos parâmetros para que o modelo permaneça estacionário.

Média Móvel

A notação MA (q) refere-se ao modelo de média móvel de ordem q -

$$ X_t = \ mu + \ varepsilon_t + \ sum_ {i = 1} ^ {q} \ theta_i \ varepsilon_ {t - i} $$

onde θ 1 , ..., θ q são os parâmetros do modelo, μ é a expectativa de X t , e ε t , ε t - 1 , ... são, termos de erro de ruído branco.

Média Móvel Autoregressiva

O modelo ARMA (p, q) combina p termos autorregressivos e q termos de média móvel. Matematicamente, o modelo é expresso com a seguinte fórmula -

$$ X_t = c + \ varepsilon_t + \ sum_ {i = 1} ^ {P} \ phi_iX_ {t - 1} + \ sum_ {i = 1} ^ {q} \ theta_i \ varejpsilon_ {ti} $$

Podemos ver que o modelo ARMA (p, q) é uma combinação dos modelos AR (p) e MA (q) .

Para dar alguma intuição do modelo, considere que a parte AR da equação busca estimar parâmetros para X t - i observações de a fim de prever o valor da variável em X t . É no final uma média ponderada dos valores anteriores. A seção MA usa a mesma abordagem, mas com o erro das observações anteriores, ε t - i . Portanto, no final, o resultado do modelo é uma média ponderada.

O seguinte trecho de código demonstra como implementar uma ARMA (p, q) em R .

# install.packages("forecast")
library("forecast")  

# Read the data 
data = scan('fancy.dat') 
ts_data <- ts(data, frequency = 12, start = c(1987,1)) 
ts_data  
plot.ts(ts_data)

Traçar os dados normalmente é a primeira etapa para descobrir se há uma estrutura temporal nos dados. Podemos ver no gráfico que há fortes picos no final de cada ano.

O código a seguir ajusta um modelo ARMA aos dados. Executa várias combinações de modelos e seleciona aquele que apresenta menos erro.

# Fit the ARMA model
fit = auto.arima(ts_data) 
summary(fit) 

# Series: ts_data  
# ARIMA(1,1,1)(0,1,1)[12]                     
#    Coefficients: 
#    ar1     ma1    sma1 
# 0.2401  -0.9013  0.7499 
# s.e.  0.1427   0.0709  0.1790 

#  
# sigma^2 estimated as 15464184:  log likelihood = -693.69 
# AIC = 1395.38   AICc = 1395.98   BIC = 1404.43 

# Training set error measures: 
#                 ME        RMSE      MAE        MPE        MAPE      MASE       ACF1 
# Training set   328.301  3615.374  2171.002  -2.481166  15.97302  0.4905797 -0.02521172