Penanganan Autokorelasi IPM Provinsi Bali Tahun 2010-2021

Dataset

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

Berikut ini merupakan data IPM Provinsi Bali tahun 2010-2021

library(readxl)
## Warning: package 'readxl' was built under R version 4.2.1
ipm<-read_excel("C:/Users/LENOVO/Documents/Departemen Statistika/SEM 5/STA1341 - MPDW/Pekan 3/IPM Banten.xlsx")
ipm
## # A tibble: 12 × 2
##    Tahun   IPM
##    <dbl> <dbl>
##  1  2010  70.1
##  2  2011  70.9
##  3  2012  71.6
##  4  2013  72.1
##  5  2014  72.5
##  6  2015  73.3
##  7  2016  73.6
##  8  2017  74.3
##  9  2018  74.8
## 10  2019  75.4
## 11  2020  75.5
## 12  2021  75.7

Eksplorasi Data

plot(ipm$Tahun, ipm$IPM, type="b", pch=19, col="red", main="Perkembangan IPM Provinsi Bali\n 12 Tahun Terakhir")

Berdasarkan plot di atas, terlihat bahwa nilai IPM Bali meningkat tiap tahunnya. Selama kurun waktu 12 tahun, IPM Bali telah mengalami kenaikan sebesar 5.28.

Model Regresi Deret Waktu

model <- lm(ipm$IPM ~ ipm$Tahun)
summary(model)
## 
## Call:
## lm(formula = ipm$IPM ~ ipm$Tahun)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.4800 -0.1125  0.0800  0.1725  0.2500 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -974.75000   41.22291  -23.65 4.15e-10 ***
## ipm$Tahun      0.52000    0.02045   25.42 2.03e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2446 on 10 degrees of freedom
## Multiple R-squared:  0.9848, Adjusted R-squared:  0.9832 
## F-statistic: 646.4 on 1 and 10 DF,  p-value: 2.033e-10
plot(ipm,xlab="periode waktu",ylab="IPM")
abline(model)

Berdasarkan perhitungan di atas, model regresi linier sederhana IPM Bali adalah IPM = -974.75 + 0.52 (Tahun) yang berarti tiap bertambahnya tahun maka IPM akan bertambah sebesar 0.52 satuan.

Uji Asumsi Autokorelasi

Autokorelasi dapat disebabkan beberapa faktor, diantaranya karena manipulasi data, tidak memasukkan peubah (variabel) yang berpengaruh, atau karena kesalahan model.

Autokorelasi pada model regresi dapat berakibat seperti berikut: - Hasil parameter OLS (Ordinary Least Square atau Metode Kuadrat Terkecil) tidak berbias, namun ragamnya bukan ragam minimum - Jika sisaan berkorelasi maka ragam sisaan menjadi underestimate dan nilai dugaan ragam menjadi kecil - Selang kepercayaan dan uji hipotesis yang berbasis uji t dan uji F akan tidak tepat karena akan cenderung tolak H0.

Pengujian Asumsi Secara Eksploratif

Pengujian ini hanya melihat secara sekilas saja apakah terdapat autokorelasi dalam suatu model.

acf(model$residuals)

pacf(model$residuals)

Hasil diatas menunjukkan bahwa ada satu garis hitam pada plot ACF yang melewati garis biru. Untuk memastikan ada tidaknya autokorelasi, maka model akan diuji menggunakan Uji formal Durbin-Watson.

Pengujian Asumsi Formal (Durbin-Watson test)

Hipotesis H0 : Sisaan saling bebas atau tidak ada autokorelasi H1 : Sisaan tidak saling bebas atau terdapat autokorelasi

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(zoo)
lmtest::dwtest(model)
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 0.87546, p-value = 0.003527
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan uji Durbin-Watson, didapatkan nilai p-value untuk model Provinsi Bali sebesar 0.003527. Nilai ini kurang dari alpha 0.05 sehingga H0 ditolak dan belum cukup bukti untuk menyatakan bahwa sisaan data pada model Bali saling bebas (terdapat autokorelasi).

