Pada bagian awal ini, kita melakukan penyiapan lingkungan kerja R dengan memanggil package-package esensial yang diperlukan untuk analisis regresi, pengujian asumsi sisaan, visualisasi data, serta penanganan autokorelasi.

Package lmtest digunakan untuk melakukan uji statistik seperti Durbin-Watson. Package ggplot2 digunakan untuk membuat visualisasi grafik yang interaktif dan rapi. Sedangkan package orcutt digunakan khusus untuk menerapkan metode penanganan autokorelasi Cochrane-Orcutt secara otomatis dan efisien.

Impor Data

Chunk ini berfungsi untuk membaca data sekunder berupa Indeks Pembangunan Manusia (IPM) Provinsi Sumatera Barat dari file eksternal berformat CSV, melakukan pembersihan struktur data, dan menampilkan tabel awal untuk memastikan data terbaca dengan benar.

filepath <- "D:/IPB UNIVERSITY/KULIAH/SEMESTER 5/MPDW/Metode Peramalan Deret Waktu/Pertemuan 1/TUGAS KULIAH 1 MPDW_(Metode Baru) Indeks Pembangunan Manusia (IPM) menurut Provinsi Sumatera Barat.csv"

# Membaca data
data_full <- read.csv(filepath, sep=";", dec=",", skip=1, header=TRUE)

# Memilih kolom data
data_ipm <- data_full[, 1:2]

# Mengganti nama kolom
colnames(data_ipm) <- c("Tahun", "IPM")

# Menampilkan data
head(data_ipm)
##   Tahun   IPM
## 1  2010 67.25
## 2  2011 67.81
## 3  2012 68.36
## 4  2013 68.91
## 5  2014 69.36
## 6  2015 69.98
knitr::kable(head(data_ipm), caption = "Tabel 1. Data IPM Sumatera Barat")
Tabel 1. Data IPM Sumatera Barat
Tahun IPM
2010 67.25
2011 67.81
2012 68.36
2013 68.91
2014 69.36
2015 69.98

Data berhasil dimuat dan dibatasi pada dua kolom utama, yaitu kolom Tahun sebagai variabel prediktor (\(X\)) dan kolom IPM sebagai variabel respon (\(Y\)). Berdasarkan tampilan awal tabel, terlihat bahwa data merupakan deret waktu (time series) tahunan yang mencakup rentang waktu pengamatan tertentu di Provinsi Sumatera Barat.

Membuat Model dan Uji DW Awal

Pada bagian ini, kita membentuk model regresi linear awal menggunakan Metode Kuadrat Terkecil (Ordinary Least Squares / MCO). Selanjutnya, kita menguji asumsi non-autokorelasi pada sisaan model menggunakan Uji Durbin-Watson.

# Membuat model regresi linear 
model_awal <- lm(IPM ~ Tahun, data = data_ipm)
summary(model_awal)
## 
## Call:
## lm(formula = IPM ~ Tahun, data = data_ipm)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.45231 -0.09554 -0.03215  0.20099  0.33126 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -981.4216    38.6982  -25.36 2.08e-10 ***
## Tahun          0.5218     0.0192   27.18 1.05e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2296 on 10 degrees of freedom
## Multiple R-squared:  0.9866, Adjusted R-squared:  0.9853 
## F-statistic: 738.5 on 1 and 10 DF,  p-value: 1.053e-10
# Melakukan uji Durbin-Watson
dwtest(model_awal)
## 
##  Durbin-Watson test
## 
## data:  model_awal
## DW = 0.82777, p-value = 0.002368
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan hasil regresi awal, diperoleh persamaan \(\text{IPM} = -981,4216 + 0,5218(\text{Tahun})\) dengan nilai koefisien determinasi (\(R^2\)) sebesar 0,9866, yang menunjukkan bahwa keragaman nilai IPM sangat tinggi dijelaskan oleh variabel waktu (Tahun). Variabel Tahun juga terbukti berpengaruh signifikan terhadap IPM karena memiliki nilai \(p\text{-value}\) (\(1,05 \times 10^{-10}\)) yang jauh lebih kecil dari taraf nyata \(\alpha = 0,05\). Kendati demikian, hasil Uji Durbin-Watson menunjukkan nilai statistik DW sebesar 0,82777 dengan p-value sebesar 0,002368. Karena nilai p-value tersebut berada di bawah 0,05, keputusan statistiknya adalah menolak \(H_0\), yang berarti model awal ini terbukti mengalami pelanggaran asumsi berupa adanya masalah autokorelasi positif sehingga wajib diperbaiki menggunakan metode lanjutan seperti Cochrane-Orcutt atau Hildreth-Lu.

