Está en la página 1de 8

16/12/22, 9:12 Series Temporales - Grado en Ciencia de Datos (Universitat de València)

Series Temporales - Grado en Ciencia


de Datos (Universitat de València)
4. Otros modelos
En la práctica es posible encontrar procesos que siguen una estructura de dependencia no lineal
desconocida. En estos casos, el uso de un modelo no lineal proporciona resultados más satisfactorios. Entre
los modelos no lineales que se han propuesto encontramos, por ejemplo, las redes neuronales
autorregresivas (neural network autoregression, NNAR), también conocidas como modelos autorregresivos no
lineales (nonlinear autoregressive, NAR), o las redes neuronales autorregresivas no lineales con entradas
exógenas (nonlinear autoregressive with exogenous inputs, NARX). Mientras que el modelo NAR utiliza
observaciones pasadas de la serie temporal para obtener predicciones para instantes temporales futuros, el
modelo NARX es una extensión multivariante que utiliza información adicional con el objetivo de mejorar la
predicción.

La predicción de series temporales mediante el uso de redes neuronales no requiere conocimiento sobre el
proceso que genera las observaciones que constituyen la serie, por lo que se dice que es un método no
paramétrico. Las redes neuronales, nacidas en el campo de la inteligencia artificial, son estructuras de
interconexiones, compuestas por una serie de capas, formadas por neuronas. Las neuronas de la capa de
entrada se encargan únicamente de recibir información del exterior y constituyen la capa más baja. La última
capa actúa como salida de la red, proporcionando en este caso la predicción. Las neuronas de las capas
ocultas (capas intermedias) realizan un procesamiento no lineal de las entradas recibidas. Una explicación de
la arquitectura de una red neuronal la podemos encontrar en el libro Forecasting: Principles and Practice, 2nd
edition, R.J. Hyndman and G. Athanasopoulos, sección 11.3. (https://otexts.com/fpp2/nnetar.html
(https://otexts.com/fpp2/nnetar.html)).

Red neuronal autorregresiva no lineal (NAR or


NNAR)
En el contexto de predicción, una red neuronal autorregresiva no lineal utiliza como entrada observaciones
pasadas de la serie. Siguiendo la referencia anterior, estudiaremos sólo las redes neuronales alimentadas
hacia adelante (es decir, las conexiones están siempre dirigidas hacia delante) con una capa intermedia, que
denotaremos NNAR(p,k), donde p es el número de observaciones previas consideradas
(x t−1 , x t−2 , … , x t−p ) y k es el número de nodos en la capa intermedia. El modelo NNAR(p,0) es

equivalente a un modelo ARIMA(p,0,0), sin restricciones sobre los parámetros que aseguren la
estacionariedad. En el caso de series estacionales, es conveniente utilizar como entrada también
observaciones correspondientes al mismo periodo en ciclos estacionales anteriores. Ajustaríamos entonces
un modelo NNAR(p,P,k)c , donde c es la longitud del ciclo estacional y P hace referencia al número de
observaciones del mismo periodo en ciclos anteriores consideradas (x t−c , x t−2c, … , x t−P c ) .

La función nnetar del paquete forecast de R nos permite ajustar un model NNAR(p,P,k)c . Por defecto, en
el caso de series temporales no estacionales, p es seleccionado de manera automática como el valor de p
que minimiza el criterio AIC al ajustar un modelo lineal AR(p). Para series estacionales, se fija P = 1 y p se
elige de manera similar una vez se ha eliminado la estacionalidad de la serie. El valor de k se fija (por
defecto) igual a (p + P + 1)/2 (redondeado al entero más cercano).

library(readr)
library(forecast)

https://aulavirtual.uv.es/pluginfile.php/2910775/mod_resource/content/1/NAR_model.html 1/8
16/12/22, 9:12 Series Temporales - Grado en Ciencia de Datos (Universitat de València)

Ejemplo 1: Número de usuarios conectados a internet a través de un servidor por minuto. Reservamos las
últimas 5 observaciones para valorar (posteriormente) la capacidad predictiva del modelo.

insample <- window(WWWusage,start=1,end=95) # Datos utilizados para el ajuste


outsample <- window(WWWusage,start=96,end=100) # Observaciones reservadas para valorar la pre
dicción

fit.nar <- nnetar(insample) Dejamos que elija los parámetros por defecto
fit.nar

2 neuronas en la capa de entrada (Xt-1 y Xt-2)


## Series: insample
1 Salida X^t
## Model: NNAR(2,2) 2 neuronas de la capa intermedia
## Call: nnetar(y = insample)
##
## Average of 20 networks, each of which is
## a 2-2-1 network with 9 weights
## options were - linear output units
##
## sigma^2 estimated as 8.93

accuracy(fit.nar) Obtener los errores de ajuste

## ME RMSE MAE MPE MAPE MASE


## Training set -0.003137219 2.988363 2.46269 -0.05945555 1.94781 0.5421379
## ACF1
## Training set 0.10118

fitval <- fitted.values(fit.nar) Calcular la series de los errores ajustados

plot(WWWusage,xlab="Minuto",ylab="Usuarios conectados")
lines(fitval, col="blue")
abline(v=95)

https://aulavirtual.uv.es/pluginfile.php/2910775/mod_resource/content/1/NAR_model.html 2/8
16/12/22, 9:12 Series Temporales - Grado en Ciencia de Datos (Universitat de València)

pred <- forecast(fit.nar,h=5) # Predicción puntual para h = 5


plot(pred)

https://aulavirtual.uv.es/pluginfile.php/2910775/mod_resource/content/1/NAR_model.html 3/8
16/12/22, 9:12 Series Temporales - Grado en Ciencia de Datos (Universitat de València)

rmse_pred <- sqrt(mean((outsample - pred$mean)^2))


rmse_pred

## [1] 14.19964

pred <- forecast(fit.nar, PI = TRUE, h=5) # Predicción puntual e intervalos de predicción


plot(pred)

Ejemplo 4: Encuesta de ocupación hotelera. Total nacional de viajeros residentes en España. Reservamos las
observaciones de 2018 para valorar la capacidad predictiva del modelo.

Dat_Viajeros <- read.csv(file="Viajeros.csv",header=TRUE,sep=";")


attach(Dat_Viajeros)

Viajeros_ts <- ts(Viajeros,start=c(2010,1),end=c(2018,12),frequency=12)


insample <- window(Viajeros_ts,start=c(2010,1),end=c(2017,12))
outsample <- window(Viajeros_ts,start=c(2018,1),end=c(2018,12))

fit.nar <- nnetar(insample)


fit.nar

https://aulavirtual.uv.es/pluginfile.php/2910775/mod_resource/content/1/NAR_model.html 4/8
16/12/22, 9:12 Series Temporales - Grado en Ciencia de Datos (Universitat de València)

## Series: insample
## Model: NNAR(3,1,2)[12]
## Call: nnetar(y = insample)
##
## Average of 20 networks, each of which is
## a 4-2-1 network with 13 weights 4 neurona capa entrada, 2 capa intermedia, 1 capa de salida
## options were - linear output units
##
## sigma^2 estimated as 4.765e+10

accuracy(fit.nar)

## ME RMSE MAE MPE MAPE MASE


## Training set 9.983692 218280.5 163023.7 -0.401921 4.466392 0.7894831
## ACF1
## Training set 0.1991065

fitval <- fitted.values(fit.nar)

plot(Viajeros_ts,ylab="Viajeros residentes en España")


lines(fitval, col="blue")

fit.nar2 <- nnetar(insample,p=2,P=2,size=5)


fit.nar2

https://aulavirtual.uv.es/pluginfile.php/2910775/mod_resource/content/1/NAR_model.html 5/8
16/12/22, 9:12 Series Temporales - Grado en Ciencia de Datos (Universitat de València)

## Series: insample
## Model: NNAR(2,2,5)[12]
## Call: nnetar(y = insample, p = 2, P = 2, size = 5)
##
## Average of 20 networks, each of which is
## a 4-5-1 network with 31 weights
## options were - linear output units
##
## sigma^2 estimated as 1.574e+10

accuracy(fit.nar2)

## ME RMSE MAE MPE MAPE MASE


## Training set -1028.863 125465.1 83165.31 -0.2330455 2.332498 0.4027488
## ACF1
## Training set 0.03351014

fitval2 <- fitted.values(fit.nar2)

plot(Viajeros_ts,ylab="Viajeros residentes en España")


lines(fitval, col="blue")
lines(fitval2,col="red")

pred2 <- forecast(fit.nar2,h=12) # Predicción puntual para h = 12


plot(pred2)

https://aulavirtual.uv.es/pluginfile.php/2910775/mod_resource/content/1/NAR_model.html 6/8
16/12/22, 9:12 Series Temporales - Grado en Ciencia de Datos (Universitat de València)

rmse_pred2 <- sqrt(mean((outsample - pred2$mean)^2))


rmse_pred2

## [1] 137799.3

pred2 <- forecast(fit.nar2, PI = TRUE, h=12) # Predicción puntual e intervalos de predicción


plot(pred2)

https://aulavirtual.uv.es/pluginfile.php/2910775/mod_resource/content/1/NAR_model.html 7/8
16/12/22, 9:12 Series Temporales - Grado en Ciencia de Datos (Universitat de València)

https://aulavirtual.uv.es/pluginfile.php/2910775/mod_resource/content/1/NAR_model.html 8/8

También podría gustarte