En este video vamos a ver como podemos realizar una Predicción con Modelos Autorregresivos(AR) usando R.

Dentro de la estadística, un modelo autorregresivo (AR) es una representación de un proceso aleatorio(estocástico), en el que la variable de interés depende de sus observaciones pasadas.

Específicamente, la variable de interés o de salida, depende linealmente de sus valores anteriores. Este tutorial es continuación del siguiente video que ya realicé hace unas semanas. Puedes revisarlo si no sabes de que va el tema.

Más abajo tienes el CÓDIGO EN R usado en el video

CÓDIGO EN R

 

#video Proceso Autoregresivo (AR)

#install.packages(«quantmod»)
library(quantmod)
#install.packages(«tseries»)
library(tseries)
#install.packages(«forecast»)
library(forecast)
#install.packages(«TSA»)
library(TSA)
#install.packages(«Quandl»)
library(Quandl)
library(stats)

#getSymbols(«CPIAUCNS»,src=»FRED»)

getSymbols(«EXUSEU»,src=»FRED»)

plot(EXUSEU,type=»l»)

#Modelo AR(1)

MAR_100= Arima(EXUSEU,order=c(1,0,0))
MAR_100

residuos <- MAR_100$residuals

plot(residuos,type=»l»)

summary(MAR_100)

#adf.test(EXUSEU)

ar1 <- arima(EXUSEU,order=c(2,0,0))
ar1

# PREDICCIÓN CON MODELO AR(AUTOREGRESIVOS)

EURUSD_ts <- ts( EXUSEU$EXUSEU)
val_fijados <- EURUSD_ts – residuos

plot(EURUSD_ts,type=»l»)
lines(val_fijados,type=»l»,col=»red»)

# Pasos

#1 FIJAR EL MODELO
#2 REALIZAMOS LA PREDICCIÓN — predict
#3 AÑADIMOS UN INTERVALO DE CONFIANZA

#1

MAR_100= Arima(EXUSEU,order=c(1,0,0))
MAR_100

residuos <- MAR_100$residuals

plot(residuos,type=»l»)

summary(MAR_100)

#2 PREDICT

MAR_predict <- predict(MAR_100, n.ahead = 10)
#Modelo AR, num pred
MAR_predict

MAR_prediccion <- MAR_predict$pred
plot(MAR_prediccion,type=»l»)

MAR_error <- MAR_predict$se
plot(MAR_error,type=»l»)

plot.ts(EURUSD_ts,xlim = c(0, 300),type=»l»)

points(MAR_prediccion , type = «l», col = «blue»)

#3 intevalos confianza

int_conf <- data.frame(MAR_prediccion-MAR_error,MAR_prediccion,MAR_prediccion+MAR_error)

int_conf_2 <- data.frame(MAR_prediccion-(MAR_error*2),MAR_prediccion,MAR_prediccion+(MAR_error*2))

plot.ts(EURUSD_ts,xlim = c(0, 300),type=»l»)

points(MAR_prediccion , type = «l», col = «blue»)
points(MAR_prediccion – MAR_error*2, type = «l», col = «red», lty = 2)
points(MAR_prediccion + MAR_error*2, type = «l», col = «red», lty = 2)

points(MAR_prediccion – MAR_error, type = «l», col = «green», lty = 2)
points(MAR_prediccion + MAR_error, type = «l», col = «green», lty = 2)

# R2 =1- SCE/SCT

Scroll al inicio