library(readxl)
library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
data = read_excel("C:/Users/naura/Downloads/Gross Income FA.xlsx")
data
## # A tibble: 178 × 1
## `gross income`
## <dbl>
## 1 29.6
## 2 18.3
## 3 9.98
## 4 13.7
## 5 3.70
## 6 1.60
## 7 8.21
## 8 11.4
## 9 16.3
## 10 14.9
## # ℹ 168 more rows
datats <- ts(data)
#Menampilkan data teratas
head(datats)
## Time Series:
## Start = 1
## End = 6
## Frequency = 1
## gross income
## [1,] 29.5830
## [2,] 18.2745
## [3,] 9.9820
## [4,] 13.7420
## [5,] 3.6980
## [6,] 1.5950
#Membaca data
View(datats)
str(datats)
## Time-Series [1:178, 1] from 1 to 178: 29.58 18.27 9.98 13.74 3.7 ...
## - attr(*, "dimnames")=List of 2
## ..$ : NULL
## ..$ : chr "gross income"
plot.ts(datats)
# PLOT DAN HASIL KORELASI ACF
acf(datats)
print(acf(datats))
##
## Autocorrelations of series 'datats', by lag
##
## 0 1 2 3 4 5 6 7 8 9 10
## 1.000 -0.153 0.084 -0.153 0.154 0.038 -0.133 -0.038 0.020 -0.005 -0.082
## 11 12 13 14 15 16 17 18 19 20 21
## -0.072 -0.076 0.011 -0.018 0.006 -0.085 0.017 0.117 0.047 -0.032 0.111
## 22
## 0.031
pacf(datats)
print(pacf(datats))
##
## Partial autocorrelations of series 'datats', by lag
##
## 1 2 3 4 5 6 7 8 9 10 11
## -0.153 0.062 -0.135 0.114 0.095 -0.161 -0.049 0.032 -0.057 -0.074 -0.054
## 12 13 14 15 16 17 18 19 20 21 22
## -0.126 -0.038 0.003 -0.007 -0.091 -0.023 0.112 0.044 -0.031 0.145 0.009
datadiff1 <- diff(datats, differences = 1)
datadiff1
## Time Series:
## Start = 2
## End = 178
## Frequency = 1
## gross income
## [1,] -11.3085
## [2,] -8.2925
## [3,] 3.7600
## [4,] -10.0440
## [5,] -2.1030
## [6,] 6.6190
## [7,] 3.1950
## [8,] 4.9270
## [9,] -1.4365
## [10,] 14.3835
## [11,] -12.4935
## [12,] -2.5110
## [13,] -13.6395
## [14,] 31.9760
## [15,] -14.4535
## [16,] 3.9065
## [17,] -12.4330
## [18,] 5.1610
## [19,] 13.1550
## [20,] -23.4665
## [21,] 4.5200
## [22,] 5.7055
## [23,] 26.9150
## [24,] -35.6390
## [25,] -2.2715
## [26,] -0.0985
## [27,] 24.4040
## [28,] -3.8450
## [29,] -16.8230
## [30,] 0.4900
## [31,] -5.2740
## [32,] 10.6545
## [33,] 8.0365
## [34,] -16.0150
## [35,] 24.4860
## [36,] -4.1780
## [37,] -19.3040
## [38,] -4.7175
## [39,] 14.3735
## [40,] -11.4190
## [41,] 30.1870
## [42,] -20.6890
## [43,] -0.1160
## [44,] -7.7710
## [45,] 6.6345
## [46,] -11.9590
## [47,] 2.9335
## [48,] 15.2700
## [49,] -9.7625
## [50,] -1.0755
## [51,] -7.5325
## [52,] 2.6450
## [53,] -2.1835
## [54,] 23.2655
## [55,] -5.3335
## [56,] -13.0430
## [57,] 0.5690
## [58,] 6.1000
## [59,] 24.8340
## [60,] -6.3680
## [61,] -24.1820
## [62,] 13.6280
## [63,] 18.9440
## [64,] -20.3960
## [65,] 2.4810
## [66,] -12.6190
## [67,] -0.6110
## [68,] 10.9200
## [69,] -16.5660
## [70,] 4.5150
## [71,] 2.5220
## [72,] -2.7930
## [73,] -5.4020
## [74,] 1.3650
## [75,] 16.5000
## [76,] -3.4685
## [77,] 8.2365
## [78,] -11.1260
## [79,] -4.4250
## [80,] 39.9920
## [81,] -46.9290
## [82,] 47.8140
## [83,] -48.5050
## [84,] 21.5060
## [85,] -13.9005
## [86,] 17.0925
## [87,] -6.9055
## [88,] -3.7075
## [89,] 15.9900
## [90,] 6.8880
## [91,] -35.3305
## [92,] 5.2610
## [93,] 1.4195
## [94,] -1.9080
## [95,] 18.1040
## [96,] -17.7030
## [97,] 4.2810
## [98,] 37.5780
## [99,] -37.6140
## [100,] 22.1905
## [101,] -29.6590
## [102,] 11.8620
## [103,] -9.6225
## [104,] 6.7260
## [105,] 17.3860
## [106,] -21.0710
## [107,] 4.9160
## [108,] -14.1370
## [109,] 23.8125
## [110,] -15.6945
## [111,] 1.1925
## [112,] -7.5655
## [113,] 6.0050
## [114,] 6.2330
## [115,] 8.9225
## [116,] -13.5435
## [117,] -7.2165
## [118,] -0.6245
## [119,] 32.9205
## [120,] -25.1835
## [121,] -2.0220
## [122,] 1.4570
## [123,] 11.2250
## [124,] 14.8025
## [125,] -30.8835
## [126,] 23.9945
## [127,] -24.4055
## [128,] 19.0695
## [129,] -20.8020
## [130,] 19.7115
## [131,] -16.5470
## [132,] 5.5700
## [133,] -2.8640
## [134,] -3.1990
## [135,] -1.7020
## [136,] 12.1525
## [137,] 3.3325
## [138,] 3.8130
## [139,] -21.7740
## [140,] 32.6250
## [141,] 5.4770
## [142,] -30.1490
## [143,] -1.9060
## [144,] 12.0730
## [145,] -14.0580
## [146,] -2.0510
## [147,] 4.8350
## [148,] -4.1900
## [149,] 15.6855
## [150,] -14.6915
## [151,] 25.3410
## [152,] -19.9750
## [153,] -7.1120
## [154,] 16.7340
## [155,] -1.8570
## [156,] -12.9960
## [157,] -2.0255
## [158,] 7.5945
## [159,] 31.1470
## [160,] -40.5400
## [161,] 33.6050
## [162,] -24.4550
## [163,] 25.5700
## [164,] -33.8135
## [165,] 1.8925
## [166,] 20.0125
## [167,] -5.2785
## [168,] -10.8780
## [169,] 10.1950
## [170,] 1.5050
## [171,] -16.6945
## [172,] 3.7565
## [173,] -3.5730
## [174,] 42.3000
## [175,] -40.3635
## [176,] 20.4555
## [177,] -20.9390
#Menampilkan plot time series datadiff1
plot.ts(datadiff1)
#Menampilkan plot dan hasil korelasi acf
acf(datadiff1, lag.max = 20)
acf(datadiff1, lag.max = 20, plot = FALSE)
##
## Autocorrelations of series 'datadiff1', by lag
##
## 0 1 2 3 4 5 6 7 8 9 10
## 1.000 -0.599 0.205 -0.230 0.179 0.025 -0.119 0.018 0.035 0.021 -0.040
## 11 12 13 14 15 16 17 18 19 20
## 0.011 -0.042 0.054 -0.026 0.049 -0.080 -0.002 0.080 -0.005 -0.092
#Menampilkan plot dan hasil korelasi pacf
pacf(datadiff1, lag.max = 20)
pacf(datadiff1, lag.max = 20, plot = FALSE)
##
## Partial autocorrelations of series 'datadiff1', by lag
##
## 1 2 3 4 5 6 7 8 9 10 11
## -0.599 -0.241 -0.368 -0.244 0.028 -0.101 -0.158 -0.053 -0.042 -0.069 -0.002
## 12 13 14 15 16 17 18 19 20
## -0.097 -0.113 -0.077 0.005 -0.062 -0.164 -0.053 0.022 -0.139
fit1 = arima(datadiff1, order = c(1, 1, 0))
fit2 = arima(datadiff1, order = c(0, 1, 1))
fit3 = arima(datadiff1, order = c(1, 1, 1))
fit4 = arima(datadiff1, order = c(2, 1, 0))
fit5 = arima(datadiff1, order = c(2, 1, 1))
fit5 = arima(datadiff1, order = c(2, 1, 1))
fit6 = arima(datadiff1, order = c(8, 1, 5))
#Menampilkan pemodelan
fit1
##
## Call:
## arima(x = datadiff1, order = c(1, 1, 0))
##
## Coefficients:
## ar1
## -0.7518
## s.e. 0.0494
##
## sigma^2 estimated as 428.8: log likelihood = -783.51, aic = 1571.02
fit2
##
## Call:
## arima(x = datadiff1, order = c(0, 1, 1))
##
## Coefficients:
## ma1
## -1.000
## s.e. 0.014
##
## sigma^2 estimated as 309.9: log likelihood = -757.12, aic = 1518.24
fit3
##
## Call:
## arima(x = datadiff1, order = c(1, 1, 1))
##
## Coefficients:
## ar1 ma1
## -0.5993 -1.0000
## s.e. 0.0602 0.0142
##
## sigma^2 estimated as 197.5: log likelihood = -718.15, aic = 1442.31
fit4
##
## Call:
## arima(x = datadiff1, order = c(2, 1, 0))
##
## Coefficients:
## ar1 ar2
## -1.0536 -0.4044
## s.e. 0.0687 0.0693
##
## sigma^2 estimated as 358.8: log likelihood = -768, aic = 1542
fit5
##
## Call:
## arima(x = datadiff1, order = c(2, 1, 1))
##
## Coefficients:
## ar1 ar2 ma1
## -0.7447 -0.2395 -1.0000
## s.e. 0.0734 0.0735 0.0143
##
## sigma^2 estimated as 185.7: log likelihood = -713.01, aic = 1434.03
fit6
##
## Call:
## arima(x = datadiff1, order = c(8, 1, 5))
##
## Coefficients:
## ar1 ar2 ar3 ar4 ar5 ar6 ar7 ar8
## -0.5970 -0.1455 0.0767 0.1273 0.1352 -0.0697 -0.1297 -0.0273
## s.e. 2.4465 1.3315 1.1723 0.3985 0.4444 0.1234 0.8287 0.2663
## ma1 ma2 ma3 ma4 ma5
## -1.4982 0.2063 -0.0784 0.5398 -0.1691
## s.e. 2.7034 6.5632 4.8386 0.6673 0.7756
##
## sigma^2 estimated as 123.1: log likelihood = -681.76, aic = 1391.51
accuracy(fit6)
## ME RMSE MAE MPE MAPE MASE
## Training set 0.3356634 11.06346 8.971737 142.9016 240.1677 0.3657243
## ACF1
## Training set -0.003477427
fit1$aic
## [1] 1571.019
fit2$aic
## [1] 1518.239
fit3$aic
## [1] 1442.31
fit4$aic
## [1] 1542.004
fit5$aic
## [1] 1434.029
fit6$aic
## [1] 1391.512
BIC(fit1)
## [1] 1577.36
BIC(fit2)
## [1] 1524.58
BIC(fit3)
## [1] 1451.821
BIC(fit4)
## [1] 1551.516
BIC(fit5)
## [1] 1446.711
BIC(fit6)
## [1] 1435.899
#Pemodelan terbaik, yaitu pada fit6 karena nilai AIC = 1391.512 dan BIC = 1435.899 karena dari plot histogram dan p value nya bagus
tsdiag(fit6)
library(forecast)
df1 = forecast(fit6)
plot(df1)
plot.ts(df1$residuals)
Box.test(df1$residuals)
##
## Box-Pierce test
##
## data: df1$residuals
## X-squared = 0.0021404, df = 1, p-value = 0.9631
hist(df1$residuals)
checkresiduals(fit6)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(8,1,5)
## Q* = 4.8448, df = 3, p-value = 0.1835
##
## Model df: 13. Total lags used: 16
predict(fit6, n.ahead = 12)
## $pred
## Time Series:
## Start = 179
## End = 190
## Frequency = 1
## [1] 18.9089116 -8.4967392 -1.5855281 0.3760617 1.5755898 0.2580497
## [7] -0.8744816 -0.8589569 1.5984458 -0.2478071 -0.3511511 -0.1008968
##
## $se
## Time Series:
## Start = 179
## End = 190
## Frequency = 1
## [1] 11.13700 16.45425 16.62867 16.88378 17.29696 17.37686 17.47836 17.50753
## [9] 17.52275 17.52393 17.52677 17.52732
fit6$var.coef
## ar1 ar2 ar3 ar4 ar5 ar6
## ar1 5.9853836 -3.09054603 -2.75563514 0.94247547 -1.05626246 -0.12709660
## ar2 -3.0905460 1.77295920 1.47423639 -0.49945626 0.56335742 0.04233909
## ar3 -2.7556351 1.47423639 1.37430742 -0.42514579 0.48367610 0.06140909
## ar4 0.9424755 -0.49945626 -0.42514579 0.15876995 -0.16434849 -0.01605707
## ar5 -1.0562625 0.56335742 0.48367610 -0.16434849 0.19747547 0.02343001
## ar6 -0.1270966 0.04233909 0.06140909 -0.01605707 0.02343001 0.01521793
## ar7 2.0030288 -1.05970660 -0.94952609 0.31516801 -0.35264098 -0.03684929
## ar8 0.5892216 -0.28877957 -0.28938450 0.08891204 -0.10010400 -0.01558758
## ma1 -6.6164770 3.42750346 3.05932986 -1.04034161 1.17031104 0.14274315
## ma2 16.0177338 -8.45585932 -7.43364217 2.53660723 -2.84668560 -0.31789118
## ma3 -11.6678395 6.34144677 5.37656606 -1.87228264 2.10037132 0.19553966
## ma4 0.5181178 -0.38147576 -0.10471766 0.10641669 -0.12185616 0.02196842
## ma5 1.7488118 -0.93194958 -0.89781597 0.26969137 -0.30217291 -0.04232065
## ar7 ar8 ma1 ma2 ma3 ma4
## ar1 2.00302880 0.589221643 -6.6164770 16.0177338 -11.6678395 0.518117849
## ar2 -1.05970660 -0.288779565 3.4275035 -8.4558593 6.3414468 -0.381475764
## ar3 -0.94952609 -0.289384499 3.0593299 -7.4336422 5.3765661 -0.104717664
## ar4 0.31516801 0.088912045 -1.0403416 2.5366072 -1.8722826 0.106416693
## ar5 -0.35264098 -0.100104002 1.1703110 -2.8466856 2.1003713 -0.121856164
## ar6 -0.03684929 -0.015587577 0.1427432 -0.3178912 0.1955397 0.021968416
## ar7 0.68675162 0.203766012 -2.2156665 5.3874321 -3.9315271 0.150459265
## ar8 0.20376601 0.070908575 -0.6512975 1.5611690 -1.0991115 -0.002270897
## ma1 -2.21566651 -0.651297502 7.3085284 -17.7214984 12.9136238 -0.557150754
## ma2 5.38743209 1.561169043 -17.7214984 43.0752882 -31.5626971 1.493094471
## ma3 -3.93152705 -1.099111528 12.9136238 -31.5626971 23.4121962 -1.385541439
## ma4 0.15045926 -0.002270897 -0.5571508 1.4930945 -1.3855414 0.445339572
## ma5 0.60949475 0.191573037 -1.9439046 4.7169058 -3.3784643 0.004213638
## ma5
## ar1 1.748811776
## ar2 -0.931949578
## ar3 -0.897815973
## ar4 0.269691368
## ar5 -0.302172908
## ar6 -0.042320648
## ar7 0.609494753
## ar8 0.191573037
## ma1 -1.943904639
## ma2 4.716905812
## ma3 -3.378464306
## ma4 0.004213638
## ma5 0.601487737
mean(datats)
## [1] 14.52806
forecast(fit6, h = 12)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 179 18.9089116 4.63627 33.18155 -2.91921 40.73703
## 180 -8.4967392 -29.58371 12.59023 -40.74648 23.75300
## 181 -1.5855281 -22.89603 19.72497 -34.17712 31.00607
## 182 0.3760617 -21.26137 22.01350 -32.71554 33.46766
## 183 1.5755898 -20.59136 23.74254 -32.32583 35.47701
## 184 0.2580497 -22.01129 22.52739 -33.79997 34.31607
## 185 -0.8744816 -23.27390 21.52494 -35.13144 33.38247
## 186 -0.8589569 -23.29576 21.57784 -35.17308 33.45517
## 187 1.5984458 -20.85787 24.05476 -32.74552 35.94241
## 188 -0.2478071 -22.70563 22.21001 -34.59408 34.09846
## 189 -0.3511511 -22.81261 22.11031 -34.70298 34.00068
## 190 -0.1008968 -22.56306 22.36126 -34.45381 34.25201