Últimas entradas de Victor A.Rico (ver todo)
- Medidas de Forma : Asimetría - enero 3, 2025
- Medidas Estadísticas de Dispersión Relativa - junio 11, 2024
- Modelos SARIMA(Arima Estacionales).¿Qué son y cómo usarlos para Predecir? - enero 4, 2024
👉 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")))