library(forecast)
## Warning: pakiet 'forecast' został zbudowany w wersji R 4.5.1
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(tseries)
## Warning: pakiet 'tseries' został zbudowany w wersji R 4.5.1
library(astsa)
## Warning: pakiet 'astsa' został zbudowany w wersji R 4.5.2
##
## Dołączanie pakietu: 'astsa'
## Następujący obiekt został zakryty z 'package:forecast':
##
## gas
Month_Value=read.csv("C:/Users/akosc/OneDrive/Pulpit/Ania/studia/time series/Month_Value_1.csv")
AC_TS<-ts(Month_Value[4], start=c(2015,1), frequency = 12)
AC_TS<- window(AC_TS, end=c(2020,4))
plot.ts(AC_TS,main = "Average cost (Jan 2015 – Apr 2020)", ylab = "Average_cost", xlab="Year",col='magenta');abline(h=mean(AC_TS),col="blue")
par(mfrow=c(2,2))
plot.ts(AC_TS,main = "Average cost (Jan 2015 – Apr 2020)", ylab = "Average_cost", xlab="Year",col='magenta');abline(h=mean(AC_TS),col="blue")
monthplot(AC_TS,col="magenta")
LM=40 # lag.max
acf(AC_TS, lag.max = LM, main="")
pacf(AC_TS, lag.max = LM, main="")
D12_AC <- diff(AC_TS, lag = 12)
par(mfrow=c(2,2))
plot.ts(D12_AC,col="magenta"); abline(h=mean(D12_AC),col="blue")
monthplot(D12_AC,col="magenta")
LM=40 # lag.max
acf(D12_AC, lag.max = LM, main="",col="magenta")
pacf(D12_AC, lag.max = LM, main="",col="magenta")
DD12_AC <- diff(D12_AC, lag = 1)
par(mfrow=c(2,2))
plot.ts(DD12_AC,col="magenta"); abline(h=mean(DD12_AC),col="blue")
monthplot(DD12_AC,col="magenta")
LM=40 # lag.max
acf(DD12_AC, lag.max = LM, main="",col="magenta")
pacf(DD12_AC, lag.max = LM, main="",col="magenta")
auto.arima(AC_TS)
## Series: AC_TS
## ARIMA(0,1,1)(1,0,0)[12]
##
## Coefficients:
## ma1 sar1
## -0.7688 0.3287
## s.e. 0.0875 0.1400
##
## sigma^2 = 71332: log likelihood = -441.51
## AIC=889.02 AICc=889.43 BIC=895.45
mA<-sarima(AC_TS,0,1,1,1,0,0,12,no.constant = TRUE,col = 'magenta')
## initial value 5.840333
## iter 2 value 5.637467
## iter 3 value 5.603577
## iter 4 value 5.573673
## iter 5 value 5.555560
## iter 6 value 5.554274
## iter 7 value 5.553854
## iter 8 value 5.553485
## iter 9 value 5.553041
## iter 10 value 5.553038
## iter 10 value 5.553038
## iter 10 value 5.553038
## final value 5.553038
## converged
## initial value 5.612704
## iter 2 value 5.592027
## iter 3 value 5.589483
## iter 4 value 5.589186
## iter 5 value 5.589184
## iter 6 value 5.589183
## iter 6 value 5.589183
## final value 5.589183
## converged
## <><><><><><><><><><><><><><>
##
## Coefficients:
## Estimate SE t.value p.value
## ma1 -0.7688 0.0875 -8.7902 0.0000
## sar1 0.3287 0.1400 2.3472 0.0222
##
## sigma^2 estimated as 69067.68 on 61 degrees of freedom
##
## AIC = 14.11148 AICc = 14.11466 BIC = 14.21354
##
## It is clear that residuals do satisfy assumptions.
mA$ICs
## AIC AICc BIC
## 14.11148 14.11466 14.21354
mA$t.table
## Estimate SE t.value p.value
## ma1 -0.7688 0.0875 -8.7902 0.0000
## sar1 0.3287 0.1400 2.3472 0.0222
mA_2=sarima(AC_TS,1,1,0,0,1,0,12,no.constant = TRUE,col = 'magenta')
## initial value 6.046523
## iter 2 value 5.870638
## iter 3 value 5.870481
## iter 4 value 5.870444
## iter 4 value 5.870444
## final value 5.870444
## converged
## initial value 5.867894
## iter 2 value 5.867865
## iter 3 value 5.867861
## iter 3 value 5.867861
## iter 3 value 5.867861
## final value 5.867861
## converged
## <><><><><><><><><><><><><><>
##
## Coefficients:
## Estimate SE t.value p.value
## ar1 -0.5465 0.118 -4.6295 0
##
## sigma^2 estimated as 124090.7 on 50 degrees of freedom
##
## AIC = 14.65203 AICc = 14.65363 BIC = 14.72779
##
## It is clear that residuals do not satisfy assumptions.
mA_2$ICs
## AIC AICc BIC
## 14.65203 14.65363 14.72779
mA_2$t.table
## Estimate SE t.value p.value
## ar1 -0.5465 0.118 -4.6295 0
mA_3=sarima(AC_TS,11,1,0,0,1,0,12,col = 'magenta')
## initial value 6.022301
## iter 2 value 5.916353
## iter 3 value 5.658518
## iter 4 value 5.618012
## iter 5 value 5.574839
## iter 6 value 5.546031
## iter 7 value 5.516632
## iter 8 value 5.498790
## iter 9 value 5.490830
## iter 10 value 5.487564
## iter 11 value 5.485628
## iter 12 value 5.485085
## iter 13 value 5.484731
## iter 14 value 5.484471
## iter 15 value 5.484311
## iter 16 value 5.484225
## iter 17 value 5.484191
## iter 18 value 5.484180
## iter 18 value 5.484180
## iter 18 value 5.484180
## final value 5.484180
## converged
## initial value 5.596067
## iter 2 value 5.593818
## iter 3 value 5.577463
## iter 4 value 5.571700
## iter 5 value 5.569131
## iter 6 value 5.564178
## iter 7 value 5.559193
## iter 8 value 5.555518
## iter 9 value 5.552889
## iter 10 value 5.550293
## iter 11 value 5.548181
## iter 12 value 5.545462
## iter 13 value 5.542765
## iter 14 value 5.537663
## iter 15 value 5.533433
## iter 16 value 5.529043
## iter 17 value 5.526317
## iter 18 value 5.525740
## iter 19 value 5.525009
## iter 20 value 5.524078
## iter 21 value 5.523800
## iter 22 value 5.523577
## iter 23 value 5.523494
## iter 24 value 5.523445
## iter 25 value 5.523438
## iter 26 value 5.523427
## iter 27 value 5.523426
## iter 28 value 5.523423
## iter 29 value 5.523417
## iter 30 value 5.523413
## iter 31 value 5.523411
## iter 32 value 5.523411
## iter 32 value 5.523411
## iter 32 value 5.523411
## final value 5.523411
## converged
## <><><><><><><><><><><><><><>
##
## Coefficients:
## Estimate SE t.value p.value
## ar1 -0.8857 0.1128 -7.8493 0.0000
## ar2 -0.5982 0.1517 -3.9441 0.0003
## ar3 -0.2569 0.1703 -1.5088 0.1392
## ar4 -0.0528 0.1786 -0.2956 0.7691
## ar5 -0.0888 0.1641 -0.5410 0.5915
## ar6 -0.1944 0.1582 -1.2287 0.2264
## ar7 -0.3479 0.1662 -2.0941 0.0426
## ar8 -0.0769 0.1726 -0.4455 0.6583
## ar9 0.1267 0.1760 0.7201 0.4756
## ar10 0.4830 0.1565 3.0855 0.0037
## ar11 0.5523 0.1173 4.7088 0.0000
##
## sigma^2 estimated as 55238.73 on 40 degrees of freedom
##
## AIC = 14.35529 AICc = 14.48802 BIC = 14.80983
##
mA_3$ICs
## AIC AICc BIC
## 14.35529 14.48802 14.80983
mA_3$t.table
## Estimate SE t.value p.value
## ar1 -0.8857 0.1128 -7.8493 0.0000
## ar2 -0.5982 0.1517 -3.9441 0.0003
## ar3 -0.2569 0.1703 -1.5088 0.1392
## ar4 -0.0528 0.1786 -0.2956 0.7691
## ar5 -0.0888 0.1641 -0.5410 0.5915
## ar6 -0.1944 0.1582 -1.2287 0.2264
## ar7 -0.3479 0.1662 -2.0941 0.0426
## ar8 -0.0769 0.1726 -0.4455 0.6583
## ar9 0.1267 0.1760 0.7201 0.4756
## ar10 0.4830 0.1565 3.0855 0.0037
## ar11 0.5523 0.1173 4.7088 0.0000
model_AC <- arima(AC_TS,order = c(0,1,1), seasonal = list(order=c(1,0,0), period=12))
h <- 32 # od 2020-05 do 2022-12
future <- forecast(model_AC, h =h, level = 95)
plot(future,col="magenta")
CI_future<-data.frame(future$lower,prediction=future$mean,future$upper)
CI_future<-ts(CI_future,start=c(2020,5),end = c(2022,12),frequency = 12)
CI_future
## X95. prediction X95..1
## May 2020 1394.6709 1909.764 2424.857
## Jun 2020 1379.1980 1907.874 2436.550
## Jul 2020 1427.3765 1969.295 2511.214
## Aug 2020 1565.9276 2120.773 2675.619
## Sep 2020 1398.0088 1965.487 2532.965
## Oct 2020 1245.3347 1825.170 2405.005
## Nov 2020 1231.3966 1823.331 2415.266
## Dec 2020 1183.0673 1786.859 2390.650
## Jan 2021 1344.7286 1960.149 2575.569
## Feb 2021 1215.1258 1841.959 2468.791
## Mar 2021 1146.3397 1784.381 2422.423
## Apr 2021 1276.6436 1925.700 2574.757
## May 2021 1197.0354 1907.271 2617.506
## Jun 2021 1179.0072 1906.650 2634.292
## Jul 2021 1182.1952 1926.838 2671.480
## Aug 2021 1215.3631 1976.626 2737.890
## Sep 2021 1148.0571 1925.586 2703.115
## Oct 2021 1086.0048 1879.466 2672.927
## Nov 2021 1069.7819 1878.861 2687.941
## Dec 2021 1042.4713 1866.874 2691.276
## Jan 2022 1084.3862 1923.831 2763.277
## Feb 2022 1030.7606 1884.984 2739.207
## Mar 2022 997.3090 1866.059 2734.809
## Apr 2022 1029.4707 1912.509 2795.547
## May 2022 997.8865 1906.451 2815.016
## Jun 2022 981.7175 1906.247 2830.777
## Jul 2022 972.6594 1912.883 2853.106
## Aug 2022 973.5881 1929.247 2884.907
## Sep 2022 941.6212 1912.471 2883.321
## Oct 2022 911.5055 1897.312 2883.119
## Nov 2022 896.5738 1897.114 2897.653
## Dec 2022 878.1143 1893.173 2908.232
pred<-sarima.for(AC_TS,n.ahead=32,0,1,1,1,0,0,12,col='magenta')