Tugas 2 - Analisis Deret Waktu
Berikut data harga Gabah Kering Panen (GKP) di tingkat petani Kabupaten Serang periode Januari 2023 - Desember 2024 (Rp/kg):
## Warning: package 'knitr' was built under R version 4.4.3
data_GKP <- data.frame(
Tahun = rep(c(2023, 2024), each = 12),
Bulan = rep(month.abb, 2),
GKP = c(
5.200, 5.150, 5.300, 5.400, 5.250, 5.350, 5.450, 5.500, 5.400, 5.550, 5.600, 5.700,
5.650, 5.700, 5.800, 5.900, 5.750, 5.850, 5.950, 6.000, 5.900, 6.050, 6.150, 6.300
)
)
kable(data_GKP)| Tahun | Bulan | GKP |
|---|---|---|
| 2023 | Jan | 5.20 |
| 2023 | Feb | 5.15 |
| 2023 | Mar | 5.30 |
| 2023 | Apr | 5.40 |
| 2023 | May | 5.25 |
| 2023 | Jun | 5.35 |
| 2023 | Jul | 5.45 |
| 2023 | Aug | 5.50 |
| 2023 | Sep | 5.40 |
| 2023 | Oct | 5.55 |
| 2023 | Nov | 5.60 |
| 2023 | Dec | 5.70 |
| 2024 | Jan | 5.65 |
| 2024 | Feb | 5.70 |
| 2024 | Mar | 5.80 |
| 2024 | Apr | 5.90 |
| 2024 | May | 5.75 |
| 2024 | Jun | 5.85 |
| 2024 | Jul | 5.95 |
| 2024 | Aug | 6.00 |
| 2024 | Sep | 5.90 |
| 2024 | Oct | 6.05 |
| 2024 | Nov | 6.15 |
| 2024 | Dec | 6.30 |
1. Objek Time Series dan Plot Runtun Waktu dari Data Harga GKP
a. Objek Time Series
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2023 5.20 5.15 5.30 5.40 5.25 5.35 5.45 5.50 5.40 5.55 5.60 5.70
## 2024 5.65 5.70 5.80 5.90 5.75 5.85 5.95 6.00 5.90 6.05 6.15 6.30
b. Plot Runtun Waktu
plot(data_ts,
main = "Harga Gabah Kering Panen (GKP) Kabupaten Serang",
xlab = "Tahun",
ylab = "Harga per Kilo (Rp/kg)",
col = "darkgreen",
lwd = 2
)
text(time(data_ts), data_ts,
labels = data_ts,
pos = 3,
cex = 0.7
)Berdasarkan plot runtun waktu, secara keseluruhan harga Gabah Kering Panen (GKP) Kabupaten Serang selama Januari 2023 - Desember 2024 menunjukkan adanya tren naik, meskipun terdapat penurunan harga dibulan tertentu. Harga GKP terendah berada di bulan Februari 2023, yaitu Rp5.150/kg, kemudian harga GKP tertinggi berada di bulan Desember 2024, yaitu Rp6.300/kg. Dengan demikian, data belum dapat dianggap stasioner sehingga perlu dilakukan transformasi dan differencing data.
2. Transformasi Logaritma
## Jan Feb Mar Apr May Jun Jul Aug
## 2023 1.648659 1.638997 1.667707 1.686399 1.658228 1.677097 1.695616 1.704748
## 2024 1.731656 1.740466 1.757858 1.774952 1.749200 1.766442 1.783391 1.791759
## Sep Oct Nov Dec
## 2023 1.686399 1.713798 1.722767 1.740466
## 2024 1.774952 1.800058 1.816452 1.840550
# Plot
plot(data_ts,
main = "Data Harga Gabah Kering Panen (GKP) Kabupaten Serang",
xlab = "Tahun",
ylab = "Harga per Kilo (Rp/kg)",
col = "darkgreen",
lwd = 2
)
text(time(data_ts), data_ts,
labels = data_ts,
pos = 3,
cex = 0.7
)plot(log_gkp,
main = "Data Harga GKP Setelah Transformasi Log",
xlab = "Tahun",
ylab = "Log Harga GKP",
col = "orange",
lwd = 2)
text(time(log_gkp), log_gkp,
labels = round(log_gkp, 2),
pos = 3,
cex = 0.7
)Setelah data dilakukan transformasi logaritma, harga menjadi lebih rendah dari sebelumnya, namun masih menunjukkan pola tren naik. Hal ini dikarenakan transformasi logaritma tidak secara langsung menghilangkan tren, sehingga masih diperlukan differencing data.
3. Differencing Tingkat Pertama Pada Data Hasil Transformasi
## Jan Feb Mar Apr May
## 2023 -0.009661911 0.028710106 0.018692133 -0.028170877
## 2024 -0.008810630 0.008810630 0.017391743 0.017094433 -0.025752496
## Jun Jul Aug Sep Oct
## 2023 0.018868484 0.018519048 0.009132484 -0.018349139 0.027398974
## 2024 0.017241806 0.016949558 0.008368250 -0.016807118 0.025105921
## Nov Dec
## 2023 0.008968670 0.017699577
## 2024 0.016393810 0.024097552
## [1] 0.3141514
## [1] 0.05539227
## [1] 0.01725887
# Plot
plot(diff_log_gkp,
main = "Differencing Tingkat Pertama Data Log Harga GKP",
xlab = "Tahun",
ylab = "Differenced Log GKP",
col = "orange",
lwd = 2)
abline(h = 0, lty = 2)
text(time(diff_log_gkp), diff_log_gkp,
labels = round(diff_log_gkp, 2),
pos = 3,
cex = 0.7
)Berdasarkan hasil standar deviasi, data asli memiliki nilai SD 0.3141514. Setelah ditransformasi logaritma, nilai SD turun menjadi 0.05539227. Kemudian menjadi 0.01725887 setelah differencing tingkat pertama. Hal ini menunjukkan bahwa setelah dilakukan transformasi dan differencing, variasi data semakin kecil.
Plot differencing tingkat pertama pada data hasil transformasi logaritma, sudah tidak menunjukkan adanya tren naik seperti pada plot sebelumnya. Pada hasil differencing, nilai berfluktuasi di sekitar garis nol dan relatif stabil sepanjang periode. Dengan demikian, data dapat dianggap stasioner.
4. Gunakan 21 Observasi Pertama Sebagai Data Latih dan 3 Observasi Terakhir Sebagai Data Uji
a. Ramalan Naif untuk 3 Bulan
## Tahun Bulan GKP
## 1 2023 Jan 5.20
## 2 2023 Feb 5.15
## 3 2023 Mar 5.30
## 4 2023 Apr 5.40
## 5 2023 May 5.25
## 6 2023 Jun 5.35
## 7 2023 Jul 5.45
## 8 2023 Aug 5.50
## 9 2023 Sep 5.40
## 10 2023 Oct 5.55
## 11 2023 Nov 5.60
## 12 2023 Dec 5.70
## 13 2024 Jan 5.65
## 14 2024 Feb 5.70
## 15 2024 Mar 5.80
## 16 2024 Apr 5.90
## 17 2024 May 5.75
## 18 2024 Jun 5.85
## 19 2024 Jul 5.95
## 20 2024 Aug 6.00
## 21 2024 Sep 5.90
## Tahun Bulan GKP
## 22 2024 Oct 6.05
## 23 2024 Nov 6.15
## 24 2024 Dec 6.30
## Warning: package 'forecast' was built under R version 4.4.3
naive_forecast <- rep(tail(train$GKP, 1), 3)
# Perbandingan
(hasil_forecast <- data.frame(
Bulan = c("Oktober 2024", "November 2024", "Desember 2024"),
Aktual = as.numeric(test$GKP),
Ramalan = as.numeric(naive_forecast)
))## Bulan Aktual Ramalan
## 1 Oktober 2024 6.05 5.9
## 2 November 2024 6.15 5.9
## 3 Desember 2024 6.30 5.9
Berdasarkan hasil perbandingan antara nilai aktual dan ramalan naif, nilai aktual GKP untuk 3 bulan pengujian lebih tinggi daripada hasil ramalan naif. Hasil ini menunjukkan bahwa metode naif menghasilkan ramalan yang cenderung lebih rendah dibandingkan nilai aktual. Dampaknya, metode naif kurang mampu mengikuti kenaikan harga GKP pada periode pengujian.
b. Hitung ME, MAE, MSE, RMSE, dan MAPE
## [1] 0.15 0.25 0.40
# ME
ME <- mean(error)
# MAE
MAE <- mean(abs(error))
# MSE
MSE <- mean(error^2)
# RMSE
RMSE <- sqrt(MSE)
# MAPE
MAPE <- mean(abs(error/test$GKP)) * 100
(evaluasi <- data.frame(
ME = ME,
MAE = MAE,
MSE = MSE,
RMSE = RMSE,
MAPE = MAPE
))## ME MAE MSE RMSE MAPE
## 1 0.2666667 0.2666667 0.08166667 0.2857738 4.297862
- ME = 0.2666667
Rata-rata nilai aktual lebih tinggi daripada hasil ramalan, yaitu Rp266,67/Kg. Artinya, metode naive cenderung menghasilkan ramalan yang lebih rendah dari nilai aktual pada tiga bulan pengujian.
- MAE = 0.2666667
Rata-rata kesalahan absolut ramalan adalah Rp266,67/Kg.
- MSE = 0.08166667
Nilai MSE menunjukkan rata-rata kuadrat kesalahan ramalan, yaitu sekitar 81.666,67 (Rp/kg)².
- RMSE = 0.2857738
RMSE menunjukkan besarnya kesalahan ramalan dalam satuan yang sama (Rp/Kg) dengan data asli, yaitu sebesar Rp285,77/Kg.
- MAPE = 4.297862
Secara rata-rata persentase kesalahan absolut ramalan terhadap nilai aktual adalah sekitar 4.29%.