O R tem amplos recursos para analisar dados de séries temporais. Esta seção descreve a criação de uma série temporal, a decomposição sazonal, a modelagem com modelos exponenciais e ARIMA e a previsão com o pacote de previsão.
Criando uma série temporal
A função ts() converterá um vetor numérico em um objeto de série temporal do R. O formato é ts(vector, start=, end=, frequency=) em que start e end são os horários da primeira e da última observação e frequency é o número de observações por unidade de tempo (1=anual, 4=quartenal, 12=mensal etc.).
# save a numeric vector containing 72 monthly observations# from Jan 2009 to Dec 2014 as a time series object
myts <- ts(myvector, start=c(2009,1), end=c(2014,12), frequency=12)# subset the time series (June 2014 to December 2014)
myts2 <- window(myts, start=c(2014,6), end=c(2014,12))# plot series
plot(myts)Tecnologia
Decomposição sazonal
Uma série temporal com tendência aditiva, componentes sazonais e irregulares pode ser decomposta usando a função stl(). Observe que uma série com efeitos multiplicativos pode, muitas vezes, ser transformada em uma série com efeitos aditivos por meio de uma transformação de log (ou seja, newts <- log(myts)).
Tanto a função HoltWinters() na instalação básica quanto a função ets() no pacote de previsão podem ser usadas para ajustar modelos exponenciais.
# simple exponential - models level
fit <- HoltWinters(myts, beta=FALSE, gamma=FALSE)# double exponential - models level and trend
fit <- HoltWinters(myts, gamma=FALSE)# triple exponential - models level, trend, and seasonal components
fit <- HoltWinters(myts)# predictive accuracy
library(forecast)
accuracy(fit)# predict next three future values
library(forecast)
forecast(fit,3)
plot(forecast(fit,3))Tecnologia
Modelos ARIMA
A função arima() pode ser usada para ajustar um modelo de médias móveis integradas autorregressivas. Outras funções úteis incluem:
lag(ts, k)
versão defasada da série temporal, deslocada k observações para trás
diff(ts, differences=d)
diferença da série temporal d vezes
ndiffs(ts)
Número de diferenças necessárias para atingir a estacionariedade (do pacote de previsão )
acf(ts)
função de autocorrelação
pacf(ts)
função de autocorrelação parcial
adf.test(ts)
Teste Dickey-Fuller aumentado. A rejeição da hipótese nula sugere que uma série temporal é estacionária (do pacote tseries )
Box.test(x, type="Ljung-Box")
Teste de Pormanteau de que as observações no vetor ou na série temporal x são independentes
Observe que o pacote forecast tem versões um pouco melhores de acf() e pacf(), chamadas Acf() e Pacf(), respectivamente.
# fit an ARIMA model of order P, D, Q
fit <- arima(myts, order=c(p, d, q)# predictive accuracy
library(forecast)
accuracy(fit)# predict next 5 observations
library(forecast)
forecast(fit,5)
plot(forecast(fit,5))Tecnologia
Previsão automatizada
O pacote de previsão fornece funções para a seleção automática de modelos exponenciais e ARIMA. A função ets() oferece suporte a modelos aditivos e multiplicativos. A função auto.arima() pode lidar com modelos ARIMA sazonais e não sazonais. Os modelos são escolhidos para maximizar um dos vários critérios de ajuste.
library(forecast)# Automated forecasting using an exponential model
fit <- ets(myts)# Automated forecasting using an ARIMA model
fit <- auto.arima(myts)Tecnologia
O R tem amplos recursos para analisar dados de séries temporais. Esta seção descreve a criação de uma série temporal, a decomposição sazonal, a modelagem com modelos exponenciais e ARIMA e a previsão com o pacote de previsão.
Criando uma série temporal
A função ts() converterá um vetor numérico em um objeto de série temporal do R. O formato é ts(vector, start=, end=, frequency=) em que start e end são os horários da primeira e da última observação e frequency é o número de observações por unidade de tempo (1=anual, 4=quartenal, 12=mensal etc.).
Decomposição sazonal
Uma série temporal com tendência aditiva, componentes sazonais e irregulares pode ser decomposta usando a função stl(). Observe que uma série com efeitos multiplicativos pode, muitas vezes, ser transformada em uma série com efeitos aditivos por meio de uma transformação de log (ou seja, newts <- log(myts)).
Modelos exponenciais
Tanto a função HoltWinters() na instalação básica quanto a função ets() no pacote de previsão podem ser usadas para ajustar modelos exponenciais.
Modelos ARIMA
A função arima() pode ser usada para ajustar um modelo de médias móveis integradas autorregressivas. Outras funções úteis incluem:
Observe que o pacote forecast tem versões um pouco melhores de acf() e pacf(), chamadas Acf() e Pacf(), respectivamente.
Previsão automatizada
O pacote de previsão fornece funções para a seleção automática de modelos exponenciais e ARIMA. A função ets() oferece suporte a modelos aditivos e multiplicativos. A função auto.arima() pode lidar com modelos ARIMA sazonais e não sazonais. Os modelos são escolhidos para maximizar um dos vários critérios de ajuste.
Indo além
Há muitos bons recursos on-line para você aprender a análise de séries temporais com o R. Entre eles estão A little book of R for time series (Um pequeno livro de R para séries temporais ), de Avril Chohlan, e o curso DataCamp's manipulating time series in R (Manipulação de séries temporais em R ), de Jeffrey Ryan.