Persiapan Data

# Install dan panggil paket yang dibutuhkan
if (!require(forecast)) install.packages("forecast")
## Loading required package: forecast
## Warning: package 'forecast' was built under R version 4.4.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
if (!require(tseries)) install.packages("tseries")
## Loading required package: tseries
## Warning: package 'tseries' was built under R version 4.4.3
if (!require(vars)) install.packages("vars")
## Loading required package: vars
## Warning: package 'vars' was built under R version 4.4.3
## Loading required package: MASS
## Loading required package: strucchange
## Warning: package 'strucchange' was built under R version 4.4.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.4.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
## Warning: package 'sandwich' was built under R version 4.4.3
## Loading required package: urca
## Warning: package 'urca' was built under R version 4.4.3
## Loading required package: lmtest
## Warning: package 'lmtest' was built under R version 4.4.3
if (!require(MTS)) install.packages("MTS")
## Loading required package: MTS
## Warning: package 'MTS' was built under R version 4.4.3
## 
## Attaching package: 'MTS'
## The following object is masked from 'package:vars':
## 
##     VAR
if (!require(ggplot2)) install.packages("ggplot2")
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.4.3
library(forecast)
library(tseries)
library(vars)
library(MTS)
library(ggplot2)

# Simulasi data time series
set.seed(123)
data_ts1 <- ts(data.frame(
  Produksi_Padi = cumsum(rnorm(100)),
  Curah_Hujan = cumsum(rnorm(100)),
  Harga_Gabah = cumsum(rnorm(100))
), start = c(2000,1), frequency = 12)

Model ARIMA

Cek Stasioneritas

adf_test_result <- adf.test(data_ts1[, "Produksi_Padi"])
adf_test_result
## 
##  Augmented Dickey-Fuller Test
## 
## data:  data_ts1[, "Produksi_Padi"]
## Dickey-Fuller = -1.8871, Lag order = 4, p-value = 0.6234
## alternative hypothesis: stationary

Bangun Model ARIMA

arima_model <- auto.arima(data_ts1[, "Produksi_Padi"])
summary(arima_model)
## Series: data_ts1[, "Produksi_Padi"] 
## ARIMA(0,1,0)(1,0,0)[12] 
## 
## Coefficients:
##          sar1
##       -0.2113
## s.e.   0.1067
## 
## sigma^2 = 0.8105:  log likelihood = -129.85
## AIC=263.69   AICc=263.82   BIC=268.88
## 
## Training set error measures:
##                     ME      RMSE       MAE      MPE     MAPE      MASE
## Training set 0.1045737 0.8912378 0.7088242 6.900891 40.37817 0.2987783
##                     ACF1
## Training set -0.04478318

Plot Data dan Fitting ARIMA

autoplot(arima_model) +
  ggtitle("ARIMA Model - Produksi Padi") +
  theme_minimal()

Forecast ARIMA 12 Langkah ke Depan

forecast_arima <- forecast(arima_model, h = 12)
autoplot(forecast_arima) +
  ggtitle("Forecast Produksi Padi (ARIMA)") +
  theme_minimal()

forecast_arima
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## May 2008       9.109454 7.955691 10.26322 7.344925 10.87398
## Jun 2008       8.866733 7.235066 10.49840 6.371314 11.36215
## Jul 2008       8.656826 6.658450 10.65520 5.600573 11.71308
## Aug 2008       8.540960 6.233434 10.84849 5.011904 12.07002
## Sep 2008       8.490521 5.910628 11.07041 4.544916 12.43613
## Oct 2008       8.623185 5.797054 11.44932 4.300991 12.94538
## Nov 2008       8.335706 5.283136 11.38828 3.667203 13.00421
## Dec 2008       8.462529 5.199194 11.72586 3.471689 13.45337
## Jan 2009       8.000389 4.539100 11.46168 2.706804 13.29397
## Feb 2009       7.676579 4.028060 11.32510 2.096650 13.25651
## Mar 2009       7.726378 3.899778 11.55298 1.874099 13.57866
## Apr 2009       7.943240 3.946488 11.93999 1.830735 14.05575