Penanganan autokorelasi data time series berdasarkan data BPS Indeks Pembangunan Manusia (IPM) di Provinsi Riau tahun 2010 - 2024 (tahunan)

library(readxl)
## Warning: package 'readxl' was built under R version 4.5.2
data <- read_xlsx("C:\\Users\\ASUS\\Downloads\\Tugas MPDW Per 2_Pemodelan IPM.xlsx", sheet="Prov")
tail(data)
## # A tibble: 6 × 2
##   Tahun IPM_Riau
##   <dbl>    <dbl>
## 1  2019     73  
## 2  2020     72.7
## 3  2021     72.9
## 4  2022     73.5
## 5  2023     74.0
## 6  2024     74.8
plot(data$Tahun, data$IPM_Riau, 
     type = "l",
     main = "Plot IPM Prov. Riau Tahun 2010 - 2024", 
     ylab = "IPM", 
     xlab = "Tahun", 
     col = "blue")

Uji Durbin-Watson

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
model <- lm(IPM_Riau ~ Tahun, data = data)

dwtest(model)
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 1.0811, p-value = 0.01082
## alternative hypothesis: true autocorrelation is greater than 0

DW = 1.0811 mendekati 0 dan p-value = 0.01082 < 0.05 mengindikasikan adanya autokorelasi positif.

Cochrane-Orcutt

Metode Cochrane-Orcutt digunakan untuk mengatasi masalah autokorelasi melalui pendekatan iteratif hingga diperoleh nilai parameter autokorelasi (ρ) yang konvergen.

library(prais)
## Warning: package 'prais' was built under R version 4.5.3
## Loading required package: sandwich
## Warning: package 'sandwich' was built under R version 4.5.3
## Loading required package: pcse
## Warning: package 'pcse' was built under R version 4.5.2
## 
## Attaching package: 'pcse'
## The following object is masked from 'package:sandwich':
## 
##     vcovPC
hasil_co <- prais_winsten(IPM_Riau ~ Tahun, data = data, index = "Tahun", method = "cochrane-orcutt")
## Warning in stats::lm(formula = formula, data = data, ...): method =
## 'cochrane-orcutt' is not supported. Using 'qr'
## Iteration 0: rho = 0
## Iteration 1: rho = 0.4568
## Iteration 2: rho = 0.4591
## Iteration 3: rho = 0.4592
## Iteration 4: rho = 0.4592
summary(hasil_co)
## 
## Call:
## prais_winsten(formula = IPM_Riau ~ Tahun, data = data, index = "Tahun", 
##     method = "cochrane-orcutt")
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.4151 -0.1964  0.0078  0.1088  0.5101 
## 
## AR(1) coefficient rho after 4 iterations: 0.4592
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -800.87722   44.46970  -18.01 1.42e-10 ***
## Tahun          0.43257    0.02205   19.62 4.84e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.234 on 13 degrees of freedom
## Multiple R-squared:  0.9985, Adjusted R-squared:  0.9983 
## F-statistic:  8434 on 1 and 13 DF,  p-value: < 2.2e-16
## 
## Durbin-Watson statistic (original): 1.081 
## Durbin-Watson statistic (transformed): 1.523

Berdasarkan hasil estimasi, proses iterasi mencapai konvergensi pada iterasi ke-4 dengan nilai ρ sebesar 0.4592. Penerapan metode ini menghasilkan peningkatan statistik Durbin-Watson dari 1.081 pada model awal menjadi 1.523 pada model hasil transformasi. Selain itu, model menghasilkan nilai R-squared sebesar 0.9985 atau 99.85%, dengan Residual Standard Error sebesar 0.234.

Hildret-Lu

Metode Hildreth-Lu digunakan untuk mengatasi masalah autokorelasi melalui teknik pencarian langsung (grid search) guna memperoleh nilai ρ optimal yang meminimumkan jumlah kuadrat sisaan (Sum of Squared Errors atau SSE).

rho_grid <- seq(-0.99, 0.99, by = 0.01)
sse <- sapply(rho_grid, function(r) {
  y_trans <- data$IPM_Riau[-1] - r * data$IPM_Riau[-length(data$IPM_Riau)]
  x_trans <- data$Tahun[-1] - r * data$Tahun[-length(data$Tahun)]
  sum(residuals(lm(y_trans ~ x_trans))^2)
})

best_rho <- rho_grid[which.min(sse)]
cat("Nilai Rho Optimal Hildreth-Lu:", best_rho, "\n")
## Nilai Rho Optimal Hildreth-Lu: 0.46
y_hl <- data$IPM_Riau[-1] - best_rho * data$IPM_Riau[-length(data$IPM_Riau)]
x_hl <- data$Tahun[-1] - best_rho * data$Tahun[-length(data$Tahun)]

model_hl <- lm(y_hl ~ x_hl)
summary(model_hl)
## 
## Call:
## lm(formula = y_hl ~ x_hl)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.44875 -0.11830 -0.00401  0.17519  0.33530 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -438.24657   32.49105  -13.49 1.30e-08 ***
## x_hl           0.43787    0.02981   14.69 4.94e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2428 on 12 degrees of freedom
## Multiple R-squared:  0.9473, Adjusted R-squared:  0.9429 
## F-statistic: 215.7 on 1 and 12 DF,  p-value: 4.94e-09

Berdasarkan hasil pencarian pada rentang nilai −0.99 hingga 0.99, diperoleh nilai ρ optimal sebesar 0.46. Hasil transformasi dengan nilai tersebut menghasilkan Residual Standard Error sebesar 0.2428 dan nilai R-squared sebesar 0.9473 atau 94.73%.