Soal

Diberikan data harga gabah kering panen (GKP) di tingkat petani Kabupaten Serang periode Januari 2023–Desember 2024 (Rp/kg):

Tahun Jan Feb Mar Apr Mei Jun Jul Agu Sep Okt Nov Des
2023 5.200 5.150 5.300 5.400 5.250 5.350 5.450 5.500 5.400 5.550 5.600 5.700
2024 5.650 5.700 5.800 5.900 5.750 5.850 5.950 6.000 5.900 6.050 6.150 6.300

1. Buat objek ts dan plot runtun waktu dari data harga GKP di atas.

Jawaban:

gkp <- c(
  5200, 5150, 5300, 5400, 5250, 5350, 5450, 5500, 5400, 5550, 5600, 5700,
  5650, 5700, 5800, 5900, 5750, 5850, 5950, 6000, 5900, 6050, 6150, 6300
)

gkp_ts <- ts(gkp, start = c(2023, 1), frequency = 12)

plot(gkp_ts,
     main = "Time Series of GKP Prices in Serang",
     xlab = "Year",
     ylab = "GKP Price (Rp/kg)")

Interpretasi:

Berdasarkan plot, harga GKP di Kabupaten Serang secara umum menunjukkan tren meningkat dari tahun 2023 hingga 2024. Meskipun terdapat beberapa penurunan pada bulan tertentu, harga pada tahun 2024 cenderung lebih tinggi dibandingkan tahun 2023.


2. Lakukan transformasi logaritma, lalu bandingkan plot data asli dan hasil transformasi.

Jawaban:

log_gkp <- log(gkp_ts)

plot(gkp_ts,
     main = "Original GKP Price",
     xlab = "Year",
     ylab = "GKP Price (Rp/kg)")

plot(log_gkp,
     main = "Log-Transformed GKP Price",
     xlab = "Year",
     ylab = "log(GKP Price)")

Untuk melihat perbedaan simpangan bakunya:

sd(gkp_ts)
## [1] 314.1514
sd(log_gkp)
## [1] 0.05539227

Interpretasi:

Setelah dilakukan transformasi logaritma, skala data menjadi lebih kecil dan perubahan data terlihat lebih stabil. Transformasi log digunakan untuk membantu menstabilkan variansi data ketika variansi cenderung berubah mengikuti level data.


3. Lakukan differencing tingkat pertama pada data hasil transformasi. Apakah tren sudah hilang?

Jawaban:

diff_log_gkp <- diff(log_gkp)

plot(diff_log_gkp,
     main = "First Differencing of Log-Transformed GKP Price",
     xlab = "Year",
     ylab = "Differenced log(GKP Price)")

Interpretasi:

Setelah dilakukan differencing tingkat pertama pada data hasil transformasi log, nilai data berfluktuasi di sekitar nilai yang relatif kecil dan tidak menunjukkan tren naik yang sistematis seperti pada data asli. Jadi, dapat dikatakan bahwa tren sudah cukup hilang setelah dilakukan differencing tingkat pertama. Differencing digunakan untuk menghilangkan tren dan menstabilkan mean data.


4. Gunakan 21 observasi pertama sebagai data latih dan 3 observasi terakhir sebagai data uji. Hitung ramalan naif untuk 3 bulan tersebut, lalu hitung ME, MAE, MSE, RMSE, dan MAPE-nya.

Jawaban:

train <- head(gkp, 21)
test <- tail(gkp, 3)

naive_forecast <- rep(tail(train, 1), 3)

error <- test - naive_forecast

ME <- mean(error)
MAE <- mean(abs(error))
MSE <- mean(error^2)
RMSE <- sqrt(MSE)
MAPE <- mean(abs(error / test)) * 100

ME
## [1] 266.6667
MAE
## [1] 266.6667
MSE
## [1] 81666.67
RMSE
## [1] 285.7738
MAPE
## [1] 4.297862

Hasil ramalan:

hasil_forecast <- data.frame(
  Bulan = c("Oktober 2024", "November 2024", "Desember 2024"),
  Aktual = test,
  Ramalan = naive_forecast,
  Error = error
)

hasil_forecast
##           Bulan Aktual Ramalan Error
## 1  Oktober 2024   6050    5900   150
## 2 November 2024   6150    5900   250
## 3 Desember 2024   6300    5900   400

Hasilnya:

Bulan Aktual Ramalan Error
Oktober 2024 6.050 5.900 150
November 2024 6.150 5.900 250
Desember 2024 6.300 5.900 400

Metrik evaluasi:

Metrik Nilai
ME 266,67
MAE 266,67
MSE 81.666,67
RMSE 285,77
MAPE 4,30%

Interpretasi:

Nilai ME sebesar 266,67 bernilai positif, sehingga ramalan naif cenderung berada di bawah nilai aktual atau mengalami under-forecast. Hal ini terlihat karena seluruh harga aktual pada tiga bulan terakhir lebih tinggi daripada hasil ramalan sebesar Rp5.900.

Nilai MAE sebesar 266,67 menunjukkan bahwa rata-rata kesalahan absolut ramalan adalah sekitar Rp266,67/kg. Sementara itu, RMSE sebesar 285,77 menunjukkan besar kesalahan dengan memberikan bobot lebih besar pada kesalahan yang besar.

Nilai MAPE sebesar 4,30% menunjukkan bahwa rata-rata kesalahan ramalan berada sekitar 4,30% dari nilai aktual.