Está en la página 1de 57

T6- Series Temporales

MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES


20582 - Análisis de Datos 📊

7/12/2021

Introducción
Procesos autorregresivos (AR)
ACF y PACF del proceso AR(1)
Ejemplos AR(1)
Operador de retardo
Características AR(1)
AR(p)
Ejemplo AR(p) en R
Ejemplo práctico
Ajustamos un AR(2)
Modelos de Media Móvil (MA)
MA(1)
Ejemplo MA(1)
Proceso MA(q)
Ejemplo MA(q) en R
Ajuste de un MA a la serie AirPassengers
¿Qué es mejor para modelizar la serie de AirPassengers un AR o un MA?
ARMA(p,q)
Ejemplo ARMA(p,q) en R
Procesos Integrados
Ejemplo demostrativo con R
Ejemplo con datos reales
Ljung Box test
Procesos estacionales: SARIMAs
Ejemplo ajuste de un SARIMA
Introducción
T6- Series Temporales
Ya hemos discutido cómoUNIVARIANTE
MODELIZACIÓN hacer el análisis descriptivo
DE SERIESdeTEMPORALES
una serie temporal
para establecer si tiene tendencia, si es homocedástica o detectar con los
20582 - Análisis de Datos 📊
gráficos de las funciones de autocorrelación (simple y parcial) si presenta
7/12/2021
estructura que depende del rezago de la serie.

Ahora, la idea es proponer modelos que introduzcan las correlaciones que


se generan entre relaciones lineales rezagadas y que funcionan bien para
series estacionarias.

La representación formal de los procesos aleatorios que generan series


reales se puede realizar mediante modelos lineales de series temporales.
Considerando que una determinada serie temporal ha sido generada por un
proceso estocástico, en este parte vamos a describir los posibles modelos
teóricos que permiten explicar el comportamiento de la misma y, por tanto,
el de su proceso generador.

Las estructuras estocásticas estacionarias lineales que se tratarán de asociar


a una serie de datos se clasifican en tres tipos:
Para series estacionarias
Modelos autoregresivos (AR) ,

Modelos de medias móviles (MA),

Modelos mixtos (ARMA)

Luego, los modelos mixtos se pueden extender a modelos para series no


estacionarias, popularizados por Box y Jenkins (1970), que conducen a los:

Modelos autorregresivos de media móvil integrados (ARIMA),


nuestra serie seguro sera un SARIMA

Procesos autorregresivos (AR)


Los procesos autorregresivos forman una familia de procesos tales que una
observación depende de las observaciones anteriores. Se denominan
procesos AR y se caracterizan por su orden.

Los modelos autorregresivos se basan en la idea de que el valor actual de la


serie, yt T6- Series Temporales
, puede explicarse como una función de
valores anteriores, p

y t−1 , y t−2 , … , y t−p , donde p determina el número de pasos hacia el


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
pasado necesarios para pronosticar el valor actual.
20582 - Análisis de Datos 📊
Por ejemplo, diremos que una serie yt sigue un proceso autoregresivo de
7/12/2021
primer orden, o un AR(1) si ha sido generado por:

y t = c + ϕy t−1 + a t ,

a_t son los errores, tienen valor esperado 0


donde c y −1 < ϕ < 1 son constantes a determinar y at es un proceso de
ruido blanco con varianza σ
2
.

La condición −1 < ϕ < 1 es necesaria para que el proceso sea


estacionario. Veamos por qué…

Supongamos que la serie comienza con y0 = h , siendo h un valor


cualquiera fijo. El siguiente valor será: y 1 = c + ϕh + a 1 . Luego:

y 2 = c + ϕy 1 + a 2

2
= c(1 + ϕ) + ϕ h + ϕa 1 + a 2

y 3 = c + ϕy 2 + a 3
2
= c + ϕ[c(1 + ϕ) + ϕ h + ϕa 1 + a 2 ] + a 3

2 3 2
= c(1 + ϕ + ϕ ) + ϕ h + ϕ a 1 + ϕa 2 + a 2

t−1 t−1

i t i
yt = c ∑ ϕ + ϕ h + ∑ ϕ a t−i

i=0 i=0

Luego, como , nos queda: . Entonces,


t−1 i t
E[a t ] = 0 E[y t ] = c ∑ ϕ + ϕ h
i=0

si , la serie geométrica converge a y converge a


t−1 i 1 t
|ϕ| < 1 ∑ ϕ ϕ
i=0 1−ϕ

cero.
Con esta condición, depués de un periodo transcurrido inicial, cuando
t → ∞ , todas las variables yt tendrán la misma esperanza,
independientemente de las condiciones iniciales.

c
E[y t ] =

T6- Series Temporales 1 − ϕ

Observemos también que


MODELIZACIÓN en este proceso DE
UNIVARIANTE la innovación a t está incorrelada
SERIES TEMPORALES
con los valores previos del proceso, y t−k para k positivo. En efecto:
20582 - Análisis de Datos 📊
El valor y t−k depende de los valores de las innovaciones hasta ese instante,
7/12/2021
a 1 , … , a t−k pero no de sus valores futuros.

Como la innovación es un proceso de ruido blanco, sus valores futuros


están incorrelados con los pasados y, por tanto, con los valores previos de
proceso, y t−k

tenemos que saber escribir la equacion del modelo

ACF y PACF del proceso AR(1)

La función de autocorrelación simple y la parcial del proceso AR(1) tienen un


aspecto muy característico.

Se puede demostrar que la ACF del proceso AR(1) tiene la expresión:

k
ρk = ϕ ,

es decir que la barra k , de la ACF es igual al coeficiente ϕ elevado a la


potencia k . Esto implica que la ACF de un proceso AR(1) pueda tener el
siguiente aspecto:

ϕ positivo: La ACF será una función positiva y decreciente.

ϕ negativo: La ACf será una función alternada, y tendrá barras pares


positivas, y barras impares negativas.

En cuanto a la PACF, como indica la expresión AR(1), sólo existe influencia de


primer orden, ya que si yt depende de y t−2 , es a través de z_{t-1}. Las PACF
será por tanto:
ϕ positivo: La PACF tendrá una única barra, la primera. Esta barra será
positiva.

ϕ negativo: La PACF tendrá una única barra y será negativa.

T6- Series Temporales


