1. Buat objek ts dan plot runtun waktu dari harga GKP diatas

harga_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)

ts_hg<-ts(harga_GKP,start=c(2023,1),frequency = 12)

print(ts_hg)
##       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
plot(ts_hg,
     main = "Harga Gabah Kering Panen (GKP) tingkat petani Kabupaten Serang periode 2023-2024",
     ylab = "Harga Rataan",
     xlab = "Tahun",
     col = "pink" ,
     lwd = 2)

Berdasarkan plot runtun waktu harga Gabah Kering Panen (GKP) tingkat petani Kabupaten Serang Januari 2023-Desember 2024, terlihat bahwa harga GKP secara umum mengalami fenomena tren meningkat dari waktu ke waktu. Seperti pada bulan Januari 2023 harga GKP sebesar \(Rp5.200/kg\) dan meningkat menjadi \(Rp6.300/kg\) di bulan Desember 2024. Meskipun demikian, masih terdapat beberapa fluktuasi bulanan di beberapa bulan (Mei 2023, September 2023, Mei 2024, dan September 2024).

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

# 1. Transformasi Log 
log_hg<-log(ts_hg)

sd(ts_hg) ; sd(log_hg)
## [1] 314.1514
## [1] 0.05539227
# 2. Plot Perbandingan Data asli, Log, dan Differencing
par(mfrow=c(2,1))
## 1. Data asli
plot(ts_hg,
     main = "Data Asli Harga GKP",
     ylab = "Harga Rataan",
     xlab = "",
     col = "red" ,
     lwd = 2)

## 2. Transformasi Log
plot(log_hg,
     main = "Trasformasi Log Harga GKP",
     ylab = "Log(Harga)",
     xlab = "",
     col = "blue",
     lwd = 2)

par(mfrow=c(1,1))

Transformasi logaritma dilakukan untuk membantu menstabilkan varians data dan mengurangi pengaruh perubahan skala pada harga GKP. Berdasarkan plot, pola pergerakan data setelah transformasi logaritma tetap mengikuti pola umum data asli, tetapi berada pada skala yang lebih kecil. Standar deviasi data asli sebesar 314,1514, sedangkan setelah transformasi logaritma 0,05539227. Hal ini menunjukkan bahwa transformasi logaritma mengubah skala data dan membantu mengurangi variasi relatif pada data. Namun, transformasi logaritma belum menghilangkan kecenderungan meningkat pada data, sehingga masih diperlukan proses differencing.

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

## 1. Differencing Log 
diff_log_hg<-diff(log_hg)
## 2. Plot Differencing Log
plot(diff_log_hg,
     main = "Differencing Log Harga GKP",
     ylab = expression(Delta~log(Harga)),
     xlab = "Tahun",
     col = "black",
     lwd = 2,
     type = "o",
     pch = 16)

## 3. Check Standard Deviasi 
sd(diff_log_hg)
## [1] 0.01725887

Setelah dilakukan differencing pada tingkat pertama terhadap data yang telah ditransformasi logaritma, pola tren meningkat pada data sebelumnya menjadi berkurang. Berdasarkan plot differencing, nilai perubahan harga berflukturasi di sekitar nol dan tidak ada lagi kecenderungan meningkat secara konsisten. Standar deviasi hasil differencing sebesar 0,01725887. Hasil differencing tingkat pertama dapat dikatakan telah membantu menghilangkan tren pada data hasil transformasi logaritma, sehingga data menjadi lebih stabil untuk digunakan dalam analisis runtun waktu

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.

install.packages("forecast")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.6'
## (as 'lib' is unspecified)
library(forecast)

train <- head(harga_GKP, 21)
test <- tail(harga_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

## Hasil Forecast 
hasil_forecast<-data.frame(
  Periode = c("Oktober 2024",
              "November 2024",
              "Desember 2024"),
  Aktual = test,
  Ramalan = naive_forecast,
  Error = error,
  Absolute_Error = abs(error)
)
hasil_forecast
##         Periode Aktual Ramalan Error Absolute_Error
## 1  Oktober 2024   6050    5900   150            150
## 2 November 2024   6150    5900   250            250
## 3 Desember 2024   6300    5900   400            400
## Hasil ME, MAE, MSE, RMSE, dan MAPE
ME
## [1] 266.6667
MAE
## [1] 266.6667
MSE
## [1] 81666.67
RMSE
## [1] 285.7738
MAPE
## [1] 4.297862

Berdasarkan metode ramalan Naive dengan 21 observasi pertama sebagai data latih dan 3 observasi terakhir sebagai data testing, diperoleh nilai terakhir sebesar \(Rp5.900/kg\). Oleh karena itu, ramalan Naive untuk bulan Oktober, November, Desember 2024 masing-masing bernilai sebesar \(Rp5.900/kg\). Sementara harga aktualnya periode bulan-bulan tersebut adalah \(Rp6.050/kg\), \(Rp6.150/kg\), dan \(Rp6.300/kg\).