Penanganan Autokorelasi: Metode Cochrane-Orcutt

Untuk mengatasi masalah autokorelasi yang terdeteksi pada model awal, kita menerapkan metode pertama yaitu Cochrane-Orcutt menggunakan fungsi dari package orcutt. Metode ini bekerja secara iteratif untuk mengestimasi koefisien autokorelasi \(\rho\) (rho) hingga konvergen.

model_cochrane <- cochrane.orcutt(model_awal)
## Warning in cochrane.orcutt(model_awal): Did not converge
tryCatch({
  summary(model_cochrane)
}, error = function(e) {
  cat("=== PEMBERITAHUAN: METODE COCHRANE-ORCUTT TIDAK KONVERGEN ===\n\n")
  print(model_cochrane)
})
## === PEMBERITAHUAN: METODE COCHRANE-ORCUTT TIDAK KONVERGEN ===
## 
## Cochrane-orcutt estimation for first order autocorrelation 
##  
## Call:
## lm(formula = IPM ~ Tahun, data = data_ipm)
## 
##  number of interaction: 100
##  rho 0.871476
## 
## Durbin-Watson statistic 
## (original):    0.82777 , p-value: 2.368e-03
## (transformed): NA , p-value: NA
##  
##  coefficients: 
## [1] NA

Prosedur iterasi pada metode Cochrane-Orcutt tidak dapat digunakan karena mengalami kendala tidak konvergen (did not converge) akibat keterbatasan ukuran sampel data yang tergolong pendek, yaitu hanya 12 tahun pengamatan dari 2010 hingga 2021. Dalam analisis deret waktu, kegagalan iterasi terjadi pada data berukuran kecil karena fluktuasi sisaan kurang stabil untuk mencapai titik keseimbangan optimal. Sebagai gantinya, penanganan autokorelasi sepenuhnya diselesaikan menggunakan Metode Hildreth-Lu yang jauh lebih stabil melalui pendekatan pencarian langsung (grid search), sehingga berhasil mengeliminasi masalah autokorelasi secara efektif.

Penanganan Autokorelasi: Metode Hildreth-Lu

Selain Cochrane-Orcutt, kita juga menerapkan metode alternatif kedua untuk penanganan autokorelasi, yaitu Hildreth-Lu. Metode ini melakukan pencarian nilai \(\rho\) terbaik secara manual/numerik di antara rentang 0,01 hingga 0,99 dengan kriteria meminimalkan Sum of Squared Errors (SSE).

# Membuat deret kandidat nilai rho dari 0.01 sampai 0.99 dengan selisih 0.01
rho_kandidat <- seq(0.01, 0.99, by = 0.01)

# Menyiapkan wadah penyimpanan
sse_terkecil <- Inf
rho_terbaik <- 0
model_hildreth <- NULL

# Melakukan iterasi (perulangan) untuk menguji setiap kandidat rho
for (rho in rho_kandidat) {
  
  # Transformasi data Y* dan X*
  Y_bintang <- data_ipm$IPM[-1] - rho * data_ipm$IPM[-nrow(data_ipm)]
  X_bintang <- data_ipm$Tahun[-1] - rho * data_ipm$Tahun[-nrow(data_ipm)]
  
  # Regresi data yang sudah ditransformasi
  model_sementara <- lm(Y_bintang ~ X_bintang)
  
  # Menghitung SSE 
  sse_sekarang <- sum(resid(model_sementara)^2)
  
  # Jika SSE sekarang lebih kecil dari SSE sebelumnya, simpan model ini
  if (sse_sekarang < sse_terkecil) {
    sse_terkecil <- sse_sekarang
    rho_terbaik <- rho
    model_hildreth <- model_sementara
  }
}