Ejemplos AR(1)
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
Vamos a simular dos AR(1),
20582 uno con ϕ =de
- Análisis Datos 📊
0.8

arima.sim para simular proceso7/12/2021


arima
AR<-arima.sim(list(order=c(1,0,0),ar=+.8),n=100)

plot(AR,main=(expression(AR(1)~~~~phi==0.8)))

AR(1)=la observacion de hoy solo depende del tiempo de ayer

es estable en media, y la estructura de varianza es mas o menos similar

acf(AR,main="autocorrelacion simple de orden 1")


la correlación simple va a tener un decrecimiento hacia zero
porque el coeficiente es positivo

T6- Series Temporales


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

pacf(AR,main="autocorrelacion parcial")

la parcial quita la incluencia


entonces debe tener una sola barra postivia en el caso de coeficiente postivio
Simulamos un Ar(1) con ϕ = −0.8

AR<-arima.sim(list(order=c(1,0,0),ar=-.8),n=100)

plot(AR,main=(expression(AR(1)~~~~phi==-0.8)))

T6- Series Temporales


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

acf(AR,main="autocorrelacion simple de orden 1")


al ser negativo va alternando las barras de correlación

T6- Series Temporales


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

pacf(AR,main="autocorrelacion parcial")
Operador de retardo

El proceso AR(1) puede escribirse utilizando la notación de operador de


retardo, B , definido por:
T6- Series Temporales
By t = y t−1 ,
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
El operador de retardo es:
20582 - Análisis de Datos 📊
Lineal: Bay t = aBy t = ay t−1 7/12/2021

Puede aplicarse sucesivamente: k


B y t = B ⋯ B y t = y t−k

k−veces

Definiendo ~
y t = yt − μ , como ~ ~
By t = y t−1 , tenemos que:

~
(1 − ϕB)y t = a t

Es decir, una serie centrada sigue un proceso AR(1) si al aplicarle el


operador (1 − ϕB) se obtiene un proceso de ruido blanco.
Alternativamente, 1 − ϕB = 0 ⟹ B = 1/ϕ . La condición de
estacionaridad es entonces que la raíz del operador sea, en valor absoluto,
mayor que uno.

Características AR(1)

En resumen, las características de un AR(1)

Esperanza: Si |ϕ| , entonces E(yt ) . Usando que


c
< 1 = μ =
1−ϕ

c = μ(1 − ϕ) , el proceso puede escribirse en desviaciones a su media


y t − μ = ϕ(y t−1 − μ) + a t , y llamando y~t = yt − μ , podemos
escribir:

~ ~
y t = ϕy t−1 + a t

Varianza se obtiene calculando ~2


, de donde 2 σ
E(y t ) σy = 2
1−ϕ

Autocovarianzas y autocorrelación se puede demostrar que:


γk = ϕγk−1 , para k = 1, 2, … , donde γ0 = σy
2

k
ρk = ϕ

AR(p) T6- Series Temporales


la serie centrada depende de p retardos anteriores
el nuestro caso podria ser un autoregresivo de orden 6 o de orden 12
MODELIZACIÓN UNIVARIANTE
Diremos que una serie temporal
DE SERIES TEMPORALES
y estacionaria sigue un proceso
t

autoregresivo de orden20582
p si: - Análisis de Datos 📊
~ ~ 7/12/2021
~
y t = ϕ1 y t−1 + ⋯ + ϕp y t−p + a t ,

donde ~
y t = yt − μ , siendo μ la media del proceso yt y at un proceso de
ruido blanco.

Los parámetros se determinan a partir de las ecuaciones de Yule-Walker

ρ1 = ϕ1 + ϕ2 ρ1 + ⋯ + ϕp ρp−1

ρ2 = ϕ1 ρ1 + ϕ2 + ⋯ + ϕp ρp−2

ρp = ϕ1 ρp−1 + ϕ2 ρp−2 + ⋯ + ϕp

Definiendo:


ϕ = [ϕ1 , … , ϕp ],


ϱ = [ρ1 , … , ρp ],

1 ρ1 ⋯ ρp−1
⎡ ⎤

R = ⎢ ⎥
⎢ ⋮ ⋮ ⋮ ⎥

⎣ ⎦
ρp−1 ρp−2 ⋯ 1

El sistema se escribe de manera matricialmente:

ϱ = Rϕ

y los parámetros se determinan a partir de las autocorrelaciones mediante:

−1
ϕ = R ϱ
Ejemplo AR(p) en R

set.seed(7122021)

x<-rnorm(500) simulacion

con ruido = 500 x=a_t

T6- Series Temporales


sim1<-arima.sim(list(ar=c(-0.5)),n=500,innov=x)

autoregresivo de orden 1, con coef negativo


sim2<-arima.sim(list(ar=c(.5,-0.5)),n=500,innov=x)

autoregresivo de orden2
MODELIZACIÓN UNIVARIANTE DE SERIES
sim3<-arima.sim(list(ar=c(.2,-.4,.6)),n=500,innov=x) TEMPORALES
autoregresivo
de orden 3
sim4<-arima.sim(list(ar=c(.5,.4,-.6,.4)),n=500,innov=x)
autoregresivo de orden 4
20582 - Análisis de Datos 📊

7/12/2021

pintamos las funciones de autocorrelacion simple para cada proceso


par(mfrow=c(2,2));acf(sim1); acf(sim2); acf(sim3); acf(sim4)
sim 1=cuando oscila es porque podria ser autoregresivo de orden 1 con coef negatico

T6- Series Temporales


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

sim4=la funcion de autocorrelacion simple no nos dice si son autoregresivos

par(mfrow=c(2,2));pacf(sim1); pacf(sim2); pacf(sim3); pacf(sim4)

sim 1= es AR(1) sim2= es AR(2)

sim 3= AR(2) sim 4= AR(4 o 5)

¿De qué orden será este AR?


T6- Series Temporales
MODELIZACIÓN
AR(2) UNIVARIANTE DE SERIES TEMPORALES

20582 - Análisis de Datos 📊

7/12/2021

coeficientes una negativo i otro positivo

Ejemplo práctico

Usaremos un conjunto de datos incorporado de R llamado AirPassengers.


El conjunto de datos consta de el número total de pasajeros de aerolíneas
internacionales, de 1949 a 1960 por meses.

data("AirPassengers")

is.ts(AirPassengers)

## [1] TRUE

print(AirPassengers)

## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

## 1949 112 118 132 129 121 135 148 148 136 119 104 118

## 1950 115 126 141 135 125 149 170 170 158 133 114 140

## 1951 145 150 178 163 172 178 199 199 184 162 146 166

## 1952 171 180 193 181 183 218 230 242 209 191 172 194

## 1953 196 196 236 235 229 243 264 272 237 211 180 201

## 1954 204 188 235 227 234 264 302 293 259 229 203 229

## 1955 242 233 267 269 270 315 364 347 312 274 237 278

## 1956 284 277 317 313 318 374 413 405 355 306 271 306

## 1957 315 301 356 348 355 422 465 467 404 347 305 336

## 1958 340 318 362 348 363 435 491 505 404 359 310 337

## 1959 360 342 406 396 420 472 548 559 463 407 362 405

## 1960 417 391 419 461 472 535 622 606 508 461 390 432
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE
summary(AirPassengers) DE SERIES TEMPORALES
20582 - Análisis de Datos 📊
## Min. 1st Qu. Median Mean 3rd Qu.
7/12/2021 Max.

## 104.0 180.0 265.5 280.3 360.5 622.0

start(AirPassengers)

## [1] 1949 1

end(AirPassengers)

## [1] 1960 12

time(AirPassengers)

## Jan Feb Mar Apr May Jun Jul


## 1949 1949.000 1949.083 1949.167 1949.250 1949.333 1949.417 1949.500 1
## 1950 1950.000 1950.083 1950.167 1950.250 1950.333 1950.417 1950.500 1
## 1951 1951.000 1951.083 1951.167 1951.250 1951.333 1951.417 1951.500 1

## 1952 1952.000 1952.083 1952.167 1952.250 1952.333 1952.417 1952.500 1


## 1953 1953.000 1953.083 1953.167 1953.250 1953.333 1953.417 1953.500 1
## 1954 1954.000 1954.083 1954.167 1954.250 1954.333 1954.417 1954.500 1
## 1955 1955.000 1955.083 1955.167 1955.250 1955.333 1955.417 1955.500 1
## 1956 1956.000 1956.083 1956.167 1956.250 1956.333 1956.417 1956.500 1
## 1957 1957.000 1957.083 1957.167 1957.250 1957.333 1957.417 1957.500 1
## 1958 1958.000 1958.083 1958.167 1958.250 1958.333 1958.417 1958.500 1
## 1959 1959.000 1959.083 1959.167 1959.250 1959.333 1959.417 1959.500 1
## 1960 1960.000 1960.083 1960.167 1960.250 1960.333 1960.417 1960.500 1
## Sep Oct Nov Dec

## 1949 1949.667 1949.750 1949.833 1949.917

## 1950 1950.667 1950.750 1950.833 1950.917

## 1951 1951.667 1951.750 1951.833 1951.917

## 1952 1952.667 1952.750 1952.833 1952.917

## 1953 1953.667 1953.750 1953.833 1953.917

## 1954 1954.667 1954.750 1954.833 1954.917

## 1955 1955.667 1955.750 1955.833 1955.917

T6- Series Temporales


## 1956 1956.667 1956.750 1956.833 1956.917

## 1957 1957.667 1957.750 1957.833 1957.917

##MODELIZACIÓN UNIVARIANTE
1958 1958.667 1958.750 DE SERIES
1958.833 1958.917
TEMPORALES
## 1959 1959.667 1959.750 1959.833 1959.917

205821960.833
## 1960 1960.667 1960.750 - Análisis de Datos 📊
1960.917

7/12/2021

frequency(AirPassengers)

## [1] 12

ts.plot(AirPassengers, xlab="Año", ylab="Número de pasajeros", main=


"Totales mensuales de pasajeros \n de aerolíneas internacion
ales, 1949-1960")

# Ajustamos una recta de regresión para la tendencia

abline(reg=lm(AirPassengers~time(AirPassengers)),col="red")
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

acf(AirPassengers)
pacf(AirPassengers)

T6- Series Temporales


AR(2)
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

Vamos a ajustar un modelo AR

primero hace el de orden 1


AR <- arima(AirPassengers, order = c(1,0,0))

print(AR)

##

## Call:

## arima(x = AirPassengers, order = c(1, 0, 0))

##

## Coefficients:

ar(1) = fi del modelo


## ar1 intercept
=pendiente (la C del modelo)
errores
## 0.9646 278.4649

## s.e. 0.0214 67.1141

##

estimacion de la varianza ruido


## sigma^2 estimated as 1119: log likelihood = -711.09, aic = 1428.18
bondad de ajuste del modelo
#Dibujamos la serie y los valores ajustados

ts.plot(AirPassengers)

AR_fit <- AirPassengers - residuals(AR) queremos



ver el ajuste del modelo. restano los residuos a la serie original

points(AR_fit, type = "l", col = 2, lty = 2)

T6- Series Temporales


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

library(tidyverse)

library(forecast)

AR %>% checkresiduals(test = F)
los errores no son homosedasticos
van aumentado a medida que va aumentado el tiempo
para que un modelo este bien ajustado, los resiudos tienen que oscilar de manera constante, no aumentar

T6- Series Temporales


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊
y la correlacion tienen que estar dentro de las bandas curva es el error

7/12/2021

Los residuos muestran que aún hay estructura por capturar, por tanto, si
hacemos predicciones con este modelo:

#Usamos predict() para hacer una predicción de un paso adelante

predict_AR <- predict(AR)


sobre el arima ajustado

#Obtenemos el valor de la predicción

predict_AR$pred[1] prediccion 1 paso adelante

## [1] 426.5698 prediccion de enero de 1961

#Si queremos más predicciones

predict(AR, n.ahead = 10) 10 pasos adelante

la idea es calibrar el modelo para saber cuantos pasos adelante podemos predecir mirando que el error cuadratico sea pequeño

## $pred

## Jan Feb Mar Apr May Jun Jul


## 1961 426.5698 421.3316 416.2787 411.4045 406.7027 402.1672 397.7921 3
## Sep Oct

## 1961 389.5006 385.5735

385 pasajeros +-90 porque el error (abajo) es de 90


##

## $se
## errores
$se

## Jan Feb Mar Apr May Jun Jul


## 1961 33.44577 46.47055 55.92922 63.47710 69.77093 75.15550 79.84042 8
## Sep Oct

## 1961 87.62943 90.90636

T6- Series Temporales


#Dibujamos la serie y agregamos los pronósticos más los intervalos de
MODELIZACIÓN
predicción alUNIVARIANTE
95% DE SERIES TEMPORALES

ts.plot(AirPassengers, xlim = c(1949, 1961))

20582 n.ahead
AR_forecast <- predict(AR, - Análisis
= de Datos 📊
10)$pred

AR_forecast_se <- predict(AR, n.ahead = 10)$se

7/12/2021
points(AR_forecast, type = "l", col = "red")

points(AR_forecast - 2*AR_forecast_se, type = "l", col = "green", lty


= 2, pch=3)

points(AR_forecast + 2*AR_forecast_se, type = "l", col = "green", lty


= 2, pch=3)

la linea roja es el valor ajustado, y lo verde el +- error


lo que podria ser, entonces solo tener el AR(1) no captura bien, para predecir muchos pasos adelante

Ajustamos un AR(2)
AR2<-arima(x=AirPassengers,order=c(2,0,0))

print(AR2)

##

## Call:

T6- Series Temporales


## arima(x = AirPassengers, order = c(2, 0, 0))

##MODELIZACIÓN

UNIVARIANTE DE SERIES TEMPORALES
## Coefficients:

## ar1 20582 - Análisis de Datos 📊


ar2 intercept

## 1.2831 -0.3322 280.4696

los errores estandar han bajado


## s.e. 0.0786 0.0792 7/12/2021
49.4423

##

## sigma^2 estimated as 995.9: log likelihood = -702.82, aic = 1413.64

AR2 %>% checkresiduals(test = F)

los residuos siguen sin ser homosedasticos, ya que la variabilidad aumenta, pero es mejor que el AR(1)

ts.plot(AirPassengers, xlim = c(1949, 1961))

AR_forecast <- predict(AR2, n.ahead = 10)$pred

AR_forecast_se <- predict(AR2, n.ahead = 10)$se

points(AR_forecast, type = "l", col = "red")

points(AR_forecast - 2*AR_forecast_se, type = "l", col = "green", lty


= 2, pch=3)

points(AR_forecast + 2*AR_forecast_se, type = "l", col = "green", lty


= 2, pch=3)

T6- Series Temporales


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
la prediccion sigue siendo mala

20582 - Análisis de Datos 📊

7/12/2021

los autoregresivos dependen de un tiempo atras


los MA dependen de los errores (este ruido se puede modelizar con una MA)

Modelos de Media Móvil (MA)

Los procesos de media móvil, MA, sirven para representan procesos de


memoria muy corta. Son función de un número finito, y generalmente
pequeño, de las innovaciones pasadas.

Por ejemplo, diremos que una serie yt sigue un proceso de media móvil de
primer orden, o un MA(1) si ha sido generado por:
no se neceista el valor anterior sino el cambio del valor
~
y t = a t − θa t−1 ,

donde ~
y t = yt − μ , siendo μ la media del proceso y at es un proceso de
ruido blanco con varianza σ
2
.
Observa que: MA como parte de los modelos que estamos estudiando se
refiere a retardos de errores, mientras que en el análisis descriptivo, se
refiere a una técnica de suavizado de datos.

MA(1) T6- Series Temporales


MODELIZACIÓN
El proceso UNIVARIANTE
MA(1) puede escribirse DE SERIES
con la notación TEMPORALES
de operadores:
20582~- Análisis de Datos 📊
z t = (1 − θB)a t

7/12/2021
Este proceso es la suma de dos procesos estacionarios, y por tanto, siempre
será estacionario. A pesar de lo anterior, en las aplicaciones de MA,
supondremos que |θ| < 1 , de manera que la innovación pasada tenga
menos peso que la presente.

Propiedades teóricas del MA(1) Se puede demostrar que:


habra correlación hasta el orden x que indique el MA(X)

E(y t ) = μ .
V ar(y t ) = σy (1 + θ )
2 2
.
θ
ρ1 = ,
2
1+θ

ρk = 0 para k > 1 , por tanto, el ACF tendrá únicamente un valor


distinto de cero en el primer retardo.

Ejemplo MA(1)

Considera el siguiente proceso: y t = 10 + 0.7a t−1 + a t , donde


iid
a t ∼ N (0, 1) . a_t son independientes, identicamente disctribuidos con media 0

Tambien se puede poner: (0,0,0.7)=(AR,I,MA)


y_c=arima.sim(n=150,list(ma=0.7))

y=y_c+10

plot(y,type="l",main="")
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

De acuerdo a los resultados teóricos, y


0.7
ρ1 = 2
= 0.4698 ρk = 0
1+(0.7)

para todo retardo mayor a 1.

par(mfrow=c(1,2))

acf(y,lag.max = 10) # 10 retardos.


especificas los retadors son 20 por defecto
si no
pacf(y,lag.max=10)

Pero este nos dice un AR(3)


MA(1)

entonces podemos ver cual se ajusta mejor, si un MA(1) o un AR(3)

p orden de AR
Proceso MA(q) q orden de MA

Podemos escribir procesos cuyo valor actual depende no sólo de la última


innovación, sino de las q últimas innovaciones:

~
y t = a t − θ1 a t−1 − θ2 a t−2 − … − θq a t−q
En notación de retardos:

~ 2 q
y t = (1 − θ1 B − θ2 B − … θq B )a t

Propiedades del MA(q)

T6- Series Temporales


En general, tiene autocorrelaciones diferentes de cero para los
MODELIZACIÓN
primeros q retardos,UNIVARIANTE
es decir, lags > q DE SERIES
tienen ρ = 0TEMPORALES
.


q
θi θk+i 20582 - Análisis de Datos 📊
, para . Además, .
i=0
ρk = q
k = 1, … , q θ0 = −1
∑ θi
7/12/2021
i=0

Ejemplo MA(q) en R

x<-rnorm(500)

sim1<-arima.sim(list(ma=c(1)),n=500,innov=x)

sim2<-arima.sim(list(ma=c(1,-1)),n=500,innov=x)

sim3<-arima.sim(list(ma=c(1,1,1)),n=500,innov=x)

sim4<-arima.sim(list(ma=c(1/4,1/4,1/4,1/4)),n=500,innov=x)

MA(1) MA(2)

par(mfrow=c(2,2));acf(sim1); acf(sim2); acf(sim3); acf(sim4)


MA(1)

T6- Series Temporales


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
MA(4)📊
20582 - Análisis de Datos
MA(3), porque la 0 no cuenta

7/12/2021

par(mfrow=c(2,2));pacf(sim1); pacf(sim2); pacf(sim3); pacf(sim4)

Para identificar si una serie se puede representar a través de un proceso


M A(q) podemos observar los gráficos de la función de autocorrelación
simple (ACF) y la función de autocorrelación parcial (PACF).

La ACF presentará los primero q coeficientes no nulos .


En la PACF, muchos coeficientes serán no nulos. Presenta una mezcla
de decrecimientos geométricos y sinusoidales hacia 0.

Ajuste de un MA a la serie AirPassengers


T6- Series Temporales
MAMODELIZACIÓN UNIVARIANTE
<- arima(AirPassengers, DE SERIES
TEMPORALES
order = c(0,0,1))
print(MA)
20582 - Análisis de Datos 📊

7/12/2021
##

## Call:

## arima(x = AirPassengers, order = c(0, 0, 1))

##

## Coefficients:

## ma1 intercept

## 0.9642 280.6464

## s.e. 0.0214 10.5788

##

## sigma^2 estimated as 4205: log likelihood = -806.43, aic = 1618.86

#Diujamos la serie y los valores ajustados del MA

ts.plot(AirPassengers)

MA_fit <- AirPassengers - resid(MA)

points(MA_fit, type = "l", col = 2, lty = 2)


T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

Veamos qué tal sería la predicción

#Predicción un paso adelante

predict_MA <- predict(MA)

predict_MA$pred[1]

## [1] 425.1049

#Predicción 10 pasos adelante

predict(MA,n.ahead=10)

## $pred

## Jan Feb Mar Apr May Jun Jul


## 1961 425.1049 280.6464 280.6464 280.6464 280.6464 280.6464 280.6464 2
## Sep Oct

## 1961 280.6464 280.6464

##

## $se

## Jan Feb Mar Apr May Jun Jul


## 1961 64.84895 90.08403 90.08403 90.08403 90.08403 90.08403 90.08403 9
## Sep Oct

## 1961 90.08403 90.08403

##Dibujamos la serie y agregamos los pronósticos más los intervalos d


e predicción al 95%

T6- Series Temporales


ts.plot(AirPassengers, xlim = c(1949, 1961))

MA_forecasts <- predict(MA, n.ahead = 10)$pred

MODELIZACIÓN
MA_forecast_se UNIVARIANTE
<- predict(MA, n.ahead = DE SERIES TEMPORALES
10)$se

points(MA_forecasts, type = "l", col = "red")

points(MA_forecasts -20582 - Análisis de Datos 📊 col = "green", lt


2*MA_forecast_se, type = "l",
y = 2)

7/12/2021type = "l", col = "green", lt


points(MA_forecasts + 2*MA_forecast_se,
y = 2)

la prediccion es bastante mala

¿Qué es mejor para modelizar la serie de


AirPassengers un AR o un MA?

Para responder esta pregunta podemos utilizar o bien el criterio de


información de Akaike (AIC ) o el criterio de información bayesiano (BIC ).
2
AIC = −2 log(σ
^e ) + 2 k

2
BIC = −2 log(σ
^e ) + k log(n),

donde es el número de observaciones, es el número de parámetros,


2
n k σ
^e

T6- Series Temporales


es el estimador de la varianza del error.

MODELIZACIÓN
La fórmula UNIVARIANTE
del primer término de BIC es DE SERIES
la misma queTEMPORALES
la de AIC , solo
difiere en el segundo término. En el segundo término, se puede ver que el
20582 - Análisis de Datos 📊
valor BIC está influenciado por el tamaño de muestra y parámetros en el
modelo. 7/12/2021

La idea principal es que estos indicadores penalizan los modelos con el


número de parámetros estimados, para evitar el sobreajuste, y se prefieren
valores más pequeños. Si todos los factores son iguales, un modelo que
produce un AIC o BIC más bajo que otro modelo se considera un mejor
ajuste.

AIC(AR)

## [1] 1428.179

AIC(MA)

## [1] 1618.863

BIC(AR)

## [1] 1437.089

BIC(MA)

## [1] 1627.772
Dado el valor más bajo de AIC y BIC en el modelo AR, deberíamos
preferir a este que al MA para el análisis de series de tiempo de los datos de
AirPassenger.

T6- Series Temporales


ARMA(p,q)
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 -ARMA(p,q)
La ecuación para los procesos es:Datos 📊
Análisis de

p ~
7/12/2021 q
(1 − ϕ1 B − … − ϕp B )y t = (1 − θ1 B − … θq B )a t ,

o en notación compacta:

~
Φp (B)y t = Θq (B)a t

La ACF y la PACF de los procesos ARMA es el resultado de la superposición


de sus propiedades AR y MA. Por tanto, no es fácil identicar la estructura.
Tanto la ACF como la PACF presentan muchos coeficientes no nulos. Sin
embargo:

En la ACF los coeficientes presentan decrecimiento hacia 0 desde q .

En la PACF los coeficientes presentan decrecimiento hacia 0 desde p.

Ejemplo ARMA(p,q) en R

x<-rnorm(200)

sim1<-arima.sim(list(ar=c(.1,.5,.2),ma=c(0.6,.4)),n=200,innov=x)

sim2<-arima.sim(list(ar=c(-0.4),ma=c(0.6,.1)),n=200,innov=x)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

par(mfrow=c(2,2));acf(sim1); pacf(sim1); acf(sim2); pacf(sim2)

No resulta nada sencillo en la práctica identificar un proceso ARMA a través


de sus acf y pacf, ya que es fácil confundir dichas funciones con las de otros
procesos.

Se aconseja especificar y estimar inicialmente un modelo más sencillo, como


por ejemplo un AR; posteriormente el análisis de los residuos obtenidos en
dicha estimación pondrá de manifiesto la presencia de otras estructuras.

Si, por ejemplo, detectas en las funciones de autocorrelación simple y


parcial de los residuos obtenidos una estructura de MA será necesario
incorporar dicha estructura especificando un modelo ARMA, el cual sin duda
T6- Series Temporales
tendrá una mayor capacidad explicativa.

MODELIZACIÓN
¿Cómo harías esto en el UNIVARIANTE
ejemplo anterior? DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021
Procesos Integrados

Los procesos no estacionarios más frecuentes son los Procesos Integrados,


que tienen la propiedad de que al diferenciarlos se obtienen procesos
estacionarios.

Considera el proceso

w t = ∇y t = y t − y t−1

Los valores de esta nueva serie oscilan alrededor de una media constante y
parecen corresponder a una serie estacionaria. En este caso, diremos que la
serie es integrada de orden 1.

Ahora, ajustamos un ARMA a wt y luego integramos:

y t = w t + y t−1

A veces es necesario diferenciar más de 1 vez para obtener estacionaridad.

Por ejemplo:

w t = ∇y t , no es estacionario. Entonces,

2
zt = ∇w t = w t − w t−1 = y t − ∇y t−1 + y t−2 = ∇ y t

Si zt es estacionario integramos dos veces para modelar a yt .

Proceso integrado de orden h:


En general, diremos que un procesos es integrado de orden h ≥ 0 y lo
representamos por I(h) cuando, al diferenciarlo h veces se obtiene un
proceso estacionario.

El modelo ARIMA(p,d ,q ) puede ser considerado como el modelo estocástico


T6- Series Temporales
lineal general, del cual derivan el resto de procesos que hemos visto.

Así, MODELIZACIÓN UNIVARIANTE


si p = d = 0 , estaremos DEARIMA(0,
ante un modelo SERIES 0,
TEMPORALES
q ) equivalente a

un modelo MA(q ). Si tendríamos


20582
q = 0 - Análisisun
demodelo ARIMA(p, d , 0) ó ARI(p,d )
Datos 📊
(es decir, un modelo autorregresivo en el que se han tomado d diferencias
7/12/2021
para hacer estacionaria a la serie analizada).

Ejemplo demostrativo con R

Vamos a trabajar de nuevo con datos simulados.

set.seed(250)

ts=arima.sim(list(order = c(1,1,2),

ma=c(0.32,0.47),

ar=0.8), n = 50)+20

A continuación, dibujamos la serie temporal original y sus acf y pacf.

m <- matrix(c(1, 3, 2, 3), ncol = 2)

nf <- layout(m)

plot.ts(ts)

acf(ts)

pacf(ts)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

La serie original muestra una clara no estacionariedad; el acf muestra una


disminución lenta y el pacf indica un AR de orden uno.

Vamos a diferenciar la serie para ver si logramos eliminar la tencia.

par(mfrow=c(1,2))

y=diff(ts)

plot(y)

acf(y)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

Los datos de la primera diferencia parecen estacionarios. El ACF se corta


después de algunos rezagos.

Dado que se necesitó una diferenciación para obtener la estacionariedad,


aquí d =1

El siguiente paso es proponer los valores de p, el orden de la parte AR.


Vemos que el PACF de la serie original se corta en uno y el ACF de la serie
diferenciada se corta después del rezago 2. Así que proponemos tres
modelos para los datos diferenciados:

ARIMA(1,1,0)

ARIMA(0,1,2)

ARIMA(1,1,2)

Ajustamos los tres modelos ARIMA con las primeras 40 observaciones y


dejamos las últimas 10 para pronosticar
## Partición en training y test

train=ts[1:40]

test=ts[41:50]

## ajustamos los modelos

T6- Series Temporales


arimaModel_1=arima(train, order=c(1,1,0))
arimaModel_2=arima(train, order=c(0,1,2))
arimaModel_3=arima(train, order=c(1,1,2))
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES

## revisamos los parámetros Análisis de Datos 📊


20582 - ajustados

print(arimaModel_1);print(arimaModel_2);print(arimaModel_3)
7/12/2021

##

## Call:

## arima(x = train, order = c(1, 1, 0))

##

## Coefficients:

## ar1

## 0.8012

## s.e. 0.0892

##

## sigma^2 estimated as 1.311: log likelihood = -61.13, aic = 126.26

##

## Call:

## arima(x = train, order = c(0, 1, 2))

##

## Coefficients:

## ma1 ma2

## 0.7408 1.000

## s.e. 0.2135 0.537

##

## sigma^2 estimated as 0.9673: log likelihood = -57.78, aic = 121.57

##

## Call:

## arima(x = train, order = c(1, 1, 2))

##

## Coefficients:

## ar1 ma1 ma2

## 0 5585 0 4438 0 7238


## 0.5585 0.4438 0.7238

## s.e. 0.1581 0.1584 0.1305

##

## sigma^2 estimated as 0.8554: log likelihood = -53.64, aic = 115.29

T6- Series Temporales


Observa que el signo de los coeficientes estimados por R es consistente con
la fórmula de la simulación del ARIMA. Observa las varianzas de los
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
términos de error de cada modelo y el AIC, de acuerdo a estos, el mejor
modelo es el 3. 20582 - Análisis de Datos 📊

7/12/2021
Veamos las predicciones sobre las observaciones que no hemos utilizado
para ajustar los parámetros

#Modelo 1

ts.plot(ts)

forecast1=predict(arimaModel_1, 10)$pred

forecast1_se=predict(arimaModel_1, 10)$se

points(forecast1, type = "l", col = "red")

points(forecast1 - 2*forecast1_se, type = "l", col = "green", lty = 2


)

points(forecast1 + 2*forecast1_se, type = "l", col = "green", lty = 2


)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

#Modelo 2

ts.plot(ts)

forecast2=predict(arimaModel_2, 10)$pred

forecast2_se=predict(arimaModel_2, 10)$se

points(forecast2, type = "l", col = "red")

points(forecast2 - 2*forecast2_se, type = "l", col = "green", lty = 2


)

points(forecast2 + 2*forecast2_se, type = "l", col = "green", lty = 2


)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

#Modelo 3

ts.plot(ts)

forecast3=predict(arimaModel_3, 10)$pred

forecast3_se=predict(arimaModel_3, 10)$se

points(forecast3, type = "l", col = "red")

points(forecast3 - 2*forecast3_se, type = "l", col = "green", lty = 2


)

points(forecast3 + 2*forecast3_se, type = "l", col = "green", lty = 2


)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

Vemos que el segundo modelo tiene una ejecución similar al tres, a pesar
de no tener el mejor valor de probabilidad de AIC. Por tanto, necesitamos
medidas de la precisión de las estimaciones:

accuracy(forecast2, test)

## ME RMSE MAE MPE MAPE

## Test set 4.97575 7.150113 4.97575 14.39955 14.39955

accuracy(forecast3, test)

## ME RMSE MAE MPE MAPE

## Test set 5.38043 7.474219 5.38043 15.73739 15.73739

Donde cada medida es:

ME error medio
RMSE error cuadrático medio

MAE error absoluto medio

MPE error porcentual medio


T6- Series Temporales
MAPE error porcentual absoluto medio
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
Depende de cada caso decidir, basándose en las medidas de precisión, si
20582 - Análisis de Datos 📊
considera que el modelo es adecuado o no. Por ejemplo, el error porcentual
7/12/2021
medio de 14,4% no me parece grande, pero eso puede depender de cuáles
son las series y cuánta previsibilidad podemos esperar de manera realista.

Pero cuidado! nos falta revisar los residuos !!!

arimaModel_2 %>% checkresiduals(test = F)

arimaModel_3 %>% checkresiduals(test = F)


T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

Conclusión: Mejor es el modelo 3, tal como lo habíamos simulado ;-)

Ejemplo con datos reales

Vamos a analizar un fichero de datos que contiene la edad en que murieron


los reyes sucesivos de Inglaterra comenzando con William el conquistador,
en total son 42 reyes.

Según otra fuente consultada, wikipedia, William fue el sexto rey y murió en
1837 a los 71 años, sin embargo, el fichero indica 60 años.

Los datos se obtuvieron de un fichero publicado en el artículo “Interactive


Data Anlaysis: A Practical Primer” de Don McNeil, publicado el 4 de mayo de
1977.

edad_muerte=ts(kings)

edad_muerte

## Time Series:

## Start = 1

## End = 42

## Frequency = 1

## [1] 60 43 67 50 56 42 50 65 68 43 65 34 47 34 49 41 13 35 53 56 16 4
## [26] 59 86 55 68 51 33 49 67 77 81 67 71 81 68 70 77 56

T6- Series Temporales


¿La serie es estacionaria?
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
plot.ts(edad_muerte, 20582
xlab= "Dinastía",

- Análisis de Datos 📊
ylab="Edad muerte del Rey",

7/12/2021
main="Longevidad de los Reyes Británicos

según la dinastía")

Vamos a diferenciar la serie:

diff_o1 <- diff(edad_muerte, differences=1)

plot.ts(diff_o1)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

La serie temporal de las primeras diferencias parece ser estacionaria en la


media y la varianza, por lo que un modelo ARIMA(p,1,q ) es probablemente
apropiado para la serie temporal de la edad de la muerte de los reyes de
Inglaterra.

Al tomar las series de tiempo de las primeras diferencias, hemos eliminado


el componente de tendencia y nos quedamos con un componente irregular.

Ahora podemos examinar si hay correlaciones entre los términos sucesivos


de este componente irregular. Si es así, esto podría ayudarnos a hacer un
modelo predictivo para las edades de la muerte de los reyes.

par(mfrow=c(1,2))

acf(diff_o1, lag.max = 20) # si especificamos plot=FALSE podemos obte


ner los valores

pacf(diff_o1, lag.max = 20)


T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

Los modelos posibles son:

ARMA(3,0) es decir, un modelo autorregresivo de orden p = 3 , ya que


el autocorrelograma parcial es cero después del retraso 3, y el
autocorrelograma se reduce a cero (aunque quizás muy bruscamente
para que este modelo sea apropiado).

ARMA(0,1) un modelo de media móvil de orden q = 1 , ya que el


autocorrelograma es cero después del desfase 1 y el autocorrelograma
parcial se reduce a cero.

ARMA(p,q) un modelo mixto con p y q mayores que 0, ya que el


autocorrelograma y el correlograma parcial se reducen a cero (aunque
el correlograma probablemente se reduce a cero abruptamente para
que este modelo sea apropiado)

modelo1 = arima(diff_o1, order=c(3,0,0))

modelo2 = arima(diff_o1, order=c(0,0,1))

modelo3 = arima(diff_o1, order=c(3,0,1))

AIC(modelo1,modelo2,modelo3)
## df AIC

## modelo1 5 348.5243

## modelo2 3 345.8136

## modelo3 6 350.5172

T6- Series Temporales


BIC(modelo1,modelo2,modelo3)
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES

## df 20582
BIC
- Análisis de Datos 📊
## modelo1 5 357.0922

7/12/2021
## modelo2 3 350.9543

## modelo3 6 360.7987

par(mfrow=c(1,2))

plot(modelo2$residuals)

qqnorm(modelo2$residuals)

qqline(modelo2$residuals,col="red")
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

modelo2$coef

## ma1 intercept

## -0.7462804 0.3881635

Un modelo de MA (promedio móvil) se usa generalmente para modelar una


serie de tiempo que muestra dependencias a corto plazo entre
observaciones sucesivas.

De manera intuitiva, tiene sentido que se pueda usar un modelo de MA para


describir el componente irregular en las series de tiempo de la muerte de
los reyes ingleses, ya que podríamos esperar que la edad de un rey inglés
en particular tenga algún efecto en las edades de muerte del próximo rey o
dos, pero no mucho efecto en las edades en la muerte de los reyes que
reinarán mucho más tiempo después de eso.

Dado que un modelo ARMA(0,1) (con ,


p = 0 q = 1 ) se considera el mejor
modelo candidato para la serie temporal de las primeras diferencias de las
edades de muerte de los reyes ingleses, la serie temporal original del las
edades de muerte se pueden modelar con un ARIMA(0,1,1).

Vamos a usar a función auto.arima() de la librería forecast para confirmar


nuestra selección.

library(forecast)

auto.arima(edad_muerte)
## Series: edad_muerte

## ARIMA(0,1,1)

##

## Coefficients:

##
##
ma1

-0.7218

T6- Series Temporales


MODELIZACIÓN
## s.e. 0.1208

UNIVARIANTE DE SERIES TEMPORALES


##

## sigma^2 estimated 20582 - Análisis


as 236.2: de Datos 📊
log likelihood=-170.06

## AIC=344.13 AICc=344.44 BIC=347.56


7/12/2021

Podemos usar el modelo ARIMA para hacer pronósticos de valores futuros


de la serie de tiempo, usando la función forecast.Arima() del paquete
forecast.

Por ejemplo, para pronosticar las edades al morir de los próximos cinco
reyes ingleses, escribimos:

pronostico=forecast(arima(edad_muerte, order=c(0,1,1)), h=5)

pronostico

## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95

## 43 67.75063 48.29647 87.20479 37.99806 97.50319

## 44 67.75063 47.55748 87.94377 36.86788 98.63338

## 45 67.75063 46.84460 88.65665 35.77762 99.72363

## 46 67.75063 46.15524 89.34601 34.72333 100.77792

## 47 67.75063 45.48722 90.01404 33.70168 101.79958

plot(pronostico)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

Ljung Box test

El test Ljung Box se utiliza para contrastar la ausencia de autocorrelación en


una serie, hasta un retardo específico k .

El test determina si los errores, luego de ajustar el modelo son


independientes e idénticamente distribuidos (ruido blanco) o si existe
alguna estructura más en ellos. En otras palabras, si las autocorrelaciones
de los errores no son cero.

Un p-valor significativo (< 0.05) indica rechazar la hipótesis nula, es decir la


serie presenta autocorrelación.

El estadístico del test para una serie de longitud n es:

m 2
r
j
Q(m) = n(n + 2) ∑ ,
n − j
j=1

donde:
rj son las autocorrelaciones muestrales

m es el tiempo de retardo.

Rechazamos H0 si Q > χ
2
1−α,ν
, donde:
T6- Series Temporales
χ
2
1−α,ν
es el cuantil de la distribución ji-cuadrado para el nivel de
MODELIZACIÓN UNIVARIANTE
significancia α y ν los DE SERIES TEMPORALES
grados de libertad.
20582 - Análisis de Datos 📊
Cuando se aplica el test Ljung Box a los residuos de un modelo ARIMA, los
grados de libertad ν son m − p − q7/12/2021
, donde p y q son los parámetros del
ARIMA(p,q) model. En R el test está implementaddo en la función Box.test.

Box.test(residuals(modelo2),lag=2)

##

## Box-Pierce test

##

## data: residuals(modelo2)

## X-squared = 0.83577, df = 2, p-value = 0.6584

Procesos estacionales: SARIMAs

Otra causa de no estacionaridad es la estacionalidad.

Por ejemplo, en una serie mensual con estacionalidad anual, cada mes tiene
una media distinta, con lo cual la media no es estable.

En muchos casos, un proceso estacional se convierte en estacionario al


tomar un número D de diferencias estacionales.

Para detectar un comportamiento estacional podemos analizar las ACF y


PACF de la serie.

Si al representar dichas funciones se aprecian valores muy altos,


significativamente distintos de cero, para los retardos estacionales
podremos concluir que la serie presenta un componente estacional y
debemos exigir que el componente estacional se mantenga constante a lo
largo del tiempo.

Así, si observamos que la ACF presenta un lento decaimiento en los valores


T6- Series Temporales
correspondientes a los retardos estacionales y el valor del primer retardo
estacional es próximo a uno tanto en ACF como PACF, es muy probable que
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
el comportamiento estacional de la serie no presente un carácter
estacionario, por lo que20582 - Análisistomar
será necesario de Datos 📊
diferencias de tipo estacional.
7/12/2021
Los ARIMAs estacionales tienen las siguientes características:

Contienen una componente ARIMA(P ,D,Q ) que modeliza la


dependencia estacional.

Contienen otra componente ARIMA(p,d ,q ) que modeliza la dependencia


regular, que es la dependencia asociada a observaciones consecutivas.

El proceso diferenciado wt = ∇
D d
∇ yt es un proceso estacionario que
sigue el modelo ARMA estacional.

Este proceso se denota como

ARIMA (p, d, q) × (P , D, Q, )
 
parte regular parte estacional

Ejemplo ajuste de un SARIMA

Consideremos los datos del fichero papel que corresponden a las ventas
mensuales de papel correspondiente a 10 años.

papel=scan("papel.txt")

plot(papel,ylab='Venta papel',xlab='Tiempo',type='o',pch=16)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

dpapel = diff(papel,1)

par(mfrow=c(2,1))

plot(dpapel,ylab='Valores',xlab='Tiempo',type='l',pch=16,main="Serie
sin tendencia")

acf(dpapel,60,main="")
par(mfrow=c(2,1))

d12dpapel = diff(dpapel,12)

plot(d12dpapel,ylab='Serie',xlab='Tiempo',type='l',pch=16,

main="Serie sin tendencia y desestacionalizada")

T6- Series Temporales


acf(d12dpapel,60,main="Ventas de papel desestacionalizada y diferenci
ada")

MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES


20582 - Análisis de Datos 📊

7/12/2021

pacf(d12dpapel,60,main="")
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

La PACF muestra decaimiento exponencial mientras que el acf muestra un


pico bastante significativo y aislado en el retardo 1, entonces debe tratarse
de un MA(1). Además de este pico, sigue apareciendo en el retardo 12 de
ambas autocorrelaciones, aún hay un remanente de estacionalidad, lo que
sugiere agregar un MA(1) estacional.

a=c(0,1,1)

(modelo=arima(papel,a,seasonal=list(order=a,period=12)))

##

## Call:

## arima(x = papel, order = a, seasonal = list(order = a, period = 12))

##

## Coefficients:

## ma1 sma1

## -0.8402 -0.6360

## s.e. 0.0611 0.0929

##

## sigma^2 estimated as 1809: log likelihood = -556.91, aic = 1119.83


pronostico=forecast(modelo, h=20)

plot(pronostico)

T6- Series Temporales


MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

tsdiag(modelo)
T6- Series Temporales
MODELIZACIÓN UNIVARIANTE DE SERIES TEMPORALES
20582 - Análisis de Datos 📊

7/12/2021

También podría gustarte