Harga minyak dunia merupakan salah satu indikator penting dalam perekonomian global karena memiliki pengaruh yang luas terhadap berbagai sektor seperti industri, transportasi, energi, hingga perdagangan internasional. Perubahan harga minyak dunia dapat mempengaruhi biaya produksi, harga energi, serta stabilitas ekonomi di berbagai negara. Oleh karena itu, pergerakan harga minyak dunia sering menjadi perhatian bagi pemerintah, pelaku industri, maupun investor.
Pergerakan harga minyak dipengaruhi oleh berbagai faktor seperti kondisi geopolitik, kebijakan produksi negara-negara penghasil minyak, perubahan permintaan energi global, serta dinamika ekonomi dunia. Dalam beberapa tahun terakhir pasar energi global mengalami berbagai dinamika yang cukup signifikan yang menyebabkan fluktuasi harga minyak menjadi semakin tinggi.
Ketegangan geopolitik di berbagai kawasan seperti konflik Rusia–Ukraina serta meningkatnya ketegangan di kawasan Timur Tengah turut memberikan dampak terhadap stabilitas pasar energi global. Konflik yang melibatkan Iran, Israel, serta pengaruh kebijakan Amerika Serikat terhadap stabilitas kawasan Timur Tengah menjadi salah satu faktor yang berpotensi mempengaruhi pasokan minyak dunia dan memicu volatilitas harga minyak di pasar internasional.
Berdasarkan latar belakang yang telah diuraikan, maka rumusan masalah dalam penelitian ini adalah sebagai berikut:
Bagaimana pola pergerakan harga minyak dunia pada periode Januari 2023 hingga Maret 2026?
Bagaimana model ARIMA yang paling sesuai untuk memodelkan pergerakan harga minyak dunia?
Bagaimana hasil peramalan harga minyak dunia pada periode mendatang menggunakan model ARIMA terbaik?
Tujuan dari penelitian ini adalah sebagai berikut:
Menganalisis pola pergerakan harga minyak dunia pada periode pengamatan.
Menentukan model ARIMA terbaik yang dapat digunakan untuk memodelkan data harga minyak dunia.
Melakukan peramalan harga minyak dunia pada periode mendatang menggunakan model yang diperoleh.
Analisis deret waktu (time series) merupakan metode statistik yang digunakan untuk menganalisis data yang diamati secara berurutan berdasarkan waktu. Tujuan utama dari analisis deret waktu adalah untuk mengidentifikasi pola yang terdapat pada data serta melakukan peramalan terhadap nilai di masa mendatang.
Salah satu metode yang sering digunakan dalam analisis deret waktu adalah metode Autoregressive Integrated Moving Average (ARIMA) yang diperkenalkan oleh Box dan Jenkins. Model ARIMA terdiri dari tiga komponen utama yaitu komponen autoregressive (AR), differencing atau integrasi (I), dan moving average (MA). Model ini dinotasikan sebagai ARIMA(p,d,q) dimana p merupakan orde autoregressive, d merupakan jumlah differencing yang dilakukan untuk membuat data stasioner, dan q merupakan orde moving average.
Pada data ekonomi dan komoditas seperti harga minyak dunia, pergerakan harga sering kali menunjukkan volatilitas yang tinggi akibat pengaruh faktor eksternal seperti kondisi geopolitik, kebijakan energi global, serta perubahan permintaan dan penawaran pasar energi. Oleh karena itu, penggunaan model deret waktu seperti ARIMA dapat membantu dalam memahami pola pergerakan harga serta memberikan gambaran awal mengenai kemungkinan pergerakan harga di masa mendatang.
Penelitian ini menggunakan data harga minyak dunia yang diperoleh dari situs Investing.com (https://www.investing.com/commodities/brent-oil-historical-data) dengan periode pengamatan Januari 2023 hingga Maret 2026. Data yang digunakan merupakan harga penutupan (closing price) minyak dunia yang dicatat setiap hari perdagangan.
Seluruh proses analisis dilakukan menggunakan perangkat lunak R dengan beberapa library pendukung sebagai berikut:
library(readr)
library(lubridate)
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(tseries)
library(ggplot2)
library(FinTS)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Attaching package: 'FinTS'
## The following object is masked from 'package:forecast':
##
## Acf
data <- read.csv("data harga minyak dunia.csv", sep=";")
data$Date <- as.Date(data$Date, format="%d/%m/%Y")
data <- data[order(data$Date),]
head(data)
## Date Price
## 1 2023-01-03 82.10
## 2 2023-01-04 77.84
## 3 2023-01-05 78.69
## 4 2023-01-06 78.57
## 5 2023-01-09 79.65
## 6 2023-01-10 80.10
str(data)
## 'data.frame': 820 obs. of 2 variables:
## $ Date : Date, format: "2023-01-03" "2023-01-04" ...
## $ Price: num 82.1 77.8 78.7 78.6 79.7 ...
ggplot(data, aes(x=Date, y=Price)) +
geom_line(color="blue") +
labs(title="Pergerakan Harga Minyak Dunia",
x="Tanggal",
y="Harga")
Grafik menunjukkan bahwa harga minyak dunia mengalami perubahan yang cukup dinamis sepanjang periode pengamatan. Terdapat beberapa kenaikan dan penurunan harga yang cukup tajam yang menunjukkan adanya volatilitas pada pasar minyak dunia.
price_ts <- ts(data$Price)
n <- length(price_ts)
train_size <- floor(0.8 * n)
train <- price_ts[1:train_size]
test <- price_ts[(train_size+1):n]
Data dibagi menjadi dua bagian yaitu 80% data training untuk membangun model dan 20% data testing untuk mengevaluasi kemampuan prediksi model.
Sebelum membentuk model ARIMA, data deret waktu harus memenuhi sifat stasioner. Stasioneritas dapat diartikan sebagai kondisi dimana nilai rata-rata dan varians data relatif konstan sepanjang waktu.
Uji stasioneritas dalam mean secara formal dapat dilakukan dengan Augmented Dickey-Fuller test (ADF test).
Hipotesis
H₀ :𝛿 = 0 (terdapat unit roots sehingga data tidak stasioner)
H₁ :𝛿 ≠ 0 (tidak terdapat unit roots sehingga data stasioner)
Taraf Signifikansi
𝛼 = 5% = 0,05
Statistik Uji
adf.test(train)
##
## Augmented Dickey-Fuller Test
##
## data: train
## Dickey-Fuller = -2.9631, Lag order = 8, p-value = 0.1706
## alternative hypothesis: stationary
Terlihat bahwa output dari Augmented Dickey-Fuller Test menghasilkan p-value = 0.1706.
Daerah Kritis
H₀ ditolak jika p-value < 𝛼(0,05)
Keputusan dan Kesimpulan
Pada taraf signifikansi 𝛼 = 5%, H₀ gagal ditolak karena nilai p-value (0.1706) > 0,05. Dengan ini, dapat dinyatakan bahwa data yang digunakan belum stationer sehingga perlu dilakukan penanganan, metode yang dipilih pada kasus ini adalah differencing.
Differencing dilakukan untuk menghilangkan tren pada data sehingga data menjadi lebih stabil di sekitar nilai rata-rata. Secara matematis differencing dapat dituliskan sebagai:
\[ Z_t=Y_t - Y_{t-1} \]
diff_train <- diff(train)
plot(diff_train)
adf.test(diff_train)
## Warning in adf.test(diff_train): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: diff_train
## Dickey-Fuller = -10.169, Lag order = 8, p-value = 0.01
## alternative hypothesis: stationary
Terlihat bahwa output dari Augmented Dickey-Fuller Test setelah dilakukan differencing menghasilkan p-value = 0.01.
Keputusan dan Kesimpulan
Pada taraf signifikansi 𝛼 = 5%, H0 ditolak karena nilai p-value
(0.01) < 0,05. Dengan ini, dapat dinyatakan bahwa data yang digunakan
telah
stationer dan siap dimodelkan.
1. Plot ACF
acf(diff_train)
Plot ACF menunjukkan bahwa sebagian besar nilai autokorelasi berada di dalam batas signifikansi dan nilai autokorelasi cepat menurun menuju nol. Pola tersebut menunjukkan bahwa pengaruh hubungan antar lag relatif kecil. Pola seperti ini biasanya mengindikasikan bahwa komponen Moving Average (MA) yang mungkin terbentuk berada pada orde rendah, seperti MA(1).
2. Plot PACF
pacf(diff_train)
Plot PACF tidak menunjukkan pola cut-off yang jelas pada lag tertentu. Sebagian besar nilai PACF berada di dalam batas signifikansi sehingga tidak terdapat indikasi kuat adanya komponen autoregressive.
3. Identifikasi Model ARIMA
Berdasarkan indikasi dari grafik ACF dan PACF yang tidak menunjukkan cut-off yang jelas mengindikasikan bahwa data setelah differencing mendekati proses white noise. Dengan ini, beberapa model ARIMA yang mungkin terbentuk antara lain:
ARIMA(0,1,0)
ARIMA(1,1,0)
ARIMA(0,1,1)
ARIMA(1,1,1)
model_010 <- Arima(train, order=c(0,1,0))
model_110 <- Arima(train, order=c(1,1,0))
model_011 <- Arima(train, order=c(0,1,1))
model_111 <- Arima(train, order=c(1,1,1))
summary(model_010)
## Series: train
## ARIMA(0,1,0)
##
## sigma^2 = 2.066: log likelihood = -1167.12
## AIC=2336.24 AICc=2336.25 BIC=2340.73
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.01905168 1.436435 1.089668 -0.04228074 1.398411 0.9985903
## ACF1
## Training set 0.01163539
summary(model_110)
## Series: train
## ARIMA(1,1,0)
##
## Coefficients:
## ar1
## 0.0122
## s.e. 0.0393
##
## sigma^2 = 2.069: log likelihood = -1167.07
## AIC=2338.14 AICc=2338.16 BIC=2347.11
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.01879786 1.436329 1.089786 -0.04172783 1.398531 0.9986986
## ACF1
## Training set -0.0008668714
summary(model_011)
## Series: train
## ARIMA(0,1,1)
##
## Coefficients:
## ma1
## 0.0117
## s.e. 0.0384
##
## sigma^2 = 2.069: log likelihood = -1167.07
## AIC=2338.15 AICc=2338.17 BIC=2347.12
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.01881227 1.436333 1.089761 -0.04175934 1.3985 0.9986754
## ACF1
## Training set -0.0003025781
summary(model_111)
## Series: train
## ARIMA(1,1,1)
##
## Coefficients:
## ar1 ma1
## 0.1692 -0.1552
## s.e. 0.9068 0.9061
##
## sigma^2 = 2.072: log likelihood = -1167.06
## AIC=2340.11 AICc=2340.15 BIC=2353.56
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.01870937 1.436292 1.090008 -0.04153276 1.398812 0.9989024
## ACF1
## Training set -0.002521981
model_list <- list(
ARIMA010 = model_010,
ARIMA110 = model_110,
ARIMA011 = model_011,
ARIMA111 = model_111
)
model_compare <- data.frame(
Model = names(model_list),
AIC = sapply(model_list, AIC),
BIC = sapply(model_list, BIC)
)
model_compare
## Model AIC BIC
## ARIMA010 ARIMA010 2336.241 2340.725
## ARIMA110 ARIMA110 2338.144 2347.113
## ARIMA011 ARIMA011 2338.148 2347.118
## ARIMA111 ARIMA111 2340.110 2353.564
Model terbaik dipilih berdasarkan nilai AIC terkecil karena nilai AIC menunjukkan keseimbangan antara kompleksitas model dan kemampuan model dalam menjelaskan data.
best_model_name <- model_compare$Model[which.min(model_compare$AIC)]
best_model <- model_list[[best_model_name]]
summary(best_model)
## Series: train
## ARIMA(0,1,0)
##
## sigma^2 = 2.066: log likelihood = -1167.12
## AIC=2336.24 AICc=2336.25 BIC=2340.73
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.01905168 1.436435 1.089668 -0.04228074 1.398411 0.9985903
## ACF1
## Training set 0.01163539
Berdasarkan hasil pemilihan model menggunakan kriteria AIC, diperoleh model terbaik yaitu ARIMA(0,1,0). Model ini tidak memiliki komponen Autoregressive (AR) maupun Moving Average (MA), sehingga setelah dilakukan differencing model dapat dituliskan sebagai berikut:
\[ Z_t=Y_t - Y_{t-1} \]
dengan model:
\[ Z_t=\epsilon_t \]
Jika dikembalikan ke bentuk data asli maka diperoleh:
\[ Y_t=Y_{t-1}+\epsilon_t \]
Model ini dikenal sebagai Random Walk Model, yang berarti bahwa nilai suatu periode dipengaruhi oleh nilai pada periode sebelumnya ditambah dengan komponen error acak. Hal ini menunjukkan bahwa perubahan harga minyak dunia cenderung tidak memiliki pola deterministik yang kuat dan pergerakannya lebih dipengaruhi oleh faktor acak atau dinamika pasar global.
1. Uji Normalitas Residual
Uji normalitas residual dilakukan untuk mengetahui apakah residual mengikuti distribusi normal. Pengujian dapat dilakukan menggunakan uji Shapiro-Wilk.
Hipotesis:
H₀ : residual berdistribusi normal
H₁ : residual tidak berdistribusi normal
Taraf Signifikansi
𝛼 = 5% = 0,05
Statistik Uji
shapiro.test(residuals(best_model))
##
## Shapiro-Wilk normality test
##
## data: residuals(best_model)
## W = 0.97966, p-value = 6.616e-08
Terlihat bahwa output dari Shapiro-Wilk Normality Test adalah 6.616e-08
Daerah Kritis
H₀ ditolak jika p-value < 𝛼(0,05)
Keputusan dan Kesimpulan
Pada taraf signifikansi 𝛼 = 5%, H₀ ditolak karena p-value(6.616e-08) < 0.05 sehingga residual tidak berdistribusi normal.Akan tetapi, pada analisis time series asumsi normalitas residual tidak terlalu ketat terutama pada jumlah observasi yang besar sehingga model masih dapat digunakan untuk proses peramalan.
2. Uji White Noise
Hipotesis
H₀ : 𝜌1 = 𝜌2 = ⋯ = 𝜌𝑘 (residual white noise)
H₁ : Minimal ada satu nilai 𝜌𝑘 ≠ 0; 𝑘 = 1, 2, … ,𝑘 (residual tidak white noise)
Taraf Signifikansi
𝛼 = 5% = 0.05
Statistik Uji
Box.test(residuals(best_model), lag=20, type="Ljung-Box")
##
## Box-Ljung test
##
## data: residuals(best_model)
## X-squared = 28.217, df = 20, p-value = 0.1044
Terlihat bahwa output dari Box-Ljung Test adalah 0.1044.
Daerah Kritis
H₀ ditolak jika p-value < 𝛼(0,05)
Keputusan dan Kesimpulan
Pada taraf signifikansi 𝛼 = 5%, H₀ gagal ditolak karena p-value(0.1044) > 0.05 sehingga residual white noise ((asumsi non autokorelasi terpenuhi).
3. Uji Homoskedastisitas
Hipotesis
H₀ : varian residual sama (asumsi homoskedastisitas terpenuhi)
H₁ : varian residual tidak sama (asumsi homoskedastisita tidak terpenuhi)
Taraf Signifikansi
𝛼 = 5% = 0,05
Statistik Uji
ArchTest(residuals(best_model))
##
## ARCH LM-test; Null hypothesis: no ARCH effects
##
## data: residuals(best_model)
## Chi-squared = 25.22, df = 12, p-value = 0.01382
Terlihat bahwa output dari ARCH LM-Test adalah 0.01382
Daerah Kritis
H₀ ditolak jika p-value < 𝛼(0,05)
Keputusan dan Kesimpulan
Pada taraf signifikansi 𝛼 = 5%, H₀ ditolak karena p-value(0.01382) < 0.05 sehingga asumsi homoskedastisita tidak terpenuhi.
Berdasarkan hasil diagnostic checking, residual model tidak memiliki autokorelasi yang signifikan namun menunjukkan adanya residual yang tidak berdistribusi normal dan efek heteroskedastisitas. Meskipun demikian, model masih dapat digunakan untuk tujuan peramalan jangka pendek.
pred <- forecast(best_model, h = length(test))
forecast::accuracy(pred, test)
## ME RMSE MAE MPE MAPE MASE
## Training set -0.01905168 1.436435 1.089668 -0.04228074 1.398411 0.9985903
## Test set -3.38201220 5.620678 4.568232 -5.54471198 7.004430 4.1864059
## ACF1
## Training set 0.01163539
## Test set NA
Berdasarkan hasil evaluasi model, diperoleh beberapa ukuran kesalahan prediksi pada data training dan data testing yang meliputi ME, RMSE, MAE, MPE, MAPE, dan MASE.
1.Data Training
Pada data training, diperoleh nilai Mean Error (ME) sebesar -0.019 yang mendekati nol. Hal ini menunjukkan bahwa model tidak memiliki bias prediksi yang signifikan pada data pelatihan.
Nilai Root Mean Square Error (RMSE) sebesar 1.436 dan Mean Absolute Error (MAE) sebesar 1.089 menunjukkan bahwa rata-rata kesalahan prediksi model relatif kecil terhadap data historis.
Nilai Mean Absolute Percentage Error (MAPE) pada data training sebesar 1.398% menunjukkan bahwa tingkat kesalahan prediksi model pada data pelatihan sangat rendah.Secara umum, nilai MAPE di bawah 10% dapat dikategorikan sebagai model dengan kemampuan prediksi yang sangat baik.
Selain itu, nilai MASE sebesar 0.998 menunjukkan bahwa performa model hampir setara dengan metode naive forecast, yang memang konsisten dengan karakteristik model ARIMA(0,1,0) yang menyerupai random walk.
2.Data Testing
Pada data testing, nilai ME sebesar -3.382 menunjukkan bahwa model cenderung sedikit overestimate, yaitu hasil prediksi sedikit lebih tinggi dibandingkan nilai aktual.
Nilai RMSE sebesar 5.620 dan MAE sebesar 4.568 menunjukkan bahwa tingkat kesalahan prediksi pada data pengujian lebih besar dibandingkan data training, yang merupakan hal yang umum karena model dihadapkan pada data yang belum pernah dilihat sebelumnya.
Nilai MAPE pada data testing sebesar 7.004% menunjukkan bahwa tingkat kesalahan prediksi model masih berada di bawah 10%. Hal ini menunjukkan bahwa model masih memiliki kemampuan prediksi yang baik dalam memprediksi pergerakan harga minyak dunia pada data pengujian.
Sementara itu, nilai MASE pada data testing sebesar 4.186 menunjukkan bahwa performa model pada data pengujian lebih rendah dibandingkan metode naive forecast. Hal ini dapat terjadi karena pergerakan harga minyak dunia yang sangat dipengaruhi oleh faktor eksternal seperti kondisi geopolitik, kebijakan energi global, serta dinamika pasar internasional yang sulit diprediksi secara deterministik.
Secara keseluruhan, hasil evaluasi model menunjukkan bahwa model ARIMA(0,1,0) masih mampu memberikan prediksi yang cukup baik terhadap pergerakan harga minyak dunia, terutama untuk peramalan jangka pendek. Nilai MAPE yang relatif kecil menunjukkan bahwa model masih dapat digunakan sebagai alat untuk memberikan gambaran awal mengenai pergerakan harga minyak pada periode mendatang.
forecast_eval <- data.frame(
Period=1:length(test),
Actual=as.numeric(test),
Forecast=as.numeric(pred$mean)
)
forecast_eval$Error <- forecast_eval$Actual - forecast_eval$Forecast
forecast_eval$MAPE <- abs(forecast_eval$Error/forecast_eval$Actual)*100
forecast_eval
## Period Actual Forecast Error MAPE
## 1 1 69.28 69.52 -0.24 0.34642032
## 2 2 68.38 69.52 -1.14 1.66715414
## 3 3 67.77 69.52 -1.75 2.58226354
## 4 4 67.83 69.52 -1.69 2.49152292
## 5 5 68.36 69.52 -1.16 1.69689877
## 6 6 68.44 69.52 -1.08 1.57802455
## 7 7 70.04 69.52 0.52 0.74243290
## 8 8 72.51 69.52 2.99 4.12356916
## 9 9 73.24 69.52 3.72 5.07919170
## 10 10 72.53 69.52 3.01 4.15000689
## 11 11 69.67 69.52 0.15 0.21530070
## 12 12 68.76 69.52 -0.76 1.10529378
## 13 13 67.64 69.52 -1.88 2.77942046
## 14 14 66.89 69.52 -2.63 3.93182837
## 15 15 66.43 69.52 -3.09 4.65151287
## 16 16 66.59 69.52 -2.93 4.40006007
## 17 17 66.63 69.52 -2.89 4.33738556
## 18 18 66.12 69.52 -3.40 5.14216576
## 19 19 65.63 69.52 -3.89 5.92716745
## 20 20 66.84 69.52 -2.68 4.00957510
## 21 21 65.85 69.52 -3.67 5.57327259
## 22 22 66.01 69.52 -3.51 5.31737616
## 23 23 65.30 69.52 -4.22 6.46248086
## 24 24 66.31 69.52 -3.21 4.84089881
## 25 25 67.12 69.52 -2.40 3.57568534
## 26 26 67.22 69.52 -2.30 3.42160071
## 27 27 68.80 69.52 -0.72 1.04651163
## 28 28 67.22 69.52 -2.30 3.42160071
## 29 29 68.05 69.52 -1.47 2.16017634
## 30 30 68.62 69.52 -0.90 1.31157097
## 31 31 68.12 69.52 -1.40 2.05519671
## 32 32 68.15 69.52 -1.37 2.01027146
## 33 33 69.14 69.52 -0.38 0.54960949
## 34 34 67.60 69.52 -1.92 2.84023669
## 35 35 66.99 69.52 -2.53 3.77668309
## 36 36 65.50 69.52 -4.02 6.13740458
## 37 37 66.02 69.52 -3.50 5.30142381
## 38 38 66.39 69.52 -3.13 4.71456545
## 39 39 67.49 69.52 -2.03 3.00785302
## 40 40 66.37 69.52 -3.15 4.74612024
## 41 41 66.99 69.52 -2.53 3.77668309
## 42 42 67.44 69.52 -2.08 3.08422301
## 43 43 68.47 69.52 -1.05 1.53351833
## 44 44 67.95 69.52 -1.57 2.31052244
## 45 45 67.44 69.52 -2.08 3.08422301
## 46 46 66.68 69.52 -2.84 4.25914817
## 47 47 65.97 69.52 -3.55 5.38123389
## 48 48 66.97 69.52 -2.55 3.80767508
## 49 49 69.31 69.52 -0.21 0.30298658
## 50 50 69.42 69.52 -0.10 0.14405071
## 51 51 70.13 69.52 0.61 0.86981320
## 52 52 67.97 69.52 -1.55 2.28041783
## 53 53 67.02 69.52 -2.50 3.73022978
## 54 54 65.35 69.52 -4.17 6.38102525
## 55 55 64.11 69.52 -5.41 8.43862112
## 56 56 64.53 69.52 -4.99 7.73283744
## 57 57 65.47 69.52 -4.05 6.18603941
## 58 58 65.45 69.52 -4.07 6.21848739
## 59 59 66.25 69.52 -3.27 4.93584906
## 60 60 65.22 69.52 -4.30 6.59306961
## 61 61 62.73 69.52 -6.79 10.82416707
## 62 62 63.32 69.52 -6.20 9.79153506
## 63 63 62.39 69.52 -7.13 11.42811348
## 64 64 61.91 69.52 -7.61 12.29203683
## 65 65 61.06 69.52 -8.46 13.85522437
## 66 66 61.29 69.52 -8.23 13.42796541
## 67 67 60.88 69.52 -8.64 14.19185283
## 68 68 61.03 69.52 -8.49 13.91119122
## 69 69 62.23 69.52 -7.29 11.71460710
## 70 70 65.29 69.52 -4.23 6.47878695
## 71 71 65.20 69.52 -4.32 6.62576687
## 72 72 65.62 69.52 -3.90 5.94330997
## 73 73 64.40 69.52 -5.12 7.95031056
## 74 74 64.92 69.52 -4.60 7.08564387
## 75 75 65.00 69.52 -4.52 6.95384615
## 76 76 65.07 69.52 -4.45 6.83878900
## 77 77 64.89 69.52 -4.63 7.13515180
## 78 78 64.44 69.52 -5.08 7.88330230
## 79 79 63.52 69.52 -6.00 9.44584383
## 80 80 63.38 69.52 -6.14 9.68759861
## 81 81 63.63 69.52 -5.89 9.25663995
## 82 82 64.06 69.52 -5.46 8.52325944
## 83 83 65.16 69.52 -4.36 6.69122161
## 84 84 62.71 69.52 -6.81 10.85951204
## 85 85 63.01 69.52 -6.51 10.33169338
## 86 86 64.39 69.52 -5.13 7.96707563
## 87 87 63.76 69.52 -5.76 9.03387704
## 88 88 64.43 69.52 -5.09 7.90004656
## 89 89 63.00 69.52 -6.52 10.34920635
## 90 90 62.80 69.52 -6.72 10.70063694
## 91 91 61.94 69.52 -7.58 12.23764934
## 92 92 63.37 69.52 -6.15 9.70490769
## 93 93 62.48 69.52 -7.04 11.26760563
## 94 94 63.13 69.52 -6.39 10.12197054
## 95 95 63.34 69.52 -6.18 9.75686770
## 96 96 63.20 69.52 -6.32 10.00000000
## 97 97 63.17 69.52 -6.35 10.05223999
## 98 98 62.45 69.52 -7.07 11.32105685
## 99 99 62.67 69.52 -6.85 10.93026967
## 100 100 63.26 69.52 -6.26 9.89566867
## 101 101 63.75 69.52 -5.77 9.05098039
## 102 102 62.49 69.52 -7.03 11.24979997
## 103 103 61.94 69.52 -7.58 12.23764934
## 104 104 62.21 69.52 -7.31 11.75052242
## 105 105 61.28 69.52 -8.24 13.44647520
## 106 106 61.12 69.52 -8.40 13.74345550
## 107 107 60.56 69.52 -8.96 14.79524439
## 108 108 58.92 69.52 -10.60 17.99049559
## 109 109 59.68 69.52 -9.84 16.48793566
## 110 110 59.82 69.52 -9.70 16.21531260
## 111 111 60.47 69.52 -9.05 14.96609889
## 112 112 61.58 69.52 -7.94 12.89379669
## 113 113 61.87 69.52 -7.65 12.36463553
## 114 114 61.80 69.52 -7.72 12.49190939
## 115 115 60.64 69.52 -8.88 14.64379947
## 116 116 61.94 69.52 -7.58 12.23764934
## 117 117 61.92 69.52 -7.60 12.27390181
## 118 118 60.85 69.52 -8.67 14.24815119
## 119 119 60.75 69.52 -8.77 14.43621399
## 120 120 61.76 69.52 -7.76 12.56476684
## 121 121 60.70 69.52 -8.82 14.53047776
## 122 122 59.96 69.52 -9.56 15.94396264
## 123 123 61.99 69.52 -7.53 12.14712050
## 124 124 63.34 69.52 -6.18 9.75686770
## 125 125 63.87 69.52 -5.65 8.84609363
## 126 126 65.47 69.52 -4.05 6.18603941
## 127 127 66.52 69.52 -3.00 4.50992183
## 128 128 63.76 69.52 -5.76 9.03387704
## 129 129 64.13 69.52 -5.39 8.40480274
## 130 130 63.22 69.52 -6.30 9.96520089
## 131 131 64.19 69.52 -5.33 8.30347406
## 132 132 64.53 69.52 -4.99 7.73283744
## 133 133 63.34 69.52 -6.18 9.75686770
## 134 134 65.07 69.52 -4.45 6.83878900
## 135 135 65.59 69.52 -3.93 5.99176704
## 136 136 67.57 69.52 -1.95 2.88589611
## 137 137 68.40 69.52 -1.12 1.63742690
## 138 138 70.71 69.52 1.19 1.68293028
## 139 139 70.69 69.52 1.17 1.65511388
## 140 140 66.30 69.52 -3.22 4.85671192
## 141 141 67.33 69.52 -2.19 3.25263627
## 142 142 69.46 69.52 -0.06 0.08638065
## 143 143 67.55 69.52 -1.97 2.91635825
## 144 144 68.05 69.52 -1.47 2.16017634
## 145 145 69.04 69.52 -0.48 0.69524913
## 146 146 68.80 69.52 -0.72 1.04651163
## 147 147 69.40 69.52 -0.12 0.17291066
## 148 148 67.52 69.52 -2.00 2.96208531
## 149 149 67.75 69.52 -1.77 2.61254613
## 150 150 67.97 69.52 -1.55 2.28041783
## 151 151 66.87 69.52 -2.65 3.96291311
## 152 152 69.77 69.52 0.25 0.35832019
## 153 153 71.27 69.52 1.75 2.45545110
## 154 154 71.30 69.52 1.78 2.49649369
## 155 155 71.49 69.52 1.97 2.75563016
## 156 156 70.77 69.52 1.25 1.76628515
## 157 157 70.85 69.52 1.33 1.87720536
## 158 158 70.75 69.52 1.23 1.73851590
## 159 159 72.48 69.52 2.96 4.08388521
## 160 160 77.74 69.52 8.22 10.57370723
## 161 161 81.40 69.52 11.88 14.59459459
## 162 162 81.40 69.52 11.88 14.59459459
## 163 163 85.41 69.52 15.89 18.60437888
## 164 164 93.04 69.52 23.52 25.27944970
Tabel di atas menunjukkan perbandingan antara nilai aktual harga minyak dunia dengan nilai hasil forecast dari model ARIMA(0,1,0) pada data testing. Terlihat bahwa nilai forecast relatif berada di sekitar 69,52, sedangkan nilai aktual mengalami fluktuasi naik dan turun.
Kolom Error menunjukkan selisih antara nilai aktual dan hasil prediksi, sedangkan kolom MAPE menunjukkan persentase kesalahan prediksi pada setiap periode. Berdasarkan tabel tersebut terlihat bahwa nilai MAPE pada setiap periode relatif kecil sehingga dapat disimpulkan bahwa model masih mampu memberikan prediksi yang cukup baik terhadap pergerakan harga minyak dunia.
plot(test, type="l", col="black", lwd=2,
main="Perbandingan Actual vs Forecast",
ylab="Harga Minyak")
lines(ts(pred$mean, start=start(test), frequency=frequency(test)),
col="red", lwd=2)
legend("topleft",
legend=c("Actual","Forecast"),
col=c("black","red"),
lty=1,
lwd=2)
forecast_model <- forecast(best_model, h=30)
plot(forecast_model)
Grafik menunjukkan hasil peramalan harga minyak dunia untuk 30 periode ke depan menggunakan model ARIMA(0,1,0). Garis biru merepresentasikan nilai prediksi, sedangkan area abu-abu menunjukkan interval prediksi yang menggambarkan tingkat ketidakpastian model. Hasil peramalan menunjukkan bahwa harga minyak diperkirakan bergerak relatif stabil di sekitar nilai terakhir dari data historis. Hal ini terjadi karena model ARIMA(0,1,0) merupakan random walk model, dimana nilai harga pada periode berikutnya sangat dipengaruhi oleh harga pada periode sebelumnya. Selain itu terlihat bahwa interval prediksi semakin melebar seiring bertambahnya periode peramalan. Hal ini menunjukkan bahwa ketidakpastian prediksi akan meningkat pada periode yang lebih jauh di masa depan.
Berdasarkan hasil analisis deret waktu menggunakan metode Autoregressive Integrated Moving Average (ARIMA) terhadap data harga minyak dunia periode Januari 2023 hingga Maret 2026, diperoleh model terbaik yaitu ARIMA(0,1,0). Model ini menunjukkan bahwa pergerakan harga minyak dunia cenderung mengikuti pola random walk, dimana perubahan harga pada suatu periode sangat dipengaruhi oleh nilai harga pada periode sebelumnya serta komponen error acak.
Hasil diagnostic checking menunjukkan bahwa residual model tidak memiliki autokorelasi yang signifikan sehingga model telah mampu menangkap pola ketergantungan pada data. Meskipun residual tidak sepenuhnya berdistribusi normal dan menunjukkan adanya heteroskedastisitas, kondisi tersebut umum terjadi pada data ekonomi dan komoditas yang memiliki volatilitas tinggi.
Evaluasi model menunjukkan bahwa pada data training diperoleh nilai MAPE sebesar 1,398%, sedangkan pada data testing diperoleh nilai MAPE sebesar 7,004%. Nilai tersebut menunjukkan bahwa tingkat kesalahan prediksi model relatif kecil dan masih berada di bawah batas 10%, sehingga model dapat dikategorikan memiliki kemampuan prediksi yang sangat baik untuk peramalan jangka pendek.
Hasil peramalan menunjukkan bahwa harga minyak dunia diperkirakan bergerak relatif stabil di sekitar nilai terakhir dari data historis, namun interval prediksi semakin melebar seiring bertambahnya periode peramalan. Hal ini menunjukkan bahwa ketidakpastian prediksi akan meningkat pada periode yang lebih jauh di masa depan.
Secara umum, pergerakan harga minyak dunia sangat dipengaruhi oleh faktor eksternal seperti kondisi geopolitik global, kebijakan produksi negara penghasil minyak, serta dinamika permintaan energi dunia. Oleh karena itu, model ARIMA yang digunakan dalam penelitian ini dapat memberikan gambaran awal mengenai pergerakan harga minyak dunia dalam jangka pendek, namun tetap perlu mempertimbangkan faktor eksternal yang dapat mempengaruhi volatilitas harga di masa mendatang.