“Librerías”
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(astsa)
library(forecast)
##
## Attaching package: 'forecast'
## The following object is masked from 'package:astsa':
##
## gas
library(MASS)
#Para el presente laboratorio utilizaremos la series mensuales de desempleo y de las ventas de pollo
Series.Unemp<-unemp
Series.Chicken<-chicken
plot(Series.Unemp, main= "Desempleo", col="blue")
plot(Series.Chicken, main= "Ventas de Pollo", col="red")
La gráfica de desempleo se ve en los primeros años una variación
aleatoria, es hasta el año 1955hasta cierto punto estacional, hasta el
año 1975 que tiene una alza importante. Las ventas de pollo desde el año
2002 hasta el 2016 van a la alza, ´con un comportamiento aleatorio.
log.Series.Unemp<-log(Series.Unemp)
log.Series.Chicken<-log(Series.Chicken)
plot(log.Series.Unemp, main="Desempleo", col="red")
plot(log.Series.Chicken, main="Ventas de pollo", col="blue")
adf.test(log.Series.Unemp)
##
## Augmented Dickey-Fuller Test
##
## data: log.Series.Unemp
## Dickey-Fuller = -3.7221, Lag order = 7, p-value = 0.02315
## alternative hypothesis: stationary
adf.test(log.Series.Chicken)
##
## Augmented Dickey-Fuller Test
##
## data: log.Series.Chicken
## Dickey-Fuller = -2.7479, Lag order = 5, p-value = 0.2637
## alternative hypothesis: stationary
La serie de unemployment tiene un p-value <.05 por tanto no es estacionaria. La serie de ventas de pollo tiene un p-value>.05, por tanto es estacionaria.
unemp.return.series<-diff(log.Series.Unemp)
chicken.return.series<-diff(log.Series.Chicken)
plot(unemp.return.series)
plot(chicken.return.series)
adf.test(unemp.return.series)
## Warning in adf.test(unemp.return.series): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: unemp.return.series
## Dickey-Fuller = -6.9076, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
adf.test(chicken.return.series)
## Warning in adf.test(chicken.return.series): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: chicken.return.series
## Dickey-Fuller = -5.6403, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
plot(unemp.return.series)
plot(chicken.return.series)
acf2(unemp.return.series, max.lag = 20)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## ACF 0.02 -0.1 -0.25 -0.10 0.25 -0.11 0.22 -0.12 -0.27 -0.16 0.00 0.74 -0.03
## PACF 0.02 -0.1 -0.25 -0.11 0.21 -0.21 0.25 -0.09 -0.32 -0.14 0.05 0.63 -0.13
## [,14] [,15] [,16] [,17] [,18] [,19] [,20]
## ACF -0.16 -0.28 -0.14 0.19 -0.14 0.22 -0.13
## PACF -0.19 -0.11 -0.15 -0.12 -0.12 0.07 -0.01
acf2(chicken.return.series, max.lag = 20)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
## ACF 0.72 0.37 0.07 -0.08 -0.17 -0.20 -0.26 -0.22 -0.10 0.09 0.26 0.33
## PACF 0.72 -0.31 -0.13 0.05 -0.12 -0.05 -0.17 0.12 0.07 0.15 0.12 -0.02
## [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
## ACF 0.19 0.03 -0.07 -0.13 -0.21 -0.27 -0.31 -0.23
## PACF -0.24 0.03 0.04 -0.12 -0.10 -0.01 -0.06 0.06
adf.test(chicken.return.series)
## Warning in adf.test(chicken.return.series): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: chicken.return.series
## Dickey-Fuller = -5.6403, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
adf.test(unemp.return.series)
## Warning in adf.test(unemp.return.series): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: unemp.return.series
## Dickey-Fuller = -6.9076, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
season12.diff.log.chicken<-diff(chicken.return.series, 12)
plot(season12.diff.log.chicken)
season12.diff.log.unemp<-diff(unemp.return.series, 12)
plot(season12.diff.log.unemp)
acf2(season12.diff.log.unemp)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## ACF 0.15 0.28 0.18 0.12 0.15 0.05 -0.04 0.00 -0.08 -0.17 -0.03 -0.47 -0.16
## PACF 0.15 0.26 0.12 0.02 0.06 -0.02 -0.13 -0.03 -0.06 -0.16 0.05 -0.41 -0.06
## [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25]
## ACF -0.16 -0.14 -0.16 -0.13 -0.1 0.02 0.01 -0.02 0.00 -0.02 0.00 0.11
## PACF 0.08 0.04 -0.07 0.01 0.0 0.04 0.08 -0.06 -0.15 0.00 -0.24 0.06
## [,26] [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37]
## ACF 0.03 0.06 0.10 0.04 0.06 0.03 -0.08 0.01 -0.01 -0.08 -0.04 -0.10
## PACF 0.04 0.02 0.02 -0.01 -0.04 0.04 -0.07 -0.06 -0.08 -0.09 -0.20 0.02
## [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48]
## ACF -0.02 -0.06 -0.10 -0.10 -0.03 -0.17 0.03 -0.03 0.02 0.07 0.08
## PACF 0.06 -0.05 -0.04 -0.08 0.01 -0.10 0.01 -0.04 -0.01 -0.02 -0.05
acf2(season12.diff.log.chicken)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## ACF 0.75 0.47 0.23 0.14 0.1 0.06 -0.02 -0.10 -0.15 -0.20 -0.27 -0.39 -0.30
## PACF 0.75 -0.20 -0.10 0.14 0.0 -0.08 -0.09 -0.04 -0.01 -0.15 -0.11 -0.24 0.36
## [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25]
## ACF -0.13 0.07 0.17 0.15 0.09 0.02 0.00 -0.07 -0.13 -0.21 -0.25 -0.25
## PACF 0.09 0.10 -0.01 -0.05 -0.04 -0.13 -0.07 -0.22 -0.08 -0.16 -0.20 0.17
## [,26] [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37]
## ACF -0.25 -0.30 -0.32 -0.31 -0.28 -0.18 -0.06 0.09 0.18 0.20 0.18 0.17
## PACF -0.03 0.02 0.04 -0.09 -0.16 -0.02 0.08 0.00 0.00 -0.19 -0.07 0.22
## [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48]
## ACF 0.16 0.15 0.13 0.09 0.09 0.08 0.04 -0.04 -0.12 -0.10 -0.02
## PACF -0.01 -0.04 0.02 -0.06 -0.03 0.06 -0.02 -0.07 0.02 -0.07 -0.09
adf.test(season12.diff.log.unemp)
## Warning in adf.test(season12.diff.log.unemp): p-value smaller than printed p-
## value
##
## Augmented Dickey-Fuller Test
##
## data: season12.diff.log.unemp
## Dickey-Fuller = -6.0573, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
adf.test(season12.diff.log.chicken)
## Warning in adf.test(season12.diff.log.chicken): p-value smaller than printed p-
## value
##
## Augmented Dickey-Fuller Test
##
## data: season12.diff.log.chicken
## Dickey-Fuller = -4.2555, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
chicken.fti1<-sarima(log(chicken),p=1,d=1,q=1,
P=0,D=1,Q=1,
S=12)
## initial value -4.228217
## iter 2 value -4.447270
## iter 3 value -4.866760
## iter 4 value -4.878667
## iter 5 value -4.885094
## iter 6 value -4.889257
## iter 7 value -4.891438
## iter 8 value -4.891934
## iter 9 value -4.892053
## iter 10 value -4.892123
## iter 11 value -4.892129
## iter 12 value -4.892131
## iter 13 value -4.892131
## iter 13 value -4.892131
## iter 13 value -4.892131
## final value -4.892131
## converged
## initial value -4.887102
## iter 2 value -4.888180
## iter 3 value -4.888690
## iter 4 value -4.888695
## iter 5 value -4.888697
## iter 6 value -4.888698
## iter 7 value -4.888698
## iter 7 value -4.888698
## iter 7 value -4.888698
## final value -4.888698
## converged
chicken.fti3<-sarima(log(chicken),p=1,d=1,q=1,
P=1,D=0,Q=1,
S=12)
## initial value -4.372002
## iter 2 value -4.440306
## iter 3 value -4.844152
## iter 4 value -4.855042
## iter 5 value -4.866371
## iter 6 value -4.882210
## iter 7 value -4.896644
## iter 8 value -4.911045
## iter 9 value -4.936748
## iter 10 value -4.941209
## iter 11 value -4.949631
## iter 12 value -4.951322
## iter 13 value -4.952933
## iter 14 value -4.953267
## iter 15 value -4.953471
## iter 16 value -4.953560
## iter 17 value -4.953733
## iter 18 value -4.954552
## iter 19 value -4.954745
## iter 20 value -4.954805
## iter 21 value -4.954805
## iter 22 value -4.954805
## iter 22 value -4.954805
## iter 22 value -4.954805
## final value -4.954805
## converged
## initial value -4.872865
## iter 2 value -4.905968
## iter 3 value -4.907057
## iter 4 value -4.909450
## iter 5 value -4.912831
## iter 6 value -4.914046
## iter 7 value -4.915649
## iter 8 value -4.915887
## iter 9 value -4.915942
## iter 10 value -4.915956
## iter 11 value -4.915985
## iter 12 value -4.916028
## iter 13 value -4.916035
## iter 14 value -4.916049
## iter 15 value -4.916067
## iter 16 value -4.916076
## iter 17 value -4.916099
## iter 18 value -4.916124
## iter 19 value -4.916140
## iter 20 value -4.916144
## iter 21 value -4.916144
## iter 22 value -4.916144
## iter 23 value -4.916145
## iter 24 value -4.916145
## iter 25 value -4.916145
## iter 26 value -4.916146
## iter 27 value -4.916146
## iter 28 value -4.916146
## iter 29 value -4.916147
## iter 30 value -4.916147
## iter 30 value -4.916147
## iter 30 value -4.916147
## final value -4.916147
## converged
chicken.fti4<-sarima(log(chicken),p=0,d=1,q=1,
P=0,D=1,Q=1,
S=12)
## initial value -4.228158
## iter 2 value -4.621534
## iter 3 value -4.715551
## iter 4 value -4.727036
## iter 5 value -4.733402
## iter 6 value -4.733585
## iter 7 value -4.733628
## iter 8 value -4.733643
## iter 8 value -4.733643
## iter 8 value -4.733643
## final value -4.733643
## converged
## initial value -4.754563
## iter 2 value -4.763053
## iter 3 value -4.764066
## iter 4 value -4.765008
## iter 5 value -4.765055
## iter 6 value -4.765059
## iter 6 value -4.765059
## final value -4.765059
## converged
chicken.fti5<-sarima(log(chicken),p=1,d=0,q=0,
P=1,D=1,Q=0,
S=12)
## initial value -2.732654
## iter 2 value -4.270378
## iter 3 value -4.275620
## iter 4 value -4.289136
## iter 5 value -4.306748
## iter 6 value -4.306763
## iter 7 value -4.306780
## iter 8 value -4.306858
## iter 9 value -4.306869
## iter 10 value -4.306898
## iter 11 value -4.306908
## iter 12 value -4.306937
## iter 13 value -4.307002
## iter 14 value -4.307126
## iter 15 value -4.307279
## iter 16 value -4.307298
## iter 17 value -4.307346
## iter 18 value -4.307380
## iter 19 value -4.307381
## iter 20 value -4.307426
## iter 21 value -4.307442
## iter 22 value -4.307447
## iter 22 value -4.307447
## final value -4.307447
## converged
## initial value -4.306470
## iter 2 value -4.306506
## iter 3 value -4.306587
## iter 4 value -4.306694
## iter 5 value -4.306803
## iter 6 value -4.306844
## iter 7 value -4.306855
## iter 8 value -4.306857
## iter 9 value -4.306858
## iter 10 value -4.306868
## iter 11 value -4.306878
## iter 12 value -4.306892
## iter 13 value -4.306897
## iter 14 value -4.306899
## iter 15 value -4.306899
## iter 16 value -4.306900
## iter 17 value -4.306901
## iter 18 value -4.306902
## iter 19 value -4.306903
## iter 20 value -4.306903
## iter 20 value -4.306903
## iter 20 value -4.306903
## final value -4.306903
## converged
unemp.fti1<-sarima(log(unemp),p=1,d=1,q=1,
P=0,D=1,Q=1,
S=12)
## initial value -2.551638
## iter 2 value -2.702571
## iter 3 value -2.737835
## iter 4 value -2.756882
## iter 5 value -2.758216
## iter 6 value -2.759291
## iter 7 value -2.759540
## iter 8 value -2.760214
## iter 9 value -2.760500
## iter 10 value -2.760825
## iter 11 value -2.762580
## iter 12 value -2.765570
## iter 13 value -2.768812
## iter 14 value -2.771957
## iter 15 value -2.775130
## iter 16 value -2.775185
## iter 17 value -2.775195
## iter 18 value -2.775206
## iter 19 value -2.775210
## iter 20 value -2.775214
## iter 21 value -2.775214
## iter 21 value -2.775214
## iter 21 value -2.775214
## final value -2.775214
## converged
## initial value -2.787571
## iter 2 value -2.788447
## iter 3 value -2.788740
## iter 4 value -2.788800
## iter 5 value -2.788829
## iter 6 value -2.788860
## iter 7 value -2.788919
## iter 8 value -2.788948
## iter 9 value -2.788952
## iter 10 value -2.788955
## iter 11 value -2.788955
## iter 12 value -2.788956
## iter 13 value -2.788956
## iter 14 value -2.788956
## iter 15 value -2.788956
## iter 15 value -2.788956
## final value -2.788956
## converged
unemp.fti1$ttable
## Estimate SE t.value p.value
## ar1 0.8064 0.0721 11.1775 0
## ma1 -0.6742 0.0847 -7.9579 0
## sma1 -0.7118 0.0436 -16.3365 0
season13.ddiff.log.serieChicken<-diff(chicken.return.series, 13)
plot(season13.ddiff.log.serieChicken)
acf2(season13.ddiff.log.serieChicken)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## ACF 0.67 0.34 0.11 0.09 0.10 0.11 -0.06 -0.12 -0.12 -0.03 -0.02 -0.08 -0.3
## PACF 0.67 -0.19 -0.05 0.17 -0.02 0.02 -0.27 0.12 -0.02 0.03 -0.06 -0.11 -0.3
## [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25]
## ACF -0.22 -0.06 0.09 0.08 0.01 -0.13 -0.12 -0.1 -0.05 -0.10 -0.11 -0.19
## PACF 0.35 0.03 -0.06 0.00 -0.05 -0.07 -0.12 0.0 0.00 -0.08 0.08 -0.21
## [,26] [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37]
## ACF -0.19 -0.23 -0.26 -0.32 -0.29 -0.21 -0.05 0.07 0.15 0.13 0.22 0.18
## PACF -0.31 0.05 -0.06 -0.18 0.00 0.08 -0.02 0.03 0.06 -0.01 0.18 -0.07
## [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48]
## ACF 0.15 0.10 0.06 -0.01 0.06 0.08 0.06 -0.01 -0.05 -0.03 0.13
## PACF -0.13 -0.14 -0.04 -0.04 0.09 -0.02 -0.04 -0.06 0.05 0.10 0.03
adf.test(season13.ddiff.log.serieChicken)
##
## Augmented Dickey-Fuller Test
##
## data: season13.ddiff.log.serieChicken
## Dickey-Fuller = -3.9264, Lag order = 5, p-value = 0.01451
## alternative hypothesis: stationary
chicken.fti1<-sarima(log(Series.Chicken),p=1,d=1,q=1,
P=1,D=1,Q=1,
S=12)
## initial value -4.215806
## iter 2 value -4.442822
## iter 3 value -4.796222
## iter 4 value -4.833307
## iter 5 value -4.838954
## iter 6 value -4.847489
## iter 7 value -4.850336
## iter 8 value -4.850991
## iter 9 value -4.851243
## iter 10 value -4.851267
## iter 11 value -4.851274
## iter 12 value -4.851276
## iter 13 value -4.851277
## iter 13 value -4.851277
## iter 13 value -4.851277
## final value -4.851277
## converged
## initial value -4.880157
## iter 2 value -4.886418
## iter 3 value -4.888499
## iter 4 value -4.888723
## iter 5 value -4.888787
## iter 6 value -4.888800
## iter 7 value -4.888807
## iter 8 value -4.888807
## iter 8 value -4.888807
## iter 8 value -4.888807
## final value -4.888807
## converged
chicken.fti2<-sarima(log(Series.Chicken),p=1,d=1,q=1,
P=0,D=1,Q=1,
S=12)
## initial value -4.228217
## iter 2 value -4.447270
## iter 3 value -4.866760
## iter 4 value -4.878667
## iter 5 value -4.885094
## iter 6 value -4.889257
## iter 7 value -4.891438
## iter 8 value -4.891934
## iter 9 value -4.892053
## iter 10 value -4.892123
## iter 11 value -4.892129
## iter 12 value -4.892131
## iter 13 value -4.892131
## iter 13 value -4.892131
## iter 13 value -4.892131
## final value -4.892131
## converged
## initial value -4.887102
## iter 2 value -4.888180
## iter 3 value -4.888690
## iter 4 value -4.888695
## iter 5 value -4.888697
## iter 6 value -4.888698
## iter 7 value -4.888698
## iter 7 value -4.888698
## iter 7 value -4.888698
## final value -4.888698
## converged
library("PerformanceAnalytics")
## Loading required package: xts
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
##
## legend
chicken.fti2$ttable #pvalues dentro de rango
## Estimate SE t.value p.value
## ar1 0.6332 0.0753 8.4079 0.0000
## ma1 0.2449 0.0852 2.8749 0.0046
## sma1 -0.8241 0.0624 -13.2020 0.0000
chicken.fti1$ttable #pvalues dentro de rango y
## Estimate SE t.value p.value
## ar1 0.6327 0.0755 8.3844 0.0000
## ma1 0.2455 0.0853 2.8773 0.0045
## sar1 -0.0182 0.0949 -0.1916 0.8483
## sma1 -0.8167 0.0728 -11.2178 0.0000
SARIMA.forcast<-sarima.for(log(Series.Chicken), n.ahead = 24, 1, 1, 1, 0, 1, 1, 12)
SARIMA.forcast$pred
## Jan Feb Mar Apr May Jun Jul Aug
## 2016 4.706076
## 2017 4.682485 4.685708 4.692149 4.698681 4.709161 4.718234 4.724330 4.723157
## 2018 4.709516 4.713153 4.719856 4.726554 4.737139 4.746279 4.752416
## Sep Oct Nov Dec
## 2016 4.701466 4.690623 4.682630 4.680135
## 2017 4.722610 4.714340 4.707977 4.706513
## 2018
SARIMA.forcast$se
## Jan Feb Mar Apr May Jun
## 2016
## 2017 0.044007359 0.049830879 0.055216309 0.060223945 0.064906774 0.069309834
## 2018 0.099682918 0.103708200 0.107602573 0.111372774 0.115026663 0.118572233
## Jul Aug Sep Oct Nov Dec
## 2016 0.007216761 0.015354066 0.023329223 0.030796920 0.037681753
## 2017 0.073470762 0.077833169 0.082329700 0.086820721 0.091230691 0.095522932
## 2018 0.122017091
SARIMA.forcast<-sarima.for(log(Series.Unemp), n.ahead = 24, 1, 1, 1, 0, 1, 1, 12)
SARIMA.forcast$pred
## Jan Feb Mar Apr May Jun Jul Aug
## 1979 6.515336 6.523716 6.474964 6.366666 6.310446 6.502138 6.474210 6.414748
## 1980 6.532327 6.539105 6.489061 6.379721 6.322661 6.513675 6.485200 6.425297
## Sep Oct Nov Dec
## 1979 6.390059 6.346154 6.379343 6.368991
## 1980 6.400253 6.356062 6.389019 6.378481
SARIMA.forcast$se
## Jan Feb Mar Apr May Jun
## 1979 0.06076454 0.09179104 0.11871120 0.14343310 0.16658312 0.18845187
## 1980 0.32167678 0.34318048 0.36419653 0.38467213 0.40458407 0.42392859
## Jul Aug Sep Oct Nov Dec
## 1979 0.20920972 0.22897545 0.24784207 0.26588779 0.28318099 0.29978269
## 1980 0.44271447 0.46095838 0.47868164 0.49590810 0.51266271 0.52897052