Email          : brigita.melantika@student.matanauniversity.ac.id
RPubs         : https://rpubs.com/brigitatiaraem/
Jurusan      : Statistika
Address     : ARA Center, Matana University Tower
             Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.
UAS kalian untuk mata kuliah Ekonometrik ini adalah mencari kasus (dataset) yang dapat deselesaikandenganTime Series Regression Models, Exponential Smoothing, Arima Models.
Jelaskan bagaimana anda membangun ketiga model tersebut
Bandingkan hasil prediksi dari ketiga model tersebut
Berikan pendapatkan kalian mengenai kelebihan dan kekurangan penggunaan model tersebut padakasus(dataset) anda.
Buatlah video (durasinya minimal 20 Menit) yang menjelaskan materi tersebut dan upload di youtube, kemudianlampirkan link Rpubs dan videonya di GCR.
Dataset yang dipakai adalah JKII yang mana JKII ini atau dapat disebut JII merupakan indeks saham syariah yang pertama kali diluncurkan di pasar modal Indonesia pada tanggal 3 Juli 2000.
print(getwd())## [1] "D:/brigita tiara KULIAH/kuliah sem4/Ekono"
library(readxl)
JKII<-read_excel("D:/brigita tiara KULIAH/kuliah sem4/Ekono/JKII.xlsx",sheet = "011")
JKII## # A tibble: 50 x 7
## Date Opening High Low Closing `Adj Close` Volume
## <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2021-05-17 00:00:00 559330017 561080017 547849976 5.51e8 550609985 9.87e8
## 2 2021-05-24 00:00:00 552989990 560190002 541609985 5.54e8 554090027 5.92e9
## 3 2021-05-31 00:00:00 556130005 583539978 554169983 5.75e8 575020020 5.13e9
## 4 2021-06-07 00:00:00 577580017 579000000 558099976 5.66e8 566469971 6.39e9
## 5 2021-06-14 00:00:00 566710022 569049988 544080017 5.49e8 548520020 6.67e9
## 6 2021-06-21 00:00:00 538390015 561270020 530960022 5.51e8 550729980 5.48e9
## 7 2021-06-28 00:00:00 552380005 552960022 540760010 5.48e8 547520020 4.64e9
## 8 2021-07-05 00:00:00 548830017 552349976 538070007 5.50e8 549969971 5.11e9
## 9 2021-07-12 00:00:00 553039978 557890015 539500000 5.51e8 550789978 4.58e9
## 10 2021-07-19 00:00:00 549539978 553309998 540469971 5.42e8 541750000 4.06e9
## # ... with 40 more rows
mydata<-JKII
class(mydata)## [1] "tbl_df" "tbl" "data.frame"
str(mydata)## tibble [50 x 7] (S3: tbl_df/tbl/data.frame)
## $ Date : POSIXct[1:50], format: "2021-05-17" "2021-05-24" ...
## $ Opening : num [1:50] 5.59e+08 5.53e+08 5.56e+08 5.78e+08 5.67e+08 ...
## $ High : num [1:50] 5.61e+08 5.60e+08 5.84e+08 5.79e+08 5.69e+08 ...
## $ Low : num [1:50] 5.48e+08 5.42e+08 5.54e+08 5.58e+08 5.44e+08 ...
## $ Closing : num [1:50] 5.51e+08 5.54e+08 5.75e+08 5.66e+08 5.49e+08 ...
## $ Adj Close: num [1:50] 5.51e+08 5.54e+08 5.75e+08 5.66e+08 5.49e+08 ...
## $ Volume : num [1:50] 9.87e+08 5.92e+09 5.13e+09 6.39e+09 6.67e+09 ...
tsdata<-ts(mydata)
class(tsdata)## [1] "mts" "ts" "matrix"
str(tsdata)## Time-Series [1:50, 1:7] from 1 to 50: 1.62e+09 1.62e+09 1.62e+09 1.62e+09 1.62e+09 ...
## - attr(*, "dimnames")=List of 2
## ..$ : NULL
## ..$ : chr [1:7] "Date" "Opening" "High" "Low" ...
ts.plot(JKII$Closing)Uji Stasioneritas Augmented Dickey-Fuller (ADF) ini menguji hipotesis nol yang menyatakan bahwa bahwa unit root ada dalam model autoregresif. Unit root test adalah tes stasioneritas data time series. Data time series memiliki stasioneritas jika perubahan waktu tidak menyebabkan perubahan dalam bentuk distribusi. Root unit adalah salah satu penyebab ketidakstabilan tersebut.
print(getwd())## [1] "D:/brigita tiara KULIAH/kuliah sem4/Ekono"
library(readxl)
JKII2<-read_excel("D:/brigita tiara KULIAH/kuliah sem4/Ekono/JKII.xlsx",sheet = "011")
JKII2## # A tibble: 50 x 7
## Date Opening High Low Closing `Adj Close` Volume
## <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2021-05-17 00:00:00 559330017 561080017 547849976 5.51e8 550609985 9.87e8
## 2 2021-05-24 00:00:00 552989990 560190002 541609985 5.54e8 554090027 5.92e9
## 3 2021-05-31 00:00:00 556130005 583539978 554169983 5.75e8 575020020 5.13e9
## 4 2021-06-07 00:00:00 577580017 579000000 558099976 5.66e8 566469971 6.39e9
## 5 2021-06-14 00:00:00 566710022 569049988 544080017 5.49e8 548520020 6.67e9
## 6 2021-06-21 00:00:00 538390015 561270020 530960022 5.51e8 550729980 5.48e9
## 7 2021-06-28 00:00:00 552380005 552960022 540760010 5.48e8 547520020 4.64e9
## 8 2021-07-05 00:00:00 548830017 552349976 538070007 5.50e8 549969971 5.11e9
## 9 2021-07-12 00:00:00 553039978 557890015 539500000 5.51e8 550789978 4.58e9
## 10 2021-07-19 00:00:00 549539978 553309998 540469971 5.42e8 541750000 4.06e9
## # ... with 40 more rows
dd<-data.frame(JKII2)
dd## Date Opening High Low Closing Adj.Close Volume
## 1 2021-05-17 559330017 561080017 547849976 550609985 550609985 987200000
## 2 2021-05-24 552989990 560190002 541609985 554090027 554090027 5919700000
## 3 2021-05-31 556130005 583539978 554169983 575020020 575020020 5125100000
## 4 2021-06-07 577580017 579000000 558099976 566469971 566469971 6385600000
## 5 2021-06-14 566710022 569049988 544080017 548520020 548520020 6670400000
## 6 2021-06-21 538390015 561270020 530960022 550729980 550729980 5476100000
## 7 2021-06-28 552380005 552960022 540760010 547520020 547520020 4642000000
## 8 2021-07-05 548830017 552349976 538070007 549969971 549969971 5114600000
## 9 2021-07-12 553039978 557890015 539500000 550789978 550789978 4580100000
## 10 2021-07-19 549539978 553309998 540469971 541750000 541750000 4062900000
## 11 2021-07-26 542500000 545789978 531820007 532789978 532789978 5777700000
## 12 2021-08-02 535179993 547460022 531500000 541130005 541130005 5175200000
## 13 2021-08-09 540130005 543520020 523780029 540130005 540130005 4180400000
## 14 2021-08-16 540900024 544369995 525440002 531549988 531549988 4311600000
## 15 2021-08-23 534320007 540919983 526890015 528909973 528909973 4505500000
## 16 2021-08-30 531770020 545820007 531770020 543770020 543770020 4807300000
## 17 2021-09-06 544890015 546570007 526650024 540479980 540479980 5702400000
## 18 2021-09-13 538700012 545849976 533760010 542039978 542039978 5725800000
## 19 2021-09-20 541169983 544929993 526159973 540260010 540260010 5693500000
## 20 2021-09-27 540520020 552539978 533869995 546039978 546039978 6981600000
## 21 2021-10-04 546640015 572700012 546640015 570590027 570590027 10640400000
## 22 2021-10-11 572090027 590859985 568729980 583700012 583700012 8613300000
## 23 2021-10-18 586099976 590580017 571219971 577250000 577250000 6612600000
## 24 2021-10-25 577880005 580599976 559190002 567929993 567929993 6187400000
## 25 2021-11-01 569429993 570909973 555030029 565419983 565419983 4989800000
## 26 2021-11-08 567330017 570270020 564429993 566520020 566520020 4140900000
## 27 2021-11-15 567070007 577539978 559239990 577119995 577119995 5313100000
## 28 2021-11-22 578010010 585159973 563859985 565929993 565929993 6409300000
## 29 2021-11-29 564320007 573650024 556919983 560609985 560609985 6953600000
## 30 2021-12-06 561349976 572489990 557989990 572489990 572489990 8369000000
## 31 2021-12-13 573559998 574859985 558320007 562719971 562719971 5640900000
## 32 2021-12-20 560489990 564229980 556159973 560890015 560890015 3248100000
## 33 2021-12-27 562559998 569419983 561890015 562020020 562020020 3930300000
## 34 2022-01-03 560669983 575479980 557770020 572869995 572869995 6859700000
## 35 2022-01-10 574309998 574909973 557169983 563929993 563929993 7088100000
## 36 2022-01-17 565340027 566299988 545929993 566299988 566299988 7479600000
## 37 2022-01-24 560200012 560669983 549500000 557520020 557520020 4724500000
## 38 2022-01-31 558070007 563669983 553919983 562640015 562640015 3055500000
## 39 2022-02-07 568849976 575630005 562859985 568929993 568929993 5360900000
## 40 2022-02-14 565489990 572669983 558059998 570549988 570549988 5155500000
## 41 2022-02-21 570239990 576409973 560479980 571409973 571409973 8089000000
## 42 2022-02-28 581179993 583700012 569309998 583140015 583140015 6178400000
## 43 2022-03-07 585409973 592739990 568830017 582869995 582869995 13026600000
## 44 2022-03-14 584659973 586010010 565510010 573580017 573580017 11476500000
## 45 2022-03-21 575239990 590369995 571539978 584150024 584150024 8637200000
## 46 2022-03-28 584289978 595830017 583469971 594159973 594159973 9158700000
## 47 2022-04-04 595059998 612440002 593820007 611260010 611260010 6446800000
## 48 2022-04-11 612140015 613710022 594469971 607799988 607799988 6369100000
## 49 2022-04-18 608770020 616840027 602059998 606270020 606270020 7645700000
## 50 2022-04-25 603429993 624130005 597669983 619200012 619200012 6935700000
Karena data berupa data list maka akan dirubah dalam bentuk integer.
Y<-as.integer(JKII2$Opening)
X<-as.integer(JKII2$Closing)JKII2LM<-lm(X~Y, data=JKII2)
JKII2LM##
## Call:
## lm(formula = X ~ Y, data = JKII2)
##
## Coefficients:
## (Intercept) Y
## 2.453e+07 9.575e-01
Untuk menganalisa suatu program linear, ada beberapa asumsi yang harus dipenuhi, yaitu :
Uji normalitas adalah uji yang dilakukan untuk mengecek apakah data penelitian kita berasal dari populasi yang sebarannya normal. Uji ini perlu dilakukan karena semua perhitungan statistik parametrik memiliki asumsi normalitas sebaran.
par(mfrow=c(2,2))
plot(JKII2LM)Dari output yang dihasilkan, pada output Normal Q-Q ini, titik berada pada sekitar garis linear sehingga dapat dikatakan terdistribusi normal dan memenuhi asumsi normalitas.
Uji Heteroskedastisitas adalah uji yang menilai apakah ada ketidaksamaan varian dari residual untuk semua pengamatan pada model regresi linear. Uji ini merupakan salah satu dari uji asumsi klasik yang harus dilakukan pada regresi linear.
par(mfrow=c(2,2))
plot(JKII2LM)Dari output yang dihasilkan, pada output Residuals vs Fitted ini terlihat bahwa data yang pada titik ini tidak menyebar melainkan bergerombol maka dapat dikatakan bahwa tidak terjadi perbedaan varians residual sehingga ini memenuhi uji asumsi pada heteroskedastisitas.
Uji Autokorelasi adalah sebuah analisis statistik yang dilakukan untuk mengetahui adakah korelasi variabel yang ada di dalam model prediksi dengan perubahan waktu.
library(lmtest)
dwtest(JKII2LM)##
## Durbin-Watson test
##
## data: JKII2LM
## DW = 1.9637, p-value = 0.3977
## alternative hypothesis: true autocorrelation is greater than 0
Dari output diatas pada nilai Durbin-Watson test menghasilkan niali p-value = 0.3977 yang mana lebih besar dari nilai alpha 0.05 sehingga dapat disimpulkan bahwa tidak ada terjadi pengaruh antara data yang lama dengan data yang baru ini. Maka demikian bahwa asumsi autokorelasi ini tidak ada pada data ini.
Koef Sig.
summary(JKII2LM)##
## Call:
## lm(formula = X ~ Y, data = JKII2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18605282 -6873828 -1128772 4492904 22680793
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.453e+07 3.849e+07 0.637 0.527
## Y 9.575e-01 6.825e-02 14.029 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9242000 on 48 degrees of freedom
## Multiple R-squared: 0.8039, Adjusted R-squared: 0.7998
## F-statistic: 196.8 on 1 and 48 DF, p-value: < 2.2e-16
Dari output diatas, nilai Y pada hasil estimate yaitu Y = 2.453e+07 + 9.575e-01.Pada nilai t value yaitu 14.029 dan nilai Pr(>|t|) yaitu <2e-16 *** yang berarti signifikan.
Bila nilai signifikansi t < 0.05 sedangkan t value yaitu 14.029 maka H0 diterima, artinya tidak terdapat pengaruh yang signifikan antara satu variabel independen terhadap variabel dependen.
Dalam model peramalan pemulusan eksponensial, apabila forecast error adalah positif, yang berarti nilai aktual permintaan lebih tinggi daripada nilai ramalan (A-F > 0), maka model pemulusan eksponensial akan secara otomatis meningkatkan nilai ramalan. Sebaliknya apabila forecasts error adalah negatif, yang berarti nilai aktual permintaan lebih rendah daripada nilai ramalan (A-F < 0), maka model pemulusan eksponensial akan secara otomatis menurunkan nilai ramalan.
print(getwd())## [1] "D:/brigita tiara KULIAH/kuliah sem4/Ekono"
library(readxl)
JKII3<-read_excel("D:/brigita tiara KULIAH/kuliah sem4/Ekono/JKII.xlsx",sheet = "011")
JKII3## # A tibble: 50 x 7
## Date Opening High Low Closing `Adj Close` Volume
## <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2021-05-17 00:00:00 559330017 561080017 547849976 5.51e8 550609985 9.87e8
## 2 2021-05-24 00:00:00 552989990 560190002 541609985 5.54e8 554090027 5.92e9
## 3 2021-05-31 00:00:00 556130005 583539978 554169983 5.75e8 575020020 5.13e9
## 4 2021-06-07 00:00:00 577580017 579000000 558099976 5.66e8 566469971 6.39e9
## 5 2021-06-14 00:00:00 566710022 569049988 544080017 5.49e8 548520020 6.67e9
## 6 2021-06-21 00:00:00 538390015 561270020 530960022 5.51e8 550729980 5.48e9
## 7 2021-06-28 00:00:00 552380005 552960022 540760010 5.48e8 547520020 4.64e9
## 8 2021-07-05 00:00:00 548830017 552349976 538070007 5.50e8 549969971 5.11e9
## 9 2021-07-12 00:00:00 553039978 557890015 539500000 5.51e8 550789978 4.58e9
## 10 2021-07-19 00:00:00 549539978 553309998 540469971 5.42e8 541750000 4.06e9
## # ... with 40 more rows
Metode single exponential smoothing merupakan metode yang digunakan pada peramalan jangka pendek yang biasanya hanya 1 bulan ke depan yang mengasumsikan bahwa data berfluktuasi di sekitar nilai mean yang tetap tanpa trend atau pola pertumbuhan konsisten.
dd<-data.frame(JKII3)
dd## Date Opening High Low Closing Adj.Close Volume
## 1 2021-05-17 559330017 561080017 547849976 550609985 550609985 987200000
## 2 2021-05-24 552989990 560190002 541609985 554090027 554090027 5919700000
## 3 2021-05-31 556130005 583539978 554169983 575020020 575020020 5125100000
## 4 2021-06-07 577580017 579000000 558099976 566469971 566469971 6385600000
## 5 2021-06-14 566710022 569049988 544080017 548520020 548520020 6670400000
## 6 2021-06-21 538390015 561270020 530960022 550729980 550729980 5476100000
## 7 2021-06-28 552380005 552960022 540760010 547520020 547520020 4642000000
## 8 2021-07-05 548830017 552349976 538070007 549969971 549969971 5114600000
## 9 2021-07-12 553039978 557890015 539500000 550789978 550789978 4580100000
## 10 2021-07-19 549539978 553309998 540469971 541750000 541750000 4062900000
## 11 2021-07-26 542500000 545789978 531820007 532789978 532789978 5777700000
## 12 2021-08-02 535179993 547460022 531500000 541130005 541130005 5175200000
## 13 2021-08-09 540130005 543520020 523780029 540130005 540130005 4180400000
## 14 2021-08-16 540900024 544369995 525440002 531549988 531549988 4311600000
## 15 2021-08-23 534320007 540919983 526890015 528909973 528909973 4505500000
## 16 2021-08-30 531770020 545820007 531770020 543770020 543770020 4807300000
## 17 2021-09-06 544890015 546570007 526650024 540479980 540479980 5702400000
## 18 2021-09-13 538700012 545849976 533760010 542039978 542039978 5725800000
## 19 2021-09-20 541169983 544929993 526159973 540260010 540260010 5693500000
## 20 2021-09-27 540520020 552539978 533869995 546039978 546039978 6981600000
## 21 2021-10-04 546640015 572700012 546640015 570590027 570590027 10640400000
## 22 2021-10-11 572090027 590859985 568729980 583700012 583700012 8613300000
## 23 2021-10-18 586099976 590580017 571219971 577250000 577250000 6612600000
## 24 2021-10-25 577880005 580599976 559190002 567929993 567929993 6187400000
## 25 2021-11-01 569429993 570909973 555030029 565419983 565419983 4989800000
## 26 2021-11-08 567330017 570270020 564429993 566520020 566520020 4140900000
## 27 2021-11-15 567070007 577539978 559239990 577119995 577119995 5313100000
## 28 2021-11-22 578010010 585159973 563859985 565929993 565929993 6409300000
## 29 2021-11-29 564320007 573650024 556919983 560609985 560609985 6953600000
## 30 2021-12-06 561349976 572489990 557989990 572489990 572489990 8369000000
## 31 2021-12-13 573559998 574859985 558320007 562719971 562719971 5640900000
## 32 2021-12-20 560489990 564229980 556159973 560890015 560890015 3248100000
## 33 2021-12-27 562559998 569419983 561890015 562020020 562020020 3930300000
## 34 2022-01-03 560669983 575479980 557770020 572869995 572869995 6859700000
## 35 2022-01-10 574309998 574909973 557169983 563929993 563929993 7088100000
## 36 2022-01-17 565340027 566299988 545929993 566299988 566299988 7479600000
## 37 2022-01-24 560200012 560669983 549500000 557520020 557520020 4724500000
## 38 2022-01-31 558070007 563669983 553919983 562640015 562640015 3055500000
## 39 2022-02-07 568849976 575630005 562859985 568929993 568929993 5360900000
## 40 2022-02-14 565489990 572669983 558059998 570549988 570549988 5155500000
## 41 2022-02-21 570239990 576409973 560479980 571409973 571409973 8089000000
## 42 2022-02-28 581179993 583700012 569309998 583140015 583140015 6178400000
## 43 2022-03-07 585409973 592739990 568830017 582869995 582869995 13026600000
## 44 2022-03-14 584659973 586010010 565510010 573580017 573580017 11476500000
## 45 2022-03-21 575239990 590369995 571539978 584150024 584150024 8637200000
## 46 2022-03-28 584289978 595830017 583469971 594159973 594159973 9158700000
## 47 2022-04-04 595059998 612440002 593820007 611260010 611260010 6446800000
## 48 2022-04-11 612140015 613710022 594469971 607799988 607799988 6369100000
## 49 2022-04-18 608770020 616840027 602059998 606270020 606270020 7645700000
## 50 2022-04-25 603429993 624130005 597669983 619200012 619200012 6935700000
Karena data berupa data list maka akan dirubah dalam bentuk integer.
Y<-as.integer(dd$Opening)
X<-as.integer(dd$Closing)library(forecast)
library(dplyr)
SES1<-ses(dd$Closing ,h=10)
plot(SES1)SES1## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 51 619198718 607294412 631103025 600992652 637404784
## 52 619198718 602364328 636033108 593452741 644944696
## 53 619198718 598581230 639816207 587666990 650730446
## 54 619198718 595391892 643005545 582789319 655608118
## 55 619198718 592582010 645815426 578491976 659905461
## 56 619198718 590041672 648355764 574606865 663790572
## 57 619198718 587705584 650691852 571034126 667363310
## 58 619198718 585531202 652866234 567708696 670688741
## 59 619198718 583488974 654908462 564585378 673812058
## 60 619198718 581557385 656840051 561631267 676766169
Metode Holt-Winters adalah metode prediksi kuantitatif yang digunakan untuk memprediksi data tren dan musiman. Beberapa variasi dari metode Holt-Winters adalah Multiplicative Holt-Winters, Additive Holt-Winters dan Double Seasonal Holt-Winters.
Pada R ini, metode Holt-Winter menggunakan parameter alpha, gamma, dan beta.
ss <- log(JKII3$Closing)
library(vegan)
ss[is.infinite(ss)]<-0hwr<-HoltWinters(ss, beta = FALSE, gamma = FALSE)
hwr## Holt-Winters exponential smoothing without trend and without seasonal component.
##
## Call:
## HoltWinters(x = ss, beta = FALSE, gamma = FALSE)
##
## Smoothing parameters:
## alpha: 0.9999526
## beta : FALSE
## gamma: FALSE
##
## Coefficients:
## [,1]
## a 20.24394
predic<-forecast(hwr,h=10)
predic## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 51 20.24394 20.22319 20.26469 20.21220 20.27567
## 52 20.24394 20.21459 20.27328 20.19906 20.28882
## 53 20.24394 20.20800 20.27988 20.18897 20.29891
## 54 20.24394 20.20244 20.28544 20.18047 20.30741
## 55 20.24394 20.19754 20.29034 20.17298 20.31490
## 56 20.24394 20.19311 20.29477 20.16620 20.32167
## 57 20.24394 20.18904 20.29884 20.15997 20.32790
## 58 20.24394 20.18525 20.30263 20.15418 20.33370
## 59 20.24394 20.18169 20.30619 20.14873 20.33914
## 60 20.24394 20.17832 20.30956 20.14358 20.34429
Nilai Akurasi
SSE<-hwr$SSE
SSE## [1] 0.01286662
plot(hwr)Dari output yang muncul pada tingkat akurasi terlihat bahwa data hanya dapat memunculkan nilai SSE dan pada metode pemulusan dengan nilai lamda sebesar 0.1 ini memiliki nilai akurat yang jauh lebih kecil sehingga dapat dinyatakan bahwa metode ini lebih baik.
Metode Double expoential smoothing adalah suatu metode yang paling luas digunakan untuk menentukan persamaan trend data pemulusan kedua melalui proses smoothing. Sistem peramalan ini menangkap pola dari data yang telah lalu kemudian digunakan untuk memproyeksikan data yang akan datang.
des<-HoltWinters(ss,gamma = FALSE, beta = FALSE, alpha = 0.1)
plot(des)predic<-forecast(des,h=10)
predic## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 51 20.18802 20.15570 20.22035 20.13858 20.23746
## 52 20.18802 20.15553 20.22051 20.13834 20.23771
## 53 20.18802 20.15537 20.22067 20.13809 20.23795
## 54 20.18802 20.15521 20.22083 20.13785 20.23819
## 55 20.18802 20.15506 20.22099 20.13760 20.23844
## 56 20.18802 20.15490 20.22114 20.13736 20.23868
## 57 20.18802 20.15474 20.22130 20.13712 20.23892
## 58 20.18802 20.15458 20.22146 20.13688 20.23916
## 59 20.18802 20.15443 20.22161 20.13664 20.23940
## 60 20.18802 20.15427 20.22177 20.13641 20.23964
Nilai Akurasi
SSE<-des$SSE
SSE## [1] 0.03825422
plot(des)Dari output yang muncul pada tingkat akurasi terlihat bahwa data hanya dapat memunculkan nilai SSE pada metode double exponential smoothing dengan nilai lamda sebesar 0.1 dan gamma sebesar 0.1 ini memiliki nilai akurat yang jauh lebih kecil sehingga dapat dinyatakan bahwa metode ini lebih baik.
hwr$SSE## [1] 0.01286662
des$SSE## [1] 0.03825422
Pada nilai SSE anatar metode Holt-winter dengan Double exponential smoothing ini dapat dilihat bahwa metode Double Exponential Smoothing memiliki nilai yang lebih kecil dengan lambda sebesar 0.1 dan gamma sebesar 0.1 sehingga dapat dinyatakan bahwa metode ini lebih baik untuk digunakan.
Dataset yang dipakai adalah JKII yang mana JKII ini atau dapat disebut JII merupakan indeks saham syariah yang pertama kali diluncurkan di pasar modal Indonesia pada tanggal 3 Juli 2000.
mydata<-JKII
class(mydata)## [1] "tbl_df" "tbl" "data.frame"
str(mydata)## tibble [50 x 7] (S3: tbl_df/tbl/data.frame)
## $ Date : POSIXct[1:50], format: "2021-05-17" "2021-05-24" ...
## $ Opening : num [1:50] 5.59e+08 5.53e+08 5.56e+08 5.78e+08 5.67e+08 ...
## $ High : num [1:50] 5.61e+08 5.60e+08 5.84e+08 5.79e+08 5.69e+08 ...
## $ Low : num [1:50] 5.48e+08 5.42e+08 5.54e+08 5.58e+08 5.44e+08 ...
## $ Closing : num [1:50] 5.51e+08 5.54e+08 5.75e+08 5.66e+08 5.49e+08 ...
## $ Adj Close: num [1:50] 5.51e+08 5.54e+08 5.75e+08 5.66e+08 5.49e+08 ...
## $ Volume : num [1:50] 9.87e+08 5.92e+09 5.13e+09 6.39e+09 6.67e+09 ...
Karena data mmasih dalam bentuk data frame maka akan dirubah dalam bentuk time series dengan function ts()
tsdata<-ts(mydata)
class(tsdata)## [1] "mts" "ts" "matrix"
str(tsdata)## Time-Series [1:50, 1:7] from 1 to 50: 1.62e+09 1.62e+09 1.62e+09 1.62e+09 1.62e+09 ...
## - attr(*, "dimnames")=List of 2
## ..$ : NULL
## ..$ : chr [1:7] "Date" "Opening" "High" "Low" ...
summary(tsdata)## Date Opening High
## Min. :1.621e+09 Min. :531770020 Min. :540919983
## 1st Qu.:1.629e+09 1st Qu.:549007507 1st Qu.:554455002
## Median :1.636e+09 Median :563440002 Median :571699982
## Mean :1.636e+09 Mean :563703601 Mean :571263796
## 3rd Qu.:1.643e+09 3rd Qu.:575007492 3rd Qu.:582804978
## Max. :1.651e+09 Max. :612140015 Max. :624130005
## Low Closing Adj Close
## Min. :523780029 Min. :528909973 Min. :528909973
## 1st Qu.:539742493 1st Qu.:548882508 1st Qu.:548882508
## Median :556539978 Median :564674988 Median :564674988
## Mean :553983997 Mean :564246798 Mean :564246798
## 3rd Qu.:563609985 3rd Qu.:573402512 3rd Qu.:573402512
## Max. :602059998 Max. :619200012 Max. :619200012
## Volume
## Min. :9.872e+08
## 1st Qu.:4.853e+09
## Median :5.752e+09
## Mean :6.131e+09
## 3rd Qu.:6.949e+09
## Max. :1.303e+10
JKII<-tsdata[,2]plot(JKII)
ts.plot(JKII)ts.plot(JKII, main = "Grafik 01",
xlab=" Saham",
ylab=" Tahun")plot(diff(JKII), main="Grafik 02",
xlab=" Saham",
ylab=" Tahun",
sub="JKII D=1")Dapat dilihat pada plot JKII, grafik yang dihasilkan cenderung arah nya naik. Namun pada plot kedua terlihat hasil grafiknya lebih stabil dan bergerak pada sumbu horizontal sehingga ini merupakan stasioner.Maka dari itu akan dilakukan uji stasioneritas.
Uji Stasioneritas Augmented Dickey-Fuller (ADF) adalah pengujian yang dilakukan terhadap data deret waktu (time series) untuk mengetahui apakah data deret waktu tersebut stasioner atau tidak.
library(tseries)
adf.test(JKII)##
## Augmented Dickey-Fuller Test
##
## data: JKII
## Dickey-Fuller = -2.3318, Lag order = 3, p-value = 0.4412
## alternative hypothesis: stationary
Dapat dilihat pada p-value = 0.7273, ini melebihi nilai alpha maka tidak stasioner.
library(tseries)
adf.test(diff(JKII))##
## Augmented Dickey-Fuller Test
##
## data: diff(JKII)
## Dickey-Fuller = -4.3439, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary
Namun dilihat dari output diff(JKII) dengan nilai p-value = 0.03002 yang mana ini lebih rendah dari nilai alpha, sehingga dapat disebut sudah stasioner.Kemudian setelah dilakukan uji stasioneer ini akan di identifikasi model.
Fungsi Autokorelasi (ACF) dan Fungsi Autokorelasi Parsial (PACF) dimana ACF mengukur korelasi antar pengamatan dengan jeda k; sedangkan PACF mengukur korelasi antar pengamatan dengan jeda k dan dengan mengontrol korelasi antar dua pengamatan dengan jeda kurang dari k.
par(mfrow=c(2,1)) # mempartisi grafik
acf(diff(JKII))
pacf(diff(JKII))Dapat dilihat dari 2 partisi diatas bahwa ada beberapa lag yang melewati batas dan tidak stabil.
library(forecast)
Arima.1<-arima(JKII,order=c(1,1,0))
summary(Arima.1)##
## Call:
## arima(x = JKII, order = c(1, 1, 0))
##
## Coefficients:
## ar1
## -0.0392
## s.e. 0.1423
##
## sigma^2 estimated as 1.006e+14: log likelihood = -859.46, aic = 1722.91
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 932063.2 9928375 7715750 0.1444249 1.362964 0.9739601 -0.02231258
Arima.2<-arima(JKII,order=c(0,1,1))
summary(Arima.2)##
## Call:
## arima(x = JKII, order = c(0, 1, 1))
##
## Coefficients:
## ma1
## -0.0919
## s.e. 0.2194
##
## sigma^2 estimated as 1.004e+14: log likelihood = -859.41, aic = 1722.81
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 994175.2 9917528 7625845 0.1542927 1.346737 0.9626114 0.01364014
Arima.3<-arima(JKII,order=c(1,1,1))
summary(Arima.3)##
## Call:
## arima(x = JKII, order = c(1, 1, 1))
##
## Coefficients:
## ar1 ma1
## 0.5238 -0.6813
## s.e. 0.4384 0.3778
##
## sigma^2 estimated as 9.725e+13: log likelihood = -858.66, aic = 1723.33
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 1282956 9762935 7380017 0.2014805 1.303245 0.9315804 0.0575082
Arima.4<-arima(JKII,order=c(0,1,2))
summary(Arima.4)##
## Call:
## arima(x = JKII, order = c(0, 1, 2))
##
## Coefficients:
## ma1 ma2
## -0.0776 -0.2346
## s.e. 0.1344 0.1219
##
## sigma^2 estimated as 9.332e+13: log likelihood = -857.68, aic = 1721.36
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 1301113 9563271 7511975 0.2053082 1.328696 0.9482375 -0.0170243
Arima.5<-arima(JKII,order=c(2,1,0))
summary(Arima.5)##
## Call:
## arima(x = JKII, order = c(2, 1, 0))
##
## Coefficients:
## ar1 ar2
## -0.0503 -0.2742
## s.e. 0.1372 0.1351
##
## sigma^2 estimated as 9.254e+13: log likelihood = -857.49, aic = 1720.99
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 1236639 9523449 7573754 0.1949752 1.339776 0.9560358 -0.05078101
library(lmtest)
coeftest(Arima.1) # koef tidak signifikan##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 -0.039218 0.142285 -0.2756 0.7828
coeftest(Arima.2) # koef tidak signifikan##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ma1 -0.091873 0.219428 -0.4187 0.6754
coeftest(Arima.3)##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 0.52376 0.43836 1.1948 0.23216
## ma1 -0.68135 0.37784 -1.8033 0.07135 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
coeftest(Arima.4)##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ma1 -0.077602 0.134442 -0.5772 0.56379
## ma2 -0.234567 0.121896 -1.9243 0.05431 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
coeftest(Arima.5)##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 -0.050311 0.137194 -0.3667 0.71383
## ar2 -0.274180 0.135141 -2.0288 0.04247 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Dapat diliat hari output coeftest() ini pada :
Arima.1 nilai dari Pr(>|z|) = 0.8022 yaitu tidak signifikan.
Arima.2 nilai dari Pr(>|z|) = 0.7036 yaitu tidak signifikan.
Arima.3 nilai dari Pr(>|z|) = 0.2746 yaitu tidak signifikan .
Arima.4 nilai dari Pr(>|z|) = 0.05819 . yaitu signifikan hanya pada ma2.
Arima.5 nilai dari Pr(>|z|) = 0.0325 * yaitu signifikan pada ar2.
Setelah itu akan dilakukan diagnostic checking pada arima yang signifikan yaitu Arima.4 dan Arima 5.
tsdiag(Arima.4)Pada output ACF of Residual Arima.4 ini, semua lag berada pada bawah garis batas kecuali lag 1 dan lag 10 dan untuk output p values for Ljung-Box statistic semua berada pada atas garis batas.
tsdiag(Arima.5)Pada output ACF of Residual Arima.5 ini, semua lag berada pada bawah garis batas kecuali lag 1 dan lag 10 dan untuk output p values for Ljung-Box statistic semua berada pada atas garis batas.
Selanjutnya akan dilakukan uji nilai tengah terhadap residual pada setiap model.
resid4=Arima.4$residuals
t.test(resid4, mu=0, alternative = "two.sided")##
## One Sample t-test
##
## data: resid4
## t = 0.96131, df = 49, p-value = 0.3411
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -1418804 4021029
## sample estimates:
## mean of x
## 1301113
resid5=Arima.5$residuals
t.test(resid5, mu=0, alternative = "two.sided")##
## One Sample t-test
##
## data: resid5
## t = 0.91673, df = 49, p-value = 0.3638
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -1474226 3947503
## sample estimates:
## mean of x
## 1236639
Dapat dilihat dari output t.test() untuk nilai p-values melebihi nilai alpha.
2.Resid5 : p-value = 0.1775
library(stargazer)
str<-stargazer(Arima.3, Arima.4, Arima.5, type="text", digits=2, out="JKII.rtf")##
## ===================================================================================
## Dependent variable:
## -----------------------------------------------------------------
## JKII
## (1) (2) (3)
## -----------------------------------------------------------------------------------
## ar1 0.52 -0.05
## (0.44) (0.14)
##
## ma1 -0.68* -0.08
## (0.38) (0.13)
##
## ma2 -0.23*
## (0.12)
##
## ar2 -0.27**
## (0.14)
##
## -----------------------------------------------------------------------------------
## Observations 49 49 49
## Log Likelihood -858.66 -857.68 -857.49
## sigma2 97,253,714,047,155.00 93,316,220,410,676.00 92,540,641,547,008.00
## Akaike Inf. Crit. 1,723.33 1,721.36 1,720.99
## ===================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Dari output Dependent variable terlihat pada Arima.4 hanya signifikan pada ma2 dan Arima.5 hanya signifikan pada ar2. Dan untuk perbandingan Akaike, terlihat bahwa Arima.5 lebih kecil yaitu 1,711.84
accuracy(Arima.4)## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 1301113 9563271 7511975 0.2053082 1.328696 0.9482375 -0.0170243
accuracy(Arima.5)## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 1236639 9523449 7573754 0.1949752 1.339776 0.9560358 -0.05078101
Dari hasil perbandingan menggunakan error dengna function accuracy() terlihat pada kolom RMSE, MAE, dan MAPE pada Arima.5 yang lebih kecil.
Sehingga dapat dikatakn Arima.5 dengan ord0=(2,1,0) adalah model yang dipilih.
pred.data=predict(Arima.5,n.ahead=6) #dibuat 6 periode kedepan
pred.data## $pred
## Time Series:
## Start = 51
## End = 56
## Frequency = 1
## [1] 604622642 606026767 605629123 605264146 605391534 605485195
##
## $se
## Time Series:
## Start = 51
## End = 56
## Frequency = 1
## [1] 9619805 13266645 14783380 16266800 17908339 19370212
Bagi saya untuk 3 model dari Regresi, Exponential Smoothing, dan ARIMA ini memiliki kelebihan dan kekurangannya masing-masing. Namun dapat dilihat bahwa untuk model Exponential dan ARIMA ini jauh lebih baik dan lebih detail dalam memvisualisasikan dan menganalisis data. Saya mengambil data dalam kurun waktu yang pendek dan ARIMA ini memiliki metode yang lebih baik dan untuk Exponential Smoothing ini juga dapat membantu saya dalam menganalisa data yang stabil. Dengan demikian, metode tersebut dapat membantu dalam meramalkan suatu strategi pada masa yang akan datang.