Penanganan Autokorelasi IPM Provinsi Kalimantan Barat Tahun 2010-2021
Pendahuluan
Indeks Pembangunan Manusia (IPM) merupakan indikator komposit untuk mengukur capaian pembangunan kualitas hidup manusia. Indeks ini terbentuk dari rata-rata ukur capaian tiga dimensi utama pembangunan manusia, yaitu umur panjang dan hidup sehat, pengetahuan, dan standar hidup layak (BPS, 2020). IPM diperkenalkan oleh United Nations Development Programme (UNDP) pada tahun 1990 dan dipublikasikan secara berkala dalam laporan tahunan Human Development Report (HDR). IPM merupakan indikator penting untuk mengukur keberhasilan dalam upaya membangun kualitas hidup manusia (masyarakat/penduduk). IPM dapat menentukan peringkat atau level pembangunan suatu wilayah/negara. Bagi Indonesia, IPM merupakan data strategis karena selain sebagai ukuran kinerja Pemerintah, IPM juga digunakan sebagai salah satu alokator penentuan Dana Alokasi Umum (DAU).
Data Indeks Pembangunan Manusia Tahun 2010-2021 Provinsi Kalimantan Barat dipilih pada penelitian ini karena pembangunan manusia di Kalimantan Barat terus mengalami kemajuan. Selama 2010-2021, IPM Kalimantan Barat rata-rata meningkat sebesar 0,84 persen per tahun dari 61,97 pada tahun 2010 menjadi 67,90 pada tahun 2021. Setelah mengalami perlambatan pada tahun 2020 karena Pandemi COVID-19, peningkatan IPM Kalimantan Barat sudah kembali membaik pada tahun 2021 seiring dengan perbaikan kinerja ekonomi yang berpengaruh positif terhadap indikator pengeluaran riil per kapita (yang disesuaikan).Dengan capaian IPM tersebut, Kalimantan Barat berada pada posisi status pembangunan manusia kategori “sedang” (BPS Kalimantan Barat 2021).
Data Preparation
Library yang digunakan untuk pengolahan data deret waktu dan pendeteksian autokorelasi serta penanganannya yaitu
tidyverse forecast
TTR readxl tseries
lmtest orcutt HoRM
ggplot2
Data yang digunakan adalah Indeks Pembangunan Manusia Provinsi Kalimantan Barat Tahun 2010-2021 yang etrdiri dari 12 tahun observasi. Berikut ini adalah data IPM Provinsi Kalimantan Barat 2010-2021.
setwd("D:/STATISTIKA IPB/SEMESTER 5/MPDW/tugas")
data_ipm <- read_xlsx("Tugas Individu MPDW.xlsx", sheet = "Sheet1")
Tahun <- data_ipm$Tahun
IPM <- data_ipm$IPM
knitr::kable(data_ipm)| Tahun | IPM |
|---|---|
| 2010 | 61.97 |
| 2011 | 62.35 |
| 2012 | 63.41 |
| 2013 | 64.30 |
| 2014 | 64.89 |
| 2015 | 65.59 |
| 2016 | 65.88 |
| 2017 | 66.26 |
| 2018 | 66.98 |
| 2019 | 67.65 |
| 2020 | 67.66 |
| 2021 | 67.90 |
Berikut ini merupakan plot deret waktu Indeks Pembangunan Manusia Provinsi Kalimantan Barat Tahun 2010-2021.
p <- ggplot(data_ipm, aes(x=Tahun, y=IPM)) +
geom_line(lwd=1.2,col="purple")
p +labs(x="Tahun",y = "Indeks Pembangunan Manusia",
title="Time Series Plot Indeks Pembangunan Manusia Provinsi Kalimantan Barat ",
subtitle = "Periode 2010 - 2021")+
theme_bw()+
theme(
plot.title = element_text(size = 14L,
face = "bold",
hjust = 0.5),
plot.subtitle = element_text(size = 11L,
face = "plain",
hjust = 0.5)
)+geom_point(size=2) +geom_text(aes(label=paste(IPM,"%")),vjust=-0.8,size=3)Korelasi
cor(data_ipm$Tahun, data_ipm$IPM)## [1] 0.9849726
Berdasarkan pengamatan dari plot deret waktu tersebut, secara visual, terlihat bahwa tahun dan IPM Kalbar memiliki hubungan positif dengan korelasi sebesar 0.9849726 yang artinya tahun dan IPM memiliki hubungan yang sangat kuat.
Model Regresi Deret Waktu
model.regresi <- lm(IPM ~ Tahun, data = data_ipm)
summary(model.regresi)##
## Call:
## lm(formula = IPM ~ Tahun, data = data_ipm)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.58987 -0.28821 0.09429 0.28679 0.46726
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.066e+03 6.272e+01 -16.99 1.05e-08 ***
## Tahun 5.612e-01 3.112e-02 18.04 5.89e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3721 on 10 degrees of freedom
## Multiple R-squared: 0.9702, Adjusted R-squared: 0.9672
## F-statistic: 325.2 on 1 and 10 DF, p-value: 5.885e-09
Berdasarkan summary model regresi dapat diketahui bahwa model regresi
awal pada data ini adalah
IPM = -1.066e+03 + 5.612e-01 Tahun. Nilai R2 0.9702 dan
adjusted R2 0.9672 menunjukkan 97% dari data dapat dijelaskan oleh
model.
Deteksi Autokorelasi
1. Dignostik dengan eksploratif dan Residual Plot
resi_data<- residuals(model.regresi)
fit<- predict(model.regresi)
par(mfrow = c(2,2))
qqnorm(resi_data)
qqline(resi_data, col = "purple", lwd = 2)
plot(fit, resi_data, col = "purple", pch = 20, xlab = "Sisaan", ylab = "Fitted
Values", main = "Sisaan vs Fitted Values")
abline(a = 0, b = 0, lwd = 2)
hist(resi_data, col = "purple")
plot(seq(1,12,1), resi_data, col = "purple", pch = 20, xlab = "Sisaan", ylab =
"Order", main = "Sisaan vs Order")
lines(seq(1,12,1), resi_data, col = "orange")
abline(a = 0, b = 0, lwd = 2)Berdasarkan residual plot tersebut, berdasarkan normal qqplot menunjukkan sisaan dari model regresi cenderung menyebar normal. Namun, plot sisaan vs fitted values membentuk pola tertentu, maka asumsi kebebasan tidak terpenuhi maka terindikasi adanya autokorelasi.
2. ACF dan PACF Plot
par(mfrow = c(1,2))
acf(resi_data)
pacf(resi_data)Berdasarkan identifikasi tersebut, pada plot ACF dan PACF terdapat garis vertikal yang melewati garis horizontal yang berwarna biru sehingga terindikasi adanya autokorelasi.
3. Uji Statistik
1. Durbin Watson
H0: tidak ada autokorelasi H1: ada autokorelasi
lmtest::dwtest(model.regresi, alternative = 'two.sided') ##
## Durbin-Watson test
##
## data: model.regresi
## DW = 0.6935, p-value = 0.001251
## alternative hypothesis: true autocorrelation is not 0
Berdasarkan uji Durbin Watson, didapatkan p-value sebesar 0.001251 sehingga < 0.05 (tolak H0), sehingga cukup bukti untuk menyatakan bahwa terdapat autokorelasi (positif) pada taraf 5%.
2. Breusch-Godfrey Test
H0: tidak ada autokorelasi H1: ada autokorelasi
lmtest::bgtest(IPM ~ Tahun, data=data_ipm, order=1) #Perform Breusch-Godfrey test for first-order serial correlation##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: IPM ~ Tahun
## LM test = 4.3046, df = 1, p-value = 0.03801
Berdasarkan uji Breusch-Godfrey Test, didapatkan p-value sebesar 0.03801 sehingga < 0.05 (tolak H0), sehingga cukup bukti untuk menyatakan bahwa terdapat autokorelasi (positif) pada taraf 5%, maka diperlukan adanya penanganan menggunakan Cochran Orcutt dan Hildreth-lu.
Penanganan Autokorelasi
1. Cochrane-Orcutt
Pada penanganan autokorelasi yang dilakukan dengan pendekatan secara
iterative agar mendapatkan penduga p yang lebih baik. Pada RStudio,
dapat menggunakan syntax cochrane.orcutt(model) dalam
library(orcutt) atau membuat syntax fungsi tersendiri.
Notes: convergence=5 dan
`max.iter=1000.
cochrane.test <- orcutt::cochrane.orcutt(model.regresi, convergence=5, max.iter=1000)
cochrane.test## Cochrane-orcutt estimation for first order autocorrelation
##
## Call:
## lm(formula = IPM ~ Tahun, data = data_ipm)
##
## number of interaction: 121
## rho 0.806306
##
## Durbin-Watson statistic
## (original): 0.69350 , p-value: 6.257e-04
## (transformed): 1.83534 , p-value: 2.475e-01
##
## coefficients:
## (Intercept) Tahun
## -597.870916 0.329592
rho <- cochrane.test$rho
rho## [1] 0.8063059
IPM## [1] 61.97 62.35 63.41 64.30 64.89 65.59 65.88 66.26 66.98 67.65 67.66 67.90
IPM[-1]## [1] 62.35 63.41 64.30 64.89 65.59 65.88 66.26 66.98 67.65 67.66 67.90
IPM[-12]## [1] 61.97 62.35 63.41 64.30 64.89 65.59 65.88 66.26 66.98 67.65 67.66
Transformasi terhadap y dan x
(y.trans <- IPM[-1]-IPM[-12]*rho)## [1] 12.38322 13.13683 13.17214 13.04453 13.26881 12.99439 13.14057 13.55417
## [9] 13.64363 13.11340 13.34534
(x.trans <- Tahun[-1]-Tahun[-12]*rho)## [1] 390.3251 390.5188 390.7125 390.9062 391.0999 391.2936 391.4873 391.6810
## [9] 391.8747 392.0683 392.2620
Model baru dengan peubah transformasi
cochrane.test2 <- lm(y.trans~x.trans)
summary(cochrane.test2)##
## Call:
## lm(formula = y.trans ~ x.trans)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.46094 -0.15310 0.00884 0.21456 0.28874
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -115.8041 51.1387 -2.265 0.0498 *
## x.trans 0.3296 0.1307 2.522 0.0327 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2655 on 9 degrees of freedom
## Multiple R-squared: 0.4141, Adjusted R-squared: 0.349
## F-statistic: 6.36 on 1 and 9 DF, p-value: 0.03267
Pengecekan Autokorelasi
H0: tidak ada autokorelasi H1: ada autokorelasi
lmtest::dwtest(cochrane.test2 ,alternative = 'two.sided') ##
## Durbin-Watson test
##
## data: cochrane.test2
## DW = 1.8353, p-value = 0.4949
## alternative hypothesis: true autocorrelation is not 0
bgtest(cochrane.test2)##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: cochrane.test2
## LM test = 0.11477, df = 1, p-value = 0.7348
Berdasarkan hasil Durbin-Watson test dan Breusch-Godfrey test didapatkan p-value > 0.05 sehingga tidak cukup bukti untuk menyatakan bahwa terdapat autokorelasi (terima H0).
Transformasi Balik
Model regresi yang terbentuk setelah dilakukan penanganan
autokorelasi dengan Corhran Orcutt yaitu
cat("IPM = ", coef(cochrane.test2)[1]/(1-rho), "+", coef(cochrane.test2)[2]," Tahun", sep = "") ## IPM = -597.8709+0.3295925 Tahun
Berdasarkan transformasi balik tersebut dapat diketahui bahwa nilai intersep sebesar -597.8709 artinya jika peubah penjelas tahun bernilai nol, maka dugaan nilai IPM sebesar -597.8709. Pengaruh peubah waktu (Tahun) terhadap IPM bernilai positif sebesar 0.3295925, hal ini menunjukkan bahwa jika waktunya bertambah satu tahun maka dugaan nilai IPM bertambah sebesar 0.3295925.
2. Hildreth.lu
Metode Hildreth-Lu menggunakan package HoRM akan memanfaatkan rho yang telah didapat dari metode Cochrane-Orcutt sebelumnya.
hildreth.lu <- function(rho, model.regresi){
x <- model.matrix(model.regresi)[,-1]
y <- model.response(model.frame(model.regresi))
n <- length(y)
t<-2:n
y <- y[t]-rho*y[t-1]
x <- x[t]-rho*x[t-1]
return(lm(y~x))
}Penentuan rho optimum
r <- c(seq(0.1,0.8, by= 0.1), seq(0.9,0.99, by= 0.01))
hildreth.lu(r,model.regresi)## Warning in rho * y[t - 1]: longer object length is not a multiple of shorter
## object length
## Warning in y[t] - rho * y[t - 1]: longer object length is not a multiple of
## shorter object length
## Warning in rho * x[t - 1]: longer object length is not a multiple of shorter
## object length
## Warning in x[t] - rho * x[t - 1]: longer object length is not a multiple of
## shorter object length
##
## Call:
## lm(formula = y ~ x)
##
## Coefficients:
## (Intercept) x
## 0.77525 0.03131
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu(i, model.regresi))}))
round(tab, 4)## rho SSE
## 1 0.10 1.0793
## 2 0.20 0.9622
## 3 0.30 0.8630
## 4 0.40 0.7817
## 5 0.50 0.7181
## 6 0.60 0.6724
## 7 0.70 0.6445
## 8 0.80 0.6344
## 9 0.90 0.6422
## 10 0.91 0.6439
## 11 0.92 0.6459
## 12 0.93 0.6480
## 13 0.94 0.6503
## 14 0.95 0.6527
## 15 0.96 0.6554
## 16 0.97 0.6582
## 17 0.98 0.6612
## 18 0.99 0.6644
Berdasarkan hasil rho yang meminimumlkan SSE didapatkan bahwa 0,80 merupakan rho yang memiliki SSE terkecil.
Grafik Rho dan SSE
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)
### rho optimal di sekitar 0.8
r <- seq(0.7, 0.9, by= 0.01)
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu(i, model.regresi))}))
round(tab, 4) ## rho SSE
## 1 0.70 0.6445
## 2 0.71 0.6427
## 3 0.72 0.6411
## 4 0.73 0.6396
## 5 0.74 0.6383
## 6 0.75 0.6372
## 7 0.76 0.6363
## 8 0.77 0.6356
## 9 0.78 0.6350
## 10 0.79 0.6346
## 11 0.80 0.6344
## 12 0.81 0.6344
## 13 0.82 0.6346
## 14 0.83 0.6349
## 15 0.84 0.6354
## 16 0.85 0.6361
## 17 0.86 0.6369
## 18 0.87 0.6380
## 19 0.88 0.6392
## 20 0.89 0.6406
## 21 0.90 0.6422
grafik SSE optimum
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)Model terbaik
modelhildreth.lu <- hildreth.lu (0.81, model.regresi)
summary(model.regresi)##
## Call:
## lm(formula = IPM ~ Tahun, data = data_ipm)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.58987 -0.28821 0.09429 0.28679 0.46726
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.066e+03 6.272e+01 -16.99 1.05e-08 ***
## Tahun 5.612e-01 3.112e-02 18.04 5.89e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3721 on 10 degrees of freedom
## Multiple R-squared: 0.9702, Adjusted R-squared: 0.9672
## F-statistic: 325.2 on 1 and 10 DF, p-value: 5.885e-09
Model terbaik berdasarkan rho yang telah terpilih adalah IPM = -1.066e+03 + 5.612e-01 Tahun
Pengecekan Asumsi Autokorelasi
lmtest::dwtest(modelhildreth.lu,alternative = "two.sided")##
## Durbin-Watson test
##
## data: modelhildreth.lu
## DW = 1.8411, p-value = 0.5014
## alternative hypothesis: true autocorrelation is not 0
Berdasarkan hasil Durbin-Watson test didapatkan p-value > 0.05 sehingga tidak cukup bukti untuk menyatakan bahwa terdapat autokorelasi (terima H0).
Transformasi Balik
Model regresi yang terbentuk setelah dilakukan penanganan
autokorelasi dengan Hidreth-Lu yaitu
cat("IPM = ", coef(modelhildreth.lu )[1]/(1-rho), "+", coef(modelhildreth.lu)[2]," Tahun", sep = "") ## IPM = -576.2848+0.3244641 Tahun
Berdasarkan transformasi balik tersebut dapat diketahui bahwa nilai intersep sebesar -827.6223 artinya jika peubah penjelas tahun bernilai nol, maka dugaan nilai IPM sebesar -827.6223. Pengaruh peubah waktu (Tahun) terhadap IPM bernilai positif sebesar 0.2029293, hal ini menunjukkan bahwa jika waktunya bertambah satu tahun maka dugaan nilai IPM bertambah sebesar 0.2029293.
Kesimpulan
Data deret waktu IPM Kalimantan Barat tahun 2010-2021 memiliki masalah autokorelasi. Hal ini teridentifikasi dengan melakukan pengujian secara eksploratif dengan plot sisaan vs urutan dan secara formal dengan uji Durbin-Watson. Terdapat autokorelasi pada data IPM Provinsi Kalimantan Barat. Penanganan autokorelasi dapat dilakukan dengan metode Cochrane-Orcutt dan Hildreth-Lu. Dengan melakukan penanganan menggunakan kedua metode tersebut, masalah autokorelasi pada model regresi IPM Kalimantan Barat tahun 2010-2021 berhasil ditangani.