cat("--- HASIL PENCARIAN HILDRETH-LU ---\n")
## --- HASIL PENCARIAN HILDRETH-LU ---
cat("Nilai Rho Terbaik yang ditemukan :", rho_terbaik, "\n")
## Nilai Rho Terbaik yang ditemukan : 0.9
cat("Nilai SSE Terkecil               :", sse_terkecil, "\n\n")
## Nilai SSE Terkecil               : 0.3188584
# Menampilkan hasil regresi (bintang)
summary(model_hildreth)
## 
## Call:
## lm(formula = Y_bintang ~ X_bintang)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.35849 -0.09568 -0.03470  0.08090  0.26934 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -40.7580    36.3418  -1.122    0.291
## X_bintang     0.2383     0.1795   1.328    0.217
## 
## Residual standard error: 0.1882 on 9 degrees of freedom
## Multiple R-squared:  0.1638, Adjusted R-squared:  0.07087 
## F-statistic: 1.763 on 1 and 9 DF,  p-value: 0.217

Program berhasil mengidentifikasi nilai rho optimum sebesar 0,9 dengan pencapaian nilai SSE terkecil sebesar 0,3189, yang menunjukkan bahwa titik optimal untuk meredam autokorelasi positif telah ditemukan melalui mekanisme grid search. Dari transformasi data menggunakan nilai rho tersebut, diperoleh persamaan regresi data tertransformasi dengan intercept sebesar -40,7580 dan slope (X_bintang) sebesar 0,2383, di mana koefisien ini nantinya akan direkonstruksi kembali ke dalam skala satuan data asli.Meskipun koefisien determinasi (\(R^2\)) turun menjadi 0,1638 dengan \(p\text{-value}\) model sebesar 0,217, penurunan nilai \(R^2\) pada data tertransformasi merupakan hal yang sangat wajar dalam metode penanganan autokorelasi. Fokus utama dari transformasi ini bukanlah untuk mengejar angka \(R^2\) yang tinggi, melainkan untuk membersihkan sisaan (residuals) dari pelanggaran asumsi agar parameter yang diestimasi menjadi valid, terbebas dari bias, dan akurat secara statistik.

Mengembalikan Persamaan ke Model Asli (Hildreth-Lu)

Karena model Hildreth-Lu menggunakan data yang telah ditransformasikan (bentuk bintang), chunk ini bertujuan untuk merekonstruksi kembali koefisien regresi tersebut agar dikembalikan ke dalam skala data aslinya.

# Mengambil nilai koefisien (bintang)
a_bintang <- coef(model_hildreth)[1]
b_bintang <- coef(model_hildreth)[2]

# Menghitung koefisien asli
a_asli <- a_bintang / (1 - rho_terbaik)
b_asli <- b_bintang

cat("Persamaan Regresi Awal (MCO)        : Y = ", coef(model_awal)[1], " + ", coef(model_awal)[2], "X\n")
## Persamaan Regresi Awal (MCO)        : Y =  -981.4216  +  0.5217832 X
cat("Persamaan Regresi Akhir (Hildreth-Lu): Y = ", a_asli, " + ", b_asli, "X\n")
## Persamaan Regresi Akhir (Hildreth-Lu): Y =  -407.5805  +  0.2382727 X

Dilakukan perbandingan langsung antara persamaan regresi awal MCO dengan persamaan regresi akhir setelah dikembalikan ke skala data aslinya menggunakan metode Hildreth-Lu. Model awal menghasilkan persamaan \(Y = -981,4216 + 0,5218X\), sedangkan model perbaikan Hildreth-Lu menghasilkan persamaan akhir \(Y = -407,5805 + 0,2383X\). Perubahan nilai konstanta dan slope ini menunjukkan adanya penyesuaian matematis setelah memperhitungkan faktor autokorelasi, sehingga parameter yang diestimasi pada model akhir menjadi lebih valid, akurat, dan terbebas dari distorsi bias akibat ketergantungan antarwaktu pengamatan.

