Series Paseo Aleatorio (Random Walk) | Explicación y Simulación en R

Dentro de la Econometría de Series de Tiempo podemos estudiar el concepto de series de Paseo Aleatorio(Random Walk). La característica principal de estas series es que son NO ESTACIONARIAS. Eso sí podemos transformarlas en ESTACIONARIAS mediante la diferenciación,lo que producirá una serie estacionaria, es decir, una serie de ruido blanco medio cero.

Por ejemplo, los precios de las acciones siguen un modelo de paseo aleatorio, y la serie de retornos (diferenciación de series de precios) seguirá el modelo de ruido blanco. Lo que significa que El precio de hoy de las acciones es igual al precio de ayer más un choque aleatorio. En el siguiente tutorial vamos a explicar los diferentes tipos de Paseos Aleatorios y luego haremos un ejemplo de simulación en R.

MÁS ABAJO PUEDES COPIAR EL CÓDIGO R DEL VIDEO


CÓDIGO R DEL TUTORIAL

# PASEO ALEATORIO


#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)

#1. Descargamos las variables que vamos a usar

getSymbols("INDPRO",src="FRED")  #Industrial Production Index
getSymbols("UMCSENT",src="FRED") #University of Michigan: Consumer Sentiment
getSymbols("FEDFUNDS",src="FRED") #tasa interes fondos federales
getSymbols("CCRETT01USM661N",src="FRED") #Tipo de cambio efectivo IPC
getSymbols("M2NS",src="FRED")     #Stock de dinero M2
getSymbols("PAYEMS",src="FRED")   # Des trabajadores no rurales
getSymbols("BOPGSTB",src="FRED")  #Balance cuenta, Diferencia entre exp e imp
getSymbols("EXUSUK",src="FRED")   #GBP mensual

plot(EXUSUK,type="l")
plot(M2NS,type="l")


GBP_diff <- na.omit(diff(EXUSUK))
plot(GBP_diff,type="l",main ="Serie EXUSUK Diferenciada")


# SIMULACIÓN PASEO ALETATORIO sin deriva 


Pas_Aleatorio <- arima.sim(model= list(order = c(0, 1, 0)), n=200)


plot.ts(Pas_Aleatorio,main="Paseo Aleatorio", col=4)


# PRIMERAS DIFERENCIAS

Pas_Aleatorio_diff <- diff(Pas_Aleatorio)

plot(Pas_Aleatorio_diff,type="l")

mean(Pas_Aleatorio_diff)
sd(Pas_Aleatorio_diff)


# PASEO ALEATORIO CON DERIVA(DRIFT)

Pas_Aleatorio_deriva <- arima.sim(model= list(order = c(0, 1, 0)), n=200, mean=1,sd=5)
plot.ts(Pas_Aleatorio_deriva, main="PASEO ALEATORIO CON DERIVA")


# ESTIMACION DE UN MODELO DE PASEO ALEATORIO

#Para ajustar un modelo de paseo aleatorio con deriva a una serie temporal, 
#seguiremos los siguientes pasos


#1.Tome la diferencia de primer orden de los datos.
#2.Ajuste el modelo de ruido blanco a los datos diferenciados usando la función arima() con orden de c(0,0,0).
#3.Trazar la trama de la serie de tiempo original.
#4.Agregue la tendencia estimada usando la función abline() proporcionando la intersección que obtuvimos al ajustar el modelo de Ruido Blanco como la pendiente.


#1.Diferencia de primer orden 

Pas_Aleatorio_deriva_diff <-diff(Pas_Aleatorio_deriva)

plot.ts(Pas_Aleatorio_deriva_diff, col=4, main="DIFERENCIA PRIMER ORDEN")

#2.Ajuste el modelo de ruido blanco a los datos diferenciados

ruido_blanco <- arima(Pas_Aleatorio_deriva_diff, order = c(0, 0, 0))
ruido_blanco

#3. Grafico Paseo Aleatorio Original

plot.ts(Pas_Aleatorio_deriva,col=4, main="PASEO ALEATORIO CON DERIVA")

#4.Añadimos la tendencia estimada

abline(0, ruido_blanco$coef,col=2)

ruido_blanco$coef

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio