Crude Oil Prices: Brent - Europe

Untuk menganalisa harga minyak Crude Brent Europe bisa menggunakan Dataset dari FRED

Kita mengambil datanya menggunakan library Quandl. Quandl adalah resources yang bagus dan populer dalam industri keuangan.

library(Quandl)
library(forecast)
library(highcharter)

Download Data Menggunakan Quandl

Quandl memudahkan untuk memilih jenis objek bisa berupa raw/dataframe, xts, atau zoo. Selain itu juga dapat memilih periode (Harian/Mingguan/Bulanan), serta tanggal mulai dan akhir.

# And monthly using xts as the type.
oil_monthly <- Quandl("FRED/MCOILBRENTEU", 
                      type = "xts", 
                      collapse = "monthly",  
                    start_date = "2010-01-01", 
                    end_date = "2020-12-01")

head untuk mengetahui data awal dari dataset yang sudah didownload.

head(oil_monthly)
          [,1]
Jan 2010 76.17
Feb 2010 73.75
Mar 2010 78.83
Apr 2010 84.82
May 2010 75.95
Jun 2010 74.76

tail untuk melihat data akhir dari dataset yang sudah didownload.

tail(oil_monthly)
          [,1]
Jul 2020 43.24
Aug 2020 44.74
Sep 2020 40.91
Oct 2020 40.19
Nov 2020 42.69
Dec 2020 49.99

Data yang akan kita pakai adalah data 10 tahun, yakni data mulai tahun 2010 awal hingga 2020 akhir. Agar format tanggal tampak lebih bagus, maka perlu mengunakan fungsi seq() dan mdy().

index(oil_monthly) <- seq(mdy('01/01/2010'), mdy(last(index(oil_monthly))), by = 'months')

Setelah itu kita lihat hasilnya dengan menggunakan fungsi head

head(index(oil_monthly))
[1] "2010-01-01" "2010-02-01" "2010-03-01" "2010-04-01" "2010-05-01" "2010-06-01"

Sekarang format tanggal sudah lebih baik, maka perlu divisualisasikan dengan menggunakan library highcharter, karena kita mengimport data dari Quandl dalam bentuk xts maka kita dapat menghubungkannya lansung ke fungsi htchart().

hchart(oil_monthly)

Atau kita juga bisa menggunakan kode highchart(type= "stock") untuk menghasilkan chart yang sama. Tambahkan label $ ke y-axis dengan hc_yAxis

highchart(type = "stock") %>% 
  hc_add_series(oil_monthly, color = "cornflowerblue") %>% 
  hc_yAxis(title = list(text = "Monthly Price"),
           labels = list(format = "${value}"),
           opposite = FALSE) %>% 
  hc_add_theme(hc_theme_flat())

Terlihat penurunan harga di pertengahan tahun 2014 hingga awal tahun 2015. Sekarang kita akan mencoba mengekstrak beberapa data agar lebih menarik dengan menggunakan model arima, gunakan fungsi auto.arima() untuk memprediksi harnya minyak.

Arima

auto.arima(oil_monthly)
Series: oil_monthly 
ARIMA(0,1,1) 

Coefficients:
         ma1
      0.3955
s.e.  0.0806

sigma^2 estimated as 31.35:  log likelihood=-411.13
AIC=826.26   AICc=826.35   BIC=832.01

Selanjutnya kita akan menggunakan fungsi forecast() untuk memprediksi harga minyak 6 bulan kedepan berdasarkan model arima yang sudah dibuat.

auto.arima(oil_monthly) %>% 
  forecast(h = 6)

Point Forecast berada di sekitar $53. Sekarang kita akan memvisualisasikan hasil dari forecast. Kita akan menggunakan fitur dari highcharter, hebatnya fitur ini adalah dapat menerima hasil dari forecast secara langsung. Kita dapat menyalurkan model dan hasil forecast lansung menggunakan hchart().

auto.arima(oil_monthly) %>% 
  forecast(h = 6) %>% 
  hchart() %>% 
  hc_title(text = "Oil historical and forecast") %>% 
  hc_yAxis(title = list(text = "monthly price"),
           labels = list(format = "${value}"),
           opposite = FALSE) %>% 
  hc_add_theme(hc_theme_flat()) %>% 
  hc_navigator(enabled = TRUE)
