Estacionalidad. ¿Cómo Desestacionalizar series?

👉 La estacionalidad de una determinada serie es una serie de patrones que se dan de manera regular en ésta y que se pueden medir y encontrar para su estudio.

😁También hay formas y modelos para poder desestacionalizarlas y así ver mejor su comportamiento, incluso descomponer todo para ver detectar movimientos que a simple vista no encontramos.

En el siguiente vídeo haré algunos ejemplos en R studio que pueden servir para ver la estacionalidad y ajustarla para su estudio.

CÓDIGO EN R STUDIO


### ESTACIONALIDAD DE SERIES DE TIEMPO


## No confundir ESTACIONALIDAD con ESTACIONARIEDAD


## La estacionalidad de una serie se da cuando hay 
##  patrones periódicos(Mensual,Anual) en el movimiento
#  en esa serie. Pueden ser por el clima etc


##Los ajustes estacionales son un procedimiento estadístico para 
# eliminar los efectos estacionales 


# Así intentaremos ver mejor el movimiento


### Recordar Descomposición de Series


#Tendencia
#Estacionalidad
#Ciclos(patrones irregulares)
# Movimiento irregular



#install.packages("quantmod")
library(quantmod)
#install.packages("tseries")
library(tseries)
#install.packages("fImport")
library(fImport)
#install.packages("forecast")
library(forecast)
#install.packages("TSA")
library(TSA)


#install.packages("seasonal")
library(seasonal)



######


## decompose() y stl() -- División de 3 Componentes
## librería “timsac” -- Función   decomp() ademas AR
## libreria  "descomponer" -- Función descomponer() - Multiplicativo



### DECOMPOSE

## Tendencia con medias móviles
## Estacionalidad 


 #decompose(x, type = c(“additive”, “multiplicative”), filter = NULL)
#decompose


getSymbols("EXUSEU",src="FRED") 

plot(EXUSEU,type="l")

EURUSD<-EXUSEU$EXUSEU

eu_ts <- ts(EXUSEU,start = c(1999,1), frequency = 12)

des_euro<- decompose(eu_ts,type=c("additive"))
des_euro

#Y = T+E+C+e 
#Y = T*E*C**e

plot(decompose(eu_ts,type=c("additive")))

#plot(decompose(eu_ts))

plot(des_euro$random,type="l")





#STL --- Usa la Regresión LOESS

EUR_ts<-eu_ts[,1]
eu_ts

plot(stl(EUR_ts,"per"))

plot(stl(EUR_ts))
stl(eu_ts)


### TIMSAC -- usa modelos arima

install.packages("timsac")
library(timsac)
decomp(eu_ts, trade=TRUE)

?decomp

## quizá se podría primero buscar el mejor modelo y luego usar 
## ese para desestacionalizar 


## Usar periodograma

dy<-na.omit(returns(EXUSEU))
p=periodogram(dy)
max(p$spec)
p$freq[match(max(p$spec),p$spec)]
1/p$freq[match(max(p$spec),p$spec)]



### Ejemplo Para desestacionarlizar la serie



#Eliminación de estacionalidad: 
#Para eliminar la estacionalidad de una serie mensual 
#se pueden tomar diferencias estacionales de orden 12. 
#Si xt es la serie que queremos desestacionalizar, 
#se trata de calcular ∇12xt=xt−xt−12:


r_EURUSD<- na.omit(diff(EXUSEU))  #Quitamos tendencia
plot(r_EURUSD,type="l")

r_EURUSD_des = diff(r_EURUSD, lag=19)
plot(r_EURUSD_des)




### MODELO SEAS

# X-13ARIMA-SEATS

library(seasonal)

?seas
serie.ajuste <- seas(eu_ts)


#seas(eu_ts, arima.model = c(0, 1, 1, 0, 1, 1))

###### GRAFICO

dev.new()
par(mfrow = c(2, 2))
plot(EXUSEU,type="l")

plot(des_euro$trend,main = "TENDENCIA EURUSD" ,type="l",col="red")

plot(des_euro$seasonal,main = "ESTACIONALIDAD EURUSD" ,type="l",col="blue")

plot(des_euro$random,main = "MOVIMIENTO IRREGULAR" ,type="l")


#plot(decompose(eu_ts,type=c("additive")))


Deja un comentario

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

Scroll al inicio