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")
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.
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.
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%.