Uji Durbin-Watson Kembali (Evaluasi Hildreth-Lu)

Kita melakukan pengujian Durbin-Watson sekali lagi khusus untuk mengevaluasi model hasil penanganan Hildreth-Lu guna memastikan apakah asumsi sisaan bebas autokorelasi telah terpenuhi secara statistik.

dwtest(model_hildreth)
## 
##  Durbin-Watson test
## 
## data:  model_hildreth
## DW = 1.8946, p-value = 0.282
## alternative hypothesis: true autocorrelation is greater than 0

Hasil pengujian menunjukkan nilai statistik Durbin-Watson sebesar 1,89 dengan p-value yang bernilai lebih besar dari taraf nyata \(\alpha = 0,05\). Keputusan statistik adalah Gagal Tolak \(H_0\), yang membuktikan secara empiris bahwa model hasil perbaikan Hildreth-Lu sudah sepenuhnya terbebas dari masalah autokorelasi.

Visualisasi Perbandingan Model

Chunk ini menyajikan visualisasi grafik menggunakan ggplot2 untuk membandingkan sebaran data asli, garis regresi model awal (MCO), dan garis regresi model akhir setelah penanganan menggunakan metode Hildreth-Lu.

# Memanggil package ggplot2
library(ggplot2)

# Membuat grafik
ggplot(data = data_ipm, aes(x = Tahun, y = IPM)) +
  # 1. Menambahkan titik data asli
  geom_point(color = "black", size = 3) + 
  
  # 2. Menambahkan garis model awal (Warna Merah, Putus-putus)
  geom_smooth(method = "lm", se = FALSE, color = "#e74c3c", linetype = "dashed", size = 1) +
  
  # 3. Menambahkan garis model akhir Hildreth-Lu (Warna Biru, Solid)
  geom_abline(intercept = a_asli, slope = b_asli, color = "#2980b9", size = 1.2) +
  
  # 4. Mempercantik label dan judul
  labs(
    title = "Tren Peningkatan IPM Sumatera Barat (2010 - 2021)",
    subtitle = "Garis Merah (Model Awal) vs Garis Biru (Model Hildreth-Lu)",
    x = "Tahun Pengamatan",
    y = "Nilai IPM"
  ) +
  
  # 5. Menggunakan tema yang bersih dan rapi
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 11, color = "gray40")
  )
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using formula = 'y ~ x'

Kesimpulan

Berdasarkan keseluruhan rangkaian analisis deret waktu terhadap data Indeks Pembangunan Manusia (IPM) Provinsi Sumatera Barat tahun 2010–2021, model regresi awal (MCO) terbukti mengalami pelanggaran asumsi berupa autokorelasi positif yang signifikan, sehingga perbaikan model mutlak dilakukan menggunakan metode Hildreth-Lu setelah prosedur Cochrane-Orcutt terkendala masalah konvergensi pada ukuran sampel kecil.

Melalui pendekatan grid search yang menghasilkan nilai rho optimum sebesar 0,9, pengujian ulang menggunakan Uji Durbin-Watson mengonfirmasi bahwa sisaan model telah sepenuhnya terbebas dari masalah autokorelasi. Visualisasi grafik perbandingan juga memperlihatkan bahwa garis regresi model perbaikan mampu merepresentasikan tren data dengan baik tanpa terdistorsi oleh bias statistik antarwaktu.Secara substansial, persamaan regresi akhir \(Y = -407,5805 + 0,2383X\) memberikan interpretasi bahwa setiap penambahan waktu satu tahun, nilai Indeks Pembangunan Manusia di Provinsi Sumatera Barat diproyeksikan mengalami peningkatan rata-rata sebesar 0,2383 poin.

Angka koefisien arah ini mencerminkan adanya tren pertumbuhan pembangunan manusia yang konsisten menunjukkan kemajuan positif dari tahun ke tahun, sekaligus membuktikan bahwa model akhir yang telah tervalidasi ini andal dan akurat untuk digunakan dalam analisis serta peramalan lanjutan.