# 1
data_vec <- c(
# Tahun 2023
420, 410, 430, 780, 460, 470, 460, 480, 440, 450, 460, 600,
# Tahun 2024
450, 440, 460, 820, 490, 500, 495, 510, 470, 480, 490, 640
)
# Buat objek time series
data_ts <- ts(data_vec, start = c(2023, 1), frequency = 12)
label_bulan = c(
"Jan-23", "Feb-23", "Mar-23", "Apr-23", "Mei-23", "Jun-23",
"Jul-23", "Agu-23", "Sep-23", "Okt-23", "Nov-23", "Des-23",
"Jan-24", "Feb-24", "Mar-24", "Apr-24", "Mei-24", "Jun-24",
"Jul-24", "Agu-24", "Sep-24", "Okt-24", "Nov-24", "Des-24"
)
plot(
data_ts,
type = "l",
col = "blue",
main = "Plot Time Series Kendaraan Merak-Bakauheni (Januari 2023 - Desember 2024)",
xlab = "Bulan",
ylab = "Jumlah Kendaraan (Ribu)",
xaxt = "n"
)
axis(1, at = time(data_ts), labels = label_bulan, las = 2)
abline(v = 2023.91667, col = "gray30", lwd = 2)
mtext("2023", side = 3, at = 2023.4, col = "gray30", font = 2)
mtext("2024", side = 3, at = 2024.4, col = "gray30", font = 2)
Plot ts menunjukkan pada bulan April dan Desember baik di tahun 2023 dan 2024 mengalami peningkatan jumlah kendaraan. Pola yang terulang ditahun 2023 ke 2025 ini bisa diindikasi sebagai komponen musiman.
# 2
model_trend <- lm(data_ts ~ time(data_ts))
summary(model_trend)
##
## Call:
## lm(formula = data_ts ~ time(data_ts))
##
## Residuals:
## Min 1Q Median 3Q Max
## -68.63 -51.54 -34.45 -15.86 305.70
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -68398.21 75055.08 -0.911 0.372
## time(data_ts) 34.04 37.08 0.918 0.369
##
## Residual standard error: 104.8 on 22 degrees of freedom
## Multiple R-squared: 0.03689, Adjusted R-squared: -0.006883
## F-statistic: 0.8428 on 1 and 22 DF, p-value: 0.3686
plot(
data_ts,
type = "l",
col = "blue",
main = "Plot Time Series Kendaraan Merak-Bakauheni (Januari 2023 - Desember 2024)",
xlab = "Bulan",
ylab = "Jumlah Kendaraan (Ribu)",
xaxt = "n"
)
axis(1, at = time(data_ts), labels = label_bulan, las = 2)
abline(v = 2023.91667, col = "gray30", lwd = 2)
mtext("2023", side = 3, at = 2023.4, col = "gray30", font = 2)
mtext("2024", side = 3, at = 2024.4, col = "gray30", font = 2)
abline(model_trend, col = "red", lwd = 2, lty = 2)
cat("kemiringan tren/tahun:", coef(model_trend)[2])
## kemiringan tren/tahun: 34.04348
cat("R2:", summary(model_trend)$ r.squared)
## R2: 0.03689454
Kemiringan pertahun mencapai 34,04, menunjukkan tren positif. Namun nilai R-squared hanya 0,037 dan p-valuenya 0,369 kurang dari 0,05.
# 3
bulan <- factor(rep(month.abb, 2), levels = month.abb)
tahun <- rep(c("2023", "2024"), each = 12)
df <- data.frame(Periode = label_bulan, Tahun = tahun, Bulan = bulan, Kendaraan = data_vec)
df
## Periode Tahun Bulan Kendaraan
## 1 Jan-23 2023 Jan 420
## 2 Feb-23 2023 Feb 410
## 3 Mar-23 2023 Mar 430
## 4 Apr-23 2023 Apr 780
## 5 Mei-23 2023 May 460
## 6 Jun-23 2023 Jun 470
## 7 Jul-23 2023 Jul 460
## 8 Agu-23 2023 Aug 480
## 9 Sep-23 2023 Sep 440
## 10 Okt-23 2023 Oct 450
## 11 Nov-23 2023 Nov 460
## 12 Des-23 2023 Dec 600
## 13 Jan-24 2024 Jan 450
## 14 Feb-24 2024 Feb 440
## 15 Mar-24 2024 Mar 460
## 16 Apr-24 2024 Apr 820
## 17 Mei-24 2024 May 490
## 18 Jun-24 2024 Jun 500
## 19 Jul-24 2024 Jul 495
## 20 Agu-24 2024 Aug 510
## 21 Sep-24 2024 Sep 470
## 22 Okt-24 2024 Oct 480
## 23 Nov-24 2024 Nov 490
## 24 Des-24 2024 Dec 640
# Puncak tunggal tertinggi
max(data_ts)
## [1] 820
which.max(data_ts)
## [1] 16
time(data_ts)[which.max(data_ts)]
## [1] 2024.25
# Semua bulan puncak (bukan cuma satu titik maksimum global)
df_urut <- df[order(-df$Kendaraan), ]
head(df_urut, 4)
## Periode Tahun Bulan Kendaraan
## 16 Apr-24 2024 Apr 820
## 4 Apr-23 2023 Apr 780
## 24 Des-24 2024 Dec 640
## 12 Des-23 2023 Dec 600
Lonjakan jumlah kendaraan yang terjadi pada bulan April dan Desember disebabkan oleh long weekend april (libur lebaran/arus mudik) dan desember libur nataharu.
# 4
library(forecast)
ggseasonplot(
data_ts, year.labels = TRUE, year.labels.left = TRUE,
main = "Seasonal Plot Jumlah Kendaraan",
xlab = "Bulan", ylab = "Jumlah Kendaraan (ribu)"
)
boxplot(
Kendaraan ~ Bulan, data = df,
main = "Boxplot Jumlah Kendaraan per Bulan",
xlab = "Bulan", ylab = "Jumlah Kendaraan (ribu)", col = "lightblue"
)
pola yang di tampilkan pada seasonal plot terlihat konsisten antar tahun, berarti lonjakan jumlah kendaraan tidak muncul secara acak.
Pola yang sama terlihat pada boxplot lonjakan jumlah kendaraan terlihat dibulan april dan desember. karna lonjakan kendaraan ini bisa dijelaskan oleh peristiwa berulang (kalender/liburan).
dari seasonal plot dan boxplot pola yang terbentuk bersifat musiman, bukan pola siklis yang periodenya tidak tetap