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