1. PENDAHULUAN

1.1 Latar Belakang

Analisis deret waktu (time series analysis) merupakan metode statistik yang digunakan untuk menganalisis data berdasarkan urutan waktu. Pada analisis deret waktu, data dapat memiliki tren maupun perubahan variansi sehingga perlu dilakukan transformasi dan differencing sebelum digunakan dalam pemodelan.

Transformasi logaritma digunakan untuk membantu menstabilkan variansi, sedangkan differencing digunakan untuk mengurangi atau menghilangkan tren pada data. Selain itu, hasil ramalan perlu dievaluasi menggunakan beberapa metrik seperti ME, MAE, MSE, RMSE, dan MAPE.

Pada tugas ini digunakan data harga gabah kering panen (GKP) di tingkat petani Kabupaten Serang periode Januari 2023 sampai Desember 2024. Data terdiri dari 24 observasi bulanan.

1.2 Tujuan

Tujuan dari analisis ini adalah:

  1. Membuat objek time series dan plot data harga GKP.
  2. Melakukan transformasi logaritma pada data.
  3. Melakukan differencing tingkat pertama pada data hasil transformasi.
  4. Membuat ramalan naif menggunakan data latih.
  5. Menghitung ME, MAE, MSE, RMSE, dan MAPE.

2. DATA DAN METODOLOGI

Data yang digunakan merupakan harga gabah kering panen (GKP) di tingkat petani Kabupaten Serang periode Januari 2023 sampai Desember 2024 dalam satuan Rp/kg.

Data tahun 2023 terdiri dari nilai 5.200, 5.150, 5.300, 5.400, 5.250, 5.350, 5.450, 5.500, 5.400, 5.550, 5.600, dan 5.700.

Data tahun 2024 terdiri dari nilai 5.650, 5.700, 5.800, 5.900, 5.750, 5.850, 5.950, 6.000, 5.900, 6.050, 6.150, dan 6.300.

Pengolahan data dilakukan menggunakan RStudio.

3. HASIL DAN PEMBAHASAN

3.1 Membuat Objek Time Series dan Plot

Data dimasukkan ke dalam R kemudian dibuat menjadi objek ts. Karena data yang digunakan merupakan data bulanan, maka frekuensi yang digunakan adalah 12.

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
)

gkp_ts
##       Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
## 2023 5200 5150 5300 5400 5250 5350 5450 5500 5400 5550 5600 5700
## 2024 5650 5700 5800 5900 5750 5850 5950 6000 5900 6050 6150 6300

Selanjutnya dibuat plot untuk melihat pola harga GKP selama periode pengamatan.

plot(
  gkp_ts,
  type = "o",
  pch = 16,
  col = "#D88195",
  lwd = 2,
  main = "Harga Gabah Kering Panen Kabupaten Serang",
  xlab = "Tahun",
  ylab = "Harga (Rp/kg)"
)

grid()

Berdasarkan plot, harga GKP secara umum menunjukkan kecenderungan meningkat dari tahun 2023 sampai tahun 2024. Meskipun terdapat beberapa penurunan pada bulan tertentu, pola keseluruhan data menunjukkan adanya tren naik.

3.2 Transformasi Logaritma

Transformasi logaritma dilakukan untuk membantu menstabilkan variansi data. Transformasi yang digunakan adalah logaritma natural.

log_gkp <- log(gkp_ts)

log_gkp
##           Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
## 2023 8.556414 8.546752 8.575462 8.594154 8.565983 8.584852 8.603371 8.612503
## 2024 8.639411 8.648221 8.665613 8.682708 8.656955 8.674197 8.691146 8.699515
##           Sep      Oct      Nov      Dec
## 2023 8.594154 8.621553 8.630522 8.648221
## 2024 8.682708 8.707814 8.724207 8.748305

Perbandingan antara data asli dan data setelah transformasi logaritma ditampilkan melalui plot berikut.

par(mfrow = c(1, 2))

plot(
  gkp_ts,
  type = "o",
  pch = 16,
  col = "#D88195",
  main = "Data Asli",
  xlab = "Tahun",
  ylab = "Harga (Rp/kg)"
)

plot(
  log_gkp,
  type = "o",
  pch = 16,
  col = "#C96F86",
  main = "Hasil Transformasi Log",
  xlab = "Tahun",
  ylab = "Log Harga"
)

par(mfrow = c(1, 1))

Dari hasil plot, data setelah transformasi logaritma masih menunjukkan kecenderungan meningkat. Hal ini karena transformasi logaritma digunakan untuk membantu menstabilkan variansi, bukan untuk menghilangkan tren.

3.3 Differencing Tingkat Pertama

Setelah dilakukan transformasi logaritma, langkah berikutnya adalah melakukan differencing tingkat pertama.

Rumus yang digunakan adalah:

\[ W_t = \log(Z_t) - \log(Z_{t-1}) \]

diff_log_gkp <- diff(log_gkp)

diff_log_gkp
##               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

Hasil differencing kemudian divisualisasikan menggunakan plot.

plot(
  diff_log_gkp,
  type = "o",
  pch = 16,
  col = "#D88195",
  lwd = 2,
  main = "Differencing Pertama Data Log GKP",
  xlab = "Tahun",
  ylab = "Differencing Log"
)

grid()

Berdasarkan plot tersebut, data hasil differencing berfluktuasi di sekitar nilai yang relatif stabil. Tren naik yang terlihat pada data asli sudah tidak terlihat dengan jelas.

Dengan demikian, differencing tingkat pertama sudah cukup untuk mengurangi tren pada data.