Penanganan Autokorelasi

Selanjutnya, autokorelasi akan diatasi dengan menggunakan metode Cochrane-Orcutt dan Hildreth-Lu.

Metode Cochrane-Orcutt

library(orcutt)
## Warning: package 'orcutt' was built under R version 4.2.1
modelco<-cochrane.orcutt(model)
## Warning in cochrane.orcutt(model): Did not converge
modelco
## Cochrane-orcutt estimation for first order autocorrelation 
##  
## Call:
## lm(formula = ipm$IPM ~ ipm$Tahun)
## 
##  number of interaction: 100
##  rho 0.734645
## 
## Durbin-Watson statistic 
## (original):    0.87546 , p-value: 3.527e-03
## (transformed): NA , p-value: NA
##  
##  coefficients: 
## [1] NA
# Pengujian asumsi kembali
lmtest::dwtest(modelco)
## 
##  Durbin-Watson test
## 
## data:  modelco
## DW = 2.129, p-value = 0.4354
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan hasil uji asumsi kembali, didapatkan nilai p-value untuk model Bali sebesar 0.4354. Nilai ini lebih besar dari alpha 0.05, sehingga tak tolak H0 dan cukup bukti untuk menyatakan bahwa sisaan data pada model Bali sudah dapat dikatakan saling bebas (tidak terdapat autokorelasi).

Metode Hildreth-Lu

Metode Hildreth-Lu menggunakan package HoRM akan memanfaatkan rho yang telah didapat dari metode Cochrane-Orcutt sebelumnya.

hildreth.lu <- function(rho, model){
  x <- model.matrix(model)[,-1]
  y <- model.response(model.frame(model))
  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
rhoh1 <- c(seq(0.01, 0.99, by=0.01))
hltab1 <- data.frame('rho'=rhoh1, 'SSE'=sapply(rhoh1, function(i){deviance(hildreth.lu(i, model))}))
plot(hltab1$SSE ~ hltab1$rho , type = "l")
abline(v = hltab1[hltab1$SSE==min(hltab1$SSE),"rho"], lty = 3)

optrho1 <- which.min(round(hltab1, 4)[,2])
opt.rho.1 <- round(hltab1, 4)[optrho1,]$rho
opt.rho.1
## [1] 0.73

Berdasarkan grafik diatas, terlihat bahwa rho optimum berada di sekitar 0.7. Didapatkan rho optimum 0.73.

# Penanganan dengan metode Hildreth Lu
modelhl <- hildreth.lu(opt.rho.1, model)
# Pengujian asumsi kembali
lmtest::dwtest(modelhl)
## 
##  Durbin-Watson test
## 
## data:  modelhl
## DW = 2.1207, p-value = 0.4297
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan hasil uji asumsi kembali, didapatkan nilai p-value untuk model Bali sebesar 0.4297. Nilai ini lebih besar dari alpha 0.05, sehingga tak tolak H0 dan cukup bukti untuk menyatakan bahwa sisaan data pada model Bali sudah dapat dikatakan saling bebas (tidak terdapat autokorelasi).

Perbandingan Kebaikan Hasil dari Kedua Metode Penanganan Autokorelasi

mse.bali.or <- mean(model$residuals^2)
mse.bali.co <- mean(modelco$residuals^2)
mse.bali.hl <- mean(modelhl$residuals^2)
`Bali` <- c(mse.bali.or, mse.bali.co, mse.bali.hl)
df.error <- cbind(Method=c("Original", "Cochrane-Orcutt", "Hildreth-Lu"), `Bali`)
knitr::kable(df.error)
Method Bali
Original 0.0498500000000508
Cochrane-Orcutt 0.0252447300997764
Hildreth-Lu 0.025245422181817

Berdasarkan hasil perbandingan metode, diperoleh metode terbaik berdasarkan nilai MSE terkecil. Dapat disimpulkan bahwa metode terbaik adalah metode Cochrane-Orcutt.