LS0tDQp0aXRsZTogIlRpbWUgU2VyaWVzIENydWRlIE9pbCBQcmljZXM6IEJyZW50IC0gRXVyb3BlIE1lbmdndW5ha2FuIFIiDQphdXRob3I6ICJQcm9mLiBEciBTdWhhcnRvbm8gTS5Lb20gJiBVJ3VuIFNldGlhd2F0aSwgUy5Lb20iDQpkYXRlOiAiMTEvMjkvMjAyMSINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICBudW1iZXJfc2VjdGlvbnM6IG5vDQogICAgdGhlbWU6IHNwYWNlbGFiDQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogICAgdG9jOiB0cnVlDQogICAgdG9jX2RlcHRoOiAyDQogICAgdG9jX2Zsb2F0OiB0cnVlDQpzdWJ0aXRsZTogTWFnaXN0ZXIgSW5mb3JtYXRpa2EgVUlOIE1hdWxhbmEgTWFsaWsgSWJyYWhpbSBNYWxhbmcgDQotLS0NCg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCg0KYm9keXsgLyogTm9ybWFsICAqLw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICB9DQp0ZCB7ICAvKiBUYWJsZSAgKi8NCiAgZm9udC1zaXplOiAxMnB4Ow0KfQ0KaDEudGl0bGUgew0KICBmb250LXNpemU6IDM4cHg7DQogIGNvbG9yOiBsaWdodGJsdWU7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KaDEgeyAvKiBIZWFkZXIgMSAqLw0KICBmb250LXNpemU6IDI0cHg7DQogIGNvbG9yOiBEYXJrQmx1ZTsNCn0NCmgyIHsgLyogSGVhZGVyIDIgKi8NCiAgZm9udC1zaXplOiAyMHB4Ow0KICBjb2xvcjogRGFya0JsdWU7DQp9DQpoMyB7IC8qIEhlYWRlciAzICovDQogIGZvbnQtc2l6ZTogMTZweDsNCiMgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBjb2xvcjogRGFya0JsdWU7DQp9DQpoNCB7IC8qIEhlYWRlciA0ICovDQogIGZvbnQtc2l6ZTogMTRweDsNCiAgY29sb3I6IERhcmtCbHVlOw0KfQ0KY29kZS5yeyAvKiBDb2RlIGJsb2NrICovDQogICAgZm9udC1zaXplOiAxMnB4Ow0KfQ0KcHJlIHsgLyogQ29kZSBibG9jayAtIGRldGVybWluZXMgY29kZSBzcGFjaW5nIGJldHdlZW4gbGluZXMgKi8NCiAgICBmb250LXNpemU6IDEycHg7DQp9DQo8L3N0eWxlPg0KLS0tDQoNCiMgQ3J1ZGUgT2lsIFByaWNlczogQnJlbnQgLSBFdXJvcGUNCg0KVW50dWsgbWVuZ2FuYWxpc2EgaGFyZ2EgbWlueWFrIENydWRlIEJyZW50IEV1cm9wZSBiaXNhIG1lbmdndW5ha2FuIERhdGFzZXQgZGFyaSA8YSBocmVmID0gImh0dHBzOi8vZnJlZC5zdGxvdWlzZmVkLm9yZy9zZXJpZXMvTUNPSUxCUkVOVEVVIj4gRlJFRCA8L2E+DQoNCktpdGEgbWVuZ2FtYmlsIGRhdGFueWEgbWVuZ2d1bmFrYW4gbGlicmFyeSBgUXVhbmRsYC4gUXVhbmRsIGFkYWxhaCByZXNvdXJjZXMgeWFuZyBiYWd1cyBkYW4gcG9wdWxlciBkYWxhbSBpbmR1c3RyaSBrZXVhbmdhbi4gDQoNCmBgYHtyfQ0KbGlicmFyeShRdWFuZGwpDQpsaWJyYXJ5KGZvcmVjYXN0KQ0KbGlicmFyeShoaWdoY2hhcnRlcikNCg0KYGBgDQoNCiMgRG93bmxvYWQgRGF0YSBNZW5nZ3VuYWthbiBRdWFuZGwNCg0KUXVhbmRsIG1lbXVkYWhrYW4gdW50dWsgbWVtaWxpaCBqZW5pcyBvYmplayBiaXNhIGJlcnVwYSByYXcvZGF0YWZyYW1lLCB4dHMsIGF0YXUgem9vLiBTZWxhaW4gaXR1IGp1Z2EgZGFwYXQgbWVtaWxpaCBwZXJpb2RlIChIYXJpYW4vTWluZ2d1YW4vQnVsYW5hbiksIHNlcnRhIHRhbmdnYWwgbXVsYWkgZGFuIGFraGlyLg0KDQpgYGB7cn0NCiMgQW5kIG1vbnRobHkgdXNpbmcgeHRzIGFzIHRoZSB0eXBlLg0Kb2lsX21vbnRobHkgPC0gUXVhbmRsKCJGUkVEL01DT0lMQlJFTlRFVSIsIA0KICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAieHRzIiwgDQogICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2UgPSAibW9udGhseSIsICANCiAgICAgICAgICAgICAgICAgICAgc3RhcnRfZGF0ZSA9ICIyMDEwLTAxLTAxIiwgDQogICAgICAgICAgICAgICAgICAgIGVuZF9kYXRlID0gIjIwMjAtMTItMDEiKQ0KDQpgYGANCg0KYGhlYWRgIHVudHVrIG1lbmdldGFodWkgZGF0YSBhd2FsIGRhcmkgZGF0YXNldCB5YW5nIHN1ZGFoIGRpZG93bmxvYWQuDQoNCmBgYHtyfQ0KaGVhZChvaWxfbW9udGhseSkNCmBgYA0KYHRhaWxgIHVudHVrIG1lbGloYXQgZGF0YSBha2hpciBkYXJpIGRhdGFzZXQgeWFuZyBzdWRhaCBkaWRvd25sb2FkLg0KYGBge3J9DQp0YWlsKG9pbF9tb250aGx5KQ0KYGBgDQpEYXRhIHlhbmcgYWthbiBraXRhIHBha2FpIGFkYWxhaCBkYXRhIDEwIHRhaHVuLCB5YWtuaSBkYXRhIG11bGFpIHRhaHVuIDIwMTAgYXdhbCBoaW5nZ2EgMjAyMCBha2hpci4gQWdhciBmb3JtYXQgdGFuZ2dhbCB0YW1wYWsgbGViaWggYmFndXMsIG1ha2EgcGVybHUgbWVuZ3VuYWthbiBmdW5nc2kgYHNlcSgpYCBkYW4gYG1keSgpYC4NCg0KYGBge3J9DQppbmRleChvaWxfbW9udGhseSkgPC0gc2VxKG1keSgnMDEvMDEvMjAxMCcpLCBtZHkobGFzdChpbmRleChvaWxfbW9udGhseSkpKSwgYnkgPSAnbW9udGhzJykNCmBgYA0KDQpTZXRlbGFoIGl0dSBraXRhIGxpaGF0IGhhc2lsbnlhIGRlbmdhbiBtZW5nZ3VuYWthbiBmdW5nc2kgYGhlYWRgDQoNCmBgYHtyfQ0KaGVhZChpbmRleChvaWxfbW9udGhseSkpDQpgYGANClNla2FyYW5nIGZvcm1hdCB0YW5nZ2FsIHN1ZGFoIGxlYmloIGJhaWssIG1ha2EgcGVybHUgZGl2aXN1YWxpc2FzaWthbiBkZW5nYW4gbWVuZ2d1bmFrYW4gbGlicmFyeSBgaGlnaGNoYXJ0ZXJgLCBrYXJlbmEga2l0YSBtZW5naW1wb3J0IGRhdGEgZGFyaSBRdWFuZGwgZGFsYW0gYmVudHVrIHh0cyBtYWthIGtpdGEgZGFwYXQgbWVuZ2h1YnVuZ2thbm55YSBsYW5zdW5nIGtlIGZ1bmdzaSBodGNoYXJ0KCkuICANCg0KYGBge3J9DQpoY2hhcnQob2lsX21vbnRobHkpDQpgYGANCiBBdGF1IGtpdGEganVnYSBiaXNhIG1lbmdndW5ha2FuIGtvZGUgYGhpZ2hjaGFydCh0eXBlPSAic3RvY2siKWAgdW50dWsgbWVuZ2hhc2lsa2FuIGNoYXJ0IHlhbmcgc2FtYS4gVGFtYmFoa2FuIGxhYmVsIGAkYCBrZSB5LWF4aXMgZGVuZ2FuIGBoY195QXhpc2ANCg0KYGBge3J9DQpoaWdoY2hhcnQodHlwZSA9ICJzdG9jayIpICU+JSANCiAgaGNfYWRkX3NlcmllcyhvaWxfbW9udGhseSwgY29sb3IgPSAiY29ybmZsb3dlcmJsdWUiKSAlPiUgDQogIGhjX3lBeGlzKHRpdGxlID0gbGlzdCh0ZXh0ID0gIk1vbnRobHkgUHJpY2UiKSwNCiAgICAgICAgICAgbGFiZWxzID0gbGlzdChmb3JtYXQgPSAiJHt2YWx1ZX0iKSwNCiAgICAgICAgICAgb3Bwb3NpdGUgPSBGQUxTRSkgJT4lIA0KICBoY19hZGRfdGhlbWUoaGNfdGhlbWVfZmxhdCgpKQ0KYGBgDQoNClRlcmxpaGF0IHBlbnVydW5hbiBoYXJnYSBkaSBwZXJ0ZW5nYWhhbiB0YWh1biAyMDE0IGhpbmdnYSBhd2FsIHRhaHVuIDIwMTUuIFNla2FyYW5nIGtpdGEgYWthbiBtZW5jb2JhIG1lbmdla3N0cmFrIGJlYmVyYXBhIGRhdGEgYWdhciBsZWJpaCBtZW5hcmlrIGRlbmdhbiBtZW5nZ3VuYWthbiBtb2RlbCBhcmltYSwgZ3VuYWthbiBmdW5nc2kgYGF1dG8uYXJpbWEoKWAgdW50dWsgbWVtcHJlZGlrc2kgaGFybnlhIG1pbnlhay4NCg0KIyBBcmltYQ0KYGBge3J9DQphdXRvLmFyaW1hKG9pbF9tb250aGx5KQ0KYGBgDQpTZWxhbmp1dG55YSBraXRhIGFrYW4gbWVuZ2d1bmFrYW4gZnVuZ3NpIGBmb3JlY2FzdCgpYCB1bnR1ayBtZW1wcmVkaWtzaSBoYXJnYSBtaW55YWsgNiBidWxhbiBrZWRlcGFuIGJlcmRhc2Fya2FuIG1vZGVsIGFyaW1hIHlhbmcgc3VkYWggZGlidWF0Lg0KDQpgYGB7cn0NCmF1dG8uYXJpbWEob2lsX21vbnRobHkpICU+JSANCiAgZm9yZWNhc3QoaCA9IDYpDQpgYGANClBvaW50IEZvcmVjYXN0IGJlcmFkYSBkaSBzZWtpdGFyICQ1My4gU2VrYXJhbmcga2l0YSBha2FuIG1lbXZpc3VhbGlzYXNpa2FuIGhhc2lsIGRhcmkgZm9yZWNhc3QuIEtpdGEgYWthbiBtZW5nZ3VuYWthbiBmaXR1ciBkYXJpIGBoaWdoY2hhcnRlcmAsIGhlYmF0bnlhIGZpdHVyIGluaSBhZGFsYWggZGFwYXQgbWVuZXJpbWEgaGFzaWwgZGFyaSBgZm9yZWNhc3RgIHNlY2FyYSBsYW5nc3VuZy4gS2l0YSBkYXBhdCBtZW55YWx1cmthbiBtb2RlbCBkYW4gaGFzaWwgZm9yZWNhc3QgbGFuc3VuZyBtZW5nZ3VuYWthbiBgaGNoYXJ0KClgLg0KDQpgYGB7cn0NCmF1dG8uYXJpbWEob2lsX21vbnRobHkpICU+JSANCiAgZm9yZWNhc3QoaCA9IDYpICU+JSANCiAgaGNoYXJ0KCkgJT4lIA0KICBoY190aXRsZSh0ZXh0ID0gIk9pbCBoaXN0b3JpY2FsIGFuZCBmb3JlY2FzdCIpICU+JSANCiAgaGNfeUF4aXModGl0bGUgPSBsaXN0KHRleHQgPSAibW9udGhseSBwcmljZSIpLA0KICAgICAgICAgICBsYWJlbHMgPSBsaXN0KGZvcm1hdCA9ICIke3ZhbHVlfSIpLA0KICAgICAgICAgICBvcHBvc2l0ZSA9IEZBTFNFKSAlPiUgDQogIGhjX2FkZF90aGVtZShoY190aGVtZV9mbGF0KCkpICU+JSANCiAgaGNfbmF2aWdhdG9yKGVuYWJsZWQgPSBUUlVFKQ0KYGBgDQoNCiMgRGFmdGFyIFB1c3Rha2ENCg0KPGEgaHJlZj0iaHR0cHM6Ly9ydmlld3MucnN0dWRpby5jb20vMjAxNy8wMy8xNy9xdWFuZGwtYW5kLWZvcmVjYXN0aW5nLyI+aHR0cHM6Ly9ydmlld3MucnN0dWRpby5jb20vMjAxNy8wMy8xNy9xdWFuZGwtYW5kLWZvcmVjYXN0aW5nLzwvYT4NCg0KPGEgaHJlZj0iaHR0cHM6Ly9mcmVkLnN0bG91aXNmZWQub3JnL3Nlcmllcy9NQ09JTEJSRU5URVUiPmh0dHBzOi8vZnJlZC5zdGxvdWlzZmVkLm9yZy9zZXJpZXMvTUNPSUxCUkVOVEVVPC9hPg0K