4. EVALUASI RAMALAN

4.1 Pembagian Data Latih dan Data Uji

Sesuai ketentuan tugas, 21 observasi pertama digunakan sebagai data latih dan 3 observasi terakhir digunakan sebagai data uji.

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

train
##  [1] 5200 5150 5300 5400 5250 5350 5450 5500 5400 5550 5600 5700 5650 5700 5800
## [16] 5900 5750 5850 5950 6000 5900
test
## [1] 6050 6150 6300

Data latih berakhir pada September 2024 dengan harga sebesar Rp5.900/kg. Tiga observasi terakhir yang digunakan sebagai data uji adalah harga bulan Oktober, November, dan Desember 2024.

4.2 Ramalan Naif

Pada metode ramalan naif, nilai terakhir dari data latih digunakan sebagai ramalan untuk seluruh periode data uji.

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

naive_forecast
## [1] 5900 5900 5900

Hasil perbandingan antara nilai aktual dan ramalan ditampilkan sebagai berikut.

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

hasil_ramalan
##           Bulan Aktual Ramalan
## 1  Oktober 2024   6050    5900
## 2 November 2024   6150    5900
## 3 Desember 2024   6300    5900

Hasil ramalan naif dapat dilihat pada tabel berikut.

Bulan Aktual Ramalan
Oktober 2024 6050 5900
November 2024 6150 5900
Desember 2024 6300 5900

Terlihat bahwa nilai aktual lebih besar daripada hasil ramalan naif pada ketiga bulan tersebut. Hal ini sesuai dengan pola data yang masih menunjukkan kecenderungan meningkat.

4.3 Menghitung Error

Error ramalan dihitung menggunakan selisih antara nilai aktual dan nilai ramalan.

\[ e_t = Z_t - \hat{Z}_t \]

error <- test - naive_forecast

error
## [1] 150 250 400

Tabel error ramalan:

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

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

Hasil error yang diperoleh adalah:

Bulan Aktual Ramalan Error
Oktober 2024 6050 5900 150
November 2024 6150 5900 250
Desember 2024 6300 5900 400

4.4 Perhitungan ME, MAE, MSE, RMSE, dan MAPE

Mean Error (ME)

ME digunakan untuk melihat arah bias dari hasil ramalan.

ME <- mean(error)

ME
## [1] 266.6667

Nilai ME yang diperoleh adalah 266,67. Nilai positif menunjukkan bahwa hasil ramalan cenderung lebih rendah dibandingkan nilai aktual.

Mean Absolute Error (MAE)

MAE menunjukkan rata-rata besar kesalahan ramalan tanpa memperhatikan arah kesalahan.

MAE <- mean(abs(error))

MAE
## [1] 266.6667

Nilai MAE yang diperoleh adalah 266,67. Artinya, rata-rata kesalahan ramalan sekitar Rp266,67/kg.

Mean Squared Error (MSE)

MSE diperoleh dengan mengkuadratkan error kemudian mengambil nilai rata-ratanya.

MSE <- mean(error^2)

MSE
## [1] 81666.67

Nilai MSE yang diperoleh adalah 81.666,67.

Root Mean Squared Error (RMSE)

RMSE merupakan akar dari MSE sehingga satuannya kembali sama dengan data asli.

RMSE <- sqrt(MSE)

RMSE
## [1] 285.7738

Nilai RMSE yang diperoleh adalah 285,77.

Mean Absolute Percentage Error (MAPE)

MAPE digunakan untuk melihat rata-rata kesalahan ramalan dalam bentuk persentase.

MAPE <- mean(abs(error / test)) * 100

MAPE
## [1] 4.297862

Nilai MAPE yang diperoleh adalah 4,30%.

4.5 Hasil Evaluasi Ramalan

Seluruh metrik evaluasi dirangkum dalam satu tabel.

hasil_metrik <- data.frame(
  Metrik = c(
    "ME",
    "MAE",
    "MSE",
    "RMSE",
    "MAPE"
  ),
  Nilai = c(
    ME,
    MAE,
    MSE,
    RMSE,
    MAPE
  )
)

hasil_metrik
##   Metrik        Nilai
## 1     ME   266.666667
## 2    MAE   266.666667
## 3    MSE 81666.666667
## 4   RMSE   285.773803
## 5   MAPE     4.297862

Hasil evaluasi ramalan adalah sebagai berikut.

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

Berdasarkan hasil tersebut, nilai ME dan MAE sama-sama sebesar 266,67. ME yang bernilai positif menunjukkan adanya kecenderungan under-forecast, yaitu ramalan lebih rendah daripada nilai aktual.

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

5. KESIMPULAN

Berdasarkan analisis yang telah dilakukan, harga GKP Kabupaten Serang periode Januari 2023 sampai Desember 2024 menunjukkan kecenderungan meningkat. Transformasi logaritma digunakan untuk membantu menstabilkan variansi, sedangkan differencing tingkat pertama digunakan untuk mengurangi tren.

Setelah dilakukan differencing pada data hasil transformasi logaritma, pola tren sudah tidak terlihat dengan jelas sehingga differencing pertama cukup untuk mengurangi tren pada data.

Pada ramalan naif dengan 21 observasi sebagai data latih dan 3 observasi sebagai data uji diperoleh ME sebesar 266,67, MAE sebesar 266,67, MSE sebesar 81.666,67, RMSE sebesar 285,77, dan MAPE sebesar 4,30%.

Secara keseluruhan, hasil evaluasi menunjukkan bahwa ramalan naif memiliki rata-rata kesalahan sebesar 4,30% berdasarkan MAPE.