R dispone de amplias funciones para analizar datos de series temporales. Esta sección describe la creación de una serie temporal, la descomposición estacional, la modelización con modelos exponenciales y ARIMA, y la previsión con el paquete de previsión.
Crear una serie temporal
La función ts( ) convertirá un vector numérico en un objeto R de series temporales. El formato es ts(vector, inicio=, fin=, frecuencia=) donde inicio y fin son las horas de la primera y la última observación y frecuencia es el número de observaciones por unidad de tiempo (1=anual, 4=cuatrimestral, 12=mensual, 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)Con la tecnología de
Descomposición estacional
Una serie temporal con componentes aditivos de tendencia, estacionales e irregulares puede descomponerse mediante la función stl(). Ten en cuenta que, a menudo, una serie con efectos multiplicativos puede transformarse en una serie con efectos aditivos mediante una transformación logarítmica (es decir, newts <- log(myts)).
# Seasonal decomposition
fit <- stl(myts, s.window="period")
plot(fit)# additional plots
monthplot(myts)
library(forecast)
seasonplot(myts)Con la tecnología de
Modelos exponenciales
Tanto la función HoltWinters() de la instalación base, como la función ets() del paquete de previsión, pueden utilizarse para ajustar modelos exponenciales.
# 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))Con la tecnología de
ARIMA Models
La función arima() puede utilizarse para ajustar un modelo autorregresivo de medias móviles integradas. Otras funciones útiles son:
lag(ts, k)
versión retardada de la serie temporal, desplazada hacia atrás k observaciones
diff(ts, diferencias=d)
diferencia la serie temporal d veces
ndiffs(ts)
Número de diferencias necesarias para alcanzar la estacionariedad (del paquete de previsiones )
acf(ts)
función de autocorrelación
pacf(ts)
función de autocorrelación parcial
adf.test(ts)
Prueba de Dickey-Fuller aumentada. Rechazar la hipótesis nula sugiere que una serie temporal es estacionaria (del paquete tseries )
Box.test(x, type="Ljung-Box")
Prueba de Pormanteau de que las observaciones del vector o serie temporal x son independientes
Ten en cuenta que el paquete previsión tiene versiones algo más agradables de acf() y pacf() llamadas Acf() y 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))Con la tecnología de
Previsión automatizada
El paquete de previsión proporciona funciones para la selección automática de modelos exponenciales y ARIMA. La función ets( ) admite modelos aditivos y multiplicativos. La función auto.arima() puede manejar modelos ARIMA estacionales y no estacionales. Los modelos se eligen para maximizar uno de varios criterios de ajuste.
library(forecast)# Automated forecasting using an exponential model
fit <- ets(myts)# Automated forecasting using an ARIMA model
fit <- auto.arima(myts)Con la tecnología de
R dispone de amplias funciones para analizar datos de series temporales. Esta sección describe la creación de una serie temporal, la descomposición estacional, la modelización con modelos exponenciales y ARIMA, y la previsión con el paquete de previsión.
Crear una serie temporal
La función ts( ) convertirá un vector numérico en un objeto R de series temporales. El formato es ts(vector, inicio=, fin=, frecuencia=) donde inicio y fin son las horas de la primera y la última observación y frecuencia es el número de observaciones por unidad de tiempo (1=anual, 4=cuatrimestral, 12=mensual, etc.).
Descomposición estacional
Una serie temporal con componentes aditivos de tendencia, estacionales e irregulares puede descomponerse mediante la función stl(). Ten en cuenta que, a menudo, una serie con efectos multiplicativos puede transformarse en una serie con efectos aditivos mediante una transformación logarítmica (es decir, newts <- log(myts)).
Modelos exponenciales
Tanto la función HoltWinters() de la instalación base, como la función ets() del paquete de previsión, pueden utilizarse para ajustar modelos exponenciales.
ARIMA Models
La función arima() puede utilizarse para ajustar un modelo autorregresivo de medias móviles integradas. Otras funciones útiles son:
Ten en cuenta que el paquete previsión tiene versiones algo más agradables de acf( ) y pacf() llamadas Acf() y Pacf() respectivamente.
Previsión automatizada
El paquete de previsión proporciona funciones para la selección automática de modelos exponenciales y ARIMA. La función ets( ) admite modelos aditivos y multiplicativos. La función auto.arima() puede manejar modelos ARIMA estacionales y no estacionales. Los modelos se eligen para maximizar uno de varios criterios de ajuste.
Ir más lejos
Hay muchos buenos recursos en línea para aprender análisis de series temporales con R. Entre ellos están A little book of R for time series, de Avril Chohlan, y el curso de DataCamp Manipulating time series in R, de Jeffrey Ryan.