Está en la página 1de 2

Universidad de Concepción

Facultad de Matemáticas
Departamento de Estadı́stica

Primer Semestre 2021

523425 Series de Tiempo I - Ayudantı́a No 3


Aplicación a datos reales: Algoritmos para remover Tendencia y Estacionalidad

En esta ayudantı́a se presentan algunos algoritmos para remover la tendencia y/o estacionalidad. Impleménte-
los en gas6677.dat que contiene datos mensuales del consumo de gas en España entre enero de 1966 y agosto
de 1977 y en el dataset AirP assenger que cuenta con el total mensual de pasajeros de una aérolinea de
EEUU, entre 1949 y 960. Finalmente compare los resultados.
1. Algoritmo de Brockwell y David Con base en la serie Y1 , ..., YT , primero se estima la tendencia
con una media móvil diseñada para eliminar la componente estacional y disminuir el ruido aleatorio.

Si el perı́odo es par, se define s = 2q y para q + 1 ≤ t ≤ T − q se define


 
−1 1 1
T̂t = s Yt−q + Yt−q+1 + ... + Yt + ... + Yt+q−1 + Yt+q ,
2 2

Si el perı́odo es impar, se define s = 2q + 1, y para q + 1 ≤ t ≤ T − q,


q
1 X
T̂t = Yt−j .
2q + 1 j=−q

Segundo, se estima Ŝk para cada k = 1, 2, ..., s. Es decir, se estima el patrón estacional promediando
los valores de Yt − T̂t para todos los t que corresponden a la estación de k (son los t = sbt/sc + k). Con
q = bs/2c se define
Xb
Yk+sj − T̂k+sj
(1) j=a
Ŝk = ,
b−a+2
T −q−k
donde a = b q−k
s c+1 y b=b s c.
Tercero se coloca
s
(1) 1 X (1)
Ŝk = Ŝk − Ŝk , k = 1, 2, ..., s,
q
k=1
Ps
para garantizar k=1 Ŝk = 0 que es una condición equivalente a eliminar la última estación. Final-
mente, se repite el patrón obtenido el número de veces necesario para formas Ŝt , t = 1, ..., T .

seascomp = function(x,p){
#----------algoritmo Brockwell-Davis
n <- length(x)
q <- floor(p/2)
a <- rep(1,2*q+1)
if(q==p/2){
a[2*q+1] <- 0.5
a[1] <- 0.5
a <- a/p
m <- stats::filter(x,a,"conv",2,F,NULL)
}

523425- Series de Tiempo I 1 Prof. Guillermo Ferreira


Primer Semestre 2021
else{
a <- a/p
m <- stats::filter(x,a,"conv",2,F,NULL)
}
w <- double(p)
for(k in 1:p){
j <- seq(floor(max(0,q-k)/p)+1, floor((n-q-k)/p), 1)
w[k] <- sum(x[k+j*p] - m[k+j*p])/(floor((n-q-k)/p) -
floor(max(0,q-k)/p) + 1)
}
s1 <- w - mean(w)
s <- c(rep(s1,floor(n/p)),s1[1:(n%%p)])
D <- list(T=m, S=s)
return(D)
}

2. Cálculo de EMWA (función de medias móviles ponderadas exponenciales) con la función f ilter. El
cual es de la siguiente forma:
Xt = αYt α(1 − α)Yt−1 + α(1 − α)2 Yt−2 + ... + α(1 − α)m Yt−m ,
Luego en R:
m=floor(1/a-1)
w=a*(1-a)^seq(0,m,1)
x=filter(y,w,"conv",1,T,NULL)

3. Método de suavizamiento de Holt consiste en un par de ecuaciones recursivas, con un par de


parámetros (α, β) ∈ (0, 1) × (0, 1).
at = αYt + (1 − α)(at−1 + bt−1
bt = β(at − at−1 ) + (1 − β)bt−1
Con Ŷt = at + bt , para t = 1, ..., T . Los valores a0 y b0 se tomar como el intercepto y la pendiente
estimada por regresión en el modelo Yt = a + bt + t . Para implementarlo en R se utiliza la función
Holt() del paquete aT SA.
4. Método de suavizamiento de Holt-Winters Suponga una serie de la forma
Yy = β0,t + β1,t t + St + t , t = 1, ..., T
donde β0,t , β1,t y St varÃan lentamente. Este método permite estimar recursivamente µt = β0,t ,
βt = β1,t y St , a partir de valores iniciales. El algoritmo es:
µt = α(Yt − St−s ) + (1 − α)(µt−1 + βt−1 ),
βt = β(µt − µt−1 ) + (1 − β)βt−1 ,
St = γ(Yt − µt ) + (1 − γ)St−s ,
donde t = 2, ..., T , y α, β, γ ∈ (0, 1) son las constantes de suavizamiento y µ0 , β0 yS1 , ..., Ss son valores
iniciales dados. El valor suavizado de la serie en t es Ŷt = µt + βt + St .
Los valores iniciales se tomar como los parámetros estimados de las regresiones
s
X
Yt = δj Ij (t) + t ,
j=1

ˆt = β0 + β1 t + τt
Las constantes α, β y γ se escogen de tal manera que se minimice el MSE (error cuadrático medio).

523425- Series de Tiempo I 2 Prof. Guillermo Ferreira


Primer Semestre 2021

También podría gustarte