0% found this document useful (0 votes)
3 views19 pages

MBJ Arima

LIBRO

Uploaded by

Dennys Mendez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views19 pages

MBJ Arima

LIBRO

Uploaded by

Dennys Mendez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Modelo ARIMA

Frank

2024-07-05

redireccionado carpeta de trabajo

setwd("C:/Users/Alberto/Desktop/clases0507")

importando base de datos

bd <- read.csv("datos2.txt", sep="")

Pasos a seguir para el modelado de ARIMA

1. Idenfificación
2. Ajustar el modelo
3. Diagnóstico del modelo
4. Pronóstico

1. Idenfificación del modelo

bd.ts <- ts(bd$Temperatura,start = 2020,frequency = 12)

graficando datos

plot(bd.ts)

1
17
16
15
bd.ts

14
13
12
11

2020 2021 2022 2023 2024

Time

Análisis de correlación

acf(bd.ts,main="",sub="Figura 1: Función de autocorrelación simple", lag.max = 48)

2
0.2 0.4 0.6 0.8 1.0
ACF

−0.2

0 1 2 3 4

Lag
Figura 1: Función de autocorrelación simple

pacf(bd.ts,main="",sub="Figura 2: Función de autocorrelación parcial",lag.max = 48)

3
0.4
Partial ACF

0.2
0.0
−0.2

0 1 2 3 4

Lag
Figura 2: Función de autocorrelación parcial

Prueba de Dickey-Fuller

Hipotesis:
H0 : La serie es no estacionaria: tiene raiz unitátia
H1 : La serie es estacionaria: no tiene raiz unitátia
Estadistico de prueba

library(urca)
library(tseries)

## Registered S3 method overwritten by ’quantmod’:


## method from
## as.zoo.data.frame zoo

adf.test(bd.ts)

##
## Augmented Dickey-Fuller Test
##
## data: bd.ts
## Dickey-Fuller = -2.4191, Lag order = 3, p-value = 0.4068
## alternative hypothesis: stationary

4
A partir de la prueba de Dickey-Fuller, concluimos que la serie es no estacionaria, contiene raiz unitária.

library(ggplot2)
library(forecast)

difftemp<-diff(bd.ts)
autoplot(difftemp, colour = "navy", linetype = "dashed")

0
difftemp

−2

−4
2020 2021 2022 2023 2024
Time

Analisando la base de datos, con la primera diferencia

Análisis de correlación de la diferencia

acf(difftemp,main="",sub="Figura 3: Función de autocorrelación simple", lag.max = 48)

5
0.8
0.4
ACF

0.0
−0.4

0 1 2 3

Lag
Figura 3: Función de autocorrelación simple

pacf(difftemp,main="",sub="Figura 4: Función de autocorrelación parcial",lag.max = 48)

6
0.2
Partial ACF

0.0
−0.2
−0.4

0 1 2 3

Lag
Figura 4: Función de autocorrelación parcial

Prueba de Dickey-Fuller de La diferencia

Hipotesis:
H0 : La serie es no estacionaria: tiene raiz unitátia
H1 : La serie es estacionaria: no tiene raiz unitátia
Estadistico de prueba

adf.test(difftemp)

## Warning in adf.test(difftemp): p-value smaller than printed p-value

##
## Augmented Dickey-Fuller Test
##
## data: difftemp
## Dickey-Fuller = -4.8033, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary

A partir de la prueba de Dickey-Fuller, concluimos que la serie es estacionaria, y no contiene raiz unitária.

7
2. Ajuste de modelo ARIMA

arima1 <- arima(difftemp,c(0,1,1),method = "ML");arima1

##
## Call:
## arima(x = difftemp, order = c(0, 1, 1), method = "ML")
##
## Coefficients:
## ma1
## -1.000
## s.e. 0.064
##
## sigma^2 estimated as 0.9841: log likelihood = -66.83, aic = 137.66

arima2 <- arima(difftemp,c(2,1,1),method = "ML");arima2

##
## Call:
## arima(x = difftemp, order = c(2, 1, 1), method = "ML")
##
## Coefficients:
## ar1 ar2 ma1
## -0.1092 -0.3608 -1.0000
## s.e. 0.1366 0.1342 0.1114
##
## sigma^2 estimated as 0.8307: log likelihood = -63.45, aic = 134.89

library(lmtest)

## Loading required package: zoo

##
## Attaching package: ’zoo’

## The following objects are masked from ’package:base’:


##
## as.Date, as.Date.numeric

coeftest(arima2)

##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 -0.10917 0.13657 -0.7994 0.424069
## ar2 -0.36084 0.13417 -2.6895 0.007156 **
## ma1 -1.00000 0.11142 -8.9751 < 2.2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1

8
confint(arima2)

## 2.5 % 97.5 %
## ar1 -0.376851 0.15850355
## ar2 -0.623804 -0.09787693
## ma1 -1.218377 -0.78162178

criterio para comparar modelos

aic <- AIC(arima1,arima2);aic

## df AIC
## arima1 2 137.6574
## arima2 4 134.8919

bic <- BIC(arima1,arima2);bic

## df BIC
## arima1 2 141.3147
## arima2 4 142.2064

Validación del modelo

Estacionariedad de los residuos

plot.ts(arima1$residuals,mai="",sub="Figura 5: Residuos del modelo ARIMA(0,1,1)")


abline(h=0)

9
2
1
arima1$residuals

0
−1
−2
−3

2020 2021 2022 2023 2024

Time
Figura 5: Residuos del modelo ARIMA(0,1,1)

plot.ts(arima2$residuals,mai="",sub="Figura 6: Residuos del modelo ARIMA(2,1,1)")


abline(h=0)

10
2
1
arima2$residuals

0
−1
−2
−3

2020 2021 2022 2023 2024

Time
Figura 6: Residuos del modelo ARIMA(2,1,1)

acf(arima1$residuals,mai="")

11
0.8
0.4
ACF

0.0
−0.4

0.0 0.2 0.4 0.6 0.8 1.0 1.2

Lag

acf(arima2$residuals, main="")

12
0.2 0.4 0.6 0.8 1.0
ACF

−0.2

0.0 0.2 0.4 0.6 0.8 1.0 1.2

Lag

pacf(arima1$residuals,mai="")

13
0.2
Partial ACF

0.0
−0.2
−0.4

0.2 0.4 0.6 0.8 1.0 1.2

Lag

pacf(arima2$residuals, main="")

14
0.3
0.2
0.1
Partial ACF

−0.1 0.0
−0.3

0.2 0.4 0.6 0.8 1.0 1.2

Lag

Normalidad de los residuos

Los gráficos Q-Q es una de las herramientas mas utilizados para evaluar la normalidad de los residuos.

qqnorm(arima1$residuals,pch=20,sub="Figura 7: Gráfico Q-Q para evaluar normalidad de reisduos")


qqline(arima1$residuals)

15
Normal Q−Q Plot
2
1
Sample Quantiles

0
−1
−2
−3

−2 −1 0 1 2

Theoretical Quantiles
Figura 7: Gráfico Q−Q para evaluar normalidad de reisduos

qqnorm(arima2$residuals,pch=16,sub="Figura 8: Gráfico Q-Q para evaluar normalidad de reisduos")


qqline(arima2$residuals)

16
Normal Q−Q Plot
2
1
Sample Quantiles

0
−1
−2
−3

−2 −1 0 1 2

Theoretical Quantiles
Figura 8: Gráfico Q−Q para evaluar normalidad de reisduos

Verificando normalidad de errores mediante la prueba de Shapiro-Wilk

shapiro.test(arima1$residuals)

##
## Shapiro-Wilk normality test
##
## data: arima1$residuals
## W = 0.94161, p-value = 0.02051

shapiro.test(arima2$residuals)

##
## Shapiro-Wilk normality test
##
## data: arima2$residuals
## W = 0.91559, p-value = 0.002354

Predicciones

17
predict(arima2,n.ahead = 5)

## $pred
## Jan Feb Mar Apr May
## 2024 0.121471733 -0.182748267 -0.015599612 0.075927031 0.005620728
##
## $se
## Jan Feb Mar Apr May
## 2024 0.9213100 0.9246484 0.9731681 0.9765621 0.9838783

plot(forecast(arima2))

Forecasts from ARIMA(2,1,1)


2
1
0
−1
−2
−3

2020 2021 2022 2023 2024 2025 2026

forecast1<-forecast(arima2, level = c(95), h = 5)


autoplot(forecast1)

18
Forecasts from ARIMA(2,1,1)
2

0
difftemp

−2

−4
2020 2021 2022 2023 2024
Time

19

You might also like