LOAD DATA

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

MENGUBAH DATASET TERSEBUT MENJADI DATA TIME SERIES

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 DATA TIME SERIES DATATS

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

PLOT DAN HASIL KORELASI PACF

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

DIFFERENCING 1

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

PEMODELAN DATA TIME SERIES

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

MENGHITUNG NILAI AIC

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

MENGHITUNG NILAI BIC

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

TEST DIAGNOSIS MODEL TERBAIK

#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)

PERAMALAN DATA TIME SERIES

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

MEMPREDIKSI DATASET SELAMA SATU TAHUN KEDEPAN

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