Perbandingan Smoothing, ARIMA, dan ARIMAX untuk prediksi harga minyak mentah
2022-04-26
Pendahuluan
https://bookdown.org/mammarsahab3/LaporanMPDW/
Struktur penelitian
Laporan ini akan membandingkan beberapa metode peralaman deret waktu untuk data harga minyak mentah. Metode tersebut akan dilatih menggunakan harga minyak mentah dari tahun 2009 sampai 2016, lalu diuji dengan meramal harga minyak mentah tahun 2017. Pembagian tersebut juga dilakukan di (He 2018), yang membandingkan model deret waktu seperti pemulusan dan ARIMA dengan model pembelajaran mesin (SVM). Berbeda dengan penelitian tersebut, penelitian ini akan menambahkan jenis pemulusan yang dipakai, serta mencoba menambahkan pengaruh peubah bebas dummy yang memodelkan efek hari setelah libur, peubahan struktural pada rezim harga minyak, dan lain-lain. Sekarang, penulisan laporan masih dalam tahap praproses dan eksplorasi data.
Ekstraksi data
Dataset yang digunakan sebagai berikut. Ambil data minyak dari tahun 2000 sampai sekarang Sys.Date()
dengam bantuan library quantmod
(Ryan dan Ulrich 2020):
library(quantmod)
library(dtplyr)
library(dplyr)
library(data.table)
<- as.POSIXct("2000-08-23")
start <- as.POSIXct(Sys.Date())
end
getSymbols(Symbols = "CL=F",src = "yahoo", from = start, to = end)
<- lazy_dt(`CL=F`) %>%
crudemutate(X=as.Date(index,format="%d/%m/%Y")) %>% select(X,`CL=F.Close`)
Data tersebut merupakan harga kontrak berjangka minyak West Texas Intermediate (WTI) yang diperdangangkan di New York Mercantile Exchange (NYMEX). Peubah yang akan dimodelkan adalah harga close, atau harga minyak saat pasar ditutup:
::kable(head(crude,n=5),
knitrcol.names = c("Tanggal","Harga Penutupan"))
Tanggal | Harga Penutupan |
---|---|
2000-08-23 | 32.05 |
2000-08-24 | 31.63 |
2000-08-25 | 32.05 |
2000-08-28 | 32.87 |
2000-08-29 | 32.72 |
Lakukan pembagian data. Data yang diambil selalu data terbaru karena menggunakan Sys.Date()
:
<-crude %>% filter(X >= as.Date("2009-01-01") & X <= as.Date("2017-12-31"))
crude0917
<- crude %>% filter(X >= as.Date("2017-01-01") & X <= as.Date(Sys.Date())) %>% data.table::as.data.table() crudenow
Sudah diambil data yang relevan untuk diteliti.