MPDW
Pertemuan 1
Library / Packages
Package R yang akan digunakan pada perkuliahan Analisis
Deret Waktu sesi UTS adalah: forecast
,
graphics
, TTR
, TSA
. Jika
package tersebut belum ada, silakan install terlebih
dahulu.
#install.packages("forecast")
#install.packages("graphics")
#install.packages("TTR")
#install.packages("TSA")
Jika sudah ada, silakan panggil library package tersebut.
## Warning: package 'forecast' was built under R version 4.3.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## Warning: package 'TSA' was built under R version 4.3.3
## Registered S3 methods overwritten by 'TSA':
## method from
## fitted.Arima forecast
## plot.Arima forecast
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
Impor Data
Eksplorasi Data
Melihat data menggunakan fungsi View()
, struktur data
menggunakan fungsi str()
, dan dimensi data menggunakan
fungsi dim()
.
## 'data.frame': 50 obs. of 2 variables:
## $ Periode: int 1 2 3 4 5 6 7 8 9 10 ...
## $ Yt : num 48.7 45.8 46.4 46.2 44 53.8 47.6 47 47.6 51.1 ...
## [1] 50 2
Mengubah data agar terbaca sebagai data deret waktu dengan fungsi
ts()
.
Menampilkan ringkasan data
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 43.30 46.40 48.65 48.92 51.55 54.80
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 9815 10210 10392 10379 10535 10827
Membuat plot data deret waktu
ts.plot(data2.ts, xlab="Time Period ", ylab="Sales",
main = "Time Series Plot of Sales")
points(data2.ts)
Menyimpan plot
Single Moving Average & Double Moving Average
Pembagian Data
Pembagian data latih dan data uji dilakukan dengan perbandingan 80% data latih dan 20% data uji.
Eksplorasi Data
Eksplorasi data dilakukan pada keseluruhan data, data latih serta data uji menggunakan plot data deret waktu.
Eksplorasi data juga dapat dilakukan menggunakan package
ggplot2
dengan terlebih dahulu memanggil library
package ggplot2
.
#Eksplorasi dengan GGPLOT
library(ggplot2)
ggplot() +
geom_line(data = training_ma, aes(x = Period, y = Sales, col = "Data Latih")) +
geom_line(data = testing_ma, aes(x = Period, y = Sales, col = "Data Uji")) +
labs(x = "Periode Waktu", y = "Sales", color = "Legend") +
scale_colour_manual(name="Keterangan:", breaks = c("Data Latih", "Data Uji"),
values = c("blue", "red")) +
theme_bw() + theme(legend.position = "bottom",
plot.caption = element_text(hjust=0.5, size=12))
Single Moving Average (SMA)
Ide dasar dari Single Moving Average (SMA) adalah data suatu periode dipengaruhi oleh data periode sebelumnya. Metode pemulusan ini cocok digunakan untuk pola data stasioner atau konstan. Prinsip dasar metode pemulusan ini adalah data pemulusan pada periode ke-t merupakan rata rata dari m buah data pada periode ke-t hingga periode ke (t-m+1). Data pemulusan pada periode ke-t selanjutnya digunakan sebagai nilai peramalan pada periode ke t+1
Pemulusan menggunakan metode SMA dilakukan dengan fungsi
SMA()
. Dalam hal ini akan dilakukan pemulusan dengan
parameter m=4
.
## Time Series:
## Start = 1
## End = 96
## Frequency = 1
## [1] NA NA NA 10479.58 10308.78 10307.93 10304.73 10294.43
## [9] 10333.10 10292.28 10303.00 10293.15 10477.55 10544.95 10614.55 10535.00
## [17] 10320.50 10225.40 10280.20 10349.15 10529.10 10571.60 10387.95 10314.38
## [25] 10166.18 10130.75 10202.43 10315.98 10429.90 10409.80 10421.15 10393.70
## [33] 10352.63 10351.20 10322.40 10298.05 10406.28 10445.30 10514.13 10542.85
## [41] 10445.60 10467.88 10515.33 10435.05 10481.18 10526.15 10526.05 10543.60
## [49] 10455.85 10321.53 10120.80 10171.55 10174.38 10195.58 10278.43 10264.88
## [57] 10332.28 10447.40 10460.58 10499.60 10497.68 10410.30 10386.83 10347.20
## [65] 10253.23 10222.80 10261.73 10254.73 10403.13 10477.90 10416.28 10444.90
## [73] 10251.15 10145.05 10186.45 10158.55 10274.90 10398.93 10534.13 10436.08
## [81] 10364.73 10336.43 10329.00 10451.00 10487.53 10415.68 10278.30 10284.35
## [89] 10273.18 10435.98 10477.90 10386.75 10436.85 10291.75 10328.58 10361.03
Data pemulusan pada periode ke-t selanjutnya digunakan sebagai nilai peramalan pada periode ke t+1 sehingga hasil peramalan 1 periode kedepan adalah sebagai berikut.
## [1] NA NA NA NA 10479.58 10308.78 10307.93 10304.73
## [9] 10294.43 10333.10 10292.28 10303.00 10293.15 10477.55 10544.95 10614.55
## [17] 10535.00 10320.50 10225.40 10280.20 10349.15 10529.10 10571.60 10387.95
## [25] 10314.38 10166.18 10130.75 10202.43 10315.98 10429.90 10409.80 10421.15
## [33] 10393.70 10352.63 10351.20 10322.40 10298.05 10406.28 10445.30 10514.13
## [41] 10542.85 10445.60 10467.88 10515.33 10435.05 10481.18 10526.15 10526.05
## [49] 10543.60 10455.85 10321.53 10120.80 10171.55 10174.38 10195.58 10278.43
## [57] 10264.88 10332.28 10447.40 10460.58 10499.60 10497.68 10410.30 10386.83
## [65] 10347.20 10253.23 10222.80 10261.73 10254.73 10403.13 10477.90 10416.28
## [73] 10444.90 10251.15 10145.05 10186.45 10158.55 10274.90 10398.93 10534.13
## [81] 10436.08 10364.73 10336.43 10329.00 10451.00 10487.53 10415.68 10278.30
## [89] 10284.35 10273.18 10435.98 10477.90 10386.75 10436.85 10291.75 10328.58
## [97] 10361.03
Selanjutnya akan dilakukan peramalan sejumlah data uji yaitu 24 periode. Pada metode SMA, hasil peramalan 24 periode ke depan akan bernilai sama dengan hasil peramalan 1 periode kedepan. Dalam hal ini akan dilakukan pengguabungan data aktual train, data hasil pemulusan dan data hasil ramalan 24 periode kedepan.
data.gab<-cbind(aktual=c(train_ma.ts,rep(NA,24)),pemulusan=c(data.sma,rep(NA,24)),ramalan=c(data.ramal,rep(data.ramal[length(data.ramal)],23)))
data.gab #forecast 24 periode ke depan
## aktual pemulusan ramalan
## [1,] 10618.1 NA NA
## [2,] 10537.9 NA NA
## [3,] 10209.3 NA NA
## [4,] 10553.0 10479.58 NA
## [5,] 9934.9 10308.78 10479.58
## [6,] 10534.5 10307.93 10308.78
## [7,] 10196.5 10304.73 10307.93
## [8,] 10511.8 10294.43 10304.73
## [9,] 10089.6 10333.10 10294.43
## [10,] 10371.2 10292.28 10333.10
## [11,] 10239.4 10303.00 10292.28
## [12,] 10472.4 10293.15 10303.00
## [13,] 10827.2 10477.55 10293.15
## [14,] 10640.8 10544.95 10477.55
## [15,] 10517.8 10614.55 10544.95
## [16,] 10154.2 10535.00 10614.55
## [17,] 9969.2 10320.50 10535.00
## [18,] 10260.4 10225.40 10320.50
## [19,] 10737.0 10280.20 10225.40
## [20,] 10430.0 10349.15 10280.20
## [21,] 10689.0 10529.10 10349.15
## [22,] 10430.4 10571.60 10529.10
## [23,] 10002.4 10387.95 10571.60
## [24,] 10135.7 10314.38 10387.95
## [25,] 10096.2 10166.18 10314.38
## [26,] 10288.7 10130.75 10166.18
## [27,] 10289.1 10202.43 10130.75
## [28,] 10589.9 10315.98 10202.43
## [29,] 10551.9 10429.90 10315.98
## [30,] 10208.3 10409.80 10429.90
## [31,] 10334.5 10421.15 10409.80
## [32,] 10480.1 10393.70 10421.15
## [33,] 10387.6 10352.63 10393.70
## [34,] 10202.6 10351.20 10352.63
## [35,] 10219.3 10322.40 10351.20
## [36,] 10382.7 10298.05 10322.40
## [37,] 10820.5 10406.28 10298.05
## [38,] 10358.7 10445.30 10406.28
## [39,] 10494.6 10514.13 10445.30
## [40,] 10497.6 10542.85 10514.13
## [41,] 10431.5 10445.60 10542.85
## [42,] 10447.8 10467.88 10445.60
## [43,] 10684.4 10515.33 10467.88
## [44,] 10176.5 10435.05 10515.33
## [45,] 10616.0 10481.18 10435.05
## [46,] 10627.7 10526.15 10481.18
## [47,] 10684.0 10526.05 10526.15
## [48,] 10246.7 10543.60 10526.05
## [49,] 10265.0 10455.85 10543.60
## [50,] 10090.4 10321.53 10455.85
## [51,] 9881.1 10120.80 10321.53
## [52,] 10449.7 10171.55 10120.80
## [53,] 10276.3 10174.38 10171.55
## [54,] 10175.2 10195.58 10174.38
## [55,] 10212.5 10278.43 10195.58
## [56,] 10395.5 10264.88 10278.43
## [57,] 10545.9 10332.28 10264.88
## [58,] 10635.7 10447.40 10332.28
## [59,] 10265.2 10460.58 10447.40
## [60,] 10551.6 10499.60 10460.58
## [61,] 10538.2 10497.68 10499.60
## [62,] 10286.2 10410.30 10497.68
## [63,] 10171.3 10386.83 10410.30
## [64,] 10393.1 10347.20 10386.83
## [65,] 10162.3 10253.23 10347.20
## [66,] 10164.5 10222.80 10253.23
## [67,] 10327.0 10261.73 10222.80
## [68,] 10365.1 10254.73 10261.73
## [69,] 10755.9 10403.13 10254.73
## [70,] 10463.6 10477.90 10403.13
## [71,] 10080.5 10416.28 10477.90
## [72,] 10479.6 10444.90 10416.28
## [73,] 9980.9 10251.15 10444.90
## [74,] 10039.2 10145.05 10251.15
## [75,] 10246.1 10186.45 10145.05
## [76,] 10368.0 10158.55 10186.45
## [77,] 10446.3 10274.90 10158.55
## [78,] 10535.3 10398.93 10274.90
## [79,] 10786.9 10534.13 10398.93
## [80,] 9975.8 10436.08 10534.13
## [81,] 10160.9 10364.73 10436.08
## [82,] 10422.1 10336.43 10364.73
## [83,] 10757.2 10329.00 10336.43
## [84,] 10463.8 10451.00 10329.00
## [85,] 10307.0 10487.53 10451.00
## [86,] 10134.7 10415.68 10487.53
## [87,] 10207.7 10278.30 10415.68
## [88,] 10488.0 10284.35 10278.30
## [89,] 10262.3 10273.18 10284.35
## [90,] 10785.9 10435.98 10273.18
## [91,] 10375.4 10477.90 10435.98
## [92,] 10123.4 10386.75 10477.90
## [93,] 10462.7 10436.85 10386.75
## [94,] 10205.5 10291.75 10436.85
## [95,] 10522.7 10328.58 10291.75
## [96,] 10253.2 10361.03 10328.58
## [97,] NA NA 10361.03
## [98,] NA NA 10361.03
## [99,] NA NA 10361.03
## [100,] NA NA 10361.03
## [101,] NA NA 10361.03
## [102,] NA NA 10361.03
## [103,] NA NA 10361.03
## [104,] NA NA 10361.03
## [105,] NA NA 10361.03
## [106,] NA NA 10361.03
## [107,] NA NA 10361.03
## [108,] NA NA 10361.03
## [109,] NA NA 10361.03
## [110,] NA NA 10361.03
## [111,] NA NA 10361.03
## [112,] NA NA 10361.03
## [113,] NA NA 10361.03
## [114,] NA NA 10361.03
## [115,] NA NA 10361.03
## [116,] NA NA 10361.03
## [117,] NA NA 10361.03
## [118,] NA NA 10361.03
## [119,] NA NA 10361.03
## [120,] NA NA 10361.03
Adapun plot data deret waktu dari hasil peramalan yang dilakukan adalah sebagai berikut.
ts.plot(data2.ts, xlab="Time Period ", ylab="Sales", main= "SMA N=4 Data Sales")
points(data2.ts)
lines(data.gab[,2],col="green",lwd=2)
lines(data.gab[,3],col="red",lwd=2)
legend("topleft",c("data aktual","data pemulusan","data peramalan"), lty=8, col=c("black","green","red"), cex=0.5)
Selanjutnya perhitungan akurasi dilakukan dengan ukuran akurasi Sum Squares Error (SSE), Mean Square Error (MSE) dan Mean Absolute Percentage Error (MAPE). Perhitungan akurasi dilakukan baik pada data latih maupun pada data uji.
#Menghitung nilai keakuratan data latih
error_train.sma = train_ma.ts-data.ramal[1:length(train_ma.ts)]
SSE_train.sma = sum(error_train.sma[5:length(train_ma.ts)]^2)
MSE_train.sma = mean(error_train.sma[5:length(train_ma.ts)]^2)
MAPE_train.sma = mean(abs((error_train.sma[5:length(train_ma.ts)]/train_ma.ts[5:length(train_ma.ts)])*100))
akurasi_train.sma <- matrix(c(SSE_train.sma, MSE_train.sma, MAPE_train.sma))
row.names(akurasi_train.sma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_train.sma) <- c("Akurasi m = 4")
akurasi_train.sma
## Akurasi m = 4
## SSE 6.396116e+06
## MSE 6.952300e+04
## MAPE 2.049321e+00
Dalam hal ini nilai MAPE data latih pada metode pemulusan SMA kurang dari 2%, nilai ini dapat dikategorikan sebagai nilai akurasi yang sangat baik. Selanjutnya dilakukan perhitungan nilai MAPE data uji pada metde pemulusan SMA.
#Menghitung nilai keakuratan data uji
error_test.sma = test_ma.ts-data.gab[97:120,3]
SSE_test.sma = sum(error_test.sma^2)
MSE_test.sma = mean(error_test.sma^2)
MAPE_test.sma = mean(abs((error_test.sma/test_ma.ts*100)))
akurasi_test.sma <- matrix(c(SSE_test.sma, MSE_test.sma, MAPE_test.sma))
row.names(akurasi_test.sma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_test.sma) <- c("Akurasi m = 4")
akurasi_test.sma
## Akurasi m = 4
## SSE 1.068022e+06
## MSE 4.450094e+04
## MAPE 1.591089e+00
Perhitungan akurasi menggunakan data latih menghasilkan nilai MAPE yang kurang dari 10% sehingga nilai akurasi ini dapat dikategorikan sebagai sangat baik.
Double Moving Average (DMA)
Metode pemulusan Double Moving Average (DMA) pada dasarnya mirip dengan SMA. Namun demikian, metode ini lebih cocok digunakan untuk pola data trend. Proses pemulusan dengan rata rata dalam metode ini dilakukan sebanyak 2 kali.
dma <- SMA(data.sma, n = 4)
At <- 2*data.sma - dma
Bt <- 2/(4-1)*(data.sma - dma)
data.dma<- At+Bt
data.ramal2<- c(NA, data.dma)
t = 1:24
f = c()
for (i in t) {
f[i] = At[length(At)] + Bt[length(Bt)]*(i)
}
data.gab2 <- cbind(aktual = c(train_ma.ts,rep(NA,24)), pemulusan1 = c(data.sma,rep(NA,24)),pemulusan2 = c(data.dma, rep(NA,24)),At = c(At, rep(NA,24)), Bt = c(Bt,rep(NA,24)),ramalan = c(data.ramal2, f[-1]))
data.gab2
## aktual pemulusan1 pemulusan2 At Bt ramalan
## [1,] 10618.1 NA NA NA NA NA
## [2,] 10537.9 NA NA NA NA NA
## [3,] 10209.3 NA NA NA NA NA
## [4,] 10553.0 10479.58 NA NA NA NA
## [5,] 9934.9 10308.78 NA NA NA NA
## [6,] 10534.5 10307.93 NA NA NA NA
## [7,] 10196.5 10304.73 10228.850 10259.200 -30.3500000 NA
## [8,] 10511.8 10294.43 10278.529 10284.888 -6.3583333 10228.850
## [9,] 10089.6 10333.10 10371.527 10356.156 15.3708333 10278.529
## [10,] 10371.2 10292.28 10269.181 10278.419 -9.2375000 10371.527
## [11,] 10239.4 10303.00 10298.500 10300.300 -1.8000000 10269.181
## [12,] 10472.4 10293.15 10272.765 10280.919 -8.1541667 10298.500
## [13,] 10827.2 10477.55 10704.310 10613.606 90.7041667 10272.765
## [14,] 10640.8 10544.95 10778.763 10685.238 93.5250000 10704.310
## [15,] 10517.8 10614.55 10834.550 10746.550 88.0000000 10778.763
## [16,] 10154.2 10535.00 10521.646 10526.988 -5.3416667 10834.550
## [17,] 9969.2 10320.50 10015.083 10137.250 -122.1666667 10521.646
## [18,] 10260.4 10225.40 9894.629 10026.938 -132.3083333 10015.083
## [19,] 10737.0 10280.20 10180.075 10220.125 -40.0500000 9894.629
## [20,] 10430.0 10349.15 10441.379 10404.488 36.8916667 10180.075
## [21,] 10689.0 10529.10 10834.329 10712.238 122.0916667 10441.379
## [22,] 10430.4 10571.60 10803.413 10710.688 92.7250000 10834.329
## [23,] 10002.4 10387.95 10268.783 10316.450 -47.6666667 10803.413
## [24,] 10135.7 10314.38 10087.073 10177.994 -90.9208333 10268.783
## [25,] 10096.2 10166.18 9843.092 9972.325 -129.2333333 10087.073
## [26,] 10288.7 10130.75 9932.313 10011.688 -79.3750000 9843.092
## [27,] 10289.1 10202.43 10200.748 10201.419 -0.6708333 9932.313
## [28,] 10589.9 10315.98 10502.881 10428.119 74.7625000 10200.748
## [29,] 10551.9 10429.90 10696.796 10590.038 106.7583333 10502.881
## [30,] 10208.3 10409.80 10526.925 10480.075 46.8500000 10696.796
## [31,] 10334.5 10421.15 10466.056 10448.094 17.9625000 10526.925
## [32,] 10480.1 10393.70 10360.471 10373.763 -13.2916667 10466.056
## [33,] 10387.6 10352.63 10283.135 10310.931 -27.7958333 10360.471
## [34,] 10202.6 10351.20 10303.752 10322.731 -18.9791667 10283.135
## [35,] 10219.3 10322.40 10268.098 10289.819 -21.7208333 10303.752
## [36,] 10382.7 10298.05 10243.019 10265.031 -22.0125000 10268.098
## [37,] 10820.5 10406.28 10509.265 10468.069 41.1958333 10243.019
## [38,] 10358.7 10445.30 10574.123 10522.594 51.5291667 10509.265
## [39,] 10494.6 10514.13 10677.771 10612.313 65.4583333 10574.123
## [40,] 10497.6 10542.85 10652.371 10608.563 43.8083333 10677.771
## [41,] 10431.5 10445.60 10376.652 10404.231 -27.5791667 10652.371
## [42,] 10447.8 10467.88 10426.646 10443.138 -16.4916667 10376.652
## [43,] 10684.4 10515.33 10552.679 10537.738 14.9416667 10426.646
## [44,] 10176.5 10435.05 10383.529 10404.138 -20.6083333 10552.679
## [45,] 10616.0 10481.18 10491.706 10487.494 4.2125000 10383.529
## [46,] 10627.7 10526.15 10587.358 10562.875 24.4833333 10491.706
## [47,] 10684.0 10526.05 10582.623 10559.994 22.6291667 10587.358
## [48,] 10246.7 10543.60 10584.194 10567.956 16.2375000 10582.623
## [49,] 10265.0 10455.85 10360.746 10398.788 -38.0416667 10584.194
## [50,] 10090.4 10321.53 10087.806 10181.294 -93.4875000 10360.746
## [51,] 9881.1 10120.80 9721.394 9881.156 -159.7625000 10087.806
## [52,] 10449.7 10171.55 10011.748 10075.669 -63.9208333 9721.394
## [53,] 10276.3 10174.38 10136.563 10151.688 -15.1250000 10011.748
## [54,] 10175.2 10195.58 10245.575 10225.575 20.0000000 10136.563
## [55,] 10212.5 10278.43 10400.831 10351.869 48.9625000 10245.575
## [56,] 10395.5 10264.88 10325.813 10301.438 24.3750000 10400.831
## [57,] 10545.9 10332.28 10439.754 10396.763 42.9916667 10325.813
## [58,] 10635.7 10447.40 10641.827 10564.056 77.7708333 10439.754
## [59,] 10265.2 10460.58 10601.065 10544.869 56.1958333 10641.827
## [60,] 10551.6 10499.60 10607.329 10564.238 43.0916667 10601.065
## [61,] 10538.2 10497.68 10533.279 10519.038 14.2416667 10607.329
## [62,] 10286.2 10410.30 10315.738 10353.563 -37.8250000 10533.279
## [63,] 10171.3 10386.83 10283.867 10325.050 -41.1833333 10315.738
## [64,] 10393.1 10347.20 10241.700 10283.900 -42.2000000 10283.867
## [65,] 10162.3 10253.23 10092.954 10157.063 -64.1083333 10241.700
## [66,] 10164.5 10222.80 10089.946 10143.088 -53.1416667 10092.954
## [67,] 10327.0 10261.73 10245.871 10252.213 -6.3416667 10089.946
## [68,] 10365.1 10254.73 10265.735 10261.331 4.4041667 10245.871
## [69,] 10755.9 10403.13 10599.010 10520.656 78.3541667 10265.735
## [70,] 10463.6 10477.90 10692.119 10606.431 85.6875000 10599.010
## [71,] 10080.5 10416.28 10463.390 10444.544 18.8458333 10692.119
## [72,] 10479.6 10444.90 10460.483 10454.250 6.2333333 10463.390
## [73,] 9980.9 10251.15 10007.140 10104.744 -97.6041667 10460.483
## [74,] 10039.2 10145.05 9862.894 9975.756 -112.8625000 10007.140
## [75,] 10246.1 10186.45 10069.054 10116.013 -46.9583333 9862.894
## [76,] 10368.0 10158.55 10113.967 10131.800 -17.8333333 10069.054
## [77,] 10446.3 10274.90 10414.338 10358.563 55.7750000 10113.967
## [78,] 10535.3 10398.93 10639.290 10543.144 96.1458333 10414.338
## [79,] 10786.9 10534.13 10854.958 10726.625 128.3333333 10639.290
## [80,] 9975.8 10436.08 10477.856 10461.144 16.7125000 10854.958
## [81,] 10160.9 10364.73 10250.163 10295.988 -45.8250000 10477.856
## [82,] 10422.1 10336.43 10200.738 10255.013 -54.2750000 10250.163
## [83,] 10757.2 10329.00 10266.406 10291.444 -25.0375000 10200.738
## [84,] 10463.8 10451.00 10585.521 10531.713 53.8083333 10266.406
## [85,] 10307.0 10487.53 10631.754 10574.063 57.6916667 10585.521
## [86,] 10134.7 10415.68 10407.133 10410.550 -3.4166667 10631.754
## [87,] 10207.7 10278.30 10061.925 10148.475 -86.5500000 10407.133
## [88,] 10488.0 10284.35 10147.496 10202.238 -54.7416667 10061.925
## [89,] 10262.3 10273.18 10207.008 10233.475 -26.4666667 10147.496
## [90,] 10785.9 10435.98 10632.683 10554.000 78.6833333 10207.008
## [91,] 10375.4 10477.90 10661.317 10587.950 73.3666667 10632.683
## [92,] 10123.4 10386.75 10375.583 10380.050 -4.4666667 10661.317
## [93,] 10462.7 10436.85 10440.985 10439.331 1.6541667 10375.583
## [94,] 10205.5 10291.75 10114.146 10185.188 -71.0416667 10440.985
## [95,] 10522.7 10328.58 10274.565 10296.169 -21.6041667 10114.146
## [96,] 10253.2 10361.03 10371.817 10367.500 4.3166667 10274.565
## [97,] NA NA NA NA NA 10371.817
## [98,] NA NA NA NA NA 10376.133
## [99,] NA NA NA NA NA 10380.450
## [100,] NA NA NA NA NA 10384.767
## [101,] NA NA NA NA NA 10389.083
## [102,] NA NA NA NA NA 10393.400
## [103,] NA NA NA NA NA 10397.717
## [104,] NA NA NA NA NA 10402.033
## [105,] NA NA NA NA NA 10406.350
## [106,] NA NA NA NA NA 10410.667
## [107,] NA NA NA NA NA 10414.983
## [108,] NA NA NA NA NA 10419.300
## [109,] NA NA NA NA NA 10423.617
## [110,] NA NA NA NA NA 10427.933
## [111,] NA NA NA NA NA 10432.250
## [112,] NA NA NA NA NA 10436.567
## [113,] NA NA NA NA NA 10440.883
## [114,] NA NA NA NA NA 10445.200
## [115,] NA NA NA NA NA 10449.517
## [116,] NA NA NA NA NA 10453.833
## [117,] NA NA NA NA NA 10458.150
## [118,] NA NA NA NA NA 10462.467
## [119,] NA NA NA NA NA 10466.783
## [120,] NA NA NA NA NA 10471.100
Hasil pemulusan menggunakan metode DMA divisualisasikan sebagai berikut
ts.plot(data2.ts, xlab="Time Period ", ylab="Sales", main= "DMA N=4 Data Sales")
points(data2.ts)
lines(data.gab2[,3],col="green",lwd=2)
lines(data.gab2[,6],col="red",lwd=2)
legend("topleft",c("data aktual","data pemulusan","data peramalan"), lty=8, col=c("black","green","red"), cex=0.8)
Selanjutnya perhitungan akurasi dilakukan baik pada data latih maupun data uji. Perhitungan akurasi dilakukan dengan ukuran akurasi SSE, MSE dan MAPE.
#Menghitung nilai keakuratan data latih
error_train.dma = train_ma.ts-data.ramal2[1:length(train_ma.ts)]
SSE_train.dma = sum(error_train.dma[8:length(train_ma.ts)]^2)
MSE_train.dma = mean(error_train.dma[8:length(train_ma.ts)]^2)
MAPE_train.dma = mean(abs((error_train.dma[8:length(train_ma.ts)]/train_ma.ts[8:length(train_ma.ts)])*100))
akurasi_train.dma <- matrix(c(SSE_train.dma, MSE_train.dma, MAPE_train.dma))
row.names(akurasi_train.dma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_train.dma) <- c("Akurasi m = 4")
akurasi_train.dma
## Akurasi m = 4
## SSE 9.856243e+06
## MSE 1.107443e+05
## MAPE 2.524911e+00
Perhitungan akurasi pada data latih menggunakan nilai MAPE menghasilkan nilai MAPE yang kurang dari 10% sehingga dikategorikan sangat baik. Selanjutnya, perhitungan nilai akurasi dilakukan pada data uji.
#Menghitung nilai keakuratan data uji
error_test.dma = test_ma.ts-data.gab2[97:120,6]
SSE_test.dma = sum(error_test.dma^2)
MSE_test.dma = mean(error_test.dma^2)
MAPE_test.dma = mean(abs((error_test.dma/test_ma.ts*100)))
akurasi_test.dma <- matrix(c(SSE_test.dma, MSE_test.dma, MAPE_test.dma))
row.names(akurasi_test.dma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_test.dma) <- c("Akurasi m = 4")
akurasi_test.dma
## Akurasi m = 4
## SSE 1.022231e+06
## MSE 4.259296e+04
## MAPE 1.551109e+00
Perhitungan akurasi menggunakan data latih menghasilkan nilai MAPE yang kurang dari 10% sehingga nilai akurasi ini dapat dikategorikan sebagai sangat baik.
Pada data latih, metode SMA lebih baik dibandingkan dengan metode DMA, sedangkan pada data uji, metode DMA lebih baik dibandingkan SMA
Single Exponential Smoothing & Double Exponential Smoothing
Metode Exponential Smoothing adalah metode pemulusan dengan melakukan pembobotan menurun secara eksponensial. Nilai yang lebih baru diberi bobot yang lebih besar dari nilai terdahulu. Terdapat satu atau lebih parameter pemulusan yang ditentukan secara eksplisit, dan hasil pemilihan parameter tersebut akan menentukan bobot yang akan diberikan pada nilai pengamatan. Ada dua macam model, yaitu model tunggal dan ganda.
Pembagian Data
Pembagian data latih dan data uji dilakukan dengan perbandingan 80% data latih dan 20% data uji.
Eksplorasi
Eksplorasi dilakukan dengan membuat plot data deret waktu untuk keseluruhan data, data latih, dan data uji.
Eksplorasi data juga dapat dilakukan menggunakan package
ggplot2
.
#Eksplorasi dengan GGPLOT
library(ggplot2)
ggplot() +
geom_line(data = training, aes(x = Periode, y = Yt, col = "Data Latih")) +
geom_line(data = testing, aes(x = Periode, y = Yt, col = "Data Uji")) +
labs(x = "Periode Waktu", y = "Membaca", color = "Legend") +
scale_colour_manual(name="Keterangan:", breaks = c("Data Latih", "Data Uji"),
values = c("blue", "red")) +
theme_bw() + theme(legend.position = "bottom",
plot.caption = element_text(hjust=0.5, size=12))
SES
Single Exponential Smoothing merupakan metode pemulusan yang tepat digunakan untuk data dengan pola stasioner atau konstan.
Nilai pemulusan pada periode ke-t didapat dari persamaan:
\[ \tilde{y}_T=\lambda y_t+(1-\lambda)\tilde{y}_{T-1} \]
Nilai parameter \(\lambda\) adalah nilai antara 0 dan 1.
Nilai pemulusan periode ke-t bertindak sebagai nilai ramalan pada periode ke-\((T+\tau)\).
\[ \tilde{y}_{T+\tau}(T)=\tilde{y}_T \]
Pemulusan dengan metode SES dapat dilakukan dengan dua fungsi dari
packages berbeda, yaitu (1) fungsi ses()
dari
packages forecast
dan (2) fungsi
HoltWinters
dari packages stats
.
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 41 51.2589 47.18575 55.33206 45.02955 57.48826
## 42 51.2589 47.10508 55.41272 44.90618 57.61162
## 43 51.2589 47.02596 55.49185 44.78517 57.73264
## 44 51.2589 46.94828 55.56953 44.66637 57.85143
## 45 51.2589 46.87198 55.64583 44.54968 57.96812
## 46 51.2589 46.79698 55.72082 44.43499 58.08282
## 47 51.2589 46.72323 55.79458 44.32219 58.19562
## 48 51.2589 46.65065 55.86715 44.21119 58.30661
## 49 51.2589 46.57920 55.93860 44.10192 58.41589
## 50 51.2589 46.50883 56.00898 43.99429 58.52352
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 41 51.64682 46.89683 56.39681 44.38234 58.91130
## 42 51.64682 45.84872 57.44492 42.77939 60.51425
## 43 51.64682 44.96299 58.33065 41.42479 61.86885
## 44 51.64682 44.18162 59.11201 40.22979 63.06385
## 45 51.64682 43.47463 59.81901 39.14853 64.14511
## 46 51.64682 42.82411 60.46953 38.15364 65.14000
## 47 51.64682 42.21836 61.07528 37.22723 66.06640
## 48 51.64682 41.64925 61.64439 36.35685 66.93679
## 49 51.64682 41.11083 62.18281 35.53342 67.76022
## 50 51.64682 40.59863 62.69501 34.75006 68.54357
Untuk mendapatkan gambar hasil pemulusan pada data latih dengan
fungsi ses()
, perlu digunakan fungsi
autoplot()
dan autolayer()
dari library
packages ggplot2
.
Pada fungsi ses()
, terdapat beberapa argumen yang umum
digunakan, yaitu nilia y
, gamma
,
beta
, alpha
, dan h
.
Nilai y
adalah nilai data deret waktu,
gamma
adalah parameter pemulusan untuk komponen musiman,
beta
adalah parameter pemulusan untuk tren, dan
alpha
adalah parameter pemulusan untuk stasioner, serta
h
adalah banyaknya periode yang akan diramalkan.
Kasus di atas merupakan contoh inisialisasi nilai parameter \(\lambda\) dengan nilai alpha
0,2 dan 0,7 dan banyak periode data yang akan diramalkan adalah sebanyak
10 periode. Selanjutnya akan digunakan fungsi HoltWinters()
dengan nilai inisialisasi parameter dan panjang periode peramalan yang
sama dengan fungsi ses()
.
#Cara 2 (fungsi Holtwinter)
ses1<- HoltWinters(train.ts, gamma = FALSE, beta = FALSE, alpha = 0.2)
plot(ses1)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 41 51.25907 47.18474 55.33340 45.02791 57.49023
## 42 51.25907 47.10405 55.41409 44.90451 57.61363
## 43 51.25907 47.02490 55.49324 44.78346 57.73468
## 44 51.25907 46.94720 55.57094 44.66463 57.85351
## 45 51.25907 46.87088 55.64726 44.54791 57.97023
## 46 51.25907 46.79586 55.72228 44.43318 58.08496
## 47 51.25907 46.72208 55.79606 44.32035 58.19779
## 48 51.25907 46.64949 55.86865 44.20932 58.30882
## 49 51.25907 46.57802 55.94012 44.10002 58.41812
## 50 51.25907 46.50762 56.01052 43.99236 58.52579
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 41 51.64682 46.89554 56.39810 44.38036 58.91328
## 42 51.64682 45.84714 57.44650 42.77697 60.51667
## 43 51.64682 44.96117 58.33247 41.42200 61.87164
## 44 51.64682 44.17959 59.11405 40.22668 63.06696
## 45 51.64682 43.47240 59.82124 39.14513 64.14851
## 46 51.64682 42.82170 60.47194 38.14997 65.14367
## 47 51.64682 42.21579 61.07785 37.22331 66.07033
## 48 51.64682 41.64652 61.64711 36.35269 66.94095
## 49 51.64682 41.10796 62.18568 35.52903 67.76461
## 50 51.64682 40.59562 62.69802 34.74546 68.54818
Fungsi HoltWinters
memiliki argumen yang sama dengan
fungsi ses()
. Argumen-argumen kedua fungsi dapat dilihat
lebih lanjut dengan ?ses()
atau ?HoltWinters
.
Nilai parameter \(\alpha\) dari
kedua fungsi dapat dioptimalkan menyesuaikan dari error-nya
paling minimumnya. Caranya adalah dengan membuat parameter \(\alpha =\) NULL
.
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 41 50.98117 46.91751 55.04483 44.76633 57.19601
## 42 50.98117 46.86658 55.09576 44.68845 57.27389
## 43 50.98117 46.81628 55.14606 44.61153 57.35081
## 44 50.98117 46.76658 55.19575 44.53552 57.42682
## 45 50.98117 46.71746 55.24487 44.46039 57.50194
## 46 50.98117 46.66890 55.29344 44.38613 57.57621
## 47 50.98117 46.62088 55.34146 44.31269 57.64965
## 48 50.98117 46.57339 55.38895 44.24005 57.72229
## 49 50.98117 46.52640 55.43594 44.16818 57.79416
## 50 50.98117 46.47990 55.48244 44.09707 57.86527
#Lamda Optimum Holt Winter
sesopt<- HoltWinters(train.ts, gamma = FALSE, beta = FALSE,alpha = NULL)
sesopt
## Holt-Winters exponential smoothing without trend and without seasonal component.
##
## Call:
## HoltWinters(x = train.ts, alpha = NULL, beta = FALSE, gamma = FALSE)
##
## Smoothing parameters:
## alpha: 0.161055
## beta : FALSE
## gamma: FALSE
##
## Coefficients:
## [,1]
## a 51.001
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 41 51.001 46.94040 55.06161 44.79084 57.21117
## 42 51.001 46.88807 55.11394 44.71082 57.29119
## 43 51.001 46.83640 55.16561 44.63179 57.37021
## 44 51.001 46.78537 55.21664 44.55374 57.44827
## 45 51.001 46.73494 55.26707 44.47662 57.52539
## 46 51.001 46.68511 55.31690 44.40041 57.60160
## 47 51.001 46.63584 55.36617 44.32506 57.67695
## 48 51.001 46.58712 55.41489 44.25055 57.75146
## 49 51.001 46.53894 55.46307 44.17686 57.82515
## 50 51.001 46.49126 55.51074 44.10395 57.89806
Setelah dilakukan peramalan, akan dilakukan perhitungan keakuratan hasil peramalan. Perhitungan akurasi ini dilakukan baik pada data latih dan data uji.
Akurasi Data Latih
Perhitungan akurasi data dapat dilakukan dengan cara langsung maupun manual. Secara langsung, nilai akurasi dapat diambil dari objek yang tersimpan pada hasil SES, yaitu sum of squared errors (SSE). Nilai akurasi lain dapat dihitung pula dari nilai SSE tersebut.
#Keakuratan Metode
#Pada data training
SSE1<-ses1$SSE
MSE1<-ses1$SSE/length(train.ts)
RMSE1<-sqrt(MSE1)
akurasi1 <- matrix(c(SSE1,MSE1,RMSE1))
row.names(akurasi1)<- c("SSE", "MSE", "RMSE")
colnames(akurasi1) <- c("Akurasi lamda=0.2")
akurasi1
## Akurasi lamda=0.2
## SSE 388.280675
## MSE 9.707017
## RMSE 3.115609
SSE2<-ses2$SSE
MSE2<-ses2$SSE/length(train.ts)
RMSE2<-sqrt(MSE2)
akurasi2 <- matrix(c(SSE2,MSE2,RMSE2))
row.names(akurasi2)<- c("SSE", "MSE", "RMSE")
colnames(akurasi2) <- c("Akurasi lamda=0.7")
akurasi2
## Akurasi lamda=0.7
## SSE 522.770369
## MSE 13.069259
## RMSE 3.615143
## Time Series:
## Start = 1
## End = 6
## Frequency = 1
## [1] NA -2.90000 -1.72000 -1.57600 -3.46080 7.03136
## Time Series:
## Start = 1
## End = 6
## Frequency = 1
## [1] NA -2.90000 -1.72000 -1.57600 -3.46080 7.03136
## [1] 388.2807
## [1] 9.707017
MAPE.1 = sum(abs(sisaan1[2:length(train.ts)]/train.ts[2:length(train.ts)])*
100)/length(train.ts)
MAPE.1
## [1] 5.249856
akurasi.1 <- matrix(c(SSE.1,MSE.1,MAPE.1))
row.names(akurasi.1)<- c("SSE", "MSE", "MAPE")
colnames(akurasi.1) <- c("Akurasi lamda=0.2")
akurasi.1
## Akurasi lamda=0.2
## SSE 388.280675
## MSE 9.707017
## MAPE 5.249856
## Time Series:
## Start = 1
## End = 6
## Frequency = 1
## [1] NA -2.90000 -0.27000 -0.28100 -2.28430 9.11471
## Time Series:
## Start = 1
## End = 6
## Frequency = 1
## [1] NA -2.90000 -0.27000 -0.28100 -2.28430 9.11471
## [1] 522.7704
## [1] 13.06926
MAPE.2 = sum(abs(sisaan2[2:length(train.ts)]/train.ts[2:length(train.ts)])*
100)/length(train.ts)
MAPE.2
## [1] 5.767118
akurasi.2 <- matrix(c(SSE.2,MSE.2,MAPE.2))
row.names(akurasi.2)<- c("SSE", "MSE", "MAPE")
colnames(akurasi.2) <- c("Akurasi lamda=0.7")
akurasi.2
## Akurasi lamda=0.7
## SSE 522.770369
## MSE 13.069259
## MAPE 5.767118
Berdasarkan nilai SSE, MSE, RMSE, dan MAPE di antara kedua parameter, nilai parameter \(\lambda=0,2\) menghasilkan akurasi yang lebih baik dibanding \(\lambda=0,7\) . Hal ini dilihat dari nilai masing-masing ukuran akurasi yang lebih kecil. Berdasarkan nilai MAPE-nya, hasil ini dapat dikategorikan sebagai peramalan sangat baik.
Akurasi Data Uji
Akurasi data uji dapat dihitung dengan cara yang hampir sama dengan perhitungan akurasi data latih.
selisih1<-ramalan1$mean-testing$Yt
SSEtesting1<-sum(selisih1^2)
MSEtesting1<-SSEtesting1/length(testing)
selisih2<-ramalan2$mean-testing$Yt
SSEtesting2<-sum(selisih2^2)
MSEtesting2<-SSEtesting2/length(testing)
selisihopt<-ramalanopt$mean-testing$Yt
SSEtestingopt<-sum(selisihopt^2)
MSEtestingopt<-SSEtestingopt/length(testing)
akurasitesting1 <- matrix(c(SSEtesting1,SSEtesting2,SSEtestingopt))
row.names(akurasitesting1)<- c("SSE1", "SSE2", "SSEopt")
akurasitesting1
## [,1]
## SSE1 95.28706
## SSE2 108.02806
## SSEopt 88.47392
akurasitesting2 <- matrix(c(MSEtesting1,MSEtesting2,MSEtestingopt))
row.names(akurasitesting2)<- c("MSE1", "MSE2", "MSEopt")
akurasitesting2
## [,1]
## MSE1 47.64353
## MSE2 54.01403
## MSEopt 44.23696
Selain dengan cara di atas, perhitungan nilai akurasi dapat
menggunakan fungsi accuracy()
dari package
forecast
. Penggunaannya yaitu dengan menuliskan
accuracy(hasil ramalan, kondisi aktual)
. Contohnya adalah
sebagai berikut.
## ME RMSE MAE MPE MAPE MASE
## Training set 0.3663352 3.149004 2.666641 0.357541 5.419489 0.7981504
## Test set -1.1910047 2.974457 2.330201 -2.710010 4.861054 0.6974508
## ACF1
## Training set -0.07140176
## Test set NA
DES
Metode pemulusan Double Exponential Smoothing (DES) digunakan untuk data yang memiliki pola tren. Metode DES adalah metode semacam SES, hanya saja dilakukan dua kali, yaitu pertama untuk tahapan ‘level’ dan kedua untuk tahapan ‘tren’. Pemulusan menggunakan metode ini akan menghasilkan peramalan tidak konstan untuk periode berikutnya.
Pemulusan dengan metode DES kali ini akan menggunakan fungsi
HoltWinters()
. Jika sebelumnya nilai argumen
beta
dibuat FALSE
, kali ini argumen tersebut
akan diinisialisasi bersamaan dengan nilai alpha
.
#Lamda=0.2 dan gamma=0.2
des.1<- HoltWinters(train.ts, gamma = FALSE, beta = 0.2, alpha = 0.2)
plot(des.1)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 41 52.93449 46.89794 58.97104 43.70238 62.16660
## 42 53.23737 47.02939 59.44534 43.74309 62.73164
## 43 53.54024 47.10629 59.97420 43.70036 63.38013
## 44 53.84312 47.12544 60.56081 43.56931 64.11693
## 45 54.14600 47.08556 61.20645 43.34798 64.94402
## 46 54.44888 46.98696 61.91080 43.03685 65.86090
## 47 54.75176 46.83121 62.67230 42.63833 66.86519
## 48 55.05464 46.62073 63.48854 42.15608 67.95319
## 49 55.35751 46.35839 64.35663 41.59454 69.12048
## 50 55.66039 46.04729 65.27350 40.95842 70.36236
#Lamda=0.6 dan gamma=0.3
des.2<- HoltWinters(train.ts, gamma = FALSE, beta = 0.3, alpha = 0.6)
plot(des.2)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 41 51.35923 46.08547 56.63298 43.29371 59.42474
## 42 51.24032 44.55201 57.92864 41.01142 61.46922
## 43 51.12142 42.73300 59.50984 38.29244 63.95040
## 44 51.00252 40.68212 61.32292 35.21883 66.78621
## 45 50.88362 38.43488 63.33236 31.84491 69.92232
## 46 50.76472 36.01516 65.51427 28.20722 73.32221
## 47 50.64581 33.43979 67.85184 24.33147 76.96015
## 48 50.52691 30.72117 70.33265 20.23665 80.81717
## 49 50.40801 27.86889 72.94712 15.93741 84.87861
## 50 50.28911 24.89063 75.68759 11.44548 89.13273
Selanjutnya jika ingin membandingkan plot data latih dan data uji adalah sebagai berikut.
#Visually evaluate the prediction
plot(data1.ts)
lines(des.1$fitted[,1], lty=2, col="blue")
lines(ramalandes1$mean, col="red")
Untuk mendapatkan nilai parameter optimum dari DES, argumen
alpha
dan beta
dapat dibuat NULL
seperti berikut.
## Holt-Winters exponential smoothing with trend and without seasonal component.
##
## Call:
## HoltWinters(x = train.ts, gamma = FALSE)
##
## Smoothing parameters:
## alpha: 0.4635085
## beta : 0.2628024
## gamma: FALSE
##
## Coefficients:
## [,1]
## a 51.81211440
## b -0.03605837
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 41 51.77606 46.66859 56.88352 43.96486 59.58725
## 42 51.74000 45.82194 57.65805 42.68912 60.79088
## 43 51.70394 44.77088 58.63700 41.10074 62.30714
## 44 51.66788 43.54431 59.79145 39.24395 64.09181
## 45 51.63182 42.16755 61.09610 37.15746 66.10618
## 46 51.59576 40.66041 62.53112 34.87158 68.31995
## 47 51.55971 39.03793 64.08148 32.40931 70.71011
## 48 51.52365 37.31150 65.73580 29.78804 73.25926
## 49 51.48759 35.48986 67.48532 27.02118 75.95400
## 50 51.45153 33.57990 69.32316 24.11923 78.78383
Selanjutnya akan dilakukan perhitungan akurasi pada data latih maupun data uji dengan ukuran akurasi SSE, MSE dan MAPE.
Akurasi Data Latih
#Akurasi Data Training
ssedes.train1<-des.1$SSE
msedes.train1<-ssedes.train1/length(train.ts)
sisaandes1<-ramalandes1$residuals
head(sisaandes1)
## Time Series:
## Start = 1
## End = 6
## Frequency = 1
## [1] NA NA 3.50000 5.36000 4.63360 15.86714
mapedes.train1 <- sum(abs(sisaandes1[3:length(train.ts)]/train.ts[3:length(train.ts)])
*100)/length(train.ts)
akurasides.1 <- matrix(c(ssedes.train1,msedes.train1,mapedes.train1))
row.names(akurasides.1)<- c("SSE", "MSE", "MAPE")
colnames(akurasides.1) <- c("Akurasi lamda=0.2 dan gamma=0.2")
akurasides.1
## Akurasi lamda=0.2 dan gamma=0.2
## SSE 989.65686
## MSE 24.74142
## MAPE 7.75642
ssedes.train2<-des.2$SSE
msedes.train2<-ssedes.train2/length(train.ts)
sisaandes2<-ramalandes2$residuals
head(sisaandes2)
## Time Series:
## Start = 1
## End = 6
## Frequency = 1
## [1] NA NA 3.50000 3.47000 0.83340 11.62875
mapedes.train2 <- sum(abs(sisaandes2[3:length(train.ts)]/train.ts[3:length(train.ts)])
*100)/length(train.ts)
akurasides.2 <- matrix(c(ssedes.train2,msedes.train2,mapedes.train2))
row.names(akurasides.2)<- c("SSE", "MSE", "MAPE")
colnames(akurasides.2) <- c("Akurasi lamda=0.6 dan gamma=0.3")
akurasides.2
## Akurasi lamda=0.6 dan gamma=0.3
## SSE 632.851720
## MSE 15.821293
## MAPE 6.232456
Hasil akurasi dari data latih didapatkan skenario 2 dengan lamda=0.6 dan gamma=0.3 memiliki hasil yang lebih baik. Namun untuk kedua skenario dapat dikategorikan peramalan sangat baik berdasarkan nilai MAPE-nya.
Akurasi Data Uji
## Time Series:
## Start = 41
## End = 50
## Frequency = 1
## [1] 5.03448806 3.73736622 9.54024438 0.04312254 1.64600071 2.44887887
## [7] 4.15175703 6.35463519 3.95751335 7.96039151
SSEtestingdes1<-sum(selisihdes1^2)
MSEtestingdes1<-SSEtestingdes1/length(testing$Yt)
MAPEtestingdes1<-sum(abs(selisihdes1/testing$Yt)*100)/length(testing$Yt)
selisihdes2<-ramalandes2$mean-testing$Yt
selisihdes2
## Time Series:
## Start = 41
## End = 50
## Frequency = 1
## [1] 3.45922576 1.74032361 7.12142147 -2.79748068 -1.61638283 -1.23528497
## [7] 0.04581288 1.82691074 -0.99199141 2.58910645
SSEtestingdes2<-sum(selisihdes2^2)
MSEtestingdes2<-SSEtestingdes2/length(testing$Yt)
MAPEtestingdes2<-sum(abs(selisihdes2/testing$Yt)*100)/length(testing$Yt)
selisihdesopt<-ramalandesopt$mean-testing$Yt
selisihdesopt
## Time Series:
## Start = 41
## End = 50
## Frequency = 1
## [1] 3.87605603 2.23999765 7.70393928 -2.13211910 -0.86817747 -0.40423584
## [7] 0.95970578 2.82364741 0.08758903 3.75153066
SSEtestingdesopt<-sum(selisihdesopt^2)
MSEtestingdesopt<-SSEtestingdesopt/length(testing$Yt)
MAPEtestingdesopt<-sum(abs(selisihdesopt/testing$Yt)*100)/length(testing$Yt)
akurasitestingdes <-
matrix(c(SSEtestingdes1,MSEtestingdes1,MAPEtestingdes1,SSEtestingdes2,MSEtestingdes2,
MAPEtestingdes2,SSEtestingdesopt,MSEtestingdesopt,MAPEtestingdesopt),
nrow=3,ncol=3)
row.names(akurasitestingdes)<- c("SSE", "MSE", "MAPE")
colnames(akurasitestingdes) <- c("des ske1","des ske2","des opt")
akurasitestingdes
## des ske1 des ske2 des opt
## SSE 275.686644 88.701354 107.830825
## MSE 27.568664 8.870135 10.783082
## MAPE 9.330928 4.877651 5.225022
Perbandingan SES dan DES
MSEfull <-
matrix(c(MSEtesting1,MSEtesting2,MSEtestingopt,MSEtestingdes1,MSEtestingdes2,
MSEtestingdesopt),nrow=3,ncol=2)
row.names(MSEfull)<- c("ske 1", "ske 2", "ske opt")
colnames(MSEfull) <- c("ses","des")
MSEfull
## ses des
## ske 1 47.64353 27.568664
## ske 2 54.01403 8.870135
## ske opt 44.23696 10.783082
Kedua metode dapat dibandingkan dengan menggunakan ukuran akurasi yang sama. Contoh di atas adalah perbandingan kedua metode dengan ukuran akurasi MSE. Hasilnya didapatkan metode DES lebih baik dibandingkan metode SES dilihat dari MSE yang lebih kecil nilainya.
Pemulusan Data Musiman
Pertama impor kembali data baru untuk latihan data musiman.
#Import data
library(rio)
data3 <- import("https://raw.githubusercontent.com/rizkynurhambali/Praktikum-MPDW-2324/main/Pertemuan%201/Electric_Production.csv")
data3.ts <- ts(data3$Yt)
Selanjutnya melakukan pembagian data dan mengubahnya menjadi data deret waktu.
#membagi data menjadi training dan testing
training<-data3[1:192,2]
testing<-data3[193:241,2]
training.ts<-ts(training, frequency = 13)
testing.ts<-ts(testing, frequency = 13)
Kemudian akan dilakukan eskplorasi dengan plot data deret waktu sebagai berikut.
Metode Holt-Winter untuk peramalan data musiman menggunakan tiga persamaan pemulusan yang terdiri atas persamaan untuk level \((L_t)\), trend \((B_t)\), dan komponen seasonal / musiman \((S_t)\) dengan parameter pemulusan berupa \(\alpha\), \(\beta\), dan \(\gamma\). Metode Holt-Winter musiman terbagi menjadi dua, yaitu metode aditif dan metode multiplikatif. Perbedaan persamaan dan contoh datanya adalah sebagai berikut.
Pemulusan data musiman dengan metode Winter dilakukan menggunakan
fungsi HoltWinters()
dengan memasukkan argumen tambahan,
yaitu gamma()
dan seasonal()
. Arguman
seasonal()
diinisialisasi menyesuaikan jenis musiman,
aditif atau multiplikatif.
Winter Aditif
Perhitungan dengan model aditif dilakukan jika plot data asli menunjukkan fluktuasi musiman yang relatif stabil (konstan).
Pemulusan
#Pemulusan dengan winter aditif
winter1 <- HoltWinters(training.ts,alpha=0.2,beta=0.1,gamma=0.1,seasonal = "additive")
winter1$fitted
## Time Series:
## Start = c(2, 1)
## End = c(15, 10)
## Frequency = 13
## xhat level trend season
## 2.000000 88.54720 87.09424 0.182710904 1.2702538462
## 2.076923 89.35006 87.80409 0.235424883 1.3105461538
## 2.153846 80.20116 88.31712 0.263185721 -8.3791461538
## 2.230769 79.24275 88.64359 0.269514524 -9.6703615385
## 2.307692 86.99289 88.94230 0.272433583 -2.2218384615
## 2.384615 96.28834 89.38477 0.289437697 6.6141307692
## 2.461538 96.00536 89.91460 0.313476850 5.7772846154
## 2.538462 96.01483 90.31015 0.321683558 5.3830000000
## 2.615385 88.18864 88.87382 0.145882946 -0.8310692308
## 2.692308 79.68943 87.51016 -0.005071818 -7.8156615385
## 2.769231 81.37692 88.00770 0.045189654 -6.6759769231
## 2.846154 93.80604 90.67977 0.307877345 2.8183923077
## 2.923077 105.56926 92.67246 0.476358567 12.4204461538
## 3.000000 92.62681 90.89474 0.250951296 1.4811097582
## 3.076923 91.82073 90.23887 0.160269181 1.4215895083
## 3.153846 79.92237 88.32350 -0.047295489 -8.3538309434
## 3.230769 79.56744 89.18277 0.043361094 -9.6586853012
## 3.307692 89.63976 91.52076 0.272824225 -2.1538220045
## 3.384615 100.17500 93.06477 0.399942979 6.7102873806
## 3.461538 99.49776 93.30379 0.383850936 5.8101114488
## 3.538462 96.86370 91.97165 0.212251801 4.6797975513
## 3.615385 87.94223 89.43933 -0.062206265 -1.4348882870
## 3.692308 81.72203 89.39687 -0.060230876 -7.6146156534
## 3.769231 88.21262 93.48340 0.354444600 -5.6252261566
## 3.846154 102.28161 98.01694 0.772354299 3.4923171948
## 3.923077 109.95628 97.76731 0.670156106 11.5188170705
## 4.000000 96.45785 95.01187 0.327596431 1.1183812995
## 4.076923 93.27897 92.63090 0.056739478 0.5913308268
## 4.153846 82.39203 90.54114 -0.157909864 -7.9912046133
## 4.230769 83.24525 91.98393 0.002159568 -8.7408327760
## 4.307692 93.16522 94.55184 0.258734485 -1.6453469861
## 4.384615 103.12062 96.08821 0.386498014 6.6459192062
## 4.461538 98.72020 93.50678 0.089705553 5.1237149089
## 4.538462 93.74063 90.38964 -0.230978441 3.5819652871
## 4.615385 86.12278 87.99692 -0.447153075 -1.4269867301
## 4.692308 82.66807 88.93283 -0.308846681 -5.9559137485
## 4.769231 88.83358 92.68947 0.097701909 -3.9535873604
## 4.846154 97.37066 94.06196 0.225180215 3.0835244197
## 4.923077 103.75558 93.46412 0.142879019 10.1485783719
## 5.000000 89.83351 90.01489 -0.216332596 0.0349534879
## 5.076923 88.30330 88.87887 -0.308300739 -0.2672665429
## 5.153846 81.98633 89.54783 -0.210574838 -7.3509268847
## 5.230769 85.90162 93.41859 0.197558586 -7.7145331056
## 5.307692 96.13950 96.76169 0.512112279 -1.1342928718
## 5.384615 102.62193 96.70768 0.455500182 5.4587493611
## 5.461538 98.00088 94.01883 0.141065657 3.8409789325
## 5.538462 94.94451 92.27470 -0.047453868 2.7172667510
## 5.615385 92.59431 93.39841 0.069661833 -0.8737611515
## 5.692308 93.07702 96.98535 0.421389715 -4.3297193897
## 5.769231 96.75259 99.55959 0.636675391 -3.4436741371
## 5.846154 103.10340 99.75639 0.592687520 2.7543196387
## 5.923077 105.68439 96.74080 0.231859596 8.7117319094
## 6.000000 92.42340 92.92884 -0.172522180 -0.3329190837
## 6.076923 92.41103 92.48686 -0.199468137 0.1236370614
## 6.153846 88.52750 94.24918 -0.003288663 -5.7183931869
## 6.230769 91.29324 97.43403 0.315525294 -6.4563183365
## 6.307692 97.06080 98.07361 0.347930457 -1.3607412575
## 6.384615 100.64814 96.31032 0.136808437 4.2010112593
## 6.461538 97.01442 94.03220 -0.104684399 3.0869008327
## 6.538462 98.44481 95.23319 0.025883230 3.1857295552
## 6.615385 99.17923 98.31464 0.331439093 0.5331503774
## 6.692308 97.04449 100.04203 0.471034586 -3.4685766847
## 6.769231 97.00332 100.18475 0.438202829 -3.6196256246
## 6.846154 100.11056 98.56694 0.232602346 1.3110079451
## 6.923077 103.68868 96.58348 0.010995242 7.0942048051
## 7.000000 94.36425 94.95764 -0.152688284 -0.4407029133
## 7.076923 97.19534 96.29106 -0.004077185 0.9083549571
## 7.153846 92.50134 96.88841 0.056066081 -4.4431373574
## 7.230769 91.00883 97.24901 0.086519218 -6.3266976845
## 7.307692 94.45064 96.63900 0.016866551 -2.2052293388
## 7.384615 98.84380 95.68862 -0.079858282 3.2350399181
## 7.461538 100.65223 96.98526 0.057791633 3.6091713458
## 7.538462 103.82082 99.14489 0.267975103 4.4079530094
## 7.615385 100.32328 99.00460 0.227148744 1.0915323476
## 7.692308 95.55830 98.95839 0.199813096 -3.5999037105
## 7.769231 92.91824 97.34207 0.018199036 -4.4420275564
## 7.846154 96.55018 96.22130 -0.095697716 0.4245795264
## 7.923077 103.12001 96.71708 -0.036549304 6.4394707021
## 8.000000 97.94835 97.72655 0.068052587 0.1537414845
## 8.076923 101.54991 100.10218 0.298809633 1.1489280204
## 8.153846 95.84290 99.91410 0.250121347 -4.3213248080
## 8.230769 92.47007 98.94698 0.128397347 -6.6053083563
## 8.307692 96.16915 98.67311 0.088169871 -2.5921286679
## 8.384615 105.28753 101.17259 0.329300899 3.7856395767
## 8.461538 106.10177 101.33886 0.312998339 4.4499052278
## 8.538462 105.20143 100.73543 0.221355011 4.2446475737
## 8.615385 100.66439 99.59684 0.085360402 0.9821897524
## 8.692308 92.54708 97.05118 -0.177741338 -4.3263599496
## 8.769231 91.24261 96.36846 -0.228238908 -4.8976145629
## 8.846154 98.61515 97.99658 -0.042603094 0.6611731718
## 8.923077 107.48299 100.42101 0.204099864 6.8578782687
## 9.000000 102.79394 101.43235 0.284824131 1.0767696682
## 9.076923 101.40941 100.31103 0.144209235 0.9541748739
## 9.153846 93.36339 98.24811 -0.076502971 -4.8082208067
## 9.230769 91.10740 97.97025 -0.096638763 -6.7662182592
## 9.307692 98.78026 100.26533 0.142533328 -1.6276045550
## 9.384615 107.19184 103.06334 0.408080060 3.7204293355
## 9.461538 108.98540 104.40103 0.501041166 4.0833319157
## 9.538462 106.94934 102.94349 0.305183177 3.7006691355
## 9.615385 99.93468 100.02234 -0.017449623 -0.0702172047
## 9.692308 93.72638 98.42970 -0.174969143 -4.5283502321
## 9.769231 95.51776 99.70297 -0.030144716 -4.1550713072
## 9.846154 103.94185 102.08300 0.210872141 1.6479850052
## 9.923077 111.92110 104.32622 0.414107058 7.1807753385
## 10.000000 103.38305 102.66243 0.206317044 0.5143100816
## 10.076923 100.86361 100.79349 -0.001208003 0.0713260494
## 10.153846 94.37309 99.40208 -0.140228201 -4.8887639742
## 10.230769 96.03563 101.73780 0.107366006 -5.8095298959
## 10.307692 105.52255 105.60466 0.483315370 -0.5654176269
## 10.384615 111.26036 106.63052 0.537570308 4.0922737620
## 10.461538 108.62477 105.00374 0.321135025 3.2998999571
## 10.538462 104.17746 101.79880 -0.031472426 2.4101379369
## 10.615385 98.18817 99.17879 -0.290325698 -0.7002952864
## 10.692308 95.91847 100.04245 -0.174927137 -3.9490525238
## 10.769231 99.76741 102.83645 0.121965399 -3.1910038772
## 10.846154 107.25711 104.51823 0.277947147 2.4609246729
## 10.923077 109.32521 102.88842 0.087171032 6.3496152814
## 11.000000 98.71496 99.31013 -0.279375094 -0.3157901071
## 11.076923 97.18659 98.04890 -0.377560384 -0.4847547387
## 11.153846 96.08721 100.11844 -0.132850116 -3.8983871467
## 11.230769 100.11078 104.13447 0.282037749 -4.3057324407
## 11.307692 105.29822 105.27839 0.368226191 -0.3483978739
## 11.384615 107.60341 104.15756 0.219319730 3.2265326286
## 11.461538 102.21632 100.49565 -0.168802443 1.8894701528
## 11.538462 98.30324 97.39091 -0.462396883 1.3747248492
## 11.615385 95.99321 96.71560 -0.483687592 -0.2387010429
## 11.692308 94.72813 97.81499 -0.325379889 -2.7614823791
## 11.769231 97.02166 99.69371 -0.104970502 -2.5670768851
## 11.846154 100.71093 99.16086 -0.147757693 1.6978202108
## 11.923077 101.23787 96.73046 -0.376022233 4.8834307805
## 12.000000 92.65642 93.97857 -0.613609632 -0.7085312692
## 12.076923 97.21159 96.97055 -0.253050118 0.4940863328
## 12.153846 99.02272 101.07850 0.183050144 -2.2388356875
## 12.230769 100.01589 103.56361 0.413255791 -3.9609786697
## 12.307692 103.06139 103.62713 0.378282052 -0.9440237177
## 12.384615 102.37023 100.65313 0.043054321 1.6740439349
## 12.461538 98.91689 98.38942 -0.187622303 0.7150923914
## 12.538462 100.49986 99.28918 -0.078884125 1.2895620150
## 12.615385 102.23343 101.67164 0.167250707 0.3945297684
## 12.692308 102.47326 103.97249 0.380610203 -1.8798448320
## 12.769231 101.47797 103.88263 0.333563088 -2.7382256467
## 12.846154 102.57289 101.70562 0.082505751 0.7847620493
## 12.923077 103.64818 99.82855 -0.113451988 3.9330811843
## 13.000000 102.68460 101.85078 0.100116478 0.7337067884
## 13.076923 107.98625 105.31158 0.436184409 2.2384873802
## 13.153846 104.73152 105.62557 0.423965454 -1.3180130996
## 13.230769 101.13431 104.92379 0.311390991 -4.1008736240
## 13.307692 100.67092 102.87998 0.075870810 -2.2849346415
## 13.384615 101.45081 100.83563 -0.136151530 0.7513374379
## 13.461538 102.01468 100.97339 -0.108759813 1.1500451015
## 13.538462 105.82224 103.40306 0.145082604 2.2741013432
## 13.615385 106.65137 105.10285 0.300553760 1.2479677542
## 13.692308 102.05629 103.96737 0.156950282 -2.0680332916
## 13.769231 97.96489 101.78438 -0.077043485 -3.7424549963
## 13.846154 100.71704 100.87626 -0.160151196 0.0009310938
## 13.923077 106.79843 102.03894 -0.027868062 4.7873550482
## 14.000000 105.19774 103.04431 0.075455328 2.0779785129
## 14.076923 104.98227 102.75380 0.038858463 2.1896115597
## 14.153846 98.55409 100.51164 -0.189242858 -1.7683109539
## 14.230769 92.67075 98.12290 -0.409192608 -5.0429543447
## 14.307692 94.19119 97.73162 -0.407401688 -3.1330240016
## 14.384615 99.30646 98.71398 -0.268425525 0.8609043059
## 14.461538 103.36297 101.19140 0.006159350 2.1654147678
## 14.538462 105.52907 102.49699 0.136101853 2.8959859686
## 14.615385 101.50983 100.87589 -0.039617605 0.6735538408
## 14.692308 95.34420 98.61041 -0.262204177 -3.0040083612
## 14.769231 93.79057 98.14771 -0.282254107 -4.0748858368
## 14.846154 100.63922 100.16178 -0.052621419 0.5300636299
## 14.923077 108.52678 103.08151 0.244614170 5.2006486056
## 15.000000 105.10792 102.96757 0.208758658 1.9315910555
## 15.076923 104.19741 102.75371 0.166496227 1.2772062730
## 15.153846 97.53718 100.28256 -0.097267947 -2.6481099535
## 15.230769 93.60600 98.87054 -0.228743603 -5.0357906646
## 15.307692 97.39566 100.05973 -0.086949641 -2.5771193498
## 15.384615 104.65059 102.52325 0.168097095 1.9592438048
## 15.461538 106.32013 103.39635 0.238597278 2.6851847820
## 15.538462 104.51802 102.22710 0.097812660 2.1931081356
## 15.615385 99.40513 99.77873 -0.156805755 -0.2167924469
## 15.692308 95.91455 99.19796 -0.199202360 -3.0842080810
xhat1 <- winter1$fitted[,2]
winter1.opt<- HoltWinters(training.ts, alpha= NULL, beta = NULL, gamma = NULL, seasonal = "additive")
winter1.opt
## Holt-Winters exponential smoothing with trend and additive seasonal component.
##
## Call:
## HoltWinters(x = training.ts, alpha = NULL, beta = NULL, gamma = NULL, seasonal = "additive")
##
## Smoothing parameters:
## alpha: 0.4047538
## beta : 0
## gamma: 1
##
## Coefficients:
## [,1]
## a 109.2446603
## b 0.1827109
## s1 -0.8266228
## s2 5.6964456
## s3 0.3679335
## s4 -1.1981680
## s5 -9.2800809
## s6 -8.1509015
## s7 -0.8688158
## s8 4.3878031
## s9 3.5559231
## s10 -1.7827396
## s11 -7.2290284
## s12 -4.4226157
## s13 4.2285397
## Time Series:
## Start = c(2, 1)
## End = c(15, 10)
## Frequency = 13
## xhat level trend season
## 2.000000 88.54720 87.09424 0.1827109 1.27025385
## 2.076923 89.83701 88.34376 0.1827109 1.31054615
## 2.153846 80.69475 88.89119 0.1827109 -8.37914615
## 2.230769 79.51454 89.00219 0.1827109 -9.67036154
## 2.307692 87.09484 89.13397 0.1827109 -2.22183846
## 2.384615 96.41638 89.61954 0.1827109 6.61413077
## 2.461538 96.19692 90.23692 0.1827109 5.77728462
## 2.538462 96.07390 90.50819 0.1827109 5.38300000
## 2.615385 86.46083 87.10919 0.1827109 -0.83106923
## 2.692308 77.30331 84.93626 0.1827109 -7.81566154
## 2.769231 80.60867 87.10194 0.1827109 -6.67597692
## 2.846154 95.91289 92.91179 0.1827109 2.81839231
## 2.923077 108.25457 95.65141 0.1827109 12.42044615
## 3.000000 93.20737 90.18551 0.1827109 2.83914360
## 3.076923 90.32767 88.29804 0.1827109 1.84691449
## 3.153846 76.58257 84.88445 0.1827109 -8.48459417
## 3.230769 78.69108 88.25364 0.1827109 -9.74526943
## 3.307692 91.84113 93.43486 0.1827109 -1.77644065
## 3.384615 102.73524 95.29915 0.1827109 7.25337618
## 3.461538 100.21016 94.11993 0.1827109 5.90751297
## 3.538462 90.83985 90.54153 0.1827109 0.11560808
## 3.615385 83.49537 87.60802 0.1827109 -4.29536258
## 3.692308 84.91386 89.63059 0.1827109 -4.89943847
## 3.769231 98.69569 96.91347 0.1827109 1.59950930
## 3.846154 108.07204 101.31064 0.1827109 6.57868522
## 3.923077 101.37750 97.08140 0.1827109 4.11338553
## 4.000000 93.78116 93.80379 0.1827109 -0.20534367
## 4.076923 86.32915 89.58838 0.1827109 -3.44194863
## 4.153846 84.62433 88.24005 0.1827109 -3.79843832
## 4.230769 88.54712 90.75867 0.1827109 -2.39426445
## 4.307692 94.86717 93.98792 0.1827109 0.69654855
## 4.384615 101.50057 96.06739 0.1827109 5.25046883
## 4.461538 91.45842 90.89943 0.1827109 0.37627394
## 4.538462 83.24697 87.53147 0.1827109 -4.46721922
## 4.615385 86.17978 87.58666 0.1827109 -1.58959214
## 4.692308 96.27035 90.54530 0.1827109 5.54233193
## 4.769231 101.43021 93.45005 0.1827109 7.79745781
## 4.846154 91.38710 91.11409 0.1827109 0.09030026
## 4.923077 91.26030 92.05308 0.1827109 -0.97549101
## 5.000000 83.53302 90.02369 0.1827109 -6.67338307
## 5.076923 85.38448 90.89533 0.1827109 -5.69355390
## 5.153846 94.05673 94.23719 0.1827109 -0.36316922
## 5.230769 100.06283 97.79404 0.1827109 2.08608484
## 5.307692 102.27950 98.61078 0.1827109 3.48600641
## 5.384615 92.72689 95.16261 0.1827109 -2.61843196
## 5.461538 88.32418 92.98695 0.1827109 -4.84547383
## 5.538462 88.79909 93.27114 0.1827109 -4.65476077
## 5.615385 100.98689 98.31138 0.1827109 2.49279706
## 5.692308 111.94349 102.21532 0.1827109 9.54545443
## 5.769231 103.39476 99.11864 0.1827109 4.09341078
## 5.846154 97.10793 95.72270 0.1827109 1.20251756
## 5.923077 86.98379 91.02977 0.1827109 -4.22869146
## 6.000000 85.12035 90.59787 0.1827109 -5.66022600
## 6.076923 92.32631 93.19119 0.1827109 -1.04758767
## 6.153846 102.16008 97.37841 0.1827109 4.59896421
## 6.230769 101.69657 98.49534 0.1827109 3.01851924
## 6.307692 93.45207 95.12307 0.1827109 -1.85370801
## 6.384615 86.58977 92.49380 0.1827109 -6.08674523
## 6.461538 88.96591 93.47944 0.1827109 -4.69623507
## 6.538462 102.23383 99.56220 0.1827109 2.48891673
## 6.615385 112.54312 104.39503 0.1827109 7.96537679
## 6.692308 106.89912 101.99375 0.1827109 4.72265749
## 6.769231 96.53654 97.52332 0.1827109 -1.16949671
## 6.846154 87.94903 93.73409 0.1827109 -5.96777363
## 6.923077 89.40455 94.35441 0.1827109 -5.13256869
## 7.000000 95.07372 97.00610 0.1827109 -2.11509058
## 7.076923 104.93349 99.90919 0.1827109 4.84159144
## 7.153846 104.33259 98.17701 0.1827109 5.97286168
## 7.230769 92.16043 94.18729 0.1827109 -2.20956889
## 7.307692 86.68788 92.49428 0.1827109 -5.98910466
## 7.384615 89.13828 93.86151 0.1827109 -4.90593768
## 7.461538 104.92159 100.75828 0.1827109 3.98060122
## 7.538462 112.97685 103.46658 0.1827109 9.32756555
## 7.615385 103.46508 99.11712 0.1827109 4.16525234
## 7.692308 95.53725 97.47496 0.1827109 -2.12042143
## 7.769231 87.16267 93.99075 0.1827109 -7.01078793
## 7.846154 89.05654 94.19804 0.1827109 -5.32420844
## 7.923077 97.29197 98.61085 0.1827109 -1.50159702
## 8.000000 105.33771 103.26939 0.1827109 1.88560833
## 8.076923 107.33941 105.13122 0.1827109 2.02548523
## 8.153846 102.00469 101.98527 0.1827109 -0.16328577
## 8.230769 92.42519 97.21056 0.1827109 -4.96807537
## 8.307692 92.53293 96.59732 0.1827109 -4.24710571
## 8.384615 108.28247 103.13174 0.1827109 4.96801882
## 8.461538 109.64985 101.77231 0.1827109 7.69482244
## 8.538462 101.50937 98.66428 0.1827109 2.66238312
## 8.615385 99.25339 97.58915 0.1827109 1.48153716
## 8.692308 85.68796 93.01839 0.1827109 -7.51314505
## 8.769231 88.16348 94.95540 0.1827109 -6.97463745
## 8.846154 101.22070 100.14124 0.1827109 0.89674536
## 8.923077 109.52547 104.26205 0.1827109 5.08071372
## 9.000000 109.78942 105.25173 0.1827109 4.35498391
## 9.076923 97.07022 99.75727 0.1827109 -2.86976727
## 9.153846 89.95844 97.22958 0.1827109 -7.45385671
## 9.230769 92.42705 98.38296 0.1827109 -6.13862240
## 9.307692 108.14849 102.87183 0.1827109 5.09395743
## 9.384615 107.51956 104.63676 0.1827109 2.70008776
## 9.461538 109.60618 106.56815 0.1827109 2.85532466
## 9.538462 103.53115 102.53588 0.1827109 0.81255474
## 9.615385 92.24640 97.57278 0.1827109 -5.50908977
## 9.692308 92.92902 97.67952 0.1827109 -4.93320255
## 9.769231 101.68174 101.11587 0.1827109 0.38315559
## 9.846154 110.55227 103.68131 0.1827109 6.68825239
## 9.923077 111.75162 105.30143 0.1827109 6.26747259
## 10.000000 97.53619 101.34755 0.1827109 -3.99407157
## 10.076923 93.02390 99.69698 0.1827109 -6.85578297
## 10.153846 94.39574 100.23939 0.1827109 -6.02635940
## 10.230769 105.80055 105.42367 0.1827109 0.19417341
## 10.307692 116.86588 109.26234 0.1827109 7.42083737
## 10.384615 111.40625 105.95179 0.1827109 5.27175296
## 10.461538 98.53463 101.69530 0.1827109 -3.34338034
## 10.538462 92.25371 98.82607 0.1827109 -6.75507567
## 10.615385 93.15827 98.59638 0.1827109 -5.62081558
## 10.692308 103.18480 103.15036 0.1827109 -0.14827069
## 10.769231 110.47042 106.40042 0.1827109 3.88728831
## 10.846154 114.39263 105.40776 0.1827109 8.80216511
## 10.923077 99.20822 98.84147 0.1827109 0.18404548
## 11.000000 89.19355 95.70102 0.1827109 -6.69017605
## 11.076923 91.60643 97.75051 0.1827109 -6.32679004
## 11.153846 106.65603 105.14418 0.1827109 1.32913269
## 11.230769 115.19897 109.44550 0.1827109 5.57076350
## 11.307692 107.73168 105.26546 0.1827109 2.28351458
## 11.384615 100.37571 101.44969 0.1827109 -1.25669860
## 11.461538 89.05419 96.70315 0.1827109 -7.83167310
## 11.538462 89.09274 96.27161 0.1827109 -7.36157698
## 11.615385 100.74188 99.75143 0.1827109 0.80774081
## 11.692308 105.76128 101.21588 0.1827109 4.36268394
## 11.769231 103.73492 101.39346 0.1827109 2.15874378
## 11.846154 97.05259 97.99304 0.1827109 -1.12316779
## 11.923077 90.51653 95.03693 0.1827109 -4.70311879
## 12.000000 90.98883 94.75093 0.1827109 -3.94481345
## 12.076923 107.36613 102.90550 0.1827109 4.27791726
## 12.153846 115.37260 107.80378 0.1827109 7.38610424
## 12.230769 105.36510 106.02765 0.1827109 -0.84525848
## 12.307692 99.92337 103.33746 0.1827109 -3.59679403
## 12.384615 89.68292 98.00606 0.1827109 -8.50584869
## 12.461538 90.10334 98.65564 0.1827109 -8.73501070
## 12.538462 102.27626 104.60628 0.1827109 -2.51272800
## 12.615385 111.92661 109.05119 0.1827109 2.69271903
## 12.692308 114.16629 109.62844 0.1827109 4.35513871
## 12.769231 101.19820 104.12623 0.1827109 -3.11074224
## 12.846154 93.78483 99.34136 0.1827109 -5.73923383
## 12.923077 93.90562 99.11533 0.1827109 -5.39242933
## 13.000000 115.52513 107.56352 0.1827109 7.77890166
## 13.076923 120.74574 109.35021 0.1827109 11.21281734
## 13.153846 108.80925 104.12119 0.1827109 4.50535204
## 13.230769 95.48763 100.37518 0.1827109 -5.07025671
## 13.307692 86.55367 98.07702 0.1827109 -11.70605539
## 13.384615 92.04636 99.68289 0.1827109 -7.81924268
## 13.461538 104.15667 104.22644 0.1827109 -0.25248025
## 13.538462 112.61748 108.67935 0.1827109 3.75541499
## 13.615385 112.71371 109.25804 0.1827109 3.27295613
## 13.692308 100.25818 104.08080 0.1827109 -4.00532839
## 13.769231 90.02226 100.25581 0.1827109 -10.41625662
## 13.846154 95.81379 101.97142 0.1827109 -6.34033350
## 13.923077 113.76164 106.81584 0.1827109 6.76308435
## 14.000000 116.59169 106.27119 0.1827109 10.13778603
## 14.076923 104.53835 101.10153 0.1827109 3.25411242
## 14.153846 95.75801 96.84767 0.1827109 -1.27237575
## 14.230769 85.17482 93.71083 0.1827109 -8.71871707
## 14.307692 87.53341 96.96379 0.1827109 -9.61309391
## 14.384615 101.43050 102.65382 0.1827109 -1.40603758
## 14.461538 113.74394 107.53378 0.1827109 6.02744559
## 14.538462 110.66496 106.14450 0.1827109 4.33775607
## 14.615385 96.26539 100.69228 0.1827109 -4.60959820
## 14.692308 88.77656 98.49306 0.1827109 -9.89920668
## 14.769231 92.94907 100.92828 0.1827109 -8.16191698
## 14.846154 106.79689 106.09882 0.1827109 0.51535843
## 14.923077 115.68067 109.80455 0.1827109 5.69340501
## 15.000000 108.81515 106.36607 0.1827109 2.26637414
## 15.076923 101.10521 104.19297 0.1827109 -3.27046998
## 15.153846 94.31776 100.28928 0.1827109 -6.15423099
## 15.230769 95.09352 99.11430 0.1827109 -4.20349180
## 15.307692 100.23340 101.56452 0.1827109 -1.51382220
## 15.384615 111.44482 105.76020 0.1827109 5.50191628
## 15.461538 108.51799 104.61968 0.1827109 3.71560446
## 15.538462 97.29717 101.06364 0.1827109 -3.94917968
## 15.615385 91.08628 99.01613 0.1827109 -8.11255803
## 15.692308 95.30405 101.70792 0.1827109 -6.58657959
Peramalan
Plot Deret Waktu
#Plot time series
plot(training.ts,main="Winter 0.2;0.1;0.1",type="l",col="black",
xlim=c(1,25),pch=12)
lines(xhat1,type="l",col="red")
lines(xhat1.opt,type="l",col="blue")
lines(forecast1,type="l",col="red")
lines(forecast1.opt,type="l",col="blue")
legend("topleft",c("Actual Data",expression(paste(winter1)),
expression(paste(winter1.opt))),cex=0.5,
col=c("black","red","blue"),lty=1)
Akurasi Data Latih
#Akurasi data training
SSE1<-winter1$SSE
MSE1<-winter1$SSE/length(training.ts)
RMSE1<-sqrt(MSE1)
akurasi1 <- matrix(c(SSE1,MSE1,RMSE1))
row.names(akurasi1)<- c("SSE", "MSE", "RMSE")
colnames(akurasi1) <- c("Akurasi")
akurasi1
## Akurasi
## SSE 19249.76741
## MSE 100.25921
## RMSE 10.01295
SSE1.opt<-winter1.opt$SSE
MSE1.opt<-winter1.opt$SSE/length(training.ts)
RMSE1.opt<-sqrt(MSE1.opt)
akurasi1.opt <- matrix(c(SSE1.opt,MSE1.opt,RMSE1.opt))
row.names(akurasi1.opt)<- c("SSE1.opt", "MSE1.opt", "RMSE1.opt")
colnames(akurasi1.opt) <- c("Akurasi")
akurasi1.opt
## Akurasi
## SSE1.opt 13896.693461
## MSE1.opt 72.378612
## RMSE1.opt 8.507562
akurasi1.train = data.frame(Model_Winter = c("Winter 1","Winter1 optimal"),
Nilai_SSE=c(SSE1,SSE1.opt),
Nilai_MSE=c(MSE1,MSE1.opt),Nilai_RMSE=c(RMSE1,RMSE1.opt))
akurasi1.train
## Model_Winter Nilai_SSE Nilai_MSE Nilai_RMSE
## 1 Winter 1 19249.77 100.25921 10.012952
## 2 Winter1 optimal 13896.69 72.37861 8.507562
Akurasi Data Uji
#Akurasi Data Testing
forecast1<-data.frame(forecast1)
testing.ts<-data.frame(testing.ts)
selisih1<-forecast1-testing.ts
SSEtesting1<-sum(selisih1^2)
MSEtesting1<-SSEtesting1/length(testing.ts)
forecast1.opt<-data.frame(forecast1.opt)
selisih1.opt<-forecast1.opt-testing.ts
SSEtesting1.opt<-sum(selisih1.opt^2)
MSEtesting1.opt<-SSEtesting1.opt/length(testing.ts)
Winter Multiplikatif
Model multiplikatif digunakan cocok digunakan jika plot data asli menunjukkan fluktuasi musiman yang bervariasi.
Pemulusan
#Pemulusan dengan winter multiplikatif
winter2 <- HoltWinters(training.ts,alpha=0.2,beta=0.1,gamma=0.3,seasonal = "multiplicative")
winter2$fitted
## Time Series:
## Start = c(2, 1)
## End = c(15, 10)
## Frequency = 13
## xhat level trend season
## 2.000000 88.53261 87.09424 0.1827109045 1.0143871
## 2.076923 89.35114 87.79949 0.2349649788 1.0149565
## 2.153846 80.24923 88.30776 0.2622954117 0.9060538
## 2.230769 79.27077 88.62929 0.2682192600 0.8917097
## 2.307692 87.01558 88.92396 0.2708642461 0.9755676
## 2.384615 96.19416 89.36447 0.2878291241 1.0729692
## 2.461538 96.06461 89.89390 0.3119889327 1.0649483
## 2.538462 96.16187 90.27182 0.3185824660 1.0615017
## 2.615385 88.25357 88.90655 0.1501970777 0.9909813
## 2.692308 79.77034 87.52036 -0.0034420368 0.9114848
## 2.769231 81.45889 88.05059 0.0499250122 0.9246131
## 2.846154 94.18287 90.92384 0.3322574326 1.0320721
## 2.923077 106.25007 92.81553 0.4882006614 1.1387548
## 3.000000 93.46197 91.20474 0.2783017380 1.0216317
## 3.076923 92.30178 90.43192 0.1731900926 1.0187259
## 3.153846 80.18948 88.47318 -0.0400032385 0.9067805
## 3.230769 79.77237 89.37403 0.0540816599 0.8920280
## 3.307692 90.21214 91.95454 0.3067245472 0.9777900
## 3.384615 101.04367 93.44425 0.4250231729 1.0764297
## 3.461538 100.14205 93.55838 0.3939339204 1.0658817
## 3.538462 95.89750 92.22149 0.2208517869 1.0373764
## 3.615385 87.26861 89.98293 -0.0250898510 0.9701057
## 3.692308 82.72934 90.11707 -0.0091659726 0.9181141
## 3.769231 90.94402 94.40508 0.4205508742 0.9590659
## 3.846154 104.66983 98.61350 0.7993377080 1.0528804
## 3.923077 109.23068 97.98853 0.6569069904 1.1073060
## 4.000000 96.75250 95.68286 0.3606495383 1.0073820
## 4.076923 92.38005 93.29629 0.0859275109 0.9892681
## 4.153846 83.81772 91.39417 -0.1128770171 0.9182354
## 4.230769 85.45819 92.71399 0.0303930079 0.9214379
## 4.307692 94.60832 95.04857 0.2608113224 0.9926444
## 4.384615 103.63941 96.30573 0.3604457716 1.0721373
## 4.461538 97.80625 93.80116 0.0739449194 1.0418763
## 4.538462 91.06052 90.97260 -0.2163054328 1.0033521
## 4.615385 86.28690 89.13601 -0.3783346868 0.9721627
## 4.692308 87.05379 90.14658 -0.2394443535 0.9682634
## 4.769231 93.59512 93.19998 0.0898402441 1.0032726
## 4.846154 96.96847 93.61124 0.1219827348 1.0345155
## 4.923077 99.22324 93.01543 0.0502027675 1.0661641
## 5.000000 87.79593 90.54665 -0.2016953336 0.9717857
## 5.076923 86.28955 89.81792 -0.2543989997 0.9634453
## 5.153846 85.00109 90.99589 -0.1111620516 0.9352627
## 5.230769 89.95472 94.60387 0.2607528223 0.9482431
## 5.307692 98.32000 97.32698 0.5069887906 1.0049678
## 5.384615 100.43759 96.83671 0.4072623072 1.0328413
## 5.461538 94.95598 94.62258 0.1451235701 1.0019867
## 5.538462 91.77859 93.49402 0.0177549954 0.9814656
## 5.615385 94.60933 95.35019 0.2015964981 0.9901366
## 5.692308 100.13739 98.69709 0.5161262797 1.0093151
## 5.769231 101.28129 99.94716 0.5895208040 1.0074064
## 5.846154 102.14189 99.20095 0.4559482280 1.0249355
## 5.923077 99.39523 96.32403 0.1226610371 1.0305717
## 6.000000 90.31449 93.74335 -0.1476729777 0.9649430
## 6.076923 91.90313 93.75353 -0.1318874069 0.9816441
## 6.153846 93.82687 95.72360 0.0783082468 0.9793841
## 6.230769 96.01347 97.97498 0.2956147751 0.9770316
## 6.307692 97.13890 97.63602 0.2321578999 0.9925483
## 6.384615 95.60013 95.72537 0.0178772024 0.9985051
## 6.461538 92.85689 94.33582 -0.1228657071 0.9856064
## 6.538462 96.87797 96.38135 0.0939735919 1.0041736
## 6.615385 103.06711 99.83024 0.4294659819 1.0280013
## 6.692308 103.19638 100.86124 0.4896193790 1.0182092
## 6.769231 99.26808 99.82004 0.3365373227 0.9911289
## 6.846154 95.98688 97.62517 0.0833960170 0.9823794
## 6.923077 95.74407 96.29227 -0.0582331575 0.9949086
## 7.000000 92.94046 96.18588 -0.0630490484 0.9668926
## 7.076923 98.81105 97.95434 0.1201014538 1.0075107
## 7.153846 99.03531 98.35065 0.1477230448 1.0054512
## 7.230769 94.56569 97.50155 0.0480402216 0.9694115
## 7.307692 92.72518 96.09727 -0.0971920884 0.9658866
## 7.384615 93.35030 95.35594 -0.1616050529 0.9806287
## 7.461538 99.00402 97.71843 0.0908044867 1.0122155
## 7.538462 105.03356 100.21137 0.3310176930 1.0446695
## 7.615385 103.73062 99.91940 0.2687192957 1.0353585
## 7.692308 99.38981 99.26591 0.1764976955 0.9994711
## 7.769231 92.93362 96.85860 -0.0818831413 0.9602890
## 7.846154 92.05196 95.58744 -0.2008101981 0.9650405
## 7.923077 96.33428 96.93178 -0.0462956801 0.9943108
## 8.000000 98.36221 99.30240 0.1953957420 0.9885868
## 8.076923 103.28299 101.74828 0.4204440891 1.0109062
## 8.153846 100.98221 101.34421 0.3379934370 0.9931159
## 8.230769 94.73900 99.42154 0.1119269153 0.9518306
## 8.307692 94.51815 98.63409 0.0219886463 0.9580571
## 8.384615 102.94833 101.51761 0.3081417194 1.0110246
## 8.461538 106.70059 102.12724 0.3382906693 1.0413316
## 8.538462 105.45757 101.47046 0.2387835794 1.0368534
## 8.615385 102.84323 100.34822 0.1026819546 1.0238158
## 8.692308 94.09543 97.45546 -0.1968626872 0.9674767
## 8.769231 90.93956 96.41657 -0.2810657930 0.9459519
## 8.846154 96.46524 98.16200 -0.0784160941 0.9835004
## 8.923077 103.60955 101.02919 0.2161452365 1.0233513
## 9.000000 104.69135 102.79117 0.3707284352 1.0148257
## 9.076923 101.70248 101.40236 0.1947741562 1.0010369
## 9.153846 95.92768 99.33374 -0.0315646779 0.9660179
## 9.230769 92.68928 98.56284 -0.1054986990 0.9414156
## 9.307692 99.81572 100.66183 0.1149506849 0.9904634
## 9.384615 105.12424 103.24873 0.3621457722 1.0146062
## 9.461538 108.49481 104.93468 0.4945254804 1.0290774
## 9.538462 106.01147 103.62131 0.3137361078 1.0199781
## 9.615385 99.56343 100.95581 0.0158126979 0.9860535
## 9.692308 95.07612 99.44945 -0.1364047115 0.9573376
## 9.769231 97.45291 100.54385 -0.0133241229 0.9693862
## 9.846154 104.65436 102.61756 0.1953789005 1.0179104
## 9.923077 109.44368 104.66953 0.3810385386 1.0418190
## 10.000000 103.10656 103.53167 0.2291487498 0.9936945
## 10.076923 99.07431 101.72805 0.0258718767 0.9736657
## 10.153846 96.31956 100.69366 -0.0801543902 0.9573223
## 10.230769 99.44740 102.79318 0.1378128134 0.9661560
## 10.307692 108.58852 106.11592 0.4563059634 1.0189195
## 10.384615 110.15718 106.50290 0.4493727539 1.0299658
## 10.461538 106.11909 105.06510 0.2606561821 1.0075321
## 10.538462 100.63282 102.32344 -0.0395761486 0.9838583
## 10.615385 96.93247 100.37342 -0.2306203992 0.9679425
## 10.692308 98.60592 101.59446 -0.0854540957 0.9714007
## 10.769231 103.45229 104.01203 0.1648479002 0.9930446
## 10.846154 109.41878 105.00548 0.2477085164 1.0395769
## 10.923077 105.44358 103.00218 0.0226076830 1.0234778
## 11.000000 96.93067 100.20193 -0.2596785244 0.9698668
## 11.076923 95.14966 99.29784 -0.3241197648 0.9613629
## 11.153846 100.04880 101.94293 -0.0271989041 0.9816817
## 11.230769 105.75038 105.33492 0.3147203969 1.0009535
## 11.307692 107.58715 105.38386 0.2881421925 1.0181235
## 11.384615 104.66325 103.75981 0.0969228338 1.0077657
## 11.461538 97.55474 100.58892 -0.2298584078 0.9720571
## 11.538462 94.08311 98.29783 -0.4359807662 0.9613869
## 11.615385 96.63056 98.51832 -0.3703340921 0.9845394
## 11.692308 99.34954 99.62645 -0.2224874086 0.9994525
## 11.769231 100.83629 100.68448 -0.0944361484 1.0024480
## 11.846154 100.41036 99.40215 -0.2132251807 1.0123142
## 11.923077 95.48671 96.99343 -0.4327747567 0.9888780
## 12.000000 91.19320 95.32123 -0.5567174431 0.9623139
## 12.076923 98.16691 98.81541 -0.1516272151 0.9949640
## 12.153846 105.17655 102.85483 0.2674771768 1.0199204
## 12.230769 104.32817 104.17268 0.3725138619 0.9979242
## 12.307692 103.12657 103.33047 0.2510422764 0.9956079
## 12.384615 96.95865 100.20136 -0.0869737416 0.9684788
## 12.461538 93.46784 98.85008 -0.2134040283 0.9475972
## 12.538462 97.82865 100.93427 0.0163552048 0.9690743
## 12.615385 104.58355 104.04181 0.3254739572 1.0020722
## 12.692308 108.08535 106.02741 0.4914869650 1.0147058
## 12.769231 104.02783 104.94910 0.3345064967 0.9880725
## 12.846154 100.70286 102.22659 0.0288055592 0.9848171
## 12.923077 97.84440 100.64538 -0.1321961895 0.9734484
## 13.000000 105.11097 103.89954 0.2064391617 1.0096535
## 13.076923 112.13127 106.95389 0.4912306168 1.0436143
## 13.153846 110.38355 106.53368 0.4000864320 1.0322610
## 13.230769 103.23469 104.74813 0.1815224349 0.9838467
## 13.307692 97.44901 102.10881 -0.1005619379 0.9553052
## 13.384615 95.56008 100.46335 -0.2550509841 0.9536144
## 13.461538 98.93321 101.73100 -0.1027815483 0.9734817
## 13.538462 105.47109 104.86887 0.2212839501 1.0036249
## 13.615385 109.33067 106.70923 0.3831912125 1.0209002
## 13.692308 104.98142 105.16089 0.1900387879 0.9964925
## 13.769231 97.46417 102.41567 -0.1034871288 0.9526154
## 13.846154 97.90938 101.54490 -0.1802162895 0.9659122
## 13.923077 104.52088 103.31554 0.0148701359 1.0115210
## 14.000000 109.36382 104.80220 0.1620487953 1.0419150
## 14.076923 107.27727 103.81331 0.0469545448 1.0329000
## 14.153846 101.63699 101.20752 -0.2183192677 1.0064144
## 14.230769 92.92857 98.19107 -0.4981321764 0.9512312
## 14.307692 91.10083 97.65756 -0.5016701188 0.9376768
## 14.384615 96.11288 99.29718 -0.2875414910 0.9707427
## 14.461538 103.53990 102.49621 0.0611156284 1.0095807
## 14.538462 106.27300 103.80937 0.1863201645 1.0218982
## 14.615385 101.96682 102.13055 -0.0001936158 0.9983987
## 14.692308 95.81515 99.80938 -0.2322916359 0.9622209
## 14.769231 93.46126 99.27083 -0.2629176749 0.9439777
## 14.846154 100.25923 101.51029 -0.0126798894 0.9877989
## 14.923077 107.87566 104.58361 0.2959208571 1.0285673
## 15.000000 107.87494 104.65754 0.2737217585 1.0280533
## 15.076923 104.20359 103.98187 0.1787823748 1.0004122
## 15.153846 98.59750 101.52286 -0.0849966184 0.9719989
## 15.230769 94.72519 99.86706 -0.2420769598 0.9508176
## 15.307692 96.92941 100.88085 -0.1164901618 0.9619414
## 15.384615 104.74592 103.51268 0.1583413438 1.0103683
## 15.461538 107.10612 104.34992 0.2262311270 1.0241926
## 15.538462 103.07030 103.04807 0.0734236000 0.9995035
## 15.615385 97.74427 100.86374 -0.1523525163 0.9705384
## 15.692308 96.30204 100.61680 -0.1618105752 0.9586586
xhat2 <- winter2$fitted[,2]
winter2.opt<- HoltWinters(training.ts, alpha= NULL, beta = NULL, gamma = NULL, seasonal = "multiplicative")
winter2.opt$fitted
## Time Series:
## Start = c(2, 1)
## End = c(15, 10)
## Frequency = 13
## xhat level trend season
## 2.000000 88.53261 87.09424 0.1827109 1.0143871
## 2.076923 89.85599 88.34915 0.1827109 1.0149565
## 2.153846 80.70334 88.88853 0.1827109 0.9060538
## 2.230769 79.51360 88.98712 0.1827109 0.8917097
## 2.307692 87.11336 89.11235 0.1827109 0.9755676
## 2.384615 96.33626 89.60203 0.1827109 1.0729692
## 2.461538 96.28074 90.22613 0.1827109 1.0649483
## 2.538462 96.21829 90.46084 0.1827109 1.0615017
## 2.615385 86.56156 87.16663 0.1827109 0.9909813
## 2.692308 77.54931 84.89750 0.1827109 0.9114848
## 2.769231 80.77230 87.17523 0.1827109 0.9246131
## 2.846154 96.64178 93.45588 0.1827109 1.0320721
## 2.923077 109.36987 95.86067 0.1827109 1.1387548
## 3.000000 93.70705 90.61214 0.1827109 1.0320744
## 3.076923 90.59173 88.56243 0.1827109 1.0208077
## 3.153846 77.13591 85.06700 0.1827109 0.9048231
## 3.230769 79.06775 88.56937 0.1827109 0.8908833
## 3.307692 92.59594 94.26733 0.1827109 0.9803696
## 3.384615 103.78942 95.87317 0.1827109 1.0805108
## 3.461538 100.78495 94.37753 0.1827109 1.0658280
## 3.538462 91.00444 90.76103 0.1827109 1.0006674
## 3.615385 83.49430 87.71880 0.1827109 0.9498619
## 3.692308 84.91196 89.86589 0.1827109 0.9429571
## 3.769231 98.97174 97.68380 0.1827109 1.0112932
## 3.846154 108.95070 101.97984 0.1827109 1.0664446
## 3.923077 101.79227 97.62984 0.1827109 1.0406872
## 4.000000 93.95942 94.27772 0.1827109 0.9946960
## 4.076923 86.24818 89.90384 0.1827109 0.9573924
## 4.153846 84.56313 88.49984 0.1827109 0.9535486
## 4.230769 88.24762 91.19265 0.1827109 0.9657705
## 4.307692 95.00497 94.70100 0.1827109 1.0012780
## 4.384615 102.05857 96.74792 0.1827109 1.0529032
## 4.461538 91.90183 91.56065 0.1827109 1.0017272
## 4.538462 83.55005 87.96788 0.1827109 0.9478105
## 4.615385 86.27732 87.88294 0.1827109 0.9796932
## 4.692308 95.52978 90.89766 0.1827109 1.0488515
## 4.769231 100.76753 94.00147 0.1827109 1.0698987
## 4.846154 91.80141 92.05151 0.1827109 0.9953074
## 4.923077 91.58649 92.83381 0.1827109 0.9846261
## 5.000000 83.72803 90.60269 0.1827109 0.9222632
## 5.076923 85.47422 91.45600 0.1827109 0.9327305
## 5.153846 94.38371 95.03332 0.1827109 0.9912586
## 5.230769 100.14578 98.53188 0.1827109 1.0144983
## 5.307692 102.38262 99.31470 0.1827109 1.0289978
## 5.384615 92.62050 95.87866 0.1827109 0.9641805
## 5.461538 88.17674 93.62665 0.1827109 0.9399567
## 5.538462 88.86090 93.98320 0.1827109 0.9436632
## 5.615385 101.88481 99.35813 0.1827109 1.0235478
## 5.692308 112.90948 102.86700 0.1827109 1.0956797
## 5.769231 103.25886 99.65327 0.1827109 1.0342850
## 5.846154 97.00321 96.38176 0.1827109 1.0045435
## 5.923077 86.99401 91.68618 0.1827109 0.9469366
## 6.000000 85.17274 91.20638 0.1827109 0.9319793
## 6.076923 92.34426 93.98854 0.1827109 0.9805992
## 6.153846 102.34633 98.30426 0.1827109 1.0391865
## 6.230769 101.82672 99.32491 0.1827109 1.0233057
## 6.307692 93.53970 95.93311 0.1827109 0.9731978
## 6.384615 86.62670 93.14927 0.1827109 0.9281567
## 6.461538 88.94459 94.19275 0.1827109 0.9424547
## 6.538462 102.37957 100.73210 0.1827109 1.0145148
## 6.615385 113.20001 105.50318 0.1827109 1.0710986
## 6.692308 107.50677 102.98819 0.1827109 1.0420260
## 6.769231 96.71634 98.40403 0.1827109 0.9810279
## 6.846154 87.75526 94.40647 0.1827109 0.9277516
## 6.923077 89.33483 95.15314 0.1827109 0.9370539
## 7.000000 95.17698 98.03785 0.1827109 0.9690128
## 7.076923 105.23727 101.02324 0.1827109 1.0398329
## 7.153846 104.54889 99.21892 0.1827109 1.0517825
## 7.230769 92.47249 95.29506 0.1827109 0.9685238
## 7.307692 86.89044 93.38193 0.1827109 0.9286675
## 7.384615 89.28659 94.76837 0.1827109 0.9403430
## 7.461538 105.16305 102.12565 0.1827109 1.0279028
## 7.538462 113.05719 104.70315 0.1827109 1.0779068
## 7.615385 103.87759 100.59221 0.1827109 1.0307881
## 7.692308 95.97917 98.81572 0.1827109 0.9695020
## 7.769231 87.41478 94.97650 0.1827109 0.9186161
## 7.846154 89.12684 95.07371 0.1827109 0.9356518
## 7.923077 97.40834 99.80948 0.1827109 0.9741595
## 8.000000 105.58459 104.60160 0.1827109 1.0076375
## 8.076923 107.61235 106.37332 0.1827109 1.0099132
## 8.153846 101.90838 103.10331 0.1827109 0.9866619
## 8.230769 92.24318 98.23178 0.1827109 0.9372927
## 8.307692 92.49618 97.63318 0.1827109 0.9456151
## 8.384615 108.52078 104.64225 0.1827109 1.0352570
## 8.461538 109.78091 103.22016 0.1827109 1.0616815
## 8.538462 101.57719 100.20955 0.1827109 1.0118030
## 8.615385 99.42846 99.10430 0.1827109 1.0014247
## 8.692308 86.12138 94.40256 0.1827109 0.9105158
## 8.769231 88.55589 96.34342 0.1827109 0.9174292
## 8.846154 101.75387 101.87985 0.1827109 0.9969755
## 8.923077 109.83049 105.84806 0.1827109 1.0358360
## 9.000000 110.01030 106.69981 0.1827109 1.0292637
## 9.076923 97.46338 101.20200 0.1827109 0.9613222
## 9.153846 90.03918 98.35822 0.1827109 0.9137237
## 9.230769 92.43338 99.58176 0.1827109 0.9265160
## 9.307692 108.24064 104.47398 0.1827109 1.0342448
## 9.384615 107.64421 106.17123 0.1827109 1.0121318
## 9.461538 109.65286 108.05514 0.1827109 1.0130731
## 9.538462 103.44461 104.00051 0.1827109 0.9929105
## 9.615385 91.90737 98.96436 0.1827109 0.9269802
## 9.692308 92.87522 99.21407 0.1827109 0.9343887
## 9.769231 101.76152 102.95094 0.1827109 0.9866956
## 9.846154 110.82824 105.54890 0.1827109 1.0482034
## 9.923077 112.03849 107.01395 0.1827109 1.0451677
## 10.000000 97.70480 103.07116 0.1827109 0.9462580
## 10.076923 93.16784 101.21640 0.1827109 0.9188230
## 10.153846 94.52006 101.73175 0.1827109 0.9274450
## 10.230769 106.06110 107.32729 0.1827109 0.9865232
## 10.307692 117.51478 111.15904 0.1827109 1.0554422
## 10.384615 111.69627 107.73366 0.1827109 1.0350262
## 10.461538 98.84435 103.45277 0.1827109 0.9537694
## 10.538462 92.17238 100.25786 0.1827109 0.9176808
## 10.615385 92.97723 100.02129 0.1827109 0.9278795
## 10.692308 103.21582 105.06061 0.1827109 0.9807351
## 10.769231 110.66191 108.40142 0.1827109 1.0191352
## 10.846154 114.64360 107.33769 0.1827109 1.0662498
## 10.923077 99.67739 101.00613 0.1827109 0.9850631
## 11.000000 89.82673 97.57292 0.1827109 0.9188906
## 11.076923 92.05120 99.53266 0.1827109 0.9231395
## 11.153846 107.04427 107.43761 0.1827109 0.9946474
## 11.230769 115.53779 111.65848 0.1827109 1.0330523
## 11.307692 108.10847 107.42471 0.1827109 1.0046563
## 11.384615 100.58245 103.41822 0.1827109 0.9708643
## 11.461538 89.44296 98.36577 0.1827109 0.9076037
## 11.538462 89.27178 97.68650 0.1827109 0.9121538
## 11.615385 100.56970 101.45356 0.1827109 0.9895060
## 11.692308 105.45217 103.02103 0.1827109 1.0217864
## 11.769231 103.72615 103.32279 0.1827109 1.0021317
## 11.846154 96.80933 99.88387 0.1827109 0.9674492
## 11.923077 90.52228 96.88022 0.1827109 0.9326143
## 12.000000 91.16764 96.55083 0.1827109 0.9424615
## 12.076923 107.36168 105.23185 0.1827109 1.0184711
## 12.153846 115.40337 110.11078 0.1827109 1.0463299
## 12.230769 105.52956 108.38328 0.1827109 0.9720315
## 12.307692 99.99543 105.49989 0.1827109 0.9461862
## 12.384615 89.59563 99.74260 0.1827109 0.8966260
## 12.461538 90.21541 100.49321 0.1827109 0.8960972
## 12.538462 102.87438 107.15081 0.1827109 0.9584553
## 12.615385 112.73185 111.58620 0.1827109 1.0086155
## 12.692308 114.65062 111.83790 0.1827109 1.0234780
## 12.769231 101.05064 106.19466 0.1827109 0.9499262
## 12.846154 93.39153 101.13896 0.1827109 0.9217330
## 12.923077 93.68900 101.04717 0.1827109 0.9255073
## 13.000000 116.29239 110.38086 0.1827109 1.0518147
## 13.076923 121.05116 111.81039 0.1827109 1.0808805
## 13.153846 109.10540 106.80074 0.1827109 1.0198344
## 13.230769 96.07012 102.95840 0.1827109 0.9314436
## 13.307692 86.83997 100.18397 0.1827109 0.8652271
## 13.384615 92.27190 101.89860 0.1827109 0.9039059
## 13.461538 104.25868 106.87043 0.1827109 0.9738965
## 13.538462 112.85947 111.45579 0.1827109 1.0109368
## 13.615385 113.18630 111.93741 0.1827109 1.0095093
## 13.692308 100.62319 106.54471 0.1827109 0.9428054
## 13.769231 90.07018 102.25860 0.1827109 0.8792369
## 13.846154 95.82520 104.18663 0.1827109 0.9181355
## 13.923077 113.61614 109.51221 0.1827109 1.0357466
## 14.000000 116.72322 109.04055 0.1827109 1.0686663
## 14.076923 104.83834 104.09465 0.1827109 1.0053798
## 14.153846 96.12373 99.68072 0.1827109 0.9625519
## 14.230769 85.97748 96.21085 0.1827109 0.8919421
## 14.307692 88.12381 99.51433 0.1827109 0.8839160
## 14.384615 101.90875 105.74016 0.1827109 0.9621033
## 14.461538 114.08514 110.66903 0.1827109 1.0291686
## 14.538462 110.96977 109.16701 0.1827109 1.0148154
## 14.615385 96.88938 103.59658 0.1827109 0.9336100
## 14.692308 89.33367 100.91822 0.1827109 0.8836088
## 14.769231 93.28991 103.42685 0.1827109 0.9003986
## 14.846154 107.07768 109.07083 0.1827109 0.9800843
## 14.923077 115.99251 112.78056 0.1827109 1.0268161
## 15.000000 108.68158 109.26298 0.1827109 0.9930184
## 15.076923 100.70952 107.09553 0.1827109 0.9387693
## 15.153846 93.93569 103.03776 0.1827109 0.9100491
## 15.230769 95.13584 101.88013 0.1827109 0.9321301
## 15.307692 100.13873 104.51063 0.1827109 0.9564956
## 15.384615 111.50513 108.98780 0.1827109 1.0213851
## 15.461538 108.70123 107.83274 0.1827109 1.0063489
## 15.538462 97.45285 104.17391 0.1827109 0.9338445
## 15.615385 91.39364 101.86678 0.1827109 0.8955816
## 15.692308 95.71457 104.74922 0.1827109 0.9121587
Peramalan
Plot Deret Waktu
#Plot time series
plot(training.ts,main="Winter 0.2;0.1;0.1",type="l",col="black",
xlim=c(1,25),pch=12)
lines(xhat2,type="l",col="red")
lines(xhat2.opt,type="l",col="blue")
lines(forecast2,type="l",col="red")
lines(forecast2.opt,type="l",col="blue")
legend("topleft",c("Actual Data",expression(paste(winter2)),
expression(paste(winter2.opt))),cex=0.5,
col=c("black","red","blue"),lty=1)
Akurasi Data Latih
#Akurasi data training
SSE2<-winter2$SSE
MSE2<-winter2$SSE/length(training.ts)
RMSE2<-sqrt(MSE2)
akurasi1 <- matrix(c(SSE2,MSE2,RMSE2))
row.names(akurasi1)<- c("SSE2", "MSE2", "RMSE2")
colnames(akurasi1) <- c("Akurasi lamda=0.2")
akurasi1
## Akurasi lamda=0.2
## SSE2 18378.242877
## MSE2 95.720015
## RMSE2 9.783661
SSE2.opt<-winter2.opt$SSE
MSE2.opt<-winter2.opt$SSE/length(training.ts)
RMSE2.opt<-sqrt(MSE2.opt)
akurasi1.opt <- matrix(c(SSE2.opt,MSE2.opt,RMSE2.opt))
row.names(akurasi1.opt)<- c("SSE2.opt", "MSE2.opt", "RMSE2.opt")
colnames(akurasi1.opt) <- c("Akurasi")
akurasi1.opt
## Akurasi
## SSE2.opt 14014.482201
## MSE2.opt 72.992095
## RMSE2.opt 8.543541
akurasi2.train = data.frame(Model_Winter = c("Winter 1","winter2 optimal"),
Nilai_SSE=c(SSE2,SSE2.opt),
Nilai_MSE=c(MSE2,MSE2.opt),Nilai_RMSE=c(RMSE2,RMSE2.opt))
akurasi2.train
## Model_Winter Nilai_SSE Nilai_MSE Nilai_RMSE
## 1 Winter 1 18378.24 95.72001 9.783661
## 2 winter2 optimal 14014.48 72.99209 8.543541
Akurasi Data Uji
#Akurasi Data Testing
forecast2<-data.frame(forecast2)
testing.ts<-data.frame(testing.ts)
selisih2<-forecast2-testing.ts
SSEtesting2<-sum(selisih2^2)
MSEtesting2<-SSEtesting2/length(testing.ts)
forecast2.opt<-data.frame(forecast2.opt)
selisih2.opt<-forecast2.opt-testing.ts
SSEtesting2.opt<-sum(selisih2.opt^2)
MSEtesting2.opt<-SSEtesting2.opt/length(testing.ts)
Pertemuan 2
Pemanggilan Packages
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(TTR)
library(forecast)
library(lmtest) #digunakan untuk uji formal pendeteksian autokorelasi
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Warning: package 'orcutt' was built under R version 4.3.3
## Warning: package 'HoRM' was built under R version 4.3.3
Input Data
Data yang digunakan dalam kesempatan kali ini adalah data IPM Provinsi Gorontalo periode tahun 2010-2021.
tahun <- c(2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021)
ipm <- c(62.65,63.48,64.16,64.70,65.17,65.86,66.29,67.01,67.71,68.49,68.68,69.00)
dtGorontalo <- cbind(tahun,ipm)
dtGorontalo <- as.data.frame(dtGorontalo)
dtGorontalo
## tahun ipm
## 1 2010 62.65
## 2 2011 63.48
## 3 2012 64.16
## 4 2013 64.70
## 5 2014 65.17
## 6 2015 65.86
## 7 2016 66.29
## 8 2017 67.01
## 9 2018 67.71
## 10 2019 68.49
## 11 2020 68.68
## 12 2021 69.00
Eksplorasi Data
Sebelum melakukan regresi, akan diperlihatkan plot time-series dari IPM Provinsi Gorontalo Periode 2010-2021
## Time Series:
## Start = 1
## End = 12
## Frequency = 1
## [1] 62.65 63.48 64.16 64.70 65.17 65.86 66.29 67.01 67.71 68.49 68.68 69.00
#Membuat plot time series
ts.plot(data.ts, xlab="Time Period ", ylab="IPM", main= "Time Series Plot of IPM")
points(data.ts)
Selanjutnya akan dilakukan ramalan dan pemulusan dengan metode DMA dan DES karena terlihat pada plot di atas menunjukkan adanya trend.
dt.sma <- SMA(data.ts, n=3)
dma <- SMA(dt.sma, n = 3)
At <- 2*dt.sma - dma
Bt <- 2/(3-1)*(dt.sma - dma)
dt.dma<- At+Bt
dt.ramal<- c(NA, dt.dma)
t = 1:5
f = c()
for (i in t) {
f[i] = At[length(At)] + Bt[length(Bt)]*(i)
}
dt.gab <- cbind(aktual = c(data.ts,rep(NA,5)),
pemulusan1 = c(dt.sma,rep(NA,5)),
pemulusan2 = c(dt.dma, rep(NA,5)),
At = c(At, rep(NA,5)),
Bt = c(Bt,rep(NA,5)),
ramalan = c(dt.ramal, f[-1]))
dt.gab
## aktual pemulusan1 pemulusan2 At Bt ramalan
## [1,] 62.65 NA NA NA NA NA
## [2,] 63.48 NA NA NA NA NA
## [3,] 64.16 63.43000 NA NA NA NA
## [4,] 64.70 64.11333 NA NA NA NA
## [5,] 65.17 64.67667 65.88333 65.28000 0.6033333 NA
## [6,] 65.86 65.24333 66.37444 65.80889 0.5655556 65.88333
## [7,] 66.29 65.77333 66.85778 66.31556 0.5422222 66.37444
## [8,] 67.01 66.38667 67.55778 66.97222 0.5855556 66.85778
## [9,] 67.71 67.00333 68.23444 67.61889 0.6155556 67.55778
## [10,] 68.49 67.73667 69.12556 68.43111 0.6944444 68.23444
## [11,] 68.68 68.29333 69.52444 68.90889 0.6155556 69.12556
## [12,] 69.00 68.72333 69.66778 69.19556 0.4722222 69.52444
## [13,] NA NA NA NA NA 69.66778
## [14,] NA NA NA NA NA 70.14000
## [15,] NA NA NA NA NA 70.61222
## [16,] NA NA NA NA NA 71.08444
## [17,] NA NA NA NA NA 71.55667
#Plot time series
ts.plot(dt.gab[,1], xlab="Time Period ", ylab="IPM",
main= "DMA N=3 Data IPM", ylim=c(62,75))
points(dt.gab[,1])
points(dt.gab[,3])
points(dt.gab[,6])
lines(dt.gab[,3],col="green",lwd=2)
lines(dt.gab[,6],col="red",lwd=2)
legend("topleft",c("data aktual","data pemulusan","data peramalan"),
lty=8, col=c("black","green","red"), cex=0.8)
Selanjutnya akan dilihat keakuratan dari metode DMA
#Menghitung nilai keakuratan
error.dma = data.ts-dt.ramal[1:length(data.ts)]
SSE.dma = sum(error.dma[6:length(data.ts)]^2)
MSE.dma = mean(error.dma[6:length(data.ts)]^2)
MAPE.dma = mean(abs((error.dma[6:length(data.ts)]/data.ts[6:length(data.ts)])*100))
akurasi.dma <- matrix(c(SSE.dma, MSE.dma, MAPE.dma))
row.names(akurasi.dma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi.dma) <- c("Akurasi m = 3")
akurasi.dma
## Akurasi m = 3
## SSE 0.59288889
## MSE 0.08469841
## MAPE 0.34238965
Selanjutnya akan digunakan metode Double Exponential Smoothing dengan cara sebagai berikut.
Pertama akan data akan dibagi menjadi data training dan data testing.
#membagi training dan testing
training<-dtGorontalo[1:10,2]
testing<-dtGorontalo[11:12,2]
#data time series
training.ts<-ts(training)
testing.ts<-ts(testing,start=11)
#eksplorasi data
plot(data.ts, col="red",main="Plot semua data")
points(data.ts)
Selanjutnya akan dilakukan pemulusan dengan DES, kali ini langsung dicari lambda dan gamma optimum sebagai berikut. Nilai lambda dan gamma optimum dapat dilihat pada smoothing parameters alpha untuk nilai lambda dan beta untuk nilai gamma.
## Holt-Winters exponential smoothing with trend and without seasonal component.
##
## Call:
## HoltWinters(x = training.ts, gamma = FALSE)
##
## Smoothing parameters:
## alpha: 0.7826887
## beta : 1
## gamma: FALSE
##
## Coefficients:
## [,1]
## a 68.4727317
## b 0.7823472
plot(des.opt)
legend("topleft", c("Data Aktual", "Peramalan"), col = c("black", "red"),
lty = c(1,1))
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 11 69.25508 69.04282 69.46734 68.93045 69.57971
## 12 70.03743 69.64314 70.43171 69.43442 70.64043
## 13 70.81977 70.18427 71.45528 69.84785 71.79170
## 14 71.60212 70.68262 72.52163 70.19586 73.00838
## 15 72.38447 71.14531 73.62363 70.48934 74.27960
Selanjutnya akan dicari akurasi dari metode DES.
ssedes.train<-des.opt$SSE
msedes.train<-ssedes.train/length(training.ts)
sisaandes<-ramalandesopt$residuals
head(sisaandes)
## Time Series:
## Start = 1
## End = 6
## Frequency = 1
## [1] NA NA -0.1500000 -0.2051934 -0.1265850 0.2095741
mapedes.train <- sum(abs(sisaandes[3:length(training.ts)]/training.ts[3:length(training.ts)])*100)/length(training.ts)
akurasides.opt <- matrix(c(ssedes.train,msedes.train,mapedes.train))
row.names(akurasides.opt)<- c("SSE", "MSE", "MAPE")
colnames(akurasides.opt) <- c("Akurasi lamda dan gamma optimum")
akurasides.opt
## Akurasi lamda dan gamma optimum
## SSE 0.19249578
## MSE 0.01924958
## MAPE 0.17991246
## Time Series:
## Start = 11
## End = 12
## Frequency = 1
## [1] 0.575079 1.037426
SSEtestingdesopt<-sum(selisihdesopt^2)
SSEtestingdesopt<-SSEtestingdesopt/length(testing.ts)
MAPEtestingdesopt<-sum(abs(selisihdesopt/testing.ts)*100)/length(testing.ts)
akurasiDesTesting <- matrix(c(SSEtestingdesopt,SSEtestingdesopt,MAPEtestingdesopt))
row.names(akurasiDesTesting)<- c("SSE", "MSE", "MAPE")
colnames(akurasiDesTesting) <- c("Akurasi lamda dan gamma optimum")
akurasiDesTesting
## Akurasi lamda dan gamma optimum
## SSE 0.7034845
## MSE 0.7034845
## MAPE 1.1704237
Setelah didapatkan nilai akurasi untuk metode DMA dan DES, selanjutnya akan dibandingkan keakuratan antar metode keduanya.
## Akurasi m = 3 Akurasi lamda dan gamma optimum
## SSE 0.59288889 0.19249578
## MSE 0.08469841 0.01924958
## MAPE 0.34238965 0.17991246
Berdasarkan perbandingan akurasi tersebut, terlihat nilai SSE, MSE, dan MAPE metode DES lebih kecil dibandingkan dengan metode DMA. Oleh karena itu, metode peramalan dan pemulusan yang terbaik antara keduanya adalah dengan metode DES.
Setelah melakukan peramalan, data yang telah dimasukkan kemudian dieksplorasi. Eksplorasi pertama yang dilakukan adalah dengan menggunakan scatter plot.
#Eksplorasi Data
#Pembuatan Scatter Plot
plot(tahun,ipm, pch = 20, col = "blue",
main = "Scatter Plot Tahun vs Nilai IPM",
xlab = "Tahun",
ylab = "Nilai IPM")
## [1] 0.9966848
Berdasarkan scatter plot di atas, terlihat adanya hubungan / korelasi
positif antara peubah tahun dengan nilai IPM, terlihat titik-titik pada
plot yang naik ke arah kanan atas. Hal tersebut juga diperkuat dengan
hasil perhitungan aplikasi R
di mana didapatkan nilai
korelasi sebesar \(0.9966848\).
Setalah mengetahui adanya hubungan antar dua peubah, maka model regresi dapat ditentukan.
Regresi
##
## Call:
## lm(formula = ipm ~ tahun, data = dtGorontalo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.33000 -0.07295 0.02591 0.08000 0.33455
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.118e+03 3.055e+01 -36.58 5.55e-12 ***
## tahun 5.873e-01 1.516e-02 38.74 3.14e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1813 on 10 degrees of freedom
## Multiple R-squared: 0.9934, Adjusted R-squared: 0.9927
## F-statistic: 1501 on 1 and 10 DF, p-value: 3.136e-12
Model yang dihasilkan adalah \[y_i=-1118+0.5873x_t\] Berdasarkan ringkasan model dapat diketahui bahwa hasil uji F memiliki p-value < \(\alpha\) (5%). Artinya, minimal terdapat satu variabel yang berpengaruh nyata terhadap model. Hasil uji-t parsial kedua parameter regresi, yaitu intersep dan koefisien regresi juga menunjukkan hal yang sama, yaitu memiliki p-value < \(\alpha\) (5%) sehingga nyata dalam taraf 5%. Selanjutnya dapat dilihat juga nilai \(R^2=0.9934\). Artinya, sebesar 99.34% keragaman nilai IPM dapat dijelaskan oleh peubah tahun. Hasil ini menunjukkan hasil yang bagus, seolah mendapatkan hasil terbaik. Namun, kita perlu melakukan uji terhadap sisaannya seperti berikut ini.
#sisaan dan fitted value
sisaan<- residuals(model)
fitValue<- predict(model)
#Diagnostik dengan eksploratif
par(mfrow = c(2,2))
qqnorm(sisaan)
qqline(sisaan, col = "steelblue", lwd = 2)
plot(fitValue, sisaan, col = "steelblue", pch = 20, xlab = "Sisaan", ylab = "Fitted Values", main = "Sisaan vs Fitted Values")
abline(a = 0, b = 0, lwd = 2)
hist(sisaan, col = "steelblue")
plot(seq(1,12,1), sisaan, col = "steelblue", pch = 20, xlab = "Sisaan", ylab = "Order", main = "Sisaan vs Order")
lines(seq(1,12,1), sisaan, col = "red")
abline(a = 0, b = 0, lwd = 2)
Dua plot di samping kiri digunakan untuk melihat apakah sisaan menyebar normal. Normal Q-Q Plot di atas menunjukkan bahwa sisaan cenderung menyebar normal, tetapi histogram dari sisaan tidak menunjukkan demikian. Selanjutnya, dua plot di samping kanan digunakan untuk melihat autokorelasi. Plot Sisaan vs Fitted Value dan Plot Sisaan vs Order menunjukkan adanya pola pada sisaan. Untuk lebih lanjut akan digunakan uji formal melihat normalitas sisaan dan plot ACF dan PACF untuk melihat apakah ada autokorelasi atau tidak.
#Melihat Sisaan Menyebar Normal/Tidak
#H0: sisaan mengikuti sebaran normal
#H1: sisaan tidak mengikuti sebaran normal
shapiro.test(sisaan)
##
## Shapiro-Wilk normality test
##
## data: sisaan
## W = 0.97479, p-value = 0.954
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: sisaan
## D = 0.13564, p-value = 0.9589
## alternative hypothesis: two-sided
Berdasarkan uji formal Saphiro-Wilk dan Kolmogorov-Smirnov didapatkan nilai p-value > \(\alpha\) (5%). Artinya, cukup bukti untuk menyatakan sisaan berdistribusi normal.
Berdasarkan plot ACF dan PACF, terlihat semua dalam rentang batas dan tidak ada lag yang signifikan. Namun, untuk lebih memastikan akan dilakukan uji formal dengan uji Durbin Watson.
#Deteksi autokorelasi dengan uji-Durbin Watson
#H0: tidak ada autokorelasi
#H1: ada autokorelasi
dwtest(model)
##
## Durbin-Watson test
##
## data: model
## DW = 1.2644, p-value = 0.03741
## alternative hypothesis: true autocorrelation is greater than 0
Berdasarkan hasil DW Test, didapatkan nilai \(DW = 1.2644\) dan p-value = \(0.03741\). Berdasarkan tabel Durbin-Watson diperoleh nilai \(DL = 0.9771\) dan \(DU = 1.331\). Nilai DW masih berada di antara nilai DL dan DU. Artinya, berada di daerah inkonklusif, tidak dapat dikatakan berada di daerah autokorelasi positif maupun bebas dari autokorelasi. Namun, dengan nilai p-value < 0.05 dapat disimpulkan bahwa tolak H0, cukup bukti mengatakan adanya autokorelasi. Oleh karena itu, diperlukan penangan autokorelasi. Penanganan yang akan digunakan menggunakan dua metode, yaitu Cochrane-Orcutt dan Hildret-Lu.
Penanganan Autokorelasi
Metode Cochrane-Orcutt
Penanganan metode Cochrane-Orcutt dapat dilakukan dengan bantuan
packages Orcutt pada aplikasi R
maupun secara manual.
Berikut ini ditampilkan cara menggunakan bantuan library
packages Orcutt
.
## Cochrane-orcutt estimation for first order autocorrelation
##
## Call:
## lm(formula = ipm ~ tahun, data = dtGorontalo)
##
## number of interaction: 30
## rho 0.340921
##
## Durbin-Watson statistic
## (original): 1.26437 , p-value: 3.741e-02
## (transformed): 1.49014 , p-value: 9.403e-02
##
## coefficients:
## (Intercept) tahun
## -1062.042646 0.559755
Hasil keluaran model setelah dilakukan penanganan adalah sebagai berikut. \[y_i=-1062.042646+0.559755x_t\] Hasil juga menunjukkan bahwa nilai DW dan p-value meningkat menjadi \(1.49014\) dan \(0.09403\). Nilai DW sudah berada pada rentang DU < DW < 4-DU atau \(1.331 < DW < 2.669\). Hal tersebut juga didukung dengan nilai p-value > 0.05, artinya belum cukup bukti menyatakan bahwa sisaan terdapat autokorelasi pada taraf nyata 5%. Untuk nilai \(ρ ̂\) optimum yang digunakan adalah \(0.3409214\). Nilai tersebut dapat diketahui dengan syntax berikut.
## [1] 0.3409214
Selanjutnya akan dilakukan transformasi secara manual dengan syntax berikut ini.
## [1] 62.65 63.48 64.16 64.70 65.17 65.86 66.29 67.01 67.71 68.49 68.68 69.00
## [1] 63.48 64.16 64.70 65.17 65.86 66.29 67.01 67.71 68.49 68.68 69.00
#Transformasi Manual
ipm.trans<- ipm[-1]-ipm[-12]*rho
tahun.trans<- tahun[-1]-tahun[-12]*rho
modelCOmanual<- lm(ipm.trans~tahun.trans)
summary(modelCOmanual)
##
## Call:
## lm(formula = ipm.trans ~ tahun.trans)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.22770 -0.11619 -0.00273 0.05763 0.33083
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -699.96956 31.38081 -22.31 3.46e-09 ***
## tahun.trans 0.55975 0.02361 23.71 2.02e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1632 on 9 degrees of freedom
## Multiple R-squared: 0.9842, Adjusted R-squared: 0.9825
## F-statistic: 562 on 1 and 9 DF, p-value: 2.017e-09
Hasil model transformasi bukan merupakan model sesungguhnya. Koefisien regresi masih perlu dicari kembali mengikuti \(β_0^*=β_0+ρ ̂β_0\) dan \(β_1^*=β_1\).
#Mencari Penduga Koefisien Regresi setelah Transformasi ke Persamaan Awal
b0bintang <- modelCOmanual$coefficients[-2]
b0 <- b0bintang/(1-rho)
b1 <- modelCOmanual$coefficients[-1]
b0
## (Intercept)
## -1062.043
## tahun.trans
## 0.5597546
Hasil perhitungan koefisien regresi tersebut akan menghasilkan hasil yang sama dengan model yang dihasilkan menggunakan packages.
Metode Hildreth-Lu
Penanganan kedua adalah menggunakan metode Hildreth-Lu. Metode ini
akan mencari nilai SSE terkecil dan dapat dicari secara manual maupun
menggunakan packages. Jika menggunakan packages, gunakan
library
packages HORM
.
#Penanganan Autokorelasi Hildreth lu
# Hildreth-Lu
hildreth.lu.func<- function(r, model){
x <- model.matrix(model)[,-1]
y <- model.response(model.frame(model))
n <- length(y)
t <- 2:n
y <- y[t]-r*y[t-1]
x <- x[t]-r*x[t-1]
return(lm(y~x))
}
#Pencariab rho yang meminimumkan SSE
r <- c(seq(0.1,0.9, by= 0.1))
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, model))}))
round(tab, 4)
## rho SSE
## 1 0.1 0.2499
## 2 0.2 0.2432
## 3 0.3 0.2400
## 4 0.4 0.2404
## 5 0.5 0.2442
## 6 0.6 0.2514
## 7 0.7 0.2622
## 8 0.8 0.2765
## 9 0.9 0.2942
Pertama-tama akan dicari di mana kira-kira \(ρ\) yang menghasilkan SSE minimum. Pada hasil di atas terlihat \(ρ\) minimum ketika 0.3. Namun, hasil tersebut masih kurang teliti sehingga akan dicari kembali \(ρ\) yang lebih optimum dengan ketelitian yang lebih. Jika sebelumnya jarak antar \(ρ\) yang dicari adalah 0.1, kali ini jarak antar \(ρ\) adalah 0.001 dan dilakukan pada selang 0.2 sampai dengan 0.5.
#Rho optimal di sekitar 0.4
rOpt <- seq(0.2,0.5, by= 0.001)
tabOpt <- data.frame("rho" = rOpt, "SSE" = sapply(rOpt, function(i){deviance(hildreth.lu.func(i, model))}))
head(tabOpt[order(tabOpt$SSE),])
## rho SSE
## 142 0.341 0.2397500
## 141 0.340 0.2397501
## 143 0.342 0.2397502
## 140 0.339 0.2397506
## 144 0.343 0.2397507
## 139 0.338 0.2397515
#Grafik SSE optimum
par(mfrow = c(1,1))
plot(tab$SSE ~ tab$rho , type = "l", xlab = "Rho", ylab = "SSE")
abline(v = tabOpt[tabOpt$SSE==min(tabOpt$SSE),"rho"], lty = 2, col="red",lwd=2)
text(x=0.341, y=0.2397500, labels = "rho=0.341", cex = 0.8)
Perhitungan yang dilakukan aplikasi R
menunjukkan bahwa
nilai \(ρ\) optimum, yaitu saat SSE
terkecil terdapat pada nilai \(ρ=0.341\). Hal tersebut juga ditunjukkan
pada plot. Selanjutnya, model dapat didapatkan dengan mengevaluasi nilai
\(ρ\) ke dalam fungsi
hildreth.lu.func
, serta dilanjutkan dengan pengujian
autokorelasi dengan uji Durbin-Watson. Namun, setelah pengecekan
tersebut tidak lupa koefisien regresi tersebut digunakan untuk
transformasi balik. Persamaan hasil transformasi itulah yang menjadi
persamaan sesungguhnya.
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.22769 -0.11621 -0.00271 0.05763 0.33083
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -699.87889 31.38081 -22.3 3.47e-09 ***
## x 0.55975 0.02361 23.7 2.02e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1632 on 9 degrees of freedom
## Multiple R-squared: 0.9842, Adjusted R-squared: 0.9825
## F-statistic: 561.9 on 1 and 9 DF, p-value: 2.02e-09
## y = -1062.032+0.5597492x
Setelah dilakukan tranformasi balik, didapatkan model dengan metode Hildreth-Lu sebagai berikut. \[y_i=-1062.032+0.5597492x_t\]
##
## Durbin-Watson test
##
## data: modelHL
## DW = 1.4902, p-value = 0.09404
## alternative hypothesis: true autocorrelation is greater than 0
Hasil uji Durbin-Watson juga menunjukkan bawah nilai DW sebesar \(1.4092\) berada pada selang daerah tidak ada autokorelasi, yaitu pada rentang DU < DW < 4-DU atau \(1.331 < DW < 2.669\). Hal tersebut juga didukung oleh p-value sebesar \(0.09404\), di mana p-value > \(\alpha\)=5%. Artinya tak tolak \(H_0\) atau belum cukup bukti menyatakan bahwa ada autokorelasi dalam data nilai IPM dengan metode Hildreth-Lu pada taraf nyata 5%.
Terakhir, akan dibandingkan nilai SSE dari ketiga metode (metode awal, metode Cochrane-Orcutt, dan Hildreth-Lu).
#Perbandingan
sseModelawal <- anova(model)$`Sum Sq`[-1]
sseModelCO <- anova(modelCOmanual)$`Sum Sq`[-1]
sseModelHL <- anova(modelHL)$`Sum Sq`[-1]
mseModelawal <- sseModelawal/length(ipm)
mseModelCO <- sseModelCO/length(ipm)
mseModelHL <- sseModelHL/length(ipm)
akurasi <- matrix(c(sseModelawal,sseModelCO,sseModelHL,
mseModelawal,mseModelCO,mseModelHL),nrow=2,ncol=3,byrow = T)
colnames(akurasi) <- c("Model Awal", "Model Cochrane-Orcutt", "Model Hildreth-Lu")
row.names(akurasi) <- c("SSE","MSE")
akurasi
## Model Awal Model Cochrane-Orcutt Model Hildreth-Lu
## SSE 0.32863636 0.23974997 0.23974997
## MSE 0.02738636 0.01997916 0.01997916
Berdasarkan hasil tersebut dapat diketahui bahwa hasil penanganan autokorelasi dengan metode Cochrane-Orcutt dan Hildreth-Lu memiliki SSE yang sama, sebesar \(0.23975\) dan lebih baik dibandingkan model awal ketika autokorelasi masih terjadi, yaitu sebesar \(0.3286364\).
Simpulan
Autokorelasi yang terdapat pada data IPM terjadi akibat adanya korelasi di antara unsur penyusunnya. Indikator IPM yang erat hubungannya dengan perekonomian sangat rawan menjadi penyebab adanya autokorelasi. Adanya autokorelasi menyebabkan model regresi kurang baik karena akan meingkatkan galatnya. Autokorelasi dapat dideteksi secara eksploratif melalui plot sisaan, ACF, dan PACF, serta dengan uji formal Durbin-Watson. Namun, autokorelasi tersebut dapat ditangani dengan metode Cochrane-Orcutt dan Hildreth-Lu. Kedua metode menghasilkan nilai SSE yang sama, artinya keduanya baik untuk digunakan.
Pertemuan 3
Library
## Warning: package 'dLagM' was built under R version 4.3.3
## Loading required package: nardl
## Warning: package 'nardl' was built under R version 4.3.3
## Loading required package: dynlm
## Warning: package 'dynlm' was built under R version 4.3.3
##
## Attaching package: 'dLagM'
## The following object is masked from 'package:forecast':
##
## forecast
## Warning: package 'MLmetrics' was built under R version 4.3.3
##
## Attaching package: 'MLmetrics'
## The following object is masked from 'package:dLagM':
##
## MAPE
## The following object is masked from 'package:base':
##
## Recall
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
Impor Data
data <- rio::import("https://raw.githubusercontent.com/rizkynurhambali/Praktikum-MPDW-2324/main/Pertemuan%203/Data%20Asli.csv")
str(data)
## 'data.frame': 20 obs. of 4 variables:
## $ t : int 1 2 3 4 5 6 7 8 9 10 ...
## $ Yt : num 52.9 53.8 54.9 58.2 60 63.4 68.2 78 84.7 90.6 ...
## $ Y(t-1): num NA 52.9 53.8 54.9 58.2 60 63.4 68.2 78 84.7 ...
## $ Xt : num 30.3 30.9 30.9 33.4 35.1 37.3 41 44.9 46.5 50.3 ...
## t Yt Y(t-1) Xt
## 1 1 52.9 NA 30.3
## 2 2 53.8 52.9 30.9
## 3 3 54.9 53.8 30.9
## 4 4 58.2 54.9 33.4
## 5 5 60.0 58.2 35.1
## 6 6 63.4 60.0 37.3
## 7 7 68.2 63.4 41.0
## 8 8 78.0 68.2 44.9
## 9 9 84.7 78.0 46.5
## 10 10 90.6 84.7 50.3
## 11 11 98.2 90.6 53.5
## 12 12 101.7 98.2 52.8
## 13 13 102.7 101.7 55.9
## 14 14 108.3 102.7 63.0
## 15 15 124.7 108.3 73.0
## 16 16 157.9 124.7 84.8
## 17 17 158.2 157.9 86.6
## 18 18 170.2 158.2 98.9
## 19 19 180.0 170.2 110.8
## 20 20 198.0 180.0 124.7
Pembagian Data
Model Koyck
Model Koyck didasarkan pada asumsi bahwa semakin jauh jarak lag peubah independen dari periode sekarang maka semakin kecil pengaruh peubah lag terhadap peubah dependen.
Koyck mengusulkan suatu metode untuk menduga model dinamis distributed lag dengan mengasumsikan bahwa semua koefisien \(\beta\) mempunyai tanda sama.
Model kyock merupakan jenis paling umum dari model infinite distributed lag dan juga dikenal sebagai geometric lag
\[ y_t=a(1-\lambda)+\beta_0X_t+\beta_1Z_t+\lambda Y_{t-1}+V_t \]
dengan \[V_t=u_t-\lambda u_{t-1}\]
Pemodelan
Pemodelan model Koyck dengan R
dapat menggunakan
dLagM::koyckDlm()
. Fungsi umum dari koyckDlm
adalah sebagai berikut.
Fungsi koyckDlm()
akan menerapkan model lag
terdistribusi dengan transformasi Koyck satu prediktor. Nilai
x
dan y
tidak perlu sebagai objek time
series (ts
). intercept
dapat dibuat
TRUE
untuk memasukkan intersep ke dalam model.
##
## Call:
## "Y ~ (Intercept) + Y.1 + X.t"
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.75605 -1.16407 0.01599 1.17295 3.28003
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.7335 2.1785 -1.714 0.1146
## Y.1 0.4214 0.1158 3.639 0.0039 **
## X.t 1.1510 0.1901 6.055 8.25e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.023 on 11 degrees of freedom
## Multiple R-Squared: 0.9934, Adjusted R-squared: 0.9922
## Wald test: 828.9 on 2 and 11 DF, p-value: 1.01e-12
##
## Diagnostic tests:
## NULL
##
## alpha beta phi
## Geometric coefficients: -6.452844 1.150951 0.4214181
## [1] 64.08525
## [1] 66.64148
Dari hasil tersebut, didapat bahwa peubah \(x_t\) dan \(y_{t-1}\) memiliki nilai \(P-Value<0.05\). Hal ini menunjukkan bahwa peubah \(x_t\) dan \(y_{t-1}\) berpengaruh signifikan terhadap \(y\). Adapun model keseluruhannya adalah sebagai berikut
\[ \hat{Y_t}=-3.7335+1.1510X_t+0.4214Y_{t-1} \]
Peramalan dan Akurasi
Berikut adalah hasil peramalan y untuk 5 periode kedepan menggunakan model koyck
## $forecasts
## [1] 146.4180 157.6420 176.5288 198.1843 223.3085
##
## $call
## forecast.koyckDlm(model = model.koyck, x = test$Xt, h = 5)
##
## attr(,"class")
## [1] "forecast.koyckDlm" "dLagM"
## n MAE MPE MAPE sMAPE MASE MSE
## model.koyck 14 1.473599 -0.0004874002 0.01720083 0.01719063 0.2701945 3.216237
## MRAE GMRAE
## model.koyck 0.3967354 0.3026997
Regression with Distributed Lag
Pemodelan model Regression with Distributed Lag dengan R
dapat menggunakan dLagM::dlm()
. Fungsi umum dari
dlm
adalah sebagai berikut.
Fungsi dlm()
akan menerapkan model lag terdistribusi
dengan satu atau lebih prediktor. Nilai x
dan
y
tidak perlu sebagai objek time series
(ts
). \(q\) adalah integer
yang mewakili panjang lag yang terbatas.
Pemodelan (Lag=2)
##
## Call:
## lm(formula = model.formula, data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.4446 -0.6965 -0.2373 0.8810 1.8630
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.6779 1.8156 -5.330 0.000474 ***
## x.t 0.3179 0.1792 1.774 0.109856
## x.1 1.5276 0.3487 4.380 0.001770 **
## x.2 0.2651 0.2440 1.087 0.305388
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.322 on 9 degrees of freedom
## Multiple R-squared: 0.9974, Adjusted R-squared: 0.9965
## F-statistic: 1133 on 3 and 9 DF, p-value: 6.471e-12
##
## AIC and BIC values for the model:
## AIC BIC
## 1 49.3705 52.19525
## [1] 49.3705
## [1] 52.19525
Dari hasil diatas, didapat bahwa \(P-value\) dari intercept dan \(x_{t-1}<0.05\). Hal ini menunjukkan bahwa intercept dan \(x_{t-1}\) berpengaruh signifikan terhadap \(y\). Adapun model keseluruhan yang terbentuk adalah sebagai berikut
\[ \hat{Y_t}=-9.6779+0.3179X_t+1.5276X_{t-1}+0.2651X_{t-2} \]
Peramalan dan Akurasi
Berikut merupakan hasil peramalan \(y\) untuk 5 periode kedepan
## $forecasts
## [1] 145.5021 166.7516 176.5405 199.5907 225.4498
##
## $call
## forecast.dlm(model = model.dlm, x = test$Xt, h = 5)
##
## attr(,"class")
## [1] "forecast.dlm" "dLagM"
## n MAE MPE MAPE sMAPE MASE MSE
## model.dlm 13 0.9282513 -0.0002879026 0.01227837 0.01229574 0.1595847 1.210003
## MRAE GMRAE
## model.dlm 0.2350414 0.1491444
Lag Optimum
#penentuan lag optimum
finiteDLMauto(formula = Yt ~ Xt,
data = data.frame(train), q.min = 1, q.max = 6,
model.type = "dlm", error.type = "AIC", trace = FALSE)
## q - k MASE AIC BIC GMRAE MBRAE R.Adj.Sq Ljung-Box
## 6 6 0.00214 -29.87368 -28.09865 0.00225 0.00125 0.99999 0.9830642
Berdasarkan output tersebut, lag optimum didapatkan ketika lag=6. Selanjutnya dilakukan pemodelan untuk lag=6
#model dlm dengan lag optimum
model.dlm2 <- dlm(x = train$Xt,y = train$Yt , q = 6)
summary(model.dlm2)
##
## Call:
## lm(formula = model.formula, data = design)
##
## Residuals:
## 1 2 3 4 5 6 7 8
## -0.023415 0.014375 0.032641 -0.010695 -0.013096 -0.014927 0.010054 0.010809
## 9
## -0.005747
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 21.42223 1.44472 14.828 0.0429 *
## x.t 1.68749 0.04758 35.466 0.0179 *
## x.1 -1.23901 0.11688 -10.600 0.0599 .
## x.2 0.97604 0.02787 35.021 0.0182 *
## x.3 -0.23945 0.02746 -8.719 0.0727 .
## x.4 3.24431 0.14678 22.103 0.0288 *
## x.5 0.08560 0.04903 1.746 0.3312
## x.6 -3.47612 0.15157 -22.933 0.0277 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.05079 on 1 degrees of freedom
## Multiple R-squared: 1, Adjusted R-squared: 1
## F-statistic: 1.277e+05 on 7 and 1 DF, p-value: 0.002155
##
## AIC and BIC values for the model:
## AIC BIC
## 1 -29.87368 -28.09865
## [1] -29.87368
## [1] -28.09865
Dari hasil tersebut terdapat beberapa peubah yang berpengaruh signifikan terhadap taraf nyata 5% yaitu \(x_t\) , \(x_{t-2}\) , \(x_{t-4}\) , \(x_{t-6}\). Adapun keseluruhan model yang terbentuk adalah
\[ \hat{Y_t}=21.42223+1.68749X_t+...-3.47612X_{t-6} \]
Adapun hasil peramalan 5 periode kedepan menggunakan model tersebut adalah sebagai berikut
#peramalan dan akurasi
fore.dlm2 <- forecast(model = model.dlm2, x=test$Xt, h=5)
mape.dlm2<- MAPE(fore.dlm2$forecasts, test$Yt)
#akurasi data training
GoF(model.dlm2)
## n MAE MPE MAPE sMAPE MASE
## model.dlm2 9 0.01508446 -2.246354e-06 0.0001727757 0.0001727773 0.002135853
## MSE MRAE GMRAE
## model.dlm2 0.0002866713 0.003309313 0.002245928
Model tersebut merupakan model yang sangat baik dengan nilai MAPE yang kurang dari 10%.
Model Autoregressive
Peubah dependen dipengaruhi oleh peubah independen pada waktu sekarang, serta dipengaruhi juga oleh peubah dependen itu sendiri pada satu waktu yang lalu maka model tersebut disebut autoregressive (Gujarati 2004).
Pemodelan
Pemodelan Autoregressive dilakukan menggunakan fungsi
dLagM::ardlDlm()
. Fungsi tersebut akan menerapkan
autoregressive berordo \((p,q)\) dengan satu prediktor. Fungsi umum
dari ardlDlm()
adalah sebagai berikut.
Dengan \(p\) adalah integer yang mewakili panjang lag yang terbatas dan \(q\) adalah integer yang merepresentasikan ordo dari proses autoregressive.
#model.ardl <- ardlDlm(x = train$Xt, y = train$Yt, p = 1 , q = 1)
#summary(model.ardl)
#AIC(model.ardl)
#BIC(model.ardl)
##
## Time series regression with "ts" data:
## Start = 2, End = 15
##
## Call:
## dynlm(formula = as.formula(model.text), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.6274 -0.8401 -0.1767 0.8392 1.9447
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -8.3594 1.9186 -4.357 0.00143 **
## Xt.t 0.3563 0.1875 1.900 0.08661 .
## Xt.1 1.4557 0.4071 3.575 0.00505 **
## Yt.1 0.1408 0.1318 1.068 0.31055
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.269 on 10 degrees of freedom
## Multiple R-squared: 0.9976, Adjusted R-squared: 0.9969
## F-statistic: 1405 on 3 and 10 DF, p-value: 2.006e-13
## [1] 51.69462
## [1] 54.8899
Hasil di atas menunjukkan bahwa selain peubah \(x_{t-1}\), hasil uji t menunjukkan nilai-p pada peubah \(\ge0.05\) Hal ini menunjukkan bahwa peubah \(x_{t-1}\) berpengaruh signifikan terhadap \(y_t\), sementara \(x_t\) dan \(y_{t-1}\) berpengaruh signifikan terhadap \(y_t\). Model keseluruhannya adalah sebagai berikut:
\[ \hat{Y}=-8,3594+0,3563X_t+1,4557X_{t-1}+0,1408Y_{t-1} \]
Peramalan dan Akurasi
## $forecasts
## [1] 145.6865 166.4608 176.3897 199.9337 225.5255
##
## $call
## forecast.ardlDlm(model = model.ardl, x = test$Xt, h = 5)
##
## attr(,"class")
## [1] "forecast.ardlDlm" "dLagM"
Data di atas merupakan hasil peramalan untuk 5 periode ke depan menggunakan Model Autoregressive dengan \(p=1\) dan \(q=1\).
## [1] 0.08313896
## n MAE MPE MAPE sMAPE MASE MSE
## model.ardl 14 0.8821232 -0.0003216464 0.01183235 0.01185341 0.1617433 1.15063
## MRAE GMRAE
## model.ardl 0.2332582 0.1391987
Berdasarkan akurasi di atas, terlihat bahwa nilai MAPE keduanya tidak
jauh berbeda. Artinya, model regresi dengan distribusi lag ini
tidak overfitted
atau underfitted
Lag Optimum
#penentuan lag optimum
model.ardl.opt <- ardlBoundOrders(data = data.frame(data), ic = "AIC",
formula = Yt ~ Xt )
min_p=c()
for(i in 1:6){
min_p[i]=min(model.ardl.opt$Stat.table[[i]])
}
q_opt=which(min_p==min(min_p, na.rm = TRUE))
p_opt=which(model.ardl.opt$Stat.table[[q_opt]] ==
min(model.ardl.opt$Stat.table[[q_opt]], na.rm = TRUE))
data.frame("q_optimum" = q_opt, "p_optimum" = p_opt,
"AIC"=model.ardl.opt$min.Stat)
## q_optimum p_optimum AIC
## 1 1 6 -20.56587
Dari tabel di atas, dapat terlihat bahwa nilai AIC terendah didapat
ketika \(p=6\) dan \(q=1\), yaitu sebesar
-20,56587
. Artinya, model autoregressive optimum didapat
ketika \(p=6\) dan \(q=1\).
Selanjutnya dapat dilakukan pemodelan dengan nilai \(p\) dan \(q\) optimum seperti inisialisasi di langkah sebelumnya.
Pemodelan DLM & ARDL dengan Library dynlm
Pemodelan regresi dengan peubah lag tidak hanya dapat
dilakukan dengan fungsi pada packages dLagM
,
tetapi terdapat packages dynlm
yang dapat
digunakan. Fungsi dynlm
secara umum adalah sebagai
berikut.
dynlm(formula, data, subset, weights, na.action, method = "qr",
model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE,
contrasts = NULL, offset, start = NULL, end = NULL, ...)
Untuk menentukan formula
model yang akan digunakan,
tersedia fungsi tambahan yang memungkinkan spesifikasi dinamika (melalui
d()
dan L()
) atau pola linier/siklus dengan
mudah (melalui trend()
, season()
, dan
harmon()
). Semua fungsi formula baru mengharuskan
argumennya berupa objek deret waktu (yaitu, "ts"
atau
"zoo"
).
#sama dengan model dlm q=1
cons_lm1 <- dynlm(Yt ~ Xt+L(Xt),data = train.ts)
#sama dengan model ardl p=1 q=0
cons_lm2 <- dynlm(Yt ~ Xt+L(Yt),data = train.ts)
#sama dengan ardl p=1 q=1
cons_lm3 <- dynlm(Yt ~ Xt+L(Xt)+L(Yt),data = train.ts)
#sama dengan dlm p=2
cons_lm4 <- dynlm(Yt ~ Xt+L(Xt)+L(Xt,2),data = train.ts)
Ringkasan Model
##
## Time series regression with "ts" data:
## Start = 2, End = 15
##
## Call:
## dynlm(formula = Yt ~ Xt + L(Xt), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.4118 -0.8790 -0.3542 0.7202 2.3047
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.4870 1.6123 -5.884 0.000106 ***
## Xt 0.2557 0.1632 1.567 0.145434
## L(Xt) 1.8395 0.1927 9.547 1.17e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.277 on 11 degrees of freedom
## Multiple R-squared: 0.9974, Adjusted R-squared: 0.9969
## F-statistic: 2081 on 2 and 11 DF, p-value: 6.538e-15
##
## Time series regression with "ts" data:
## Start = 2, End = 15
##
## Call:
## dynlm(formula = Yt ~ Xt + L(Yt), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4441 -1.1436 0.1785 1.5549 2.1584
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.54096 1.96526 -1.802 0.099 .
## Xt 0.92218 0.14482 6.368 5.31e-05 ***
## L(Yt) 0.55684 0.08922 6.241 6.34e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.827 on 11 degrees of freedom
## Multiple R-squared: 0.9946, Adjusted R-squared: 0.9936
## F-statistic: 1015 on 2 and 11 DF, p-value: 3.344e-13
##
## Time series regression with "ts" data:
## Start = 2, End = 15
##
## Call:
## dynlm(formula = Yt ~ Xt + L(Xt) + L(Yt), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.6274 -0.8401 -0.1767 0.8392 1.9447
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -8.3594 1.9186 -4.357 0.00143 **
## Xt 0.3563 0.1875 1.900 0.08661 .
## L(Xt) 1.4557 0.4071 3.575 0.00505 **
## L(Yt) 0.1408 0.1318 1.068 0.31055
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.269 on 10 degrees of freedom
## Multiple R-squared: 0.9976, Adjusted R-squared: 0.9969
## F-statistic: 1405 on 3 and 10 DF, p-value: 2.006e-13
##
## Time series regression with "ts" data:
## Start = 3, End = 15
##
## Call:
## dynlm(formula = Yt ~ Xt + L(Xt) + L(Xt, 2), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.4446 -0.6965 -0.2373 0.8810 1.8630
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.6779 1.8156 -5.330 0.000474 ***
## Xt 0.3179 0.1792 1.774 0.109856
## L(Xt) 1.5276 0.3487 4.380 0.001770 **
## L(Xt, 2) 0.2651 0.2440 1.087 0.305388
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.322 on 9 degrees of freedom
## Multiple R-squared: 0.9974, Adjusted R-squared: 0.9965
## F-statistic: 1133 on 3 and 9 DF, p-value: 6.471e-12
SSE
## [1] 17.94685
## [1] 36.70155
## [1] 16.10882
## [1] 15.73004
Uji Diagnostik
## Encompassing test
##
## Model 1: Yt ~ Xt + L(Xt)
## Model 2: Yt ~ Xt + L(Yt)
## Model E: Yt ~ Xt + L(Xt) + L(Yt)
## Res.Df Df F Pr(>F)
## M1 vs. ME 10 -1 1.141 0.31055
## M2 vs. ME 10 -1 12.784 0.00505 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Autokorelasi
##
## Durbin-Watson test
##
## data: cons_lm1
## DW = 2.1065, p-value = 0.3842
## alternative hypothesis: true autocorrelation is greater than 0
##
## Durbin-Watson test
##
## data: cons_lm2
## DW = 1.441, p-value = 0.0497
## alternative hypothesis: true autocorrelation is greater than 0
##
## Durbin-Watson test
##
## data: cons_lm3
## DW = 1.9337, p-value = 0.2449
## alternative hypothesis: true autocorrelation is greater than 0
##
## Durbin-Watson test
##
## data: cons_lm4
## DW = 1.8189, p-value = 0.1911
## alternative hypothesis: true autocorrelation is greater than 0
Heterogenitas
##
## studentized Breusch-Pagan test
##
## data: cons_lm1
## BP = 1.5713, df = 2, p-value = 0.4558
##
## studentized Breusch-Pagan test
##
## data: cons_lm2
## BP = 3.7022, df = 2, p-value = 0.1571
##
## studentized Breusch-Pagan test
##
## data: cons_lm3
## BP = 4.0554, df = 3, p-value = 0.2555
##
## studentized Breusch-Pagan test
##
## data: cons_lm4
## BP = 2.7921, df = 3, p-value = 0.4248
Kenormalan
##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm1)
## W = 0.90752, p-value = 0.145
##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm2)
## W = 0.94358, p-value = 0.4661
##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm3)
## W = 0.94403, p-value = 0.4723
##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm4)
## W = 0.92477, p-value = 0.2907
Perbandingan Model
akurasi <- matrix(c(mape.koyck, mape.dlm, mape.dlm2, mape.ardl))
row.names(akurasi)<- c("Koyck","DLM 1","DLM 2","Autoregressive")
colnames(akurasi) <- c("MAPE")
akurasi
## MAPE
## Koyck 0.06845456
## DLM 1 0.08345978
## DLM 2 0.15117526
## Autoregressive 0.08313896
Berdasarkan nilai MAPE, model paling optimum didapat pada Model Koyck karena memiliki nilai MAPE yang terkecil.
Plot
par(mfrow=c(1,1))
plot(test$Xt, test$Yt, type="b", col="black", ylim=c(120,250))
points(test$Xt, fore.koyck$forecasts,col="red")
lines(test$Xt, fore.koyck$forecasts,col="red")
points(test$Xt, fore.dlm$forecasts,col="blue")
lines(test$Xt, fore.dlm$forecasts,col="blue")
points(test$Xt, fore.dlm2$forecasts,col="orange")
lines(test$Xt, fore.dlm2$forecasts,col="orange")
points(test$Xt, fore.ardl$forecasts,col="green")
lines(test$Xt, fore.ardl$forecasts,col="green")
legend("topleft",c("aktual", "koyck","DLM 1","DLM 2", "autoregressive"), lty=1, col=c("black","red","blue","orange","green"), cex=0.8)
Berdasarkan plot tersebut, terlihat bahwa plot yang paling mendekati data aktualnya adalah Model koyck, sehingga dapat disimpulkan model terbaik dalam hal ini adalah model regresi koyck
Pengayaan (Regresi Berganda)
DLM
#Run the search over finite DLMs according to AIC values
finiteDLMauto(formula = logprice ~ interest+logm1,
data = data.frame(data1), q.min = 1, q.max = 5,
model.type = "dlm", error.type = "AIC", trace = FALSE)
## q - k MASE AIC BIC GMRAE MBRAE R.Adj.Sq Ljung-Box
## 5 5 1.77163 -463.1393 -422.0566 1.43662 -1.60494 0.98836 0
#model dlm berganda
model.dlmberganda = dlm(formula = logprice ~ interest + logm1,
data = data.frame(data1) , q = 5)
summary(model.dlmberganda)
##
## Call:
## lm(formula = as.formula(model.formula), data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.095761 -0.028610 -0.000012 0.029496 0.102597
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.81759 0.11384 -68.669 < 2e-16 ***
## interest.t -1.75616 0.80358 -2.185 0.030707 *
## interest.1 1.38935 1.22707 1.132 0.259679
## interest.2 0.40776 1.23726 0.330 0.742273
## interest.3 1.23130 1.20752 1.020 0.309830
## interest.4 -0.08718 1.20869 -0.072 0.942616
## interest.5 3.06850 0.89380 3.433 0.000808 ***
## logm1.t 0.43219 0.20876 2.070 0.040474 *
## logm1.1 0.42190 0.19807 2.130 0.035109 *
## logm1.2 0.20943 0.12883 1.626 0.106532
## logm1.3 0.22053 0.13011 1.695 0.092567 .
## logm1.4 0.05513 0.21457 0.257 0.797633
## logm1.5 0.03042 0.19192 0.159 0.874296
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.04343 on 126 degrees of freedom
## Multiple R-squared: 0.9894, Adjusted R-squared: 0.9884
## F-statistic: 977.9 on 12 and 126 DF, p-value: < 2.2e-16
##
## AIC and BIC values for the model:
## AIC BIC
## 1 -463.1393 -422.0566
model.dlmberganda2 = dlm(formula = logprice ~ interest + logm1,
data = data.frame(data1) , q = 1)
summary(model.dlmberganda2)
##
## Call:
## lm(formula = as.formula(model.formula), data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.134002 -0.044697 0.006407 0.036962 0.113063
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.77917 0.13299 -58.492 < 2e-16 ***
## interest.t -3.22103 0.94184 -3.420 0.000824 ***
## interest.1 6.52775 0.94501 6.908 1.66e-10 ***
## logm1.t 0.73918 0.08419 8.780 5.61e-15 ***
## logm1.1 0.63330 0.08429 7.513 6.55e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.05443 on 138 degrees of freedom
## Multiple R-squared: 0.9832, Adjusted R-squared: 0.9828
## F-statistic: 2025 on 4 and 138 DF, p-value: < 2.2e-16
##
## AIC and BIC values for the model:
## AIC BIC
## 1 -419.7575 -401.9805
ARDL
#Mencari orde lag optimum model ARDL
ardlBoundOrders(data = data1 , formula = logprice ~ interest + logm1,
ic="AIC")
## $p
## interest logm1
## 65 0 4
##
## $q
## [1] 4
##
## $Stat.table
## q = 1 q = 2 q = 3 q = 4 q = 5 q = 6 q = 7
## p = 1 -760.1786 -757.9195 -846.8342 -975.2079 -965.7536 -958.9072 -956.7315
## p = 2 -760.0433 -759.3090 -843.6247 -971.2514 -961.7929 -955.2809 -953.4890
## p = 3 -753.7746 -753.7746 -841.2485 -970.4543 -961.4343 -953.7173 -950.0412
## p = 4 -829.8076 -832.6436 -832.6436 -971.0837 -962.1804 -955.0429 -953.4667
## p = 5 -749.4144 -753.2292 -962.9290 -962.9290 -961.7063 -954.3406 -951.7660
## p = 6 -742.2103 -742.9945 -891.6195 -952.3771 -952.3771 -952.2461 -950.1105
## p = 7 -728.9374 -733.0286 -851.2943 -945.7445 -944.6879 -944.6879 -949.3720
## p = 8 -747.9277 -746.2948 -812.4289 -937.9446 -938.9491 -937.3393 -937.3393
## p = 9 -722.6891 -724.5786 -863.2734 -928.9215 -927.2914 -926.8716 -936.6432
## p = 10 -714.8175 -714.5658 -816.3319 -918.5218 -918.6350 -916.9076 -921.1246
## p = 11 -703.1807 -705.3383 -794.0772 -909.6457 -908.8225 -906.9542 -912.9605
## p = 12 -716.7111 -714.7403 -774.0127 -910.0315 -910.6834 -908.7146 -909.6612
## p = 13 -697.7175 -698.1931 -793.4602 -895.5927 -894.9273 -893.5995 -897.7589
## p = 14 -686.5600 -685.7967 -766.5292 -886.0709 -885.4341 -885.2283 -890.1638
## p = 15 -676.7280 -678.3689 -753.2854 -875.6392 -874.1257 -874.3117 -879.2727
## q = 8 q = 9 q = 10 q = 11 q = 12 q = 13 q = 14
## p = 1 -954.3375 -946.6293 -936.5328 -927.7728 -920.6435 -917.5463 -918.3110
## p = 2 -951.1470 -943.9360 -933.7047 -924.7949 -917.5334 -913.6213 -914.4063
## p = 3 -948.4683 -941.1039 -930.8509 -922.0563 -914.5728 -910.5351 -913.4996
## p = 4 -948.2330 -941.8238 -931.5689 -923.2663 -916.2063 -911.6023 -913.9345
## p = 5 -947.5994 -939.3767 -929.0155 -920.4475 -913.5968 -909.0781 -911.6312
## p = 6 -945.5758 -937.4076 -927.2439 -919.3949 -911.9537 -907.7394 -910.2890
## p = 7 -945.5181 -937.1826 -926.9640 -917.9619 -910.2774 -905.9449 -907.8712
## p = 8 -941.9617 -933.5959 -923.3691 -914.6251 -907.0608 -902.2187 -903.9255
## p = 9 -936.6432 -935.7172 -925.2881 -917.0877 -911.6973 -903.9027 -904.6405
## p = 10 -926.6891 -926.6891 -924.6986 -917.0904 -911.4197 -903.4313 -903.0612
## p = 11 -917.9145 -918.2328 -918.2328 -919.2867 -913.3674 -904.8733 -903.6541
## p = 12 -916.1321 -914.4362 -914.4610 -914.4610 -912.5159 -904.2394 -901.6216
## p = 13 -905.4744 -903.7559 -902.4406 -902.2530 -902.2530 -902.9434 -901.2363
## p = 14 -896.2370 -896.2620 -894.2896 -897.5711 -899.1407 -899.1407 -902.2350
## p = 15 -884.5637 -886.8221 -884.9832 -890.5665 -893.2335 -891.6220 -891.6220
## q = 15
## p = 1 -908.0863
## p = 2 -904.1665
## p = 3 -903.3006
## p = 4 -903.9256
## p = 5 -901.6220
## p = 6 -900.1824
## p = 7 -897.9867
## p = 8 -894.1031
## p = 9 -894.7387
## p = 10 -893.6199
## p = 11 -893.6060
## p = 12 -892.4805
## p = 13 -892.5115
## p = 14 -893.6214
## p = 15 -891.3741
##
## $min.Stat
## [1] -977.2745
##
## $Stat.p
## interest logm1 Stat
## 65 0 4 -977.2745
## 1 0 0 -976.5191
## 2 1 0 -976.2558
## 17 0 1 -975.9606
## 66 1 4 -975.6027
## 18 1 1 -975.2079
## 49 0 3 -974.4859
## 3 2 0 -974.4275
## 33 0 2 -974.0166
## 50 1 3 -973.7500
## 67 2 4 -973.6028
## 34 1 2 -973.2324
## 19 2 1 -973.2188
## 68 3 4 -972.5992
## 4 3 0 -972.4875
## 51 2 3 -971.7743
## 20 3 1 -971.3872
## 35 2 2 -971.2514
## 69 4 4 -971.0837
## 5 4 0 -970.5114
## 52 3 3 -970.4543
## 81 0 5 -969.9284
## 53 4 3 -969.5311
## 21 4 1 -969.4756
## 36 3 2 -969.3907
## 82 1 5 -968.6783
## 37 4 2 -967.4756
## 83 2 5 -966.8835
## 84 3 5 -965.6393
## 85 4 5 -963.9662
## 86 5 5 -962.9290
## 70 5 4 -961.2547
## 54 5 3 -960.9580
## 97 0 6 -960.7402
## 6 5 0 -960.6858
## 22 5 1 -959.8419
## 98 1 6 -959.6604
## 38 5 2 -957.8547
## 99 2 6 -957.7528
## 100 3 6 -956.7875
## 101 4 6 -955.2416
## 71 6 4 -954.8953
## 87 6 5 -954.6855
## 102 5 6 -954.3662
## 103 6 6 -954.0973
## 7 6 0 -954.0615
## 113 0 7 -953.9160
## 55 6 3 -953.2860
## 23 6 1 -953.1080
## 114 1 7 -952.6540
## 39 6 2 -951.1356
## 115 2 7 -950.6562
## 116 3 7 -949.6038
## 88 7 5 -949.2090
## 72 7 4 -948.5194
## 117 4 7 -947.7999
## 104 7 6 -947.7424
## 56 7 3 -947.6915
## 8 7 0 -947.5092
## 120 7 7 -947.3660
## 24 7 1 -947.0094
## 118 5 7 -946.9631
## 119 6 7 -946.8080
## 40 7 2 -945.0123
## 129 0 8 -943.9035
## 130 1 8 -942.6627
## 131 2 8 -940.6818
## 145 0 9 -940.0114
## 132 3 8 -939.6913
## 89 8 5 -939.1878
## 73 8 4 -938.5330
## 146 1 9 -938.2680
## 133 4 8 -937.8368
## 105 8 6 -937.6834
## 57 8 3 -937.6370
## 9 8 0 -937.5705
## 121 8 7 -937.5351
## 136 7 8 -937.3948
## 25 8 1 -937.0088
## 134 5 8 -936.9393
## 135 6 8 -936.8904
## 147 2 9 -936.3875
## 148 3 9 -936.3159
## 137 8 8 -935.5389
## 41 8 2 -935.0088
## 149 4 9 -934.3458
## 150 5 9 -934.1858
## 152 7 9 -934.0733
## 151 6 9 -932.9538
## 153 8 9 -932.3338
## 154 9 9 -930.9065
## 161 0 10 -929.8056
## 90 9 5 -929.2731
## 74 9 4 -928.5254
## 162 1 10 -928.1257
## 10 9 0 -927.9853
## 58 9 3 -927.9744
## 122 9 7 -927.9061
## 106 9 6 -927.6344
## 26 9 1 -927.4482
## 164 3 10 -926.5271
## 163 2 10 -926.2965
## 138 9 8 -926.1307
## 42 9 2 -925.4484
## 165 4 10 -924.5287
## 168 7 10 -924.2716
## 166 5 10 -924.0521
## 167 6 10 -922.7596
## 169 8 10 -922.5928
## 155 10 9 -921.2169
## 170 9 10 -921.1777
## 177 0 11 -920.2608
## 171 10 10 -920.0124
## 91 10 5 -919.0182
## 178 1 11 -918.7342
## 75 10 4 -918.4135
## 11 10 0 -917.8597
## 59 10 3 -917.7711
## 123 10 7 -917.6569
## 107 10 6 -917.3861
## 27 10 1 -917.2925
## 179 2 11 -916.9417
## 180 3 11 -916.8682
## 193 0 12 -916.1477
## 139 10 8 -915.9643
## 92 11 5 -915.3201
## 43 10 2 -915.2941
## 156 11 9 -915.0851
## 181 4 11 -914.8854
## 194 1 12 -914.4423
## 124 11 7 -914.3141
## 184 7 11 -914.1880
## 76 11 4 -914.1395
## 182 5 11 -914.0440
## 108 11 6 -913.4052
## 140 11 8 -913.3026
## 195 2 12 -913.1680
## 172 11 10 -913.0914
## 60 11 3 -912.7714
## 183 6 11 -912.7548
## 196 3 12 -912.5820
## 185 8 11 -912.5636
## 12 11 0 -912.2009
## 28 11 1 -912.0389
## 186 9 11 -911.1737
## 157 12 9 -911.1513
## 188 11 11 -911.1189
## 93 12 5 -910.7693
## 198 5 12 -910.7434
## 197 4 12 -910.6154
## 125 12 7 -910.5873
## 141 12 8 -910.0719
## 44 11 2 -910.0439
## 187 10 11 -909.9928
## 200 7 12 -909.4197
## 173 12 10 -909.2473
## 77 12 4 -909.1913
## 109 12 6 -908.7753
## 199 6 12 -908.7635
## 201 8 12 -908.1609
## 61 12 3 -908.0357
## 29 12 1 -907.8613
## 209 0 13 -907.6473
## 13 12 0 -907.6158
## 205 12 12 -907.5931
## 204 11 12 -907.5525
## 202 9 12 -907.3633
## 189 12 11 -907.3200
## 210 1 13 -906.1005
## 45 12 2 -905.9070
## 203 10 12 -905.7653
## 211 2 13 -904.7293
## 212 3 13 -903.9077
## 214 5 13 -902.0824
## 158 13 9 -901.9574
## 213 4 13 -901.9144
## 94 13 5 -901.6338
## 126 13 7 -901.3766
## 142 13 8 -900.9367
## 216 7 13 -900.5676
## 225 0 14 -900.5066
## 174 13 10 -900.1413
## 215 6 13 -900.1102
## 78 13 4 -900.0282
## 110 13 6 -899.6703
## 226 1 14 -899.0967
## 217 8 13 -899.0866
## 62 13 3 -898.8589
## 30 13 1 -898.7940
## 190 13 11 -898.4409
## 221 12 13 -898.4110
## 220 11 13 -898.3058
## 218 9 13 -898.2568
## 14 13 0 -898.2039
## 206 13 12 -897.9014
## 227 2 14 -897.3889
## 46 13 2 -896.8637
## 219 10 13 -896.6244
## 222 13 13 -896.4458
## 228 3 14 -896.2512
## 230 5 14 -895.1320
## 95 14 5 -894.6021
## 229 4 14 -894.3023
## 159 14 9 -894.2497
## 127 14 7 -893.9663
## 143 14 8 -893.6932
## 231 6 14 -893.4037
## 79 14 4 -893.1343
## 232 7 14 -893.1064
## 111 14 6 -892.6253
## 175 14 10 -892.5085
## 63 14 3 -891.9131
## 191 14 11 -891.1895
## 233 8 14 -891.1877
## 234 9 14 -891.1729
## 31 14 1 -890.7573
## 236 11 14 -890.5576
## 241 0 15 -890.5500
## 15 14 0 -890.3449
## 237 12 14 -890.1854
## 235 10 14 -889.8957
## 207 14 12 -889.7107
## 242 1 15 -889.0419
## 47 14 2 -888.9410
## 238 13 14 -888.1867
## 223 14 13 -887.7488
## 239 14 14 -887.6659
## 243 2 15 -887.3088
## 244 3 15 -886.0691
## 246 5 15 -884.7479
## 96 15 5 -884.2869
## 245 4 15 -884.1417
## 160 15 9 -883.9364
## 128 15 7 -883.6409
## 144 15 8 -883.4503
## 247 6 15 -883.0158
## 80 15 4 -882.8148
## 248 7 15 -882.7881
## 112 15 6 -882.3106
## 176 15 10 -882.2093
## 64 15 3 -881.6497
## 253 12 15 -881.4274
## 252 11 15 -881.3077
## 250 9 15 -881.1831
## 192 15 11 -880.9028
## 249 8 15 -880.8964
## 32 15 1 -880.5983
## 251 10 15 -880.2736
## 16 15 0 -880.2468
## 254 13 15 -879.4467
## 208 15 12 -879.4364
## 255 14 15 -879.2846
## 48 15 2 -878.8432
## 224 15 13 -877.4985
## 240 15 14 -877.4570
model.ardlDlmberganda = ardlDlm(formula = logprice ~ interest + logm1,
data = data.frame(data1) , p = 4 , q = 4)
summary(model.ardlDlmberganda)
##
## Time series regression with "ts" data:
## Start = 5, End = 144
##
## Call:
## dynlm(formula = as.formula(model.text), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0290527 -0.0075965 0.0005726 0.0072745 0.0304486
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0145022 0.1822785 0.080 0.93671
## interest.t 0.0067985 0.2135315 0.032 0.97465
## interest.1 0.6093502 0.3240545 1.880 0.06238 .
## interest.2 0.0798544 0.3221168 0.248 0.80461
## interest.3 -0.3638172 0.3238873 -1.123 0.26347
## interest.4 0.2084240 0.2447331 0.852 0.39604
## logm1.t 0.0828689 0.0457486 1.811 0.07248 .
## logm1.1 -0.0092841 0.0399079 -0.233 0.81642
## logm1.2 -0.1166129 0.0390732 -2.984 0.00342 **
## logm1.3 0.0007016 0.0389297 0.018 0.98565
## logm1.4 0.0447857 0.0425474 1.053 0.29455
## logprice.1 0.3274245 0.0651574 5.025 1.7e-06 ***
## logprice.2 0.1323801 0.0684485 1.934 0.05537 .
## logprice.3 -0.1448245 0.0674268 -2.148 0.03365 *
## logprice.4 0.6730871 0.0636443 10.576 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01132 on 125 degrees of freedom
## Multiple R-squared: 0.9993, Adjusted R-squared: 0.9992
## F-statistic: 1.273e+04 on 14 and 125 DF, p-value: < 2.2e-16
#model p interest 0 p logm1 4
rem.p = list(interest = c(1,2,3,4))
remove = list(p = rem.p)
model.ardlDlmberganda2 = ardlDlm(formula = logprice ~ interest + logm1,
data = data.frame(data1) , p = 4 , q = 4 ,
remove = remove)
summary(model.ardlDlmberganda2)
##
## Time series regression with "ts" data:
## Start = 5, End = 144
##
## Call:
## dynlm(formula = as.formula(model.text), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0290369 -0.0083445 0.0009024 0.0079199 0.0303652
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.174838 0.133708 1.308 0.19333
## interest.t 0.448826 0.098736 4.546 1.24e-05 ***
## logm1.t 0.056659 0.043836 1.293 0.19849
## logm1.1 -0.017025 0.039159 -0.435 0.66446
## logm1.2 -0.118413 0.037399 -3.166 0.00193 **
## logm1.3 -0.006454 0.038112 -0.169 0.86580
## logm1.4 0.060220 0.040337 1.493 0.13789
## logprice.1 0.319059 0.062107 5.137 1.00e-06 ***
## logprice.2 0.111794 0.066101 1.691 0.09320 .
## logprice.3 -0.122129 0.065114 -1.876 0.06297 .
## logprice.4 0.699061 0.062611 11.165 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01149 on 129 degrees of freedom
## Multiple R-squared: 0.9993, Adjusted R-squared: 0.9992
## F-statistic: 1.73e+04 on 10 and 129 DF, p-value: < 2.2e-16
Proses selanjutnya sama dengan pemodelan menggunakan peubah tunggal.
Pertemuan 4
White Noise
Pembangkitan data berpola AR, MA, ARMA, dan banyak proses deret waktu lainnya diawali pembangkitan white noise. White noise merupakan sederet nilai dari peubah bebas stokastik identik. Oleh karena itu, white noise memiliki dua karakteristik penting:
- White noise tidak memiliki autokorelasi (karena saling bebas)
- Nilai harapan dan ragam white noise sama (karena berasal dari peubah acak bebas stokastik identik)
White noise dibangkitkan dari suatu peubah acak, umumnya peubah acak normal.
Dapat terlihat bahwa white noise tidak memiliki autokorelasi
dari ACF. Perhatikan bahwa lag ke-0 adalah korelasi observasi ke-t
dengan dirinya sendiri. Nilai korelasi tersebut pasti 1. Sebagai
alternatif, lag pertama di plot ACF dapat ditetapkan sebagai 1
(alih-alih 0) dengan menambahkan argumen
xlim(1, lag akhir)
. Plot tersebut dapat disandingkan
bersamaan dengan membuat matriks \(1 \times
2\) dengan par(mfrow = c(1,2))
.
Proses MA
Proses MA dapat dituliskan sebagai berikut:
\[ y_{t} = c + e_t + \theta_{1}e_{t-1} + \theta_{2}e_{t-2} + \dots + \theta_{q}e_{t-q} = c+{e_t+\sum_{i=1}^p \theta_ie_{t-i}} \] Terlihat bahwa \(e_t\), atau white noise, berperan penting dalam pembangkitan proses MA.
Pembangkitan Proses MA(1)
Akan dicoba membangkitkan proses MA paling sederhana, yaitu MA(1) dengan \(\theta = 0.5\) sebanyak 200 observasi dan \(c=0\). Karena diperlukan satu nilai awal untuk \(e_{t-1}\), masukkan nilai pertama white noise sebagai nilai awal tersebut.
Nilai-nilai selanjutnya dapat dicari melalui loop. Bentuk loop dapat dilihat dari rumus MA(1) yang hendak dibangkitkan:
\[ y_t = e_t+0.5e_{t-1} \]
## [1] -1.066913213 0.256043451 0.213898641 -0.151621283 -0.622714669
## [6] -0.279267075 -0.999160605 -0.595577804 1.047988696 -0.858689098
## [11] -1.241661197 0.017591772 -0.419209528 -0.529004245 -0.128554996
## [16] 0.423120646 0.761528958 0.127421912 0.742144817 0.372369308
## [21] 0.272972749 -1.409981052 -2.073686740 -1.321951244 -1.020224036
## [26] -1.135393059 0.320838600 1.446380749 -0.577935289 -0.719969032
## [31] -0.811885615 -0.934673927 -2.159823696 -1.400091843 -1.438497358
## [36] -1.505072235 -1.013720553 -0.174058835 -0.088898627 -1.395544871
## [41] -0.080415890 -0.089920425 0.060266536 -0.812779887 -0.999672168
## [46] -0.452664061 0.870489829 -2.048234663 -1.681863221 -1.190370626
## [51] -0.605621478 -1.698285625 -0.746760969 -1.444552885 -2.072609533
## [56] 0.856791972 -1.026619849 -2.051428661 -1.931790142 0.655829949
## [61] 1.882254165 0.548798671 0.625325748 1.765445711 0.363042653
## [66] -0.783986934 -1.051861468 -1.213753785 -0.275052685 0.177225817
## [71] -0.369934927 -1.716970520 0.216136731 1.023507180 1.037250689
## [76] 0.145181150 0.076887545 -0.121182835 0.388311532 -0.288359705
## [81] 0.646999731 0.518251047 0.577710587 0.625978228 -0.171357210
## [86] -1.103195376 -0.547761071 0.453989475 0.291547947 -1.043306428
## [91] -0.088711797 -0.418227634 0.596906647 1.106696117 0.601570692
## [96] -0.857065967 -2.909584385 0.947719410 0.574477620 -0.820010335
## [101] -1.925257074 -1.165847530 0.474825447 1.280154500 0.855703912
## [106] 0.015926082 0.915916845 0.075836100 -0.256504032 1.288623559
## [111] 1.144978836 0.265882902 0.990993593 2.348956784 0.594360501
## [116] 1.132879474 1.275068196 -0.997240187 -1.530959091 -2.420053222
## [121] 0.942534037 -1.302814375 0.404860956 1.413170018 0.212552416
## [126] -0.755003747 0.867529491 -0.355817225 -1.036156579 0.701555171
## [131] 0.957323985 0.907978620 2.289770316 1.225496226 0.615595470
## [136] 0.647794957 1.987545420 2.578673460 0.363525287 -1.672687466
## [141] -0.170861251 1.811471977 -0.198517600 -1.537194030 0.437519605
## [146] -0.542751573 0.735778251 -0.911832002 0.485562019 -0.239322064
## [151] 0.156138030 0.908742781 -0.252238527 -0.411237466 -0.062806294
## [156] -0.247411591 -0.728427117 -0.986656305 0.219972926 0.952752893
## [161] 1.329744109 -0.720801074 -2.523703619 -2.510776265 -1.220064459
## [166] -1.634456611 -0.631550895 0.008562093 -1.081188773 -1.042832897
## [171] -0.497567219 0.054846809 0.969822041 1.667921389 1.214226638
## [176] -0.289320911 -0.578974067 -0.058846318 -0.522878021 -2.624951709
## [181] -1.410099715 -0.642603214 -1.235626728 -1.363776222 -1.057119216
## [186] 0.096127288 0.613498592 -0.338003506 -0.064433277 -0.493915096
## [191] -1.493716159 0.084602646 -0.201027824 0.892771870 0.441444675
## [196] -1.145068332 0.795252233 2.349590942 1.641430993 0.076160539
Selain menggunakan cara di atas, pembangkitan proses MA(1) dapat
dilakukan dengan fungsi arima.sim()
sebagai berikut.
## Time Series:
## Start = 1
## End = 200
## Frequency = 1
## [1] -0.326103633 1.223155798 -1.803477114 -0.743724163 0.720618237
## [6] -0.321712014 -0.834001836 -0.837767927 -1.172263829 -0.922211614
## [11] -1.236982795 -1.275447117 -0.323668130 0.991723468 0.369461535
## [16] -0.566152253 -1.166700170 -1.292769389 1.997249338 1.342005809
## [21] -0.423641787 -0.685890821 0.239315505 -0.463925526 -1.795065034
## [26] -0.149346734 -0.736277863 -0.526966162 -0.943517751 0.634323246
## [31] 0.075555694 -0.947236577 -0.855978079 -1.879722499 -1.982165997
## [36] -2.763849280 -2.431013017 -0.964790455 -0.613044470 1.216547495
## [41] -0.343894591 -1.389685996 -0.708305319 -1.134651577 -1.465684356
## [46] -1.591575352 -1.805644982 -1.149821062 -0.758764017 -2.054456235
## [51] -1.485091553 -1.399927587 -1.569406822 -0.669790528 0.481901057
## [56] 1.929345382 0.050555312 1.219232917 -0.354853733 0.077684190
## [61] 2.877285303 1.239735146 -0.687013775 -0.342421546 1.773282070
## [66] -0.250065513 0.798523311 2.013478380 1.001255193 0.175129237
## [71] -0.452022319 -0.594258302 0.465024601 2.394414145 0.881737018
## [76] -1.467400153 -1.418932250 -0.103529126 -0.187928234 -0.336319515
## [81] -0.258889056 -1.457298924 -0.859938113 0.763338672 1.122724840
## [86] 0.898801707 -0.127733300 -0.392959758 -1.290324765 -0.650422759
## [91] 0.228616592 1.833562008 1.854495256 0.005173183 0.107758575
## [96] -0.956832895 0.310899605 1.412018567 2.607575482 1.475082087
## [101] -0.267456706 -0.171365743 -0.469481036 -1.077237478 -0.246010014
## [106] -0.812769986 -0.279946925 0.439060955 0.125379014 -0.221987177
## [111] -0.747037061 -1.434302107 0.294390587 0.446999627 0.842321880
## [116] -0.828717543 -0.453117512 0.757679514 0.310306777 -0.204530357
## [121] -0.877602731 1.667208664 1.779582447 2.199459029 0.992163792
## [126] -0.591379478 -1.828992770 -1.392743891 -0.091748383 1.126841114
## [131] 0.759595309 -1.045573245 0.082740172 -1.315743771 -1.190902716
## [136] -0.499044453 -2.106305212 -0.054065501 -0.162842834 -0.645472447
## [141] 1.228129568 1.334248357 0.209905509 0.459546930 0.656153196
## [146] 1.862492351 1.107321627 0.644219325 0.600688287 -0.203461660
## [151] -0.090999361 1.687554377 -0.056220152 -0.316036238 1.423010660
## [156] 0.446444243 -1.170693351 -1.396475010 -0.825018832 -1.042413588
## [161] -0.684314429 -0.544739402 -0.390260651 0.315530699 0.828161177
## [166] 1.990522308 0.770409218 -0.355186739 1.310585761 2.439832256
## [171] 0.895408736 -0.311035300 -1.988564077 0.500144690 -0.131951235
## [176] -1.542554011 2.481884489 1.756904251 0.084252044 -2.748848828
## [181] -1.465900350 0.926136441 0.901884783 1.119256619 2.439893281
## [186] 2.160974614 0.075817242 0.449811671 0.153673815 -0.637278926
## [191] -3.124794049 -2.217526180 0.092991209 2.411939857 1.584710884
## [196] 0.870557511 -0.655798108 -0.320296897 -1.996910188 -0.553891950
Karakteristik MA(1)
Plot Time Series
Berdasarkan plot time series, terlihat bahwa data MA(1) yang dibangkitkan stasioner dalam rataan
Plot ACF
Berdasarkan plot AFC tersebut, terlihat bahwa plot ACF cuts off di lag pertama
Plot PACF
Berdasarkan plot PACF tersebut, terlihat bahwa plot PACF cenderung tails off dan membentuk gelombang sinus
Plot EACF
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o x o o o o o o o o o o
## 1 x x o x o o o o o o o o o o
## 2 x x o x o o o o o o o o o o
## 3 x x o o o o o o o o o o o o
## 4 x x x o o o o o o o o o o o
## 5 o x o o o x o o o o o o o o
## 6 x o o x o x o o o o o o o o
## 7 x o o x o x o x o o o o o o
Berdasarkan pola segitiga nol pada plot EACF, terlihat bahwa segitiga nol berada pada ordo AR(0) dan ordo MA(1)
Scatterplot Antar Lag
Korelasi antara \(Y_t\) dengan \(Y_{t-1}\)
## [1] 0.256043451 0.213898641 -0.151621283 -0.622714669 -0.279267075
## [6] -0.999160605 -0.595577804 1.047988696 -0.858689098 -1.241661197
## [11] 0.017591772 -0.419209528 -0.529004245 -0.128554996 0.423120646
## [16] 0.761528958 0.127421912 0.742144817 0.372369308 0.272972749
## [21] -1.409981052 -2.073686740 -1.321951244 -1.020224036 -1.135393059
## [26] 0.320838600 1.446380749 -0.577935289 -0.719969032 -0.811885615
## [31] -0.934673927 -2.159823696 -1.400091843 -1.438497358 -1.505072235
## [36] -1.013720553 -0.174058835 -0.088898627 -1.395544871 -0.080415890
## [41] -0.089920425 0.060266536 -0.812779887 -0.999672168 -0.452664061
## [46] 0.870489829 -2.048234663 -1.681863221 -1.190370626 -0.605621478
## [51] -1.698285625 -0.746760969 -1.444552885 -2.072609533 0.856791972
## [56] -1.026619849 -2.051428661 -1.931790142 0.655829949 1.882254165
## [61] 0.548798671 0.625325748 1.765445711 0.363042653 -0.783986934
## [66] -1.051861468 -1.213753785 -0.275052685 0.177225817 -0.369934927
## [71] -1.716970520 0.216136731 1.023507180 1.037250689 0.145181150
## [76] 0.076887545 -0.121182835 0.388311532 -0.288359705 0.646999731
## [81] 0.518251047 0.577710587 0.625978228 -0.171357210 -1.103195376
## [86] -0.547761071 0.453989475 0.291547947 -1.043306428 -0.088711797
## [91] -0.418227634 0.596906647 1.106696117 0.601570692 -0.857065967
## [96] -2.909584385 0.947719410 0.574477620 -0.820010335 -1.925257074
## [101] -1.165847530 0.474825447 1.280154500 0.855703912 0.015926082
## [106] 0.915916845 0.075836100 -0.256504032 1.288623559 1.144978836
## [111] 0.265882902 0.990993593 2.348956784 0.594360501 1.132879474
## [116] 1.275068196 -0.997240187 -1.530959091 -2.420053222 0.942534037
## [121] -1.302814375 0.404860956 1.413170018 0.212552416 -0.755003747
## [126] 0.867529491 -0.355817225 -1.036156579 0.701555171 0.957323985
## [131] 0.907978620 2.289770316 1.225496226 0.615595470 0.647794957
## [136] 1.987545420 2.578673460 0.363525287 -1.672687466 -0.170861251
## [141] 1.811471977 -0.198517600 -1.537194030 0.437519605 -0.542751573
## [146] 0.735778251 -0.911832002 0.485562019 -0.239322064 0.156138030
## [151] 0.908742781 -0.252238527 -0.411237466 -0.062806294 -0.247411591
## [156] -0.728427117 -0.986656305 0.219972926 0.952752893 1.329744109
## [161] -0.720801074 -2.523703619 -2.510776265 -1.220064459 -1.634456611
## [166] -0.631550895 0.008562093 -1.081188773 -1.042832897 -0.497567219
## [171] 0.054846809 0.969822041 1.667921389 1.214226638 -0.289320911
## [176] -0.578974067 -0.058846318 -0.522878021 -2.624951709 -1.410099715
## [181] -0.642603214 -1.235626728 -1.363776222 -1.057119216 0.096127288
## [186] 0.613498592 -0.338003506 -0.064433277 -0.493915096 -1.493716159
## [191] 0.084602646 -0.201027824 0.892771870 0.441444675 -1.145068332
## [196] 0.795252233 2.349590942 1.641430993 0.076160539
## [1] -1.066913213 0.256043451 0.213898641 -0.151621283 -0.622714669
## [6] -0.279267075 -0.999160605 -0.595577804 1.047988696 -0.858689098
## [11] -1.241661197 0.017591772 -0.419209528 -0.529004245 -0.128554996
## [16] 0.423120646 0.761528958 0.127421912 0.742144817 0.372369308
## [21] 0.272972749 -1.409981052 -2.073686740 -1.321951244 -1.020224036
## [26] -1.135393059 0.320838600 1.446380749 -0.577935289 -0.719969032
## [31] -0.811885615 -0.934673927 -2.159823696 -1.400091843 -1.438497358
## [36] -1.505072235 -1.013720553 -0.174058835 -0.088898627 -1.395544871
## [41] -0.080415890 -0.089920425 0.060266536 -0.812779887 -0.999672168
## [46] -0.452664061 0.870489829 -2.048234663 -1.681863221 -1.190370626
## [51] -0.605621478 -1.698285625 -0.746760969 -1.444552885 -2.072609533
## [56] 0.856791972 -1.026619849 -2.051428661 -1.931790142 0.655829949
## [61] 1.882254165 0.548798671 0.625325748 1.765445711 0.363042653
## [66] -0.783986934 -1.051861468 -1.213753785 -0.275052685 0.177225817
## [71] -0.369934927 -1.716970520 0.216136731 1.023507180 1.037250689
## [76] 0.145181150 0.076887545 -0.121182835 0.388311532 -0.288359705
## [81] 0.646999731 0.518251047 0.577710587 0.625978228 -0.171357210
## [86] -1.103195376 -0.547761071 0.453989475 0.291547947 -1.043306428
## [91] -0.088711797 -0.418227634 0.596906647 1.106696117 0.601570692
## [96] -0.857065967 -2.909584385 0.947719410 0.574477620 -0.820010335
## [101] -1.925257074 -1.165847530 0.474825447 1.280154500 0.855703912
## [106] 0.015926082 0.915916845 0.075836100 -0.256504032 1.288623559
## [111] 1.144978836 0.265882902 0.990993593 2.348956784 0.594360501
## [116] 1.132879474 1.275068196 -0.997240187 -1.530959091 -2.420053222
## [121] 0.942534037 -1.302814375 0.404860956 1.413170018 0.212552416
## [126] -0.755003747 0.867529491 -0.355817225 -1.036156579 0.701555171
## [131] 0.957323985 0.907978620 2.289770316 1.225496226 0.615595470
## [136] 0.647794957 1.987545420 2.578673460 0.363525287 -1.672687466
## [141] -0.170861251 1.811471977 -0.198517600 -1.537194030 0.437519605
## [146] -0.542751573 0.735778251 -0.911832002 0.485562019 -0.239322064
## [151] 0.156138030 0.908742781 -0.252238527 -0.411237466 -0.062806294
## [156] -0.247411591 -0.728427117 -0.986656305 0.219972926 0.952752893
## [161] 1.329744109 -0.720801074 -2.523703619 -2.510776265 -1.220064459
## [166] -1.634456611 -0.631550895 0.008562093 -1.081188773 -1.042832897
## [171] -0.497567219 0.054846809 0.969822041 1.667921389 1.214226638
## [176] -0.289320911 -0.578974067 -0.058846318 -0.522878021 -2.624951709
## [181] -1.410099715 -0.642603214 -1.235626728 -1.363776222 -1.057119216
## [186] 0.096127288 0.613498592 -0.338003506 -0.064433277 -0.493915096
## [191] -1.493716159 0.084602646 -0.201027824 0.892771870 0.441444675
## [196] -1.145068332 0.795252233 2.349590942 1.641430993
Berdasarkan scatterplot tersebut, terlihat bahwa terdapat hubungan positif antara \(Y_t\) dengan \(Y_{t-1}\). Hal ini sesuai dengan teori yang ada
## [1] 0.4373014
Korelasi antara \(Y_t\) dengan \(Y_{t-1}\) dari hasil simulasi mendekati perhitungan teoritis yaitu
\[ \rho_1=\frac{-\theta}{1+(-\theta)^2}=\frac{-(-0.5)}{1+(-0.5)^2}=0.4 \]
Korelasi antara \(Y_t\) dengan \(Y_{t-2}\)
## [1] 0.213898641 -0.151621283 -0.622714669 -0.279267075 -0.999160605
## [6] -0.595577804 1.047988696 -0.858689098 -1.241661197 0.017591772
## [11] -0.419209528 -0.529004245 -0.128554996 0.423120646 0.761528958
## [16] 0.127421912 0.742144817 0.372369308 0.272972749 -1.409981052
## [21] -2.073686740 -1.321951244 -1.020224036 -1.135393059 0.320838600
## [26] 1.446380749 -0.577935289 -0.719969032 -0.811885615 -0.934673927
## [31] -2.159823696 -1.400091843 -1.438497358 -1.505072235 -1.013720553
## [36] -0.174058835 -0.088898627 -1.395544871 -0.080415890 -0.089920425
## [41] 0.060266536 -0.812779887 -0.999672168 -0.452664061 0.870489829
## [46] -2.048234663 -1.681863221 -1.190370626 -0.605621478 -1.698285625
## [51] -0.746760969 -1.444552885 -2.072609533 0.856791972 -1.026619849
## [56] -2.051428661 -1.931790142 0.655829949 1.882254165 0.548798671
## [61] 0.625325748 1.765445711 0.363042653 -0.783986934 -1.051861468
## [66] -1.213753785 -0.275052685 0.177225817 -0.369934927 -1.716970520
## [71] 0.216136731 1.023507180 1.037250689 0.145181150 0.076887545
## [76] -0.121182835 0.388311532 -0.288359705 0.646999731 0.518251047
## [81] 0.577710587 0.625978228 -0.171357210 -1.103195376 -0.547761071
## [86] 0.453989475 0.291547947 -1.043306428 -0.088711797 -0.418227634
## [91] 0.596906647 1.106696117 0.601570692 -0.857065967 -2.909584385
## [96] 0.947719410 0.574477620 -0.820010335 -1.925257074 -1.165847530
## [101] 0.474825447 1.280154500 0.855703912 0.015926082 0.915916845
## [106] 0.075836100 -0.256504032 1.288623559 1.144978836 0.265882902
## [111] 0.990993593 2.348956784 0.594360501 1.132879474 1.275068196
## [116] -0.997240187 -1.530959091 -2.420053222 0.942534037 -1.302814375
## [121] 0.404860956 1.413170018 0.212552416 -0.755003747 0.867529491
## [126] -0.355817225 -1.036156579 0.701555171 0.957323985 0.907978620
## [131] 2.289770316 1.225496226 0.615595470 0.647794957 1.987545420
## [136] 2.578673460 0.363525287 -1.672687466 -0.170861251 1.811471977
## [141] -0.198517600 -1.537194030 0.437519605 -0.542751573 0.735778251
## [146] -0.911832002 0.485562019 -0.239322064 0.156138030 0.908742781
## [151] -0.252238527 -0.411237466 -0.062806294 -0.247411591 -0.728427117
## [156] -0.986656305 0.219972926 0.952752893 1.329744109 -0.720801074
## [161] -2.523703619 -2.510776265 -1.220064459 -1.634456611 -0.631550895
## [166] 0.008562093 -1.081188773 -1.042832897 -0.497567219 0.054846809
## [171] 0.969822041 1.667921389 1.214226638 -0.289320911 -0.578974067
## [176] -0.058846318 -0.522878021 -2.624951709 -1.410099715 -0.642603214
## [181] -1.235626728 -1.363776222 -1.057119216 0.096127288 0.613498592
## [186] -0.338003506 -0.064433277 -0.493915096 -1.493716159 0.084602646
## [191] -0.201027824 0.892771870 0.441444675 -1.145068332 0.795252233
## [196] 2.349590942 1.641430993 0.076160539
## [1] -1.066913213 0.256043451 0.213898641 -0.151621283 -0.622714669
## [6] -0.279267075 -0.999160605 -0.595577804 1.047988696 -0.858689098
## [11] -1.241661197 0.017591772 -0.419209528 -0.529004245 -0.128554996
## [16] 0.423120646 0.761528958 0.127421912 0.742144817 0.372369308
## [21] 0.272972749 -1.409981052 -2.073686740 -1.321951244 -1.020224036
## [26] -1.135393059 0.320838600 1.446380749 -0.577935289 -0.719969032
## [31] -0.811885615 -0.934673927 -2.159823696 -1.400091843 -1.438497358
## [36] -1.505072235 -1.013720553 -0.174058835 -0.088898627 -1.395544871
## [41] -0.080415890 -0.089920425 0.060266536 -0.812779887 -0.999672168
## [46] -0.452664061 0.870489829 -2.048234663 -1.681863221 -1.190370626
## [51] -0.605621478 -1.698285625 -0.746760969 -1.444552885 -2.072609533
## [56] 0.856791972 -1.026619849 -2.051428661 -1.931790142 0.655829949
## [61] 1.882254165 0.548798671 0.625325748 1.765445711 0.363042653
## [66] -0.783986934 -1.051861468 -1.213753785 -0.275052685 0.177225817
## [71] -0.369934927 -1.716970520 0.216136731 1.023507180 1.037250689
## [76] 0.145181150 0.076887545 -0.121182835 0.388311532 -0.288359705
## [81] 0.646999731 0.518251047 0.577710587 0.625978228 -0.171357210
## [86] -1.103195376 -0.547761071 0.453989475 0.291547947 -1.043306428
## [91] -0.088711797 -0.418227634 0.596906647 1.106696117 0.601570692
## [96] -0.857065967 -2.909584385 0.947719410 0.574477620 -0.820010335
## [101] -1.925257074 -1.165847530 0.474825447 1.280154500 0.855703912
## [106] 0.015926082 0.915916845 0.075836100 -0.256504032 1.288623559
## [111] 1.144978836 0.265882902 0.990993593 2.348956784 0.594360501
## [116] 1.132879474 1.275068196 -0.997240187 -1.530959091 -2.420053222
## [121] 0.942534037 -1.302814375 0.404860956 1.413170018 0.212552416
## [126] -0.755003747 0.867529491 -0.355817225 -1.036156579 0.701555171
## [131] 0.957323985 0.907978620 2.289770316 1.225496226 0.615595470
## [136] 0.647794957 1.987545420 2.578673460 0.363525287 -1.672687466
## [141] -0.170861251 1.811471977 -0.198517600 -1.537194030 0.437519605
## [146] -0.542751573 0.735778251 -0.911832002 0.485562019 -0.239322064
## [151] 0.156138030 0.908742781 -0.252238527 -0.411237466 -0.062806294
## [156] -0.247411591 -0.728427117 -0.986656305 0.219972926 0.952752893
## [161] 1.329744109 -0.720801074 -2.523703619 -2.510776265 -1.220064459
## [166] -1.634456611 -0.631550895 0.008562093 -1.081188773 -1.042832897
## [171] -0.497567219 0.054846809 0.969822041 1.667921389 1.214226638
## [176] -0.289320911 -0.578974067 -0.058846318 -0.522878021 -2.624951709
## [181] -1.410099715 -0.642603214 -1.235626728 -1.363776222 -1.057119216
## [186] 0.096127288 0.613498592 -0.338003506 -0.064433277 -0.493915096
## [191] -1.493716159 0.084602646 -0.201027824 0.892771870 0.441444675
## [196] -1.145068332 0.795252233 2.349590942
Berdasarkan scatterplot tersebut, terlihat bahwa cenderung tidak terdapat hubungan antara \(Y_t\) dengan \(Y_{t-2}\).
## [1] 0.08287241
Korelasi antara \(Y_t\) dengan \(Y_{t-2}\) hasil simulasi mendekati teori yang ada yaitu 0.
Proses AR
Proses AR dapat dituliskan sebagai berikut:
\[ y_{t} = c + e_t + \phi_{1}Y_{t-1} + \phi_{2}Y_{t-2} + \dots + \phi_{q}Y_{t-q} = c+{e_t+\sum_{i=1}^p \phi_iY_{t-i}} \] Terlihat bahwa \(Y_t\) berperan penting dalam pembangkitan proses AR.
Pembangkitan Proses AR
Akan dicoba membangkitkan proses AR paling sederhana, yaitu AR(1) dengan \(\phi = 0.7\) sebanyak 200 observasi dan \(c=0\).
Nilai-nilai selanjutnya dapat dicari melalui loop. Bentuk loop dapat dilihat dari rumus AR(1) yang hendak dibangkitkan:
\[ Y_t = e_t+0.7Y_{t-1} \]
## [1] 200
## [1] 1.000000000 1.489500057 0.861798653 0.542063468 -0.212672447
## [6] -0.132079350 -1.100011831 -0.861807943 0.490622967 -1.062197284
## [11] -1.282382616 -0.610653801 -0.990174204 -0.940767916 -0.663269551
## [16] -0.038802035 0.521624209 0.218166041 0.968346499 0.642396722
## [21] 0.740373368 -1.037067525 -2.021969567 -2.089318791 -2.145777142
## [26] -2.295810065 -0.889345413 0.464978144 -0.796210555 -0.716468793
## [31] -1.233853067 -1.432208618 -2.878113993 -2.476987658 -2.941234787
## [36] -2.960264873 -2.635205703 -1.737192681 -1.358659159 -2.275294141
## [41] -1.011005424 -1.088474459 -0.511280254 -1.296001998 -1.437820657
## [46] -1.193828892 0.128486821 -2.440377411 -2.124968315 -2.469496383
## [51] -1.843259665 -2.931261292 -1.978154110 -2.866125160 -3.338188503
## [56] -0.813989534 -2.357783732 -2.807881745 -3.318590797 -0.990646821
## [61] 0.522618022 0.306595888 0.869561234 2.046666518 1.076722388
## [66] 0.147690825 -0.645470468 -1.291156089 -0.759198567 -0.426518527
## [71] -0.720958130 -2.010443631 -0.438287341 0.232194441 0.930289008
## [76] 0.412507006 0.484990099 0.120192637 0.582096594 -0.129872963
## [81] 0.824758947 0.637747299 0.993925678 1.047974918 0.386111761
## [86] -0.659181803 -0.544458315 0.114384181 0.123864373 -0.978499090
## [91] -0.241059084 -0.808914133 0.350753141 0.893726799 0.903079651
## [96] -0.363645657 -2.666235638 0.287196303 -0.301265593 -0.779744748
## [101] -2.186648981 -1.876087988 -0.665719294 0.490379845 0.720778128
## [106] 0.331714654 1.234532121 0.438842653 0.263350741 1.494888636
## [111] 1.536129323 1.096319790 1.747902814 3.082249273 1.822576340
## [116] 2.576181988 2.428206312 0.390064771 -0.603073927 -2.404145337
## [121] 0.250629095 -2.094139424 0.073753255 0.694971871 0.377360430
## [126] -0.436291506 0.912347340 -0.326049784 -0.782044967 0.431028754
## [131] 0.769813998 1.212801484 2.801765512 2.210329848 2.038279369
## [136] 1.829066277 3.066756454 3.832197948 2.203329636 0.109247743
## [141] 0.622153670 1.974139422 0.414064069 -0.763432419 0.429755546
## [146] -0.724001811 0.741392330 -1.016954170 0.541658500 -0.486924324
## [151] 0.248333641 0.787985996 -0.007724554 -0.136987278 -0.092907343
## [156] -0.313938607 -0.823732409 -1.261281299 -0.320589677 0.447186503
## [161] 1.306975022 -0.302890793 -2.126840520 -3.042156147 -2.572889870
## [166] -3.213789237 -2.174820197 -1.551228179 -2.152621478 -2.016287055
## [171] -1.654242147 -0.981702090 0.194496872 1.363225032 1.554945549
## [176] 0.498796960 0.065016267 0.128735872 -0.474375153 -2.674769184
## [181] -2.111084855 -2.000989399 -2.374704307 -2.539063373 -2.396078398
## [186] -1.271760572 -0.479480962 -0.879015898 -0.408054793 -0.883181619
## [191] -1.813171660 -0.587145253 -0.953066956 0.496657640 0.207202769
## [196] -0.929797604 0.681813681 2.160524516 2.312170685 1.294778257
Selain menggunakan cara di atas, pembangkitan proses AR dapat
dilakukan dengan fungsi arima.sim()
sebagai berikut.
## Time Series:
## Start = 1
## End = 200
## Frequency = 1
## [1] -1.794742603 1.159515356 0.945748970 0.171338382 -0.320611005
## [6] 0.235161738 -0.529107031 -1.818579832 -0.698250161 -1.512430836
## [11] -1.073839886 -1.687636521 -0.079048019 -0.530926692 -1.081088722
## [16] -1.258020166 -2.509707585 -2.924414572 -4.227129849 -4.299984087
## [21] -3.304282719 -2.778895444 -0.495730545 -1.415654105 -1.846322508
## [26] -1.573048757 -2.095474206 -2.435346262 -2.812060576 -3.220428289
## [31] -2.778127921 -2.441539502 -3.515108908 -3.042652161 -3.238746137
## [36] -3.282084305 -2.459768537 -1.158782157 0.836669963 -0.187684450
## [41] 1.474530514 -0.125637188 0.568642433 2.947040774 2.028168152
## [46] 0.750084127 0.517454133 2.139302341 0.358903902 1.619059911
## [51] 2.462906728 2.060507507 1.449248093 0.559004927 0.024779516
## [56] 0.665632229 2.536213422 1.621950983 -0.255335259 -0.902316458
## [61] -0.373359759 -0.578410946 -0.582677620 -0.577868411 -1.776809773
## [66] -1.417554012 -0.142055551 0.598169826 0.968716229 0.275369385
## [71] 0.001164799 -1.193712520 -0.888757583 -0.366934307 1.449109992
## [76] 2.015890247 0.915539730 0.996428108 -0.437108368 0.572227769
## [81] 1.373476192 3.082550440 2.572308842 1.325897716 0.994121895
## [86] 0.193407544 -0.690613306 -0.316440035 -1.117772651 -0.614255468
## [91] -0.075010566 -0.104612513 -0.269163378 -0.837484116 -1.696006113
## [96] -0.337930076 -0.214188527 0.681208648 -0.767441798 -0.368182845
## [101] 0.415438316 0.264530445 -0.006220857 -0.786261247 1.507779115
## [106] 1.805946834 3.088371086 2.241919401 0.937934282 -0.856734123
## [111] -1.235813717 -0.638768069 0.566552699 0.649337024 -0.717412396
## [116] 0.166525651 -1.533532979 -1.439325333 -1.323646062 -2.874798291
## [121] -1.092301281 -1.387482492 -1.305274394 0.481455817 0.973693483
## [126] 0.573153741 0.914970397 1.039751085 2.390682207 1.949370949
## [131] 1.870832287 1.657134576 0.782756556 0.645549052 2.090628982
## [136] 0.587847813 0.533253468 1.735408088 0.980164575 -0.367267606
## [141] -1.126870930 -1.178936680 -1.672605749 -1.431463417 -1.416444098
## [146] -1.174561666 -0.415137069 0.334037180 1.912031770 1.269728585
## [151] 0.567970097 1.868584785 3.012338747 2.151881161 1.173659493
## [156] -1.000673772 0.710790758 -0.340028903 -1.361783027 2.090517767
## [161] 1.698383745 1.155610012 -1.923292515 -1.446095349 -0.036235009
## [166] 0.388504409 1.184275248 2.812724874 3.138015926 1.687874133
## [171] 1.885692071 1.121568176 0.247026934 -2.682839801 -2.667634713
## [176] -1.379529664 1.202361775 1.342347857 1.559853703 0.125994382
## [181] 0.250850776 -1.902641999 -0.846622579 0.104132973 0.258406997
## [186] 0.881618413 0.928813918 1.410632105 2.829906099 3.093297111
## [191] 2.197971935 0.424131390 0.714949795 0.100229619 1.563653836
## [196] -0.512523255 -0.774518067 -0.120154273 -0.235844528 -0.771242285
Karakteristik AR(1)
Plot Time Series
Berdasarkan plot time series tersebut terlihat bahwa data cenderung stasioner pada rataan
Plot ACF
Berdasarkan plot ACF tersebut terlihat bahwa plot ACF cenderung tails off dan cenderung membentuk pola grafik sinus
Plot PACF
Berdasarkan plot PACF tersebut, terlihat bahwa plot PACF cuts off pada lag pertama, sejalan dengan teori yang ada
Plot EACF
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x x x x o o o o o o o o
## 1 o o o x o o o o o o o o o o
## 2 o o o x o o o o o o o o o o
## 3 o o o o o o o o o o o o o o
## 4 x o x o o o o o o o o o o o
## 5 o x x x o o o x o o o o o o
## 6 x x o x x o o o o o o o o o
## 7 x x o x o o o o o o o o o o
Berdasarkan pola segitiga nol pada plot EACF, terlihat bahwa segitiga nol berada pada ordo AR(1) dan ordo MA(0)
Scatterplot Antar Lag
Korelasi antara \(Y_t\) dengan \(Y_{t-1}\)
## [1] 1.489500057 0.861798653 0.542063468 -0.212672447 -0.132079350
## [6] -1.100011831 -0.861807943 0.490622967 -1.062197284 -1.282382616
## [11] -0.610653801 -0.990174204 -0.940767916 -0.663269551 -0.038802035
## [16] 0.521624209 0.218166041 0.968346499 0.642396722 0.740373368
## [21] -1.037067525 -2.021969567 -2.089318791 -2.145777142 -2.295810065
## [26] -0.889345413 0.464978144 -0.796210555 -0.716468793 -1.233853067
## [31] -1.432208618 -2.878113993 -2.476987658 -2.941234787 -2.960264873
## [36] -2.635205703 -1.737192681 -1.358659159 -2.275294141 -1.011005424
## [41] -1.088474459 -0.511280254 -1.296001998 -1.437820657 -1.193828892
## [46] 0.128486821 -2.440377411 -2.124968315 -2.469496383 -1.843259665
## [51] -2.931261292 -1.978154110 -2.866125160 -3.338188503 -0.813989534
## [56] -2.357783732 -2.807881745 -3.318590797 -0.990646821 0.522618022
## [61] 0.306595888 0.869561234 2.046666518 1.076722388 0.147690825
## [66] -0.645470468 -1.291156089 -0.759198567 -0.426518527 -0.720958130
## [71] -2.010443631 -0.438287341 0.232194441 0.930289008 0.412507006
## [76] 0.484990099 0.120192637 0.582096594 -0.129872963 0.824758947
## [81] 0.637747299 0.993925678 1.047974918 0.386111761 -0.659181803
## [86] -0.544458315 0.114384181 0.123864373 -0.978499090 -0.241059084
## [91] -0.808914133 0.350753141 0.893726799 0.903079651 -0.363645657
## [96] -2.666235638 0.287196303 -0.301265593 -0.779744748 -2.186648981
## [101] -1.876087988 -0.665719294 0.490379845 0.720778128 0.331714654
## [106] 1.234532121 0.438842653 0.263350741 1.494888636 1.536129323
## [111] 1.096319790 1.747902814 3.082249273 1.822576340 2.576181988
## [116] 2.428206312 0.390064771 -0.603073927 -2.404145337 0.250629095
## [121] -2.094139424 0.073753255 0.694971871 0.377360430 -0.436291506
## [126] 0.912347340 -0.326049784 -0.782044967 0.431028754 0.769813998
## [131] 1.212801484 2.801765512 2.210329848 2.038279369 1.829066277
## [136] 3.066756454 3.832197948 2.203329636 0.109247743 0.622153670
## [141] 1.974139422 0.414064069 -0.763432419 0.429755546 -0.724001811
## [146] 0.741392330 -1.016954170 0.541658500 -0.486924324 0.248333641
## [151] 0.787985996 -0.007724554 -0.136987278 -0.092907343 -0.313938607
## [156] -0.823732409 -1.261281299 -0.320589677 0.447186503 1.306975022
## [161] -0.302890793 -2.126840520 -3.042156147 -2.572889870 -3.213789237
## [166] -2.174820197 -1.551228179 -2.152621478 -2.016287055 -1.654242147
## [171] -0.981702090 0.194496872 1.363225032 1.554945549 0.498796960
## [176] 0.065016267 0.128735872 -0.474375153 -2.674769184 -2.111084855
## [181] -2.000989399 -2.374704307 -2.539063373 -2.396078398 -1.271760572
## [186] -0.479480962 -0.879015898 -0.408054793 -0.883181619 -1.813171660
## [191] -0.587145253 -0.953066956 0.496657640 0.207202769 -0.929797604
## [196] 0.681813681 2.160524516 2.312170685 1.294778257
## [1] 1.000000000 1.489500057 0.861798653 0.542063468 -0.212672447
## [6] -0.132079350 -1.100011831 -0.861807943 0.490622967 -1.062197284
## [11] -1.282382616 -0.610653801 -0.990174204 -0.940767916 -0.663269551
## [16] -0.038802035 0.521624209 0.218166041 0.968346499 0.642396722
## [21] 0.740373368 -1.037067525 -2.021969567 -2.089318791 -2.145777142
## [26] -2.295810065 -0.889345413 0.464978144 -0.796210555 -0.716468793
## [31] -1.233853067 -1.432208618 -2.878113993 -2.476987658 -2.941234787
## [36] -2.960264873 -2.635205703 -1.737192681 -1.358659159 -2.275294141
## [41] -1.011005424 -1.088474459 -0.511280254 -1.296001998 -1.437820657
## [46] -1.193828892 0.128486821 -2.440377411 -2.124968315 -2.469496383
## [51] -1.843259665 -2.931261292 -1.978154110 -2.866125160 -3.338188503
## [56] -0.813989534 -2.357783732 -2.807881745 -3.318590797 -0.990646821
## [61] 0.522618022 0.306595888 0.869561234 2.046666518 1.076722388
## [66] 0.147690825 -0.645470468 -1.291156089 -0.759198567 -0.426518527
## [71] -0.720958130 -2.010443631 -0.438287341 0.232194441 0.930289008
## [76] 0.412507006 0.484990099 0.120192637 0.582096594 -0.129872963
## [81] 0.824758947 0.637747299 0.993925678 1.047974918 0.386111761
## [86] -0.659181803 -0.544458315 0.114384181 0.123864373 -0.978499090
## [91] -0.241059084 -0.808914133 0.350753141 0.893726799 0.903079651
## [96] -0.363645657 -2.666235638 0.287196303 -0.301265593 -0.779744748
## [101] -2.186648981 -1.876087988 -0.665719294 0.490379845 0.720778128
## [106] 0.331714654 1.234532121 0.438842653 0.263350741 1.494888636
## [111] 1.536129323 1.096319790 1.747902814 3.082249273 1.822576340
## [116] 2.576181988 2.428206312 0.390064771 -0.603073927 -2.404145337
## [121] 0.250629095 -2.094139424 0.073753255 0.694971871 0.377360430
## [126] -0.436291506 0.912347340 -0.326049784 -0.782044967 0.431028754
## [131] 0.769813998 1.212801484 2.801765512 2.210329848 2.038279369
## [136] 1.829066277 3.066756454 3.832197948 2.203329636 0.109247743
## [141] 0.622153670 1.974139422 0.414064069 -0.763432419 0.429755546
## [146] -0.724001811 0.741392330 -1.016954170 0.541658500 -0.486924324
## [151] 0.248333641 0.787985996 -0.007724554 -0.136987278 -0.092907343
## [156] -0.313938607 -0.823732409 -1.261281299 -0.320589677 0.447186503
## [161] 1.306975022 -0.302890793 -2.126840520 -3.042156147 -2.572889870
## [166] -3.213789237 -2.174820197 -1.551228179 -2.152621478 -2.016287055
## [171] -1.654242147 -0.981702090 0.194496872 1.363225032 1.554945549
## [176] 0.498796960 0.065016267 0.128735872 -0.474375153 -2.674769184
## [181] -2.111084855 -2.000989399 -2.374704307 -2.539063373 -2.396078398
## [186] -1.271760572 -0.479480962 -0.879015898 -0.408054793 -0.883181619
## [191] -1.813171660 -0.587145253 -0.953066956 0.496657640 0.207202769
## [196] -0.929797604 0.681813681 2.160524516 2.312170685
Berdasarkan scatterplot tersebut, terlihat bahwa terdapat hubungan positif antara \(Y_t\) dengan \(Y_{t-1}\). Hal ini sesuai dengan teori yang ada
## [1] 0.7549264
Korelasi antara \(Y_t\) dengan \(Y_{t-1}\) dari hasil simulasi mendekati perhitungan teoritis yaitu \(\rho_1=\phi^1=0.7\)
Korelasi antara \(Y_t\) dengan \(Y_{t-2}\)
## [1] 0.861798653 0.542063468 -0.212672447 -0.132079350 -1.100011831
## [6] -0.861807943 0.490622967 -1.062197284 -1.282382616 -0.610653801
## [11] -0.990174204 -0.940767916 -0.663269551 -0.038802035 0.521624209
## [16] 0.218166041 0.968346499 0.642396722 0.740373368 -1.037067525
## [21] -2.021969567 -2.089318791 -2.145777142 -2.295810065 -0.889345413
## [26] 0.464978144 -0.796210555 -0.716468793 -1.233853067 -1.432208618
## [31] -2.878113993 -2.476987658 -2.941234787 -2.960264873 -2.635205703
## [36] -1.737192681 -1.358659159 -2.275294141 -1.011005424 -1.088474459
## [41] -0.511280254 -1.296001998 -1.437820657 -1.193828892 0.128486821
## [46] -2.440377411 -2.124968315 -2.469496383 -1.843259665 -2.931261292
## [51] -1.978154110 -2.866125160 -3.338188503 -0.813989534 -2.357783732
## [56] -2.807881745 -3.318590797 -0.990646821 0.522618022 0.306595888
## [61] 0.869561234 2.046666518 1.076722388 0.147690825 -0.645470468
## [66] -1.291156089 -0.759198567 -0.426518527 -0.720958130 -2.010443631
## [71] -0.438287341 0.232194441 0.930289008 0.412507006 0.484990099
## [76] 0.120192637 0.582096594 -0.129872963 0.824758947 0.637747299
## [81] 0.993925678 1.047974918 0.386111761 -0.659181803 -0.544458315
## [86] 0.114384181 0.123864373 -0.978499090 -0.241059084 -0.808914133
## [91] 0.350753141 0.893726799 0.903079651 -0.363645657 -2.666235638
## [96] 0.287196303 -0.301265593 -0.779744748 -2.186648981 -1.876087988
## [101] -0.665719294 0.490379845 0.720778128 0.331714654 1.234532121
## [106] 0.438842653 0.263350741 1.494888636 1.536129323 1.096319790
## [111] 1.747902814 3.082249273 1.822576340 2.576181988 2.428206312
## [116] 0.390064771 -0.603073927 -2.404145337 0.250629095 -2.094139424
## [121] 0.073753255 0.694971871 0.377360430 -0.436291506 0.912347340
## [126] -0.326049784 -0.782044967 0.431028754 0.769813998 1.212801484
## [131] 2.801765512 2.210329848 2.038279369 1.829066277 3.066756454
## [136] 3.832197948 2.203329636 0.109247743 0.622153670 1.974139422
## [141] 0.414064069 -0.763432419 0.429755546 -0.724001811 0.741392330
## [146] -1.016954170 0.541658500 -0.486924324 0.248333641 0.787985996
## [151] -0.007724554 -0.136987278 -0.092907343 -0.313938607 -0.823732409
## [156] -1.261281299 -0.320589677 0.447186503 1.306975022 -0.302890793
## [161] -2.126840520 -3.042156147 -2.572889870 -3.213789237 -2.174820197
## [166] -1.551228179 -2.152621478 -2.016287055 -1.654242147 -0.981702090
## [171] 0.194496872 1.363225032 1.554945549 0.498796960 0.065016267
## [176] 0.128735872 -0.474375153 -2.674769184 -2.111084855 -2.000989399
## [181] -2.374704307 -2.539063373 -2.396078398 -1.271760572 -0.479480962
## [186] -0.879015898 -0.408054793 -0.883181619 -1.813171660 -0.587145253
## [191] -0.953066956 0.496657640 0.207202769 -0.929797604 0.681813681
## [196] 2.160524516 2.312170685 1.294778257
## [1] 1.000000000 1.489500057 0.861798653 0.542063468 -0.212672447
## [6] -0.132079350 -1.100011831 -0.861807943 0.490622967 -1.062197284
## [11] -1.282382616 -0.610653801 -0.990174204 -0.940767916 -0.663269551
## [16] -0.038802035 0.521624209 0.218166041 0.968346499 0.642396722
## [21] 0.740373368 -1.037067525 -2.021969567 -2.089318791 -2.145777142
## [26] -2.295810065 -0.889345413 0.464978144 -0.796210555 -0.716468793
## [31] -1.233853067 -1.432208618 -2.878113993 -2.476987658 -2.941234787
## [36] -2.960264873 -2.635205703 -1.737192681 -1.358659159 -2.275294141
## [41] -1.011005424 -1.088474459 -0.511280254 -1.296001998 -1.437820657
## [46] -1.193828892 0.128486821 -2.440377411 -2.124968315 -2.469496383
## [51] -1.843259665 -2.931261292 -1.978154110 -2.866125160 -3.338188503
## [56] -0.813989534 -2.357783732 -2.807881745 -3.318590797 -0.990646821
## [61] 0.522618022 0.306595888 0.869561234 2.046666518 1.076722388
## [66] 0.147690825 -0.645470468 -1.291156089 -0.759198567 -0.426518527
## [71] -0.720958130 -2.010443631 -0.438287341 0.232194441 0.930289008
## [76] 0.412507006 0.484990099 0.120192637 0.582096594 -0.129872963
## [81] 0.824758947 0.637747299 0.993925678 1.047974918 0.386111761
## [86] -0.659181803 -0.544458315 0.114384181 0.123864373 -0.978499090
## [91] -0.241059084 -0.808914133 0.350753141 0.893726799 0.903079651
## [96] -0.363645657 -2.666235638 0.287196303 -0.301265593 -0.779744748
## [101] -2.186648981 -1.876087988 -0.665719294 0.490379845 0.720778128
## [106] 0.331714654 1.234532121 0.438842653 0.263350741 1.494888636
## [111] 1.536129323 1.096319790 1.747902814 3.082249273 1.822576340
## [116] 2.576181988 2.428206312 0.390064771 -0.603073927 -2.404145337
## [121] 0.250629095 -2.094139424 0.073753255 0.694971871 0.377360430
## [126] -0.436291506 0.912347340 -0.326049784 -0.782044967 0.431028754
## [131] 0.769813998 1.212801484 2.801765512 2.210329848 2.038279369
## [136] 1.829066277 3.066756454 3.832197948 2.203329636 0.109247743
## [141] 0.622153670 1.974139422 0.414064069 -0.763432419 0.429755546
## [146] -0.724001811 0.741392330 -1.016954170 0.541658500 -0.486924324
## [151] 0.248333641 0.787985996 -0.007724554 -0.136987278 -0.092907343
## [156] -0.313938607 -0.823732409 -1.261281299 -0.320589677 0.447186503
## [161] 1.306975022 -0.302890793 -2.126840520 -3.042156147 -2.572889870
## [166] -3.213789237 -2.174820197 -1.551228179 -2.152621478 -2.016287055
## [171] -1.654242147 -0.981702090 0.194496872 1.363225032 1.554945549
## [176] 0.498796960 0.065016267 0.128735872 -0.474375153 -2.674769184
## [181] -2.111084855 -2.000989399 -2.374704307 -2.539063373 -2.396078398
## [186] -1.271760572 -0.479480962 -0.879015898 -0.408054793 -0.883181619
## [191] -1.813171660 -0.587145253 -0.953066956 0.496657640 0.207202769
## [196] -0.929797604 0.681813681 2.160524516
Berdasarkan scatterplot tersebut, terlihat bahwa terdapat hubungan positif antara \(Y_t\) dengan \(Y_{t-2}\). Hal ini sesuai dengan teori yang ada
## [1] 0.5938204
Korelasi antara \(Y_t\) dengan \(Y_{t-2}\) dari hasil simulasi mendekati perhitungan teoritis yaitu \(\rho_2=\phi^2=0.49\).
Fungsi pembangkitan ARMA
Setelah mengetahui cara membangkitkan data berpola AR, MA, dan ARMA sederhana, bagaimana cara melakukan pembangkitan data berpola tersebut yang lebih kompleks? Apakah dapat dibuat suatu fungsi yang fleksibel yang memungkinan pembangkitan dengan berapapun jumlah koefisien?
Pertama, lihat kembali bentuk umum data berpola ARMA.
\[ y_{t} = c + \sum_{i=1}^p \phi_{i}y_{t-i} + \sum_{j=1}^q e_{t-j}+ e_{t} \]
Komponen \(c\) dan \(e_{t}\) cukup mudah untuk dibuat dan dicari. Bagaimana untuk komponen AR dan MA? Bayangkan ada koefisien dan data sebagai berikut:
\[ \begin{aligned} \begin{bmatrix} \phi_1 \ \phi_2 \ \phi_3 \end{bmatrix}&= \begin{bmatrix} 0.3 \ 0.5 \ 0.2 \end{bmatrix} \\ \begin{bmatrix} y_{t-1} \ y_{t-2} \ y_{t-3} \end{bmatrix}&= \begin{bmatrix} 1 \ 2 \ 3 \end{bmatrix} \end{aligned} \]
Maka dari itu,
\[ \begin{aligned} \begin{bmatrix} \phi_1 \ \phi_2 \ \phi_3 \end{bmatrix} \begin{bmatrix} y_{t-1} \\ y_{t-2} \\ y_{t-3} \end{bmatrix} &= \phi_1 \ y_{t-1}+\phi_2 \ y_{t-2}+\phi_3 \ y_{t-3} \\ \begin{bmatrix} 0.3 \ 0.5 \ 0.2 \end{bmatrix} \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} & = 0.3 \cdot1+0.5 \cdot 2+0.2 \cdot 3\\ &=0.3+1+0.6 = 1.9 \end{aligned} \]
Jika koefisien dan white noise/nilai deret waktu sebelumnya dapat diekstrak dalam bentuk vektor, dapat dilakukan perkalian matriks untuk mencari nilai bagian AR dan MA:
## [,1]
## [1,] 1.9
Atau, dapat dilakukan perkalian elementwise yang dijumlahkan:
## [1] 0.3 1.0 0.6
## [1] 1.9
Dari prinsip ini, dapat dibuat fungsi umum untuk membangkitkan data ARMA. Input dari fungsi adalah jumlah data yang hendak dibangkitkan, koefisien MA, dan koefisien AR
arma.sim <- function(n, macoef, arcoef){
manum <- length(macoef)
arnum <- length(arcoef)
stopifnot(manum < n & arnum < n)
wn <- rnorm(n, sd = 0.5)
init <- max(manum, arnum)
arma <- wn[1:init]
for(i in {init+1}:n){
mastart <- i - manum
maend <- i-1
arstart <- i - arnum
arend <- i-1
arma[i] <- sum(arcoef * arma[arstart:arend]) + sum(macoef * wn[mastart:maend]) + wn[i]
}
return(arma)
}
Terlihat bahwa komponen \(\sum_{i=1}^q
y_{t-1}\) disimulasikan melalui
sum(arcoef * arma[arstart:arend])
. Jadi, koefisien
dikalikan dengan data \(y\) dari \(t-q\) di mana q adalah jumlah koefisien AR,
sampai data \(t-1\). Lalu komponen
\(\sum_{j=1}^q e_{t-j}\) disimulasikan
melalui sum(macoef * wn[mastart:maend])
. Koefisien
dikalikan dengan white noise \(e\) dari \(t-p\), p jumlah koefisien MA, sampai \(t-1\).
# beberapa contoh pembangkitan melalui fungsi
ma3 <- arma.sim(1000, c(0.4, 0.6,0.4), 0)
ar2 <- arma.sim(1000, 0, c(0.3, 0.6))
par(mfrow = c(2, 2))
acf(ma3)
pacf(ma3)
acf(ar2)
pacf(ar2)
##
## Call:
## arima(x = arma22, order = c(2, 0, 2))
##
## Coefficients:
## ar1 ar2 ma1 ma2 intercept
## 0.4216 0.2848 0.3898 0.3052 -0.0186
## s.e. 0.0678 0.0619 0.0658 0.0260 0.0630
##
## sigma^2 estimated as 0.2392: log likelihood = -1408.11, aic = 2826.23
set.seed(1234)
n = length(wn)
phi1 = 0.7
theta1 = 0.5
y.arma=c(1:n)
for (i in 2:n){y.arma[i] = phi1*y.arma[i-1] + theta1*wn[i-1]+wn[i]}
y.arma
## [1] 1.000000000 0.956043451 0.883129057 0.466569057 -0.296116329
## [6] -0.486548505 -1.339744558 -1.533398994 -0.025390600 -0.876462518
## [11] -1.855184960 -1.281037700 -1.315935918 -1.450159388 -1.143666567
## [16] -0.377445951 0.497316792 0.475543667 1.075025384 1.124887077
## [21] 1.060393703 -0.667705460 -2.541080562 -3.100707638 -3.190719382
## [26] -3.368896627 -2.037389039 0.020208422 -0.563789394 -1.114621608
## [31] -1.592120740 -2.049158445 -3.594234607 -3.916056068 -4.179736606
## [36] -4.430887859 -4.115342054 -3.054798273 -2.227257418 -2.954625063
## [41] -2.148653435 -1.593977829 -1.055517944 -1.551642448 -2.085821882
## [46] -1.912739378 -0.468427736 -2.376134078 -3.345157075 -3.531980578
## [51] -3.078007883 -3.852891143 -3.443784769 -3.855202224 -4.771251090
## [56] -2.483083791 -2.764778502 -3.986773613 -4.722531671 -2.649942221
## [61] 0.027294611 0.567904898 1.022859177 2.481447135 2.100055647
## [66] 0.686052019 -0.571625055 -1.613891323 -1.404776611 -0.806117811
## [71] -0.934217394 -2.370922696 -1.443509156 0.013050771 1.046386228
## [76] 0.877651510 0.691243602 0.362687686 0.642192913 0.161175334
## [81] 0.759822466 1.050126773 1.312799328 1.544937757 0.910099220
## [86] -0.466125922 -0.874049217 -0.157844977 0.181056463 -0.916566903
## [91] -0.730308629 -0.929443675 -0.053703925 1.069103369 1.349943051
## [96] 0.087894169 -2.848058467 -1.045921516 -0.157667442 -0.930377545
## [101] -2.576521355 -2.969412478 -1.603763287 0.157520199 0.965968051
## [106] 0.692103718 1.400389448 1.056108714 0.482772068 1.626564007
## [111] 2.283573641 1.864384451 2.296062709 3.956200680 3.363700977
## [116] 3.487470158 3.716297306 1.604167927 -0.408041542 -2.705682301
## [121] -0.951443574 -1.968824877 -0.973316457 0.731848498 0.724846365
## [126] -0.247611291 0.694201587 0.130123886 -0.945069859 0.040006270
## [131] 0.985328374 1.597708483 3.408166254 3.611212604 3.143444293
## [136] 2.848205962 3.981289593 5.365576175 4.119428610 1.210912561
## [141] 0.676777542 2.285216257 1.401133780 -0.556400385 0.048039336
## [146] -0.509124038 0.379391424 -0.646258005 0.033181415 -0.216095074
## [151] 0.004871479 0.912152816 0.386268444 -0.140849555 -0.161400982
## [156] -0.360392279 -0.980701712 -1.673147503 -0.951230327 0.286891665
## [161] 1.530568274 0.350596718 -2.278285917 -4.105576407 -4.093967944
## [166] -4.500234172 -3.781714816 -2.638638278 -2.928235568 -3.092597794
## [171] -2.662385675 -1.808823163 -0.296354173 1.460473467 2.236558065
## [176] 1.276269735 0.314414747 0.161244005 -0.410007217 -2.911956761
## [181] -3.448469447 -3.056531827 -3.375199007 -3.726415526 -3.665610084
## [186] -2.469799770 -1.115361248 -1.118756379 -0.847562742 -1.087209015
## [191] -2.254762470 -1.493731083 -1.246639582 0.020124163 0.455531589
## [196] -0.826196220 0.216914879 2.501431357 3.392432943 2.450863599
Pembangkitan ARMA(p,q) juga dapat dilakukan dengan fungsi
arima.sim
sebagai berikut.
## Time Series:
## Start = 1
## End = 200
## Frequency = 1
## [1] 0.26351998 1.52646979 0.64488707 -0.23446987 0.07518659 -0.41129491
## [7] -2.08297147 -1.60742676 -1.86147660 -1.82999978 -2.22451760 -0.92283907
## [13] -0.57043166 -1.34653874 -1.79855519 -3.13871114 -4.17926379 -5.68933393
## [19] -6.41354677 -5.45427319 -4.43103571 -1.88517750 -1.66351884 -2.55414918
## [25] -2.49620975 -2.88199840 -3.48308324 -4.02973362 -4.62645851 -4.38834202
## [31] -3.83060343 -4.73587864 -4.80020660 -4.76007221 -4.90145737 -4.10081068
## [37] -2.38866642 0.25727889 0.23065053 1.38068829 0.61162807 0.50582384
## [43] 3.23136199 3.50168854 1.76416820 0.89249620 2.39802941 1.42855507
## [49] 1.79851186 3.27243668 3.29196087 2.47950185 1.28362897 0.30428198
## [55] 0.67802199 2.86902954 2.89005769 0.55564023 -1.02998409 -0.82451799
## [61] -0.76509083 -0.87188309 -0.86920722 -2.06574398 -2.30595890 -0.85083256
## [67] 0.52714205 1.26780114 0.75972750 0.13884949 -1.19313012 -1.48561384
## [73] -0.81131310 1.26564284 2.74044524 1.92348485 1.45419797 0.06110569
## [79] 0.35367359 1.65959008 3.76928854 4.11358406 2.61205214 1.65707075
## [85] 0.69046849 -0.59390953 -0.66174669 -1.27599267 -1.17314179 -0.38213830
## [91] -0.14211780 -0.32146963 -0.97206581 -2.11474817 -1.18593313 -0.38315357
## [97] 0.57411438 -0.42683747 -0.75190374 0.23134689 0.47224960 0.12604436
## [103] -0.78937168 1.11464849 2.55983639 3.99134450 3.78610494 2.05889398
## [109] -0.38776698 -1.66418078 -1.25667493 0.24716866 0.93261337 -0.39274388
## [115] -0.19218055 -1.45027015 -2.20609182 -2.04330873 -3.53662132 -2.52970043
## [121] -1.93363313 -1.99901564 -0.17118138 1.21442139 1.06000048 1.20154727
## [127] 1.49723628 2.91055775 3.14471205 2.84551776 2.59255072 1.61132384
## [133] 1.03692733 2.41340351 1.63316230 0.82717737 2.00203482 1.84786862
## [139] 0.12281468 -1.31050473 -1.74237215 -2.26207409 -2.26776629 -2.13217581
## [145] -1.88278372 -1.00241790 0.12646865 2.07905036 2.22574447 1.20283439
## [151] 2.15256983 3.94663114 3.65805053 2.24960007 -0.41384403 0.21045387
## [157] 0.01536648 -1.53179748 1.40962625 2.74364263 2.00480188 -1.34548751
## [163] -2.40774161 -0.75928268 0.37038690 1.37852745 3.40486250 4.54437836
## [169] 3.25688210 2.72962914 2.06441421 0.80781102 -2.55932633 -4.00905461
## [175] -2.71334702 0.51259694 1.94352874 2.23102763 0.90592123 0.31384797
## [181] -1.77721661 -1.79794358 -0.31917832 0.31047348 1.01082191 1.36962312
## [187] 1.87503906 3.53522215 4.50825016 3.74462049 1.52311736 0.92701549
## [193] 0.45770452 1.61376865 0.26930366 -1.03077969 -0.50741331 -0.29592166
## [199] -0.88916455 -1.23021181
Karakteristik ARMA(1,1)
Plot Time Series
Berdasarkan plot time series tersebut, terlihat bahwa model ARMA(1,1) cenderung stasioner dalam rataan
Plot ACF
Berdasarkan plot ACF tersebut, terlihat bahwa model ARMA(1,1) hasil simulasi memiliki plot ACF yang tails off, sesuai dengan teori yang ada
Plot PACF
Berdasarkan plot PACF tersebut, terlihat bahwa model ARMA(1,1) hasil simulasi memiliki plot PACF yang tails off, sesuai dengan teori
Plot EACF
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x x x x x o o x o o o x
## 1 x o o o o o o o o o o o o o
## 2 x o o x o o o o o o o o o o
## 3 x o x o o o o o o o o o o o
## 4 x x o x o o o x o o o o o o
## 5 x x o o o o o o o o o o o o
## 6 x x o o x x o x o o o o o o
## 7 x o o x o x o x o o o o o o
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x x x x x x x o o o o o
## 1 x o o o o o o o o o o o o x
## 2 x x o o o o o o o o o o o o
## 3 o x o o o o o o o o o o o o
## 4 x x o o o o o o o o o o o o
## 5 x x o o x o o o o o o o o o
## 6 x o x o x o o o o o o o o o
## 7 x x x x x o o o o o o o o o
Berdasarkan pola segitiga nol pada plot EACF, terlihat bahwa segitiga nol berada pada ordo AR(1) dan ordo MA(1)
Scatterplot Antar Lag
Korelasi antara \(Y_t\) dengan \(Y_{t-1}\)
## [1] 1.52646979 0.64488707 -0.23446987 0.07518659 -0.41129491 -2.08297147
## [7] -1.60742676 -1.86147660 -1.82999978 -2.22451760 -0.92283907 -0.57043166
## [13] -1.34653874 -1.79855519 -3.13871114 -4.17926379 -5.68933393 -6.41354677
## [19] -5.45427319 -4.43103571 -1.88517750 -1.66351884 -2.55414918 -2.49620975
## [25] -2.88199840 -3.48308324 -4.02973362 -4.62645851 -4.38834202 -3.83060343
## [31] -4.73587864 -4.80020660 -4.76007221 -4.90145737 -4.10081068 -2.38866642
## [37] 0.25727889 0.23065053 1.38068829 0.61162807 0.50582384 3.23136199
## [43] 3.50168854 1.76416820 0.89249620 2.39802941 1.42855507 1.79851186
## [49] 3.27243668 3.29196087 2.47950185 1.28362897 0.30428198 0.67802199
## [55] 2.86902954 2.89005769 0.55564023 -1.02998409 -0.82451799 -0.76509083
## [61] -0.87188309 -0.86920722 -2.06574398 -2.30595890 -0.85083256 0.52714205
## [67] 1.26780114 0.75972750 0.13884949 -1.19313012 -1.48561384 -0.81131310
## [73] 1.26564284 2.74044524 1.92348485 1.45419797 0.06110569 0.35367359
## [79] 1.65959008 3.76928854 4.11358406 2.61205214 1.65707075 0.69046849
## [85] -0.59390953 -0.66174669 -1.27599267 -1.17314179 -0.38213830 -0.14211780
## [91] -0.32146963 -0.97206581 -2.11474817 -1.18593313 -0.38315357 0.57411438
## [97] -0.42683747 -0.75190374 0.23134689 0.47224960 0.12604436 -0.78937168
## [103] 1.11464849 2.55983639 3.99134450 3.78610494 2.05889398 -0.38776698
## [109] -1.66418078 -1.25667493 0.24716866 0.93261337 -0.39274388 -0.19218055
## [115] -1.45027015 -2.20609182 -2.04330873 -3.53662132 -2.52970043 -1.93363313
## [121] -1.99901564 -0.17118138 1.21442139 1.06000048 1.20154727 1.49723628
## [127] 2.91055775 3.14471205 2.84551776 2.59255072 1.61132384 1.03692733
## [133] 2.41340351 1.63316230 0.82717737 2.00203482 1.84786862 0.12281468
## [139] -1.31050473 -1.74237215 -2.26207409 -2.26776629 -2.13217581 -1.88278372
## [145] -1.00241790 0.12646865 2.07905036 2.22574447 1.20283439 2.15256983
## [151] 3.94663114 3.65805053 2.24960007 -0.41384403 0.21045387 0.01536648
## [157] -1.53179748 1.40962625 2.74364263 2.00480188 -1.34548751 -2.40774161
## [163] -0.75928268 0.37038690 1.37852745 3.40486250 4.54437836 3.25688210
## [169] 2.72962914 2.06441421 0.80781102 -2.55932633 -4.00905461 -2.71334702
## [175] 0.51259694 1.94352874 2.23102763 0.90592123 0.31384797 -1.77721661
## [181] -1.79794358 -0.31917832 0.31047348 1.01082191 1.36962312 1.87503906
## [187] 3.53522215 4.50825016 3.74462049 1.52311736 0.92701549 0.45770452
## [193] 1.61376865 0.26930366 -1.03077969 -0.50741331 -0.29592166 -0.88916455
## [199] -1.23021181
## [1] 0.26351998 1.52646979 0.64488707 -0.23446987 0.07518659 -0.41129491
## [7] -2.08297147 -1.60742676 -1.86147660 -1.82999978 -2.22451760 -0.92283907
## [13] -0.57043166 -1.34653874 -1.79855519 -3.13871114 -4.17926379 -5.68933393
## [19] -6.41354677 -5.45427319 -4.43103571 -1.88517750 -1.66351884 -2.55414918
## [25] -2.49620975 -2.88199840 -3.48308324 -4.02973362 -4.62645851 -4.38834202
## [31] -3.83060343 -4.73587864 -4.80020660 -4.76007221 -4.90145737 -4.10081068
## [37] -2.38866642 0.25727889 0.23065053 1.38068829 0.61162807 0.50582384
## [43] 3.23136199 3.50168854 1.76416820 0.89249620 2.39802941 1.42855507
## [49] 1.79851186 3.27243668 3.29196087 2.47950185 1.28362897 0.30428198
## [55] 0.67802199 2.86902954 2.89005769 0.55564023 -1.02998409 -0.82451799
## [61] -0.76509083 -0.87188309 -0.86920722 -2.06574398 -2.30595890 -0.85083256
## [67] 0.52714205 1.26780114 0.75972750 0.13884949 -1.19313012 -1.48561384
## [73] -0.81131310 1.26564284 2.74044524 1.92348485 1.45419797 0.06110569
## [79] 0.35367359 1.65959008 3.76928854 4.11358406 2.61205214 1.65707075
## [85] 0.69046849 -0.59390953 -0.66174669 -1.27599267 -1.17314179 -0.38213830
## [91] -0.14211780 -0.32146963 -0.97206581 -2.11474817 -1.18593313 -0.38315357
## [97] 0.57411438 -0.42683747 -0.75190374 0.23134689 0.47224960 0.12604436
## [103] -0.78937168 1.11464849 2.55983639 3.99134450 3.78610494 2.05889398
## [109] -0.38776698 -1.66418078 -1.25667493 0.24716866 0.93261337 -0.39274388
## [115] -0.19218055 -1.45027015 -2.20609182 -2.04330873 -3.53662132 -2.52970043
## [121] -1.93363313 -1.99901564 -0.17118138 1.21442139 1.06000048 1.20154727
## [127] 1.49723628 2.91055775 3.14471205 2.84551776 2.59255072 1.61132384
## [133] 1.03692733 2.41340351 1.63316230 0.82717737 2.00203482 1.84786862
## [139] 0.12281468 -1.31050473 -1.74237215 -2.26207409 -2.26776629 -2.13217581
## [145] -1.88278372 -1.00241790 0.12646865 2.07905036 2.22574447 1.20283439
## [151] 2.15256983 3.94663114 3.65805053 2.24960007 -0.41384403 0.21045387
## [157] 0.01536648 -1.53179748 1.40962625 2.74364263 2.00480188 -1.34548751
## [163] -2.40774161 -0.75928268 0.37038690 1.37852745 3.40486250 4.54437836
## [169] 3.25688210 2.72962914 2.06441421 0.80781102 -2.55932633 -4.00905461
## [175] -2.71334702 0.51259694 1.94352874 2.23102763 0.90592123 0.31384797
## [181] -1.77721661 -1.79794358 -0.31917832 0.31047348 1.01082191 1.36962312
## [187] 1.87503906 3.53522215 4.50825016 3.74462049 1.52311736 0.92701549
## [193] 0.45770452 1.61376865 0.26930366 -1.03077969 -0.50741331 -0.29592166
## [199] -0.88916455
Berdasarkan scatterplot tersebut, terlihat bahwa terdapat hubungan positif antara \(Y_t\) dengan \(Y_{t-1}\). Hal ini sesuai dengan teori yang ada
## [1] 0.8628383
Korelasi antara \(Y_t\) dengan \(Y_{t-1}\) dari hasil simulasi mendekati perhitungan teoritis. \[ \rho_k = \frac{(1-\theta \phi)(\phi-\theta)}{1-2\theta\phi+\theta^2}\phi^{k-1} \:untuk \:k\ge1 \]
\[ \rho_1 = \frac{(1-((-0.5)(0.7)))(0.7-(-0.5))}{1-2(-0.5)(0.7)+(-0.5)^2}0.7^{1-1}=0,8307692 \]
Pertemuan 5
## Registered S3 method overwritten by 'tsibble':
## method from
## as_tibble.grouped_df dplyr
##
## Attaching package: 'tsibble'
## The following object is masked from 'package:zoo':
##
## index
## The following objects are masked from 'package:base':
##
## intersect, setdiff, union
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
Stasioner dalam Rataan dan Ragam
Pada dasarnya, pembangkitan data ARIMA akan menghasilkan data yang
stasioner dalam rataan dan ragam karena akan mengikuti fungsi
default-nya yang mengikuti pembangkitan bilangan acak normal
dengan mean=0
dan ragam=1
.
Plot Time Series
plot_stas <- stas |> as_tsibble() |>
ggplot(aes(x = index, y = value)) + geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
plot_stas
## [1] 18.06022
Plot deret waktu di atas menunjukkan bahwa data stasioner dalam rataan, ditandai dengan data yang menyebar di sekitar nilai tengahnya (18) dan stasioner dalam ragam, ditandai dengan lebar pita yang cenderung sama.
Plot ACF
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut cenderung tails off dan membentuk gelombang sinus.
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: stas
## Dickey-Fuller = -5.5322, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01 yang lebih kecil dari taraf nyata 5% sehingga tolak \(H_0\) dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Plot Box-Cox
## [1] 1.97
## [1] 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.30 0.31 0.32 0.33 0.34 0.35 0.36
## [16] 0.37 0.38 0.39 0.40 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.50 0.51
## [31] 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.60 0.61 0.62 0.63 0.64 0.65 0.66
## [46] 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80 0.81
## [61] 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.90 0.91 0.92 0.93 0.94 0.95 0.96
## [76] 0.97 0.98 0.99 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11
## [91] 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26
## [106] 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.40 1.41
## [121] 1.42 1.43 1.44 1.45 1.46 1.47 1.48 1.49 1.50 1.51 1.52 1.53 1.54 1.55 1.56
## [136] 1.57 1.58 1.59 1.60 1.61 1.62 1.63 1.64 1.65 1.66 1.67 1.68 1.69 1.70 1.71
## [151] 1.72 1.73 1.74 1.75 1.76 1.77 1.78 1.79 1.80 1.81 1.82 1.83 1.84 1.85 1.86
## [166] 1.87 1.88 1.89 1.90 1.91 1.92 1.93 1.94 1.95 1.96 1.97 1.98 1.99 2.00 2.01
## [181] 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16
## [196] 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31
## [211] 2.32 2.33 2.34 2.35 2.36 2.37 2.38 2.39 2.40 2.41 2.42 2.43 2.44 2.45 2.46
## [226] 2.47 2.48 2.49 2.50 2.51 2.52 2.53 2.54 2.55 2.56 2.57 2.58 2.59 2.60 2.61
## [241] 2.62 2.63 2.64 2.65 2.66 2.67 2.68 2.69 2.70 2.71 2.72 2.73 2.74 2.75 2.76
## [256] 2.77 2.78 2.79 2.80 2.81 2.82 2.83 2.84 2.85 2.86 2.87 2.88 2.89 2.90 2.91
## [271] 2.92 2.93 2.94 2.95 2.96 2.97 2.98 2.99 3.00 3.01 3.02 3.03 3.04 3.05 3.06
## [286] 3.07 3.08 3.09 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21
## [301] 3.22 3.23 3.24 3.25 3.26 3.27 3.28 3.29 3.30 3.31 3.32 3.33 3.34 3.35 3.36
## [316] 3.37 3.38 3.39 3.40 3.41 3.42 3.43 3.44 3.45 3.46 3.47 3.48 3.49 3.50 3.51
## [331] 3.52 3.53 3.54 3.55 3.56 3.57 3.58 3.59 3.60 3.61 3.62 3.63 3.64 3.65 3.66
## [346] 3.67 3.68 3.69 3.70 3.71 3.72 3.73
Gambar di atas menunjukkan nilai rounded value (\(\lambda\)) optimum sebesar 1,97 dan pada selang kepercayaan 95% nilai memiliki batas bawah 0,22 dan batas atas 3,73. Selang tersebut memuat nilai satu sehingga dapat dikatakan bahwa data bangkitan stasioner dalam ragam.
Partisi Data
Bagian 1
## [1] 18.08483
## [1] 1.141982
Plot Time Series
dt_stas1 |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Plot deret waktu di atas menunjukkan bahwa data stasioner dalam rataan, ditandai dengan data yang menyebar di sekitar nilai tengahnya (18) dan stasioner dalam ragam, ditandai dengan lebar pita yang cenderung sama.
Plot ACF
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut cenderung tails off dan membentuk gelombang sinus.
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: dt_stas1
## Dickey-Fuller = -3.5663, Lag order = 4, p-value = 0.043
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.043 yang lebih kecil dari taraf nyata 5% sehingga tolak \(H_0\) dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Plot Boxcox
## [1] 2.20202
## [1] -1.03030303 -0.94949495 -0.86868687 -0.78787879 -0.70707071 -0.62626263
## [7] -0.54545455 -0.46464646 -0.38383838 -0.30303030 -0.22222222 -0.14141414
## [13] -0.06060606 0.02020202 0.10101010 0.18181818 0.26262626 0.34343434
## [19] 0.42424242 0.50505051 0.58585859 0.66666667 0.74747475 0.82828283
## [25] 0.90909091 0.98989899 1.07070707 1.15151515 1.23232323 1.31313131
## [31] 1.39393939 1.47474747 1.55555556 1.63636364 1.71717172 1.79797980
## [37] 1.87878788 1.95959596 2.04040404 2.12121212 2.20202020 2.28282828
## [43] 2.36363636 2.44444444 2.52525253 2.60606061 2.68686869 2.76767677
## [49] 2.84848485 2.92929293 3.01010101 3.09090909 3.17171717 3.25252525
## [55] 3.33333333 3.41414141 3.49494949 3.57575758 3.65656566 3.73737374
## [61] 3.81818182 3.89898990 3.97979798 4.06060606 4.14141414 4.22222222
## [67] 4.30303030 4.38383838 4.46464646 4.54545455 4.62626263 4.70707071
## [73] 4.78787879 4.86868687 4.94949495 5.03030303 5.11111111 5.19191919
## [79] 5.27272727 5.35353535 5.43434343 5.51515152
Gambar di atas menunjukkan nilai rounded value (\(\lambda\)) optimum sebesar 2,2 dan pada selang kepercayaan 95% nilai memiliki batas bawah -1,03 dan batas atas 5,52. Selang tersebut memuat nilai satu sehingga dapat dikatakan bahwa data bangkitan stasioner dalam ragam.
Bagian 2
## [1] 17.93724
## [1] 1.128205
Plot Time Series
dt_stas2 |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Plot deret waktu di atas menunjukkan bahwa data stasioner dalam rataan, ditandai dengan data yang menyebar di sekitar nilai tengahnya (18) dan stasioner dalam ragam, ditandai dengan lebar pita yang cenderung sama.
Plot ACF
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut cenderung tails off dan membentuk gelombang sinus.
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: dt_stas2
## Dickey-Fuller = -4.4004, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01 yang lebih kecil dari taraf nyata 5% sehingga tolak \(H_0\) dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Plot Boxcox
## [1] 2.848485
## [1] 0.4848485 0.5454545 0.6060606 0.6666667 0.7272727 0.7878788 0.8484848
## [8] 0.9090909 0.9696970 1.0303030 1.0909091 1.1515152 1.2121212 1.2727273
## [15] 1.3333333 1.3939394 1.4545455 1.5151515 1.5757576 1.6363636 1.6969697
## [22] 1.7575758 1.8181818 1.8787879 1.9393939 2.0000000 2.0606061 2.1212121
## [29] 2.1818182 2.2424242 2.3030303 2.3636364 2.4242424 2.4848485 2.5454545
## [36] 2.6060606 2.6666667 2.7272727 2.7878788 2.8484848 2.9090909 2.9696970
## [43] 3.0303030 3.0909091 3.1515152 3.2121212 3.2727273 3.3333333 3.3939394
## [50] 3.4545455 3.5151515 3.5757576 3.6363636 3.6969697 3.7575758 3.8181818
## [57] 3.8787879 3.9393939 4.0000000 4.0606061 4.1212121 4.1818182 4.2424242
## [64] 4.3030303 4.3636364 4.4242424 4.4848485 4.5454545 4.6060606 4.6666667
## [71] 4.7272727 4.7878788 4.8484848 4.9090909 4.9696970 5.0303030 5.0909091
## [78] 5.1515152 5.2121212 5.2727273
Gambar di atas menunjukkan nilai rounded value (\(\lambda\)) optimum sebesar 2,85 dan pada selang kepercayaan 95% nilai memiliki batas bawah 0,48 dan batas atas 5,27. Selang tersebut memuat nilai satu sehingga dapat dikatakan bahwa data bangkitan stasioner dalam ragam.
Tidak Stasioner dalam Rataan, Stasioner dalam Ragam
Bagaimana cara mensimulasikan data dengan tren tertentu?
Kunci dari simulasi tersebut berada di \(Y_{t}-Y_{t-1}\), atau first difference, atau selisih antara observasi di waktu ke \(t\) dan observasi sebelumnya. Jika suatu deret waktu memiliki tren naik, misal, maka selisih tersebut akan positif. Sebaliknya, jika suatu deret memiliki tren turun, maka selisih akan negatif. Jika suatu deret stasioner, selisih akan memiliki rata-rata nol.
Ini dapat diilustrasikan dengan fungsi cumsum
.
cumsum
adalah jumlah kumulatif. Untuk mengerti logika dari
pengunaan jumlah kumulatif, bayangkan ada deret waktu dengan nilai awal
\(c\):
\[ Y_1 = c \]
Lalu definsikan \(d_i\), di mana \(i = 2, 3, \ldots\) sebagai selisih observasi ke-i dengan observasi sebelumnya:
\[ d_i = Y_i-Y_{i-1} \]
Perhatikan bahwa:
\[ \begin{aligned} Y_3-Y_{1} & = d_3+d_2\\ &= Y_3-Y_2+Y_2-Y_1 \end{aligned} \]
Cukup jelas bahwa sifat tersebut berarti:
\[ \begin{aligned} Y_t-Y_1 &= \sum_{i=2}^t d_i\\ Y_t &= Y_1 + \sum_{i=2}^t d_i \end{aligned} \]
Atau, amatan di waktu ke \(t\) dapat ditemukan dari menambahkan amatan ke-1 dengan jumlah kumulatif perbedaan \(d_i\) sampai di waktu ke-t. Kode di bawah membuat data dengan proses tersebut. Ada tiga skenario, yaitu:
Selisih antara observasi dan observasi sebelumnya nol
Selisih antara observasi dan observasi sebelumnya positif
Selisih antara observasi dan observasi sebelumnya negatif
Dengan nilai awal 1 dan komponen \(e_t\) menyebar normal.
notrend <- 1 + cumsum(rep(0, 100)) + rnorm(100) |> ts()
postrend <- 1 + cumsum(rep(0.2, 100)) + rnorm(100) |> ts()
negtrend <- 1 + cumsum(rep(-0.2, 100)) + rnorm(100) |> ts()
Hasil yang muncul dapat di-plot (note, untuk plotting ini digunakan
ggplot2
; ts.plot()
dapat digunakan - ini
tergantung preferensi saja):
plot_notrend <- notrend |> as_tsibble() |>
ggplot(aes(x = index, y = value)) + geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai") + ggtitle("First Difference = 0")
plot_postrend <- postrend |> as_tsibble() |>
ggplot(aes(x = index, y = value)) + geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai") + ggtitle("First Difference = 0.2")
plot_negtrend <- negtrend |> as_tsibble() |>
ggplot(aes(x = index, y = value)) + geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai") + ggtitle("First Difference = -0.2")
ggpubr::ggarrange(plot_notrend, plot_postrend, plot_negtrend, nrow = 3)
Dapat disimulasikan proses MA atau AR yang tidak stasioner dengan
suatu tren dengan mensimulasikan beda terlebih dahulu (menggunakan
arima.sim
), ditambah suatu konstanta, lalu mencari jumlah
kumulatif. Terdapat juga parameter mean
di fungsi
arima.sim
, tetapi parameter ini adalah parameter untuk
\(E[e_t]\), bukan \(E[Y_t-Y_{t-1}]\). Proses dari nilai harapan
white noise tertentu menjadi nilai harapan \(Y\) di suatu proses MA atau AR yang tak
stasioner sangat tergantung pada model, yang diilustrasikan di
sini.
startSpot <- 3
dt <- {arima.sim(n=100, list(order=c(1,0,1),ar=c(.2), ma=.2), sd=2) + 1.5} |> ts()
yt <- startSpot + cumsum(dt) |> ts()
dt_alt <- arima.sim(n=100, list(order=c(1,0,1),ar=c(.2), ma=.2), mean = 1.5, sd=2) |> ts()
yt_alt <- startSpot + cumsum(dt_alt) |> ts()
plot_dt <- dt |> as_tsibble() |>
ggplot(aes(x = index, y = value)) + geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai") + ggtitle("Penambahan konstanta 1.5 di selisih")
plot_yt <- yt |> as_tsibble() |>
ggplot(aes(x = index, y = value)) + geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
plot_dt_alt <- dt_alt |> as_tsibble() |>
ggplot(aes(x = index, y = value)) + geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai") + ggtitle("Mean 1.5 di parameter arima.sim")
plot_yt_alt <- yt_alt |> as_tsibble() |>
ggplot(aes(x = index, y = value)) + geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
ggpubr::ggarrange(plot_dt, plot_yt, plot_dt_alt, plot_yt_alt)
Terlihat di contoh di atas bahwa menambahkan konstanta 1.5 pada hasil
arima.sim
beda dengan memasukkan parameter
mean = 1.5
.
Data Bangkitan Baru
Plot Time Series
postrend |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
## [1] 33.75305
## [1] 341.6068
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan, ditandai dengan adanya tren positif, tetapi stasioner dalam ragam, ditandai dengan adanya lebar pita pada plot yang cenderung sama.
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: postrend
## Dickey-Fuller = -1.9413, Lag order = 5, p-value = 0.6007
## alternative hypothesis: stationary
Plot Box-Cox
## [1] 0.961
## [1] 0.900 0.901 0.902 0.903 0.904 0.905 0.906 0.907 0.908 0.909 0.910 0.911
## [13] 0.912 0.913 0.914 0.915 0.916 0.917 0.918 0.919 0.920 0.921 0.922 0.923
## [25] 0.924 0.925 0.926 0.927 0.928 0.929 0.930 0.931 0.932 0.933 0.934 0.935
## [37] 0.936 0.937 0.938 0.939 0.940 0.941 0.942 0.943 0.944 0.945 0.946 0.947
## [49] 0.948 0.949 0.950 0.951 0.952 0.953 0.954 0.955 0.956 0.957 0.958 0.959
## [61] 0.960 0.961 0.962 0.963 0.964 0.965 0.966 0.967 0.968 0.969 0.970 0.971
## [73] 0.972 0.973 0.974 0.975 0.976 0.977 0.978 0.979 0.980 0.981 0.982 0.983
## [85] 0.984 0.985 0.986 0.987 0.988 0.989 0.990 0.991 0.992 0.993 0.994 0.995
## [97] 0.996 0.997 0.998 0.999 1.000 1.001 1.002 1.003 1.004 1.005 1.006 1.007
## [109] 1.008 1.009 1.010 1.011 1.012 1.013 1.014 1.015 1.016 1.017 1.018 1.019
## [121] 1.020 1.021 1.022
Partisi Data
Bagian 1
## [1] 18.84534
## [1] 116.7756
Plot Time Series
postrend1 |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line()+theme_bw() +
xlab("Obs") + ylab("Nilai")
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: postrend1
## Dickey-Fuller = -2.2384, Lag order = 4, p-value = 0.4779
## alternative hypothesis: stationary
Plot Boxcox
## [1] 0.747
## [1] 0.575 0.576 0.577 0.578 0.579 0.580 0.581 0.582 0.583 0.584 0.585 0.586
## [13] 0.587 0.588 0.589 0.590 0.591 0.592 0.593 0.594 0.595 0.596 0.597 0.598
## [25] 0.599 0.600 0.601 0.602 0.603 0.604 0.605 0.606 0.607 0.608 0.609 0.610
## [37] 0.611 0.612 0.613 0.614 0.615 0.616 0.617 0.618 0.619 0.620 0.621 0.622
## [49] 0.623 0.624 0.625 0.626 0.627 0.628 0.629 0.630 0.631 0.632 0.633 0.634
## [61] 0.635 0.636 0.637 0.638 0.639 0.640 0.641 0.642 0.643 0.644 0.645 0.646
## [73] 0.647 0.648 0.649 0.650 0.651 0.652 0.653 0.654 0.655 0.656 0.657 0.658
## [85] 0.659 0.660 0.661 0.662 0.663 0.664 0.665 0.666 0.667 0.668 0.669 0.670
## [97] 0.671 0.672 0.673 0.674 0.675 0.676 0.677 0.678 0.679 0.680 0.681 0.682
## [109] 0.683 0.684 0.685 0.686 0.687 0.688 0.689 0.690 0.691 0.692 0.693 0.694
## [121] 0.695 0.696 0.697 0.698 0.699 0.700 0.701 0.702 0.703 0.704 0.705 0.706
## [133] 0.707 0.708 0.709 0.710 0.711 0.712 0.713 0.714 0.715 0.716 0.717 0.718
## [145] 0.719 0.720 0.721 0.722 0.723 0.724 0.725 0.726 0.727 0.728 0.729 0.730
## [157] 0.731 0.732 0.733 0.734 0.735 0.736 0.737 0.738 0.739 0.740 0.741 0.742
## [169] 0.743 0.744 0.745 0.746 0.747 0.748 0.749 0.750 0.751 0.752 0.753 0.754
## [181] 0.755 0.756 0.757 0.758 0.759 0.760 0.761 0.762 0.763 0.764 0.765 0.766
## [193] 0.767 0.768 0.769 0.770 0.771 0.772 0.773 0.774 0.775 0.776 0.777 0.778
## [205] 0.779 0.780 0.781 0.782 0.783 0.784 0.785 0.786 0.787 0.788 0.789 0.790
## [217] 0.791 0.792 0.793 0.794 0.795 0.796 0.797 0.798 0.799 0.800 0.801 0.802
## [229] 0.803 0.804 0.805 0.806 0.807 0.808 0.809 0.810 0.811 0.812 0.813 0.814
## [241] 0.815 0.816 0.817 0.818 0.819 0.820 0.821 0.822 0.823 0.824 0.825 0.826
## [253] 0.827 0.828 0.829 0.830 0.831 0.832 0.833 0.834 0.835 0.836 0.837 0.838
## [265] 0.839 0.840 0.841 0.842 0.843 0.844 0.845 0.846 0.847 0.848 0.849 0.850
## [277] 0.851 0.852 0.853 0.854 0.855 0.856 0.857 0.858 0.859 0.860 0.861 0.862
## [289] 0.863 0.864 0.865 0.866 0.867 0.868 0.869 0.870 0.871 0.872 0.873 0.874
## [301] 0.875 0.876 0.877 0.878 0.879 0.880 0.881 0.882 0.883 0.884 0.885 0.886
## [313] 0.887 0.888 0.889 0.890 0.891 0.892 0.893 0.894 0.895 0.896 0.897 0.898
## [325] 0.899 0.900 0.901 0.902 0.903 0.904 0.905 0.906 0.907 0.908 0.909 0.910
## [337] 0.911 0.912 0.913 0.914 0.915 0.916 0.917 0.918 0.919
Bagian 2
## [1] 48.66076
## [1] 120.9194
Plot Time Series
postrend2 |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: postrend2
## Dickey-Fuller = -3.5331, Lag order = 4, p-value = 0.04268
## alternative hypothesis: stationary
Plot Boxcox
## [1] 0.407
## [1] -0.019 -0.018 -0.017 -0.016 -0.015 -0.014 -0.013 -0.012 -0.011 -0.010
## [11] -0.009 -0.008 -0.007 -0.006 -0.005 -0.004 -0.003 -0.002 -0.001 0.000
## [21] 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.010
## [31] 0.011 0.012 0.013 0.014 0.015 0.016 0.017 0.018 0.019 0.020
## [41] 0.021 0.022 0.023 0.024 0.025 0.026 0.027 0.028 0.029 0.030
## [51] 0.031 0.032 0.033 0.034 0.035 0.036 0.037 0.038 0.039 0.040
## [61] 0.041 0.042 0.043 0.044 0.045 0.046 0.047 0.048 0.049 0.050
## [71] 0.051 0.052 0.053 0.054 0.055 0.056 0.057 0.058 0.059 0.060
## [81] 0.061 0.062 0.063 0.064 0.065 0.066 0.067 0.068 0.069 0.070
## [91] 0.071 0.072 0.073 0.074 0.075 0.076 0.077 0.078 0.079 0.080
## [101] 0.081 0.082 0.083 0.084 0.085 0.086 0.087 0.088 0.089 0.090
## [111] 0.091 0.092 0.093 0.094 0.095 0.096 0.097 0.098 0.099 0.100
## [121] 0.101 0.102 0.103 0.104 0.105 0.106 0.107 0.108 0.109 0.110
## [131] 0.111 0.112 0.113 0.114 0.115 0.116 0.117 0.118 0.119 0.120
## [141] 0.121 0.122 0.123 0.124 0.125 0.126 0.127 0.128 0.129 0.130
## [151] 0.131 0.132 0.133 0.134 0.135 0.136 0.137 0.138 0.139 0.140
## [161] 0.141 0.142 0.143 0.144 0.145 0.146 0.147 0.148 0.149 0.150
## [171] 0.151 0.152 0.153 0.154 0.155 0.156 0.157 0.158 0.159 0.160
## [181] 0.161 0.162 0.163 0.164 0.165 0.166 0.167 0.168 0.169 0.170
## [191] 0.171 0.172 0.173 0.174 0.175 0.176 0.177 0.178 0.179 0.180
## [201] 0.181 0.182 0.183 0.184 0.185 0.186 0.187 0.188 0.189 0.190
## [211] 0.191 0.192 0.193 0.194 0.195 0.196 0.197 0.198 0.199 0.200
## [221] 0.201 0.202 0.203 0.204 0.205 0.206 0.207 0.208 0.209 0.210
## [231] 0.211 0.212 0.213 0.214 0.215 0.216 0.217 0.218 0.219 0.220
## [241] 0.221 0.222 0.223 0.224 0.225 0.226 0.227 0.228 0.229 0.230
## [251] 0.231 0.232 0.233 0.234 0.235 0.236 0.237 0.238 0.239 0.240
## [261] 0.241 0.242 0.243 0.244 0.245 0.246 0.247 0.248 0.249 0.250
## [271] 0.251 0.252 0.253 0.254 0.255 0.256 0.257 0.258 0.259 0.260
## [281] 0.261 0.262 0.263 0.264 0.265 0.266 0.267 0.268 0.269 0.270
## [291] 0.271 0.272 0.273 0.274 0.275 0.276 0.277 0.278 0.279 0.280
## [301] 0.281 0.282 0.283 0.284 0.285 0.286 0.287 0.288 0.289 0.290
## [311] 0.291 0.292 0.293 0.294 0.295 0.296 0.297 0.298 0.299 0.300
## [321] 0.301 0.302 0.303 0.304 0.305 0.306 0.307 0.308 0.309 0.310
## [331] 0.311 0.312 0.313 0.314 0.315 0.316 0.317 0.318 0.319 0.320
## [341] 0.321 0.322 0.323 0.324 0.325 0.326 0.327 0.328 0.329 0.330
## [351] 0.331 0.332 0.333 0.334 0.335 0.336 0.337 0.338 0.339 0.340
## [361] 0.341 0.342 0.343 0.344 0.345 0.346 0.347 0.348 0.349 0.350
## [371] 0.351 0.352 0.353 0.354 0.355 0.356 0.357 0.358 0.359 0.360
## [381] 0.361 0.362 0.363 0.364 0.365 0.366 0.367 0.368 0.369 0.370
## [391] 0.371 0.372 0.373 0.374 0.375 0.376 0.377 0.378 0.379 0.380
## [401] 0.381 0.382 0.383 0.384 0.385 0.386 0.387 0.388 0.389 0.390
## [411] 0.391 0.392 0.393 0.394 0.395 0.396 0.397 0.398 0.399 0.400
## [421] 0.401 0.402 0.403 0.404 0.405 0.406 0.407 0.408 0.409 0.410
## [431] 0.411 0.412 0.413 0.414 0.415 0.416 0.417 0.418 0.419 0.420
## [441] 0.421 0.422 0.423 0.424 0.425 0.426 0.427 0.428 0.429 0.430
## [451] 0.431 0.432 0.433 0.434 0.435 0.436 0.437 0.438 0.439 0.440
## [461] 0.441 0.442 0.443 0.444 0.445 0.446 0.447 0.448 0.449 0.450
## [471] 0.451 0.452 0.453 0.454 0.455 0.456 0.457 0.458 0.459 0.460
## [481] 0.461 0.462 0.463 0.464 0.465 0.466 0.467 0.468 0.469 0.470
## [491] 0.471 0.472 0.473 0.474 0.475 0.476 0.477 0.478 0.479 0.480
## [501] 0.481 0.482 0.483 0.484 0.485 0.486 0.487 0.488 0.489 0.490
## [511] 0.491 0.492 0.493 0.494 0.495 0.496 0.497 0.498 0.499 0.500
## [521] 0.501 0.502 0.503 0.504 0.505 0.506 0.507 0.508 0.509 0.510
## [531] 0.511 0.512 0.513 0.514 0.515 0.516 0.517 0.518 0.519 0.520
## [541] 0.521 0.522 0.523 0.524 0.525 0.526 0.527 0.528 0.529 0.530
## [551] 0.531 0.532 0.533 0.534 0.535 0.536 0.537 0.538 0.539 0.540
## [561] 0.541 0.542 0.543 0.544 0.545 0.546 0.547 0.548 0.549 0.550
## [571] 0.551 0.552 0.553 0.554 0.555 0.556 0.557 0.558 0.559 0.560
## [581] 0.561 0.562 0.563 0.564 0.565 0.566 0.567 0.568 0.569 0.570
## [591] 0.571 0.572 0.573 0.574 0.575 0.576 0.577 0.578 0.579 0.580
## [601] 0.581 0.582 0.583 0.584 0.585 0.586 0.587 0.588 0.589 0.590
## [611] 0.591 0.592 0.593 0.594 0.595 0.596 0.597 0.598 0.599 0.600
## [621] 0.601 0.602 0.603 0.604 0.605 0.606 0.607 0.608 0.609 0.610
## [631] 0.611 0.612 0.613 0.614 0.615 0.616 0.617 0.618 0.619 0.620
## [641] 0.621 0.622 0.623 0.624 0.625 0.626 0.627 0.628 0.629 0.630
## [651] 0.631 0.632 0.633 0.634 0.635 0.636 0.637 0.638 0.639 0.640
## [661] 0.641 0.642 0.643 0.644 0.645 0.646 0.647 0.648 0.649 0.650
## [671] 0.651 0.652 0.653 0.654 0.655 0.656 0.657 0.658 0.659 0.660
## [681] 0.661 0.662 0.663 0.664 0.665 0.666 0.667 0.668 0.669 0.670
## [691] 0.671 0.672 0.673 0.674 0.675 0.676 0.677 0.678 0.679 0.680
## [701] 0.681 0.682 0.683 0.684 0.685 0.686 0.687 0.688 0.689 0.690
## [711] 0.691 0.692 0.693 0.694 0.695 0.696 0.697 0.698 0.699 0.700
## [721] 0.701 0.702 0.703 0.704 0.705 0.706 0.707 0.708 0.709 0.710
## [731] 0.711 0.712 0.713 0.714 0.715 0.716 0.717 0.718 0.719 0.720
## [741] 0.721 0.722 0.723 0.724 0.725 0.726 0.727 0.728 0.729 0.730
## [751] 0.731 0.732 0.733 0.734 0.735 0.736 0.737 0.738 0.739 0.740
## [761] 0.741 0.742 0.743 0.744 0.745 0.746 0.747 0.748 0.749 0.750
## [771] 0.751 0.752 0.753 0.754 0.755 0.756 0.757 0.758 0.759 0.760
## [781] 0.761 0.762 0.763 0.764 0.765 0.766 0.767 0.768 0.769 0.770
## [791] 0.771 0.772 0.773 0.774 0.775 0.776 0.777 0.778 0.779 0.780
## [801] 0.781 0.782 0.783 0.784 0.785 0.786 0.787 0.788 0.789 0.790
## [811] 0.791 0.792 0.793 0.794 0.795 0.796 0.797 0.798 0.799 0.800
## [821] 0.801 0.802 0.803 0.804 0.805 0.806 0.807 0.808 0.809 0.810
## [831] 0.811 0.812 0.813 0.814 0.815 0.816 0.817 0.818 0.819 0.820
## [841] 0.821 0.822
Tidak Stasioner dalam Ragam, Stasioner dalam Rataan
arima.sim
memiliki parameter sd yang dapat di-set
beda.
set.seed(9089)
sd1 <- arima.sim(n=100, list(order=c(1,0,1),ar=c(.2), ma=.2), sd = 1)
sd5 <- arima.sim(n=100, list(order=c(1,0,1),ar=c(.2), ma=.2), sd = 5)
dtgab <- c(sd1,sd5) |> ts()
Plot Time Series
dtgab |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Berdasarkan plot time series tersebut, terlihat bahwa data stasioner dalam rataan, ditandai dengan tidak adanya trend ataupun musiman pada data, namun tidak stasioner dalam ragam, ditandai dengan adanya perbedaan lebar pita pada plot
Plot ACF
Berdasarkan plot ACF, terlihat bahwa data stasioner dalam rataan, ditandai dengan plot ACF yang tails off dan cenderung membentuk gelombang sinus
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: dtgab
## Dickey-Fuller = -5.2106, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01 yang kurang dari taraf nyata 5% dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
Partisi Data
Plot Time Series
dtgab1 |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Berdasarkan plot time series tersebut, terlihat bahwa data cenderung stasioner dalam rataan, ditandain dengan tidak adanya trend dan musiman pada data, serta stasioner dalam ragam, ditandai dengan lebar pita yang cenderung sama pada plot tersebut
Plot ACF
Berdasarkan plot ACF, terlihat bahwa data cenderung stasioner dalam rataan ditandai dengan plot ACF yang tails off dan cenderung membentuk gelombang sinus
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: dtgab1
## Dickey-Fuller = -3.9613, Lag order = 4, p-value = 0.01691
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01691 yang kurang dari taraf nyata 5% dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
Plot Boxcox
Plot Time Series
dtgab2 |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Berdasarkan plot data deret waktu tersebut, terlihat bahwa data stasioner dalam rataan, ditandai dengan data yang tidak menunjukkan adanya trend ataupun musiman, serta tidak stasioner dalam ragam ditandai dengan lebar pita pada plot yang cenderung berbeda di beberapa periode waktunya
Plot ACF
Berdasarkan plot ACF tersebut, terlihat bahwa data stasioner dalam rataan ditandai dengan plot ACF yang cuts off pada lag ke 2
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: dtgab2
## Dickey-Fuller = -3.951, Lag order = 5, p-value = 0.01383
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01383 yang kurang dari taraf nyata 5% dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
Tidak Stasioner dalam Rataan dan Ragam
Hal ini dapat disimulasikan dengan membangkitkan data yang tidak stasioner dalam ragam lalu membentuk trend menggunakan data tersebut
set.seed(8990)
sd2 <- arima.sim(n=100, list(order=c(1,0,1),ar=c(.2), ma=.2), sd = 2)
sd6 <- arima.sim(n=100, list(order=c(1,0,1),ar=c(.2), ma=.2), sd = 6)
datagab <- c(sd2,sd6)
dt_rg <- startSpot + cumsum(datagab) |> ts()
Plot Time Series
dt_rg |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan, ditandai dengan adanya trend pada data dan tidak stasioner dalam ragam, ditandai dengan adanya perbedaan lebar pita pada plot
Plot ACF
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut menurun secara perlahan (tails off slowly) yang menandakan data tidak stasioner dalam rataan
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: dt_rg
## Dickey-Fuller = -1.8362, Lag order = 5, p-value = 0.6447
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.6447 yang lebih besar dari taraf nyata 5% dan menandakan bahwa data tidak stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
Partisi Data
Plot Time Series
dt_rg1 |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan karena masih terdapat tren pada data, namun cenderung stasioner dalam ragam karena memiliki lebar pita yang cenderung sama
Plot ACF
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut menurun secara perlahan (tails off slowly) yang menandakan data tidak stasioner dalam rataan
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: dt_rg1
## Dickey-Fuller = -1.7373, Lag order = 4, p-value = 0.6816
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.6816 yang lebih besar dari taraf nyata 5% dan menandakan bahwa data tidak stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
Plot Time Series
dt_rg2 |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan karena masih terdapat tren pada data, dan tidak stasioner dalam ragam karena memiliki lebar pita yang cenderung tidak sama
Plot ACF
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut menurun secara perlahan (tails off slowly) yang menandakan data tidak stasioner dalam rataan
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: dt_rg2
## Dickey-Fuller = -1.0695, Lag order = 4, p-value = 0.9202
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.9202 yang lebih besar dari taraf nyata 5% dan menandakan bahwa data tidak stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
Plot Time Series
dt_rg3 |> as_tsibble() |>
ggplot(aes(x = index, y = value)) +
geom_line() + theme_bw() +
xlab("Obs") + ylab("Nilai")
Berdasarkan plot time series tersebut, terlihat bahwa data tidak stasioner dalam rataan karena masih terdapat tren pada data, namun cenderung stasioner dalam ragam karena memiliki lebar pita yang cenderung sama
Plot ACF
Berdasarkan plot ACF, terlihat bahwa plot ACF pada data tersebut menurun secara perlahan (tails off slowly)yang menandakan data tidak stasioner dalam rataan
Uji ADF
##
## Augmented Dickey-Fuller Test
##
## data: dt_rg3
## Dickey-Fuller = -3.1644, Lag order = 5, p-value = 0.1022
## alternative hypothesis: stationary
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.323 yang lebih besar dari taraf nyata 5% dan menandakan bahwa data tidak stasioner dalam rataan. Hal ini tidak sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF
Pertemuan 6 dan 7
Packages
library(ggplot2)
library(tsibble)
library(tseries)
library(MASS)
library(forecast)
library(TSA)
library(TTR)
library(aTSA)
##
## Attaching package: 'aTSA'
## The following objects are masked from 'package:tseries':
##
## adf.test, kpss.test, pp.test
## The following object is masked from 'package:dLagM':
##
## forecast
## The following object is masked from 'package:forecast':
##
## forecast
## The following object is masked from 'package:graphics':
##
## identify
Data Bangkitan
Pembangkitan Data
Data yang akan dibangkitkan adalah data dengan model MA(2) sebagai berikut.
Data kemudian dibagi menjadi data latih dan data uji. Pembagian kali ini dilakukan dengan proporsi / perbandingan, yaitu 80:20.
Eksplorasi Data
Sebelum masuk dalam tahap pemodelan, dilakukan eksplorasi data dengan plot deret waktu untuk melihat pola data.
#--PLOT TIME SERIES--#
plot(ma2.train,
col = "navyblue",
lwd = 1,
type = "o",
xlab = "Time",
ylab = "Data")
Berdasarkan plot data deret waktu di atas, terlihat data cenderung stasioner dalam rataan dan ragam. Data stasioner dalam rataan karena menyebar/bergerak di sekitar nilai tengahnya (0) dan dikatakan stasioner dalam ragam karena memiliki lebar pita yang cenderung sama. Selain dengan plot data deret waktu, akan dilakukan pengecekan stasioneritas data dengan plot ACF dan uji ADF.
Berdasarkan plot ACF di atas, dapat dilihat bahwa plot cuts off pada lag ke-2. Hal ini sesuai dengan proses pembangkitan model MA(2).
## Augmented Dickey-Fuller Test
## alternative: stationary
##
## Type 1: no drift no trend
## lag ADF p.value
## [1,] 0 -4.91 0.01
## [2,] 1 -4.89 0.01
## [3,] 2 -5.65 0.01
## [4,] 3 -3.57 0.01
## [5,] 4 -3.43 0.01
## Type 2: with drift no trend
## lag ADF p.value
## [1,] 0 -4.99 0.01
## [2,] 1 -4.95 0.01
## [3,] 2 -5.78 0.01
## [4,] 3 -3.69 0.01
## [5,] 4 -3.59 0.01
## Type 3: with drift and trend
## lag ADF p.value
## [1,] 0 -5.10 0.0100
## [2,] 1 -5.04 0.0100
## [3,] 2 -6.02 0.0100
## [4,] 3 -3.99 0.0123
## [5,] 4 -3.96 0.0138
## ----
## Note: in fact, p.value = 0.01 means p.value <= 0.01
\(H_0\) : Data tidak stasioner dalam rataan
\(H_1\) : Data stasioner dalam rataan
Berdasarkan uji ADF tersebut, didapat p-value sebesar 0.01358 yang lebih kecil dari taraf nyata 5% sehingga tolak \(H_0\) dan menandakan bahwa data stasioner dalam rataan. Hal ini sesuai dengan hasil eksplorasi menggunakan plot time series dan plot ACF.
Spesifikasi Model
#---SPESIFIKASI MODEL---#
par(mfrow = c(1,2))
acf(ma2.train, main="ACF", lag.max=20) #ARIMA(0,0,2)
pacf(ma2.train, main="PACF", lag.max=20) #ARIMA(1,0,0)
Berdasarkan Plot ACF, terlihat cuts off pada lag ke-2 sehingga dapat kita asumsikan model yang terbentuk adalah ARIMA(0,0,2). Selanjutnya, berdasarkan plot PACF, terlihat cuts off pada lag pertama sehingga model yang terbentuk adalah ARIMA(1,0,0). Selain dengan plot ACF dan PACF, penentuan spesifikasi model dilakukan dengan extended ACF (EACF) berikut ini.
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x o o o o o o o o o o o o
## 1 o x x o o o o o o o o o o o
## 2 x x x o o o o o o o o o o o
## 3 x x x o o o o o o o o o o o
## 4 o o o x o o o o o o o o o o
## 5 x o o x o o o o o o o o o o
## 6 x o o o o o o o x o o o o o
## 7 o o o o o x o o o o o o o o
Menggunakan plot EACF, dapat diambil beberapa model dengan melihat ujung segitiga yang terbentuk, antara lain ARIMA(0,0,2), ARIMA(1,0,3), ARIMA(2,0,3), dan ARIMA(3,0,3).
Pendugaan Parameter
Selanjutnya akan dilakukan pendugaan parameter kelima model ARIMA
yang terbentuk sebelumnya. Pendugaan dilakukan dengan fungsi
Arima()
yang dilanjutkan dengan melihat nilai AIC pada
ringkasan data dan melihat signifikansi parameter.
#---PENDUGAAN PARAMETER MODEL---#
model1.ma2=Arima(ma2.train, order=c(0,0,2),method="ML")
summary(model1.ma2) #AIC=326.87
## Series: ma2.train
## ARIMA(0,0,2) with non-zero mean
##
## Coefficients:
## ma1 ma2 mean
## 0.6953 0.5349 -0.2082
## s.e. 0.0829 0.0673 0.1841
##
## sigma^2 = 0.8497: log likelihood = -159.44
## AIC=326.87 AICc=327.22 BIC=338.02
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.004254881 0.910219 0.73195 -767.1756 938.3389 0.852277
## ACF1
## Training set 0.05965759
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ma1 0.695312 0.082903 8.3871 < 2.2e-16 ***
## ma2 0.534929 0.067337 7.9441 1.957e-15 ***
## intercept -0.208236 0.184115 -1.1310 0.258
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Series: ma2.train
## ARIMA(1,0,0) with non-zero mean
##
## Coefficients:
## ar1 mean
## 0.6428 -0.2185
## s.e. 0.0690 0.2450
##
## sigma^2 = 0.9625: log likelihood = -167.24
## AIC=340.47 AICc=340.68 BIC=348.84
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.002975587 0.9728552 0.7723112 -1335.017 1507.476 0.8992733
## ACF1
## Training set 0.06622426
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 0.642823 0.069023 9.3131 <2e-16 ***
## intercept -0.218485 0.245000 -0.8918 0.3725
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Series: ma2.train
## ARIMA(1,0,3) with non-zero mean
##
## Coefficients:
## ar1 ma1 ma2 ma3 mean
## 0.0610 0.684 0.6137 0.0934 -0.2082
## s.e. 0.4257 0.416 0.3263 0.2714 0.2083
##
## sigma^2 = 0.8518: log likelihood = -158.61
## AIC=329.22 AICc=329.96 BIC=345.94
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.004465851 0.9034798 0.725319 -548.3662 713.5294 0.844556
## ACF1
## Training set 0.005156424
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 0.060970 0.425686 0.1432 0.88611
## ma1 0.684021 0.415962 1.6444 0.10009
## ma2 0.613727 0.326319 1.8808 0.06001 .
## ma3 0.093411 0.271412 0.3442 0.73072
## intercept -0.208191 0.208338 -0.9993 0.31765
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Series: ma2.train
## ARIMA(2,0,3) with non-zero mean
##
## Coefficients:
## ar1 ar2 ma1 ma2 ma3 mean
## 0.2670 -0.1935 0.4749 0.6454 0.0524 -0.2075
## s.e. 0.4227 0.1744 0.4136 0.3050 0.2587 0.1916
##
## sigma^2 = 0.8538: log likelihood = -158.3
## AIC=330.6 AICc=331.6 BIC=350.11
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.004511346 0.9006288 0.7299239 -174.2871 339.1512 0.8499178
## ACF1
## Training set 0.006394934
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 0.267023 0.422731 0.6317 0.52761
## ar2 -0.193470 0.174380 -1.1095 0.26723
## ma1 0.474856 0.413641 1.1480 0.25097
## ma2 0.645418 0.304955 2.1164 0.03431 *
## ma3 0.052372 0.258742 0.2024 0.83960
## intercept -0.207543 0.191625 -1.0831 0.27878
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Series: ma2.train
## ARIMA(3,0,3) with non-zero mean
##
## Coefficients:
## ar1 ar2 ar3 ma1 ma2 ma3 mean
## -0.3810 0.2176 -0.2170 1.1432 0.7306 0.3543 -0.2053
## s.e. 0.3026 0.1535 0.1541 0.2896 0.3056 0.2426 0.1890
##
## sigma^2 = 0.8418: log likelihood = -156.93
## AIC=329.87 AICc=331.16 BIC=352.17
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.004402562 0.8903241 0.70915 -674.9739 835.0008 0.8257288
## ACF1
## Training set 0.01679809
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 -0.38103 0.30264 -1.2590 0.2080
## ar2 0.21757 0.15355 1.4170 0.1565
## ar3 -0.21701 0.15408 -1.4084 0.1590
## ma1 1.14318 0.28962 3.9472 7.909e-05 ***
## ma2 0.73062 0.30555 2.3911 0.0168 *
## ma3 0.35428 0.24258 1.4605 0.1442
## intercept -0.20530 0.18897 -1.0864 0.2773
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Berdasarkan pendugaan parameter di atas, nilai AIC terkecil dimiliki oleh model ARIMA(0,0,2) dan parameter model ARIMA(0,0,2) juga seluruhnya signifikan sehingga model yang dipilih adalah model ARIMA(0,0,2).
Analisis Sisaan
Model terbaik hasil identifikasi kemudian dicek asumsi sisaannya. Sisaan model ARIMA harus memenuhi asumsi normalitas, kebebasan, dan kehomogenan ragam. Diagnostik model dilakukan secara eksplorasi dan uji formal.
Eksplorasi Sisaan
#Eksplorasi
sisaan.ma2 <- model1.ma2$residuals
par(mfrow=c(2,2))
qqnorm(sisaan.ma2)
qqline(sisaan.ma2, col = "blue", lwd = 2)
plot(c(1:length(sisaan.ma2)),sisaan.ma2)
acf(sisaan.ma2)
pacf(sisaan.ma2)
Berdasarkan plot kuantil-kuantil normal, secara eksplorasi ditunjukkan sisaan menyebar normal mengikuti garis \(45^{\circ}\). Kemudian dapat dilihat juga lebar pita sisaan yang cenderung sama menandakan bahwa sisaan memiliki ragam yang homogen. Akan tetapi, plot ACF dan PACF sisaan ARIMA(0,0,2) signifikan pada lag ke-6 sehingga sisaan tidak saling bebas. Kondisi ini akan diuji lebih lanjut dengan uji formal.
Uji Formal
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: sisaan.ma2
## D = 0.043157, p-value = 0.9788
## alternative hypothesis: two-sided
Selain dengan eksplorasi, asumsi tersebut dapat diuji menggunakan uji formal. Pada tahapan ini uji formal yang digunakan untuk normalitas adalah uji Kolmogorov-Smirnov (KS). Hipotesis pada uji KS adalah sebagai berikut.
\(H_0\) : Sisaan menyebar normal
\(H_1\) : Sisaan tidak menyebar normal
Berdasarkan uji KS tersebut, didapat p-value sebesar 0.9788 yang lebih besar dari taraf nyata 5% sehingga tak tolak \(H_0\) dan menandakan bahwa sisaan menyebar normal. Hal ini sesuai dengan hasil eksplorasi menggunakan plot kuantil-kuantil normal.
##
## Box-Ljung test
##
## data: sisaan.ma2
## X-squared = 0.43785, df = 1, p-value = 0.5082
Selanjutnya akan dilakukan uji formal untuk kebebasan sisaan menggunakan uji Ljung-Box. Hipotesis yang digunakan adalah sebagai berikut.
\(H_0\) : Sisaan saling bebas
\(H_1\) : Sisaan tidak tidak saling bebas
Berdasarkan uji Ljung-Box tersebut, didapat p-value sebesar 0.5082 yang lebih besar dari taraf nyata 5% sehingga tak tolak \(H_0\) dan menandakan bahwa sisaan saling bebas. Hal ini berbeda dengan eksplorasi.
##
## Box-Ljung test
##
## data: (sisaan.ma2)^2
## X-squared = 2.4711, df = 1, p-value = 0.116
Hipotesis yang digunakan untuk uji kehomogenan ragam adalah sebagai berikut.
\(H_0\) : Ragam sisaan homogen
\(H_1\) : Ragam sisaan tidak homogen
Berdasarkan uji Ljung-Box terhadap sisaan kuadrat tersebut, didapat p-value sebesar 0.116 yang lebih besar dari taraf nyata 5% sehingga tak tolak \(H_0\) dan menandakan bahwa ragam sisaan homogen.
##
## One Sample t-test
##
## data: sisaan.ma2
## t = -0.050994, df = 119, p-value = 0.9594
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.1694719 0.1609621
## sample estimates:
## mean of x
## -0.004254881
Terakhir, dengan uji-t, akan dicek apakah nilai tengah sisaan sama dengan nol. Hipotesis yang diujikan sebagai berikut.
\(H_0\) : nilai tengah sisaan sama dengan 0
\(H_1\) : nilai tengah sisaan tidak sama dengan 0
Berdasarkan uji-ttersebut, didapat p-value sebesar 0.9594 yang lebih besar dari taraf nyata 5% sehingga tak tolak \(H_0\) dan menandakan bahwa nilai tengah sisaan sama dengan nol. Hal ini berbeda dengan eksplorasi.
Overfitting
Tahapan selanjutnya adalah overfitting dilakukan dengan menaikkan orde AR(p) dan MA(q) dari model ARIMA(0,0,2) untuk melihat apakah terdapat model lain yang lebih baik dari model saat ini. Kandidat model overfitting adalah ARIMA(1,0,2) dan ARIMA(0,0,3).
#---OVERFITTING---#
model1a.ma2=Arima(ma2.train, order=c(1,0,2),method="ML")
summary(model1a.ma2) #327.31
## Series: ma2.train
## ARIMA(1,0,2) with non-zero mean
##
## Coefficients:
## ar1 ma1 ma2 mean
## 0.1990 0.5451 0.5029 -0.2083
## s.e. 0.1412 0.1239 0.0836 0.2093
##
## sigma^2 = 0.8453: log likelihood = -158.65
## AIC=327.31 AICc=327.84 BIC=341.25
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.004448537 0.9039253 0.7240135 -642.4808 808.051 0.8430358
## ACF1
## Training set 0.007803042
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 0.199039 0.141222 1.4094 0.1587
## ma1 0.545109 0.123914 4.3991 1.087e-05 ***
## ma2 0.502936 0.083609 6.0153 1.795e-09 ***
## intercept -0.208276 0.209264 -0.9953 0.3196
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Series: ma2.train
## ARIMA(0,0,3) with non-zero mean
##
## Coefficients:
## ma1 ma2 ma3 mean
## 0.7415 0.656 0.1286 -0.2084
## s.e. 0.0878 0.118 0.0997 0.2067
##
## sigma^2 = 0.8446: log likelihood = -158.62
## AIC=327.24 AICc=327.77 BIC=341.18
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.004403296 0.9035497 0.7261616 -518.1374 683.3745 0.8455371
## ACF1
## Training set 0.007516805
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ma1 0.741488 0.087816 8.4436 < 2.2e-16 ***
## ma2 0.656016 0.118034 5.5579 2.731e-08 ***
## ma3 0.128647 0.099655 1.2909 0.1967
## intercept -0.208355 0.206722 -1.0079 0.3135
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Berdasarkan kedua model hasil overfitting di atas, model ARIMA(1,0,2) dan ARIMA(0,0,3) memiliki AIC yang lebih besar dibandingkan dengan model ARIMA(0,0,2) dan parameter kedua model ARIMA(1,0,2) dan ARIMA(0,0,3) tidak seluruhnya signifikan. Oleh karena itu, model ARIMA(0,0,2) akan tetap digunakan untuk melakukan peramalan.
Peramalan
Peramalan dilakukan menggunakan fungsi forecast()
.
Contoh peramalan berikut ini dilakukan untuk 30 hari ke depan.