Penanganan Autokorelasi Pada Data Indeks Pembangunan Manusia Provinsi Jawa Tengah

Faisal Arkan G1401201077

9/6/2022

Pendahuluan

Autokorelasi

Autokorelasi merupakan salah satu pelanggaran terhadap asumsi pada metode OLS yang terjadi pada pengamatan-pengamatan yang berbeda antar error. Salah satu uji yang digunakan untuk mendeteksi autokorelasi pada model regresi adalah dengan uji Run. Uji Run memberikan kesimpulan yang lebih pasti dengan hanya ada dua kemungkinan saja yaitu terjadi autokorelasi atau tidak terjadi autokorelasi. Jika terjadi autokorelasi pada model regresi OLS, maka akan mengakibatkan penaksir parameter model regresi yang diperoleh menjadi tidak BLUE. Hal itu menyebabkan hasil estimasi pada pengujian parameter OLS menjadi tidak dapat digunakan untuk evaluasi hasil regresi. Oleh karena itu perlu dilakukan suatu tindakan untuk mengatasi terjadinya autokorelasi. Metode untuk mengatasi autokorelasi yaitu Cochrane-Orcutt dan The Hildret-Lu

Model Regresi Deret Waktu

Model regresi pada kasus kali ini melibatkan peubah tetap (X), yaitu tahun, dan peubah respon (Y), yaitu IPM.

\(y=Ξ²0+Ξ²1x+Ο΅\)

Pada analisis regresi deret waktu terdapat beberapa asumsi yang perlu dipenuhi, salah satunya adalah peubah saling bebas atau tidak ada autokorelasi. Maka dari itu, diperlukan pemeriksaan terlebih dahulu apakah terdapat autokorelasi pada data yang akan dianalisis. Autokorelasi dapat diperiksa dengan dua cara, yaitu pengamatan melalui grafik/plot dan uji formal/statistik.

Library

Pada praktikum kali ini dibutuhkan beberapa library yang terdiri dari sebagai berikut:

  • dplyr
  • readxl
  • forecast
  • TTR
  • tseries
  • lmtest
  • orcutt
  • HoRM
  • lawstat
  • ggplot2
  • kableExtra
lapply(c("dplyr","readxl","forecast","TTR","tseries",
         "lmtest","orcutt","HoRM","lawstat","ggplot2","kableExtra"),
       library,character.only=T)

Input Data

Digunakan library readxl untuk memasukkan data dari file berformat .xlsx

dataregresi <- read_excel("C:\\Users\\Faisal Arkan\\Downloads\\Tugas Individu MPDW.xlsx", sheet=2)
knitr::kable(dataregresi,align="c")
Tahun IPM
2010 66.08
2011 66.64
2012 67.21
2013 68.02
2014 68.78
2015 69.49
2016 69.98
2017 70.52
2018 71.12
2019 71.73
2020 71.87
2021 72.16

Eksplorasi Data

Plot

# Scatter Plot 
x <- dataregresi$Tahun
y <- dataregresi$IPM
ggplot(dataregresi, aes(x=x, y=y)) + 
  geom_line(color="blue", size=1) +
  geom_point(color="black", size=1.65) +
  geom_text(aes(label=IPM), size=3.2, hjust=0.7, vjust=-1.5) +
  labs(x="Periode Tahun", y="IPM",
       title="Indeks Pembangunan Manusia Provinsi Jawa Tengah",
       subtitle=c("Periode 2010-2021")) +
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5)) +
  theme(plot.subtitle = element_text(hjust = 0.5))

Berdasarkan scatter plot di atas, IPM Provinsi Jawa Tengah setiap tahunnya meningkat mulai dari tahun 2010 hingga tahun 2021. Hal ini menunjukkan bahwa kualitas pembangunan manusia di Provinsi Jawa Tengah meningkat seiring berjalannya waktu dari tahun ke tahun.

Korelasi

cor(x,y)
## [1] 0.9925192

Model

model <- lm(y~x, data = dataregresi)
summary(model)
## 
## Call:
## lm(formula = y ~ x, data = dataregresi)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.51436 -0.20550  0.09494  0.20190  0.31494 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.106e+03  4.572e+01  -24.19 3.32e-10 ***
## x            5.832e-01  2.269e-02   25.71 1.82e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2713 on 10 degrees of freedom
## Multiple R-squared:  0.9851, Adjusted R-squared:  0.9836 
## F-statistic: 660.9 on 1 and 10 DF,  p-value: 1.822e-10

Dari hasil memodelkan regresi pada data IPM Provinsi Jawa Tengah, didapatkan persamaan regresi \(yduga = (-1.106e+03) + 5.832e-01(x)\).

Deteksi Autokorelasi

Grafik

1. Residual Plot

#sisaan dan fitted value
resi1 <- residuals(model)
fit <- predict(model)

#Diagnostik dengan eksploratif
par(mfrow = c(2,2))

qqnorm(resi1)
qqline(resi1, col = "steelblue", lwd = 2)

plot(fit, resi1, col = "steelblue", pch = 20, xlab = "Sisaan", 
     ylab = "Fitted Values", main = "Sisaan vs Fitted Values")
abline(a = 0, b = 0, lwd = 2)

hist(resi1, col = "steelblue")

plot(seq(1,12,1), resi1, col = "steelblue", pch = 20, 
     xlab = "Sisaan", ylab = "Order", main = "Sisaan vs Order")
lines(seq(1,12,1), resi1, col = "red")
abline(a = 0, b = 0, lwd = 2)

  1. Pada Normal Q-Q Plot di atas menunjukkan bahwa sisaannya tidak menyebar secara normal. Begitupula pada plot Histogram.
  2. Pada plot Residuals vs Fitted, terlihat bahwa lebar pita relatif berbeda. Sehingga apabila dilihat secara visual, data tersebut memiliki nilai harapan sisaan sama dengan nol.
  3. Berdasarkan plot Sisaan vs Order terlihat seperti memiliki pola tertentu, hal ini menandakan secara eksploratif data tersebut memiliki gejala autokorelasi.

2. ACF dan PACF Plot

par(mfrow = c(1,2))
acf(resi1)
pacf(resi1)

Berdasarkan plot ACF dan PACF terlihat secara eksploratif tidak terdapat garis vertikal yang melewati garis putus-putus berwarna biru (kecuali pada lag=0). Hal ini menunjukkan bahwa data tersebut memiliki sisaan saling bebas atau tidak terdapat autokorelasi. Walaupun demikian, penilaian ini hanya secara visual sehingga uji statistik lebih lanjut tetap diperlukan.

Uji Statistik

  • Hipotesis
  • H0: E[πœ€π‘–,πœ€π‘—]=0, βˆ€π‘–β‰ π‘— (sisaan saling bebas atau tidak ada autokorelasi atau 𝜌 = 0)
  • H1: E[πœ€π‘–, πœ€π‘—]β‰ 0, βˆ€π‘–β‰ π‘— (sisaan tidak saling bebas atau ada autokorelasi atau 𝜌 β‰  0)

1. Uji Durbin Watson

lmtest::dwtest(model, alternative = 'two.sided')
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 0.53458, p-value = 0.0001388
## alternative hypothesis: true autocorrelation is not 0

2. Uji Breusch-Godfrey Test

lmtest::bgtest(y ~ x, data=dataregresi, order=1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  y ~ x
## LM test = 6.7139, df = 1, p-value = 0.009567

3. Run’s Test

lawstat::runs.test(resid(model), alternative = 'two.sided')
## 
##  Runs Test - Two sided
## 
## data:  resid(model)
## Standardized Runs Statistic = -2.4221, p-value = 0.01543

Pengecekan menggunakan uji statistik Durbin Watson, Breusch-Godfrey Test, dan Run’s Test menghasilkan kesimpulan yang sama, yakni p-value < 0.05 atau Tolak H0. Hasil secara uji statistik ini berbanding terbalik dengan penilaian secara visual menggunakan plot. Hal ini mengindikasikan bahwa terdapat autokorelasi pada data IPM Provinsi Jawa Tengah. Maka dari itu, perlu dilakukan penanganan menggunakan metode Cochrane-Orcutt dan Hildreth-lu.

Penanganan Autokorelasi

1. Cochrane-Orcutt

Metode Cochrane-Orcutt merupakan salah satu metode yang dapat digunakan untuk mengatasi masalah autokorelasi pada model regresi. Metode Cochrane-Orcutt dilakukan dengan menghitung nilai Μ‚ (koefisien autokorelasi) menggunakan nilai error pada model regresi. Untuk mendapatkan nilai πœŒΜ‚ yang menjamin tidak terdapat masalah autokorelasi pada metode Cochrane-Orcutt, dalam mencari nilai πœŒΜ‚ dilakukan secara berulang untuk mendapatkan nilai yang sudah konvergen.

modelco <- orcutt::cochrane.orcutt(model, convergence=4, max.iter=1000)
modelco 
## Cochrane-orcutt estimation for first order autocorrelation 
##  
## Call:
## lm(formula = y ~ x, data = dataregresi)
## 
##  number of interaction: 196
##  rho 0.936555
## 
## Durbin-Watson statistic 
## (original):    0.53458 , p-value: 6.938e-05
## (transformed): 1.44401 , p-value: 8.004e-02
##  
##  coefficients: 
## (Intercept)           x 
##   47.073579    0.015196
rho <- modelco$rho
y
##  [1] 66.08 66.64 67.21 68.02 68.78 69.49 69.98 70.52 71.12 71.73 71.87 72.16
y[-1]
##  [1] 66.64 67.21 68.02 68.78 69.49 69.98 70.52 71.12 71.73 71.87 72.16
y[-12]
##  [1] 66.08 66.64 67.21 68.02 68.78 69.49 69.98 70.52 71.12 71.73 71.87

Transformasi Y dan X

(y.trans <- y[-1]-y[-12]*rho)
##  [1] 4.752458 4.797988 5.074151 5.075542 5.073760 4.898806 4.979895 5.074155
##  [9] 5.122222 4.690924 4.849806
(x.trans <- x[-1]-x[-12]*rho)
##  [1] 128.5248 128.5883 128.6517 128.7152 128.7786 128.8421 128.9055 128.9690
##  [9] 129.0324 129.0958 129.1593

Model Regresi Sesudah Transformasi

modelcorho <- lm(y.trans~x.trans)
summary(modelcorho) 
## 
## Call:
## lm(formula = y.trans ~ x.trans)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.25745 -0.12110  0.03441  0.13137  0.17481 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   2.9866    31.2171   0.096    0.926
## x.trans       0.0152     0.2423   0.063    0.951
## 
## Residual standard error: 0.1612 on 9 degrees of freedom
## Multiple R-squared:  0.0004369,  Adjusted R-squared:  -0.1106 
## F-statistic: 0.003934 on 1 and 9 DF,  p-value: 0.9514

Dari hasil memodelkan regresi sesudah transformasi pada data IPM Provinsi Jawa Tengah, didapatkan persamaan regresi baru yaitu \(yduga = 2.9866 + 0.0152(x)\).

Uji Statistik

lmtest::dwtest(modelcorho,alternative = 'two.sided') 
## 
##  Durbin-Watson test
## 
## data:  modelcorho
## DW = 1.444, p-value = 0.1601
## alternative hypothesis: true autocorrelation is not 0

Hasil dari uji statistik adalah p-value > 0.05 atau Tak Tolak H0. Dapat ditarik kesimpulan belum cukup bukti untuk menyatakan bahwa terdapat autokorelasi pada taraf 5%.

2. Hildreth-lu

hildreth.lu.func<- function(r, model){
  x <- model.matrix(model)[,-1]
  y <- model.response(model.frame(model))
  n <- length(y)
  t <- 2:n
  y <- y[t]-r*y[t-1]
  x <- x[t]-r*x[t-1]
  
  return(lm(y~x))
}

rho yang meminimumkan SSE (iteratif)

r <- c(seq(0.1,0.9, by= 0.1))
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, model))}))
round(tab, 4)
##   rho    SSE
## 1 0.1 0.6116
## 2 0.2 0.5399
## 3 0.3 0.4754
## 4 0.4 0.4181
## 5 0.5 0.3680
## 6 0.6 0.3252
## 7 0.7 0.2895
## 8 0.8 0.2611
## 9 0.9 0.2399

Nilai rho= \(0.9\) memiliki SSE terkecil yakni sebesar \(0.2399\)

Grafik rho dan SSE

plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Model Regresi Sesudah Transformasi

modelhl <- hildreth.lu.func(0.9, model)
summary(modelhl)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.25515 -0.13106  0.03978  0.13209  0.17716 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -39.7260    31.5220  -1.260    0.239
## x             0.2331     0.1557   1.497    0.169
## 
## Residual standard error: 0.1633 on 9 degrees of freedom
## Multiple R-squared:  0.1994, Adjusted R-squared:  0.1105 
## F-statistic: 2.242 on 1 and 9 DF,  p-value: 0.1685

Persamaan regresi melakukan penanganan autkorelasi dengan metode Hildreth-lu yakni \(yduga = -39.7260 + 0.2331x\)

Deteksi Autokorelasi

lmtest::dwtest(modelhl)
## 
##  Durbin-Watson test
## 
## data:  modelhl
## DW = 1.3727, p-value = 0.06129
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan uji statistik Durbin-Watson test, terlihat bahwa nilai p-value > 0.05 atau Tak Tolak H0. Sehingga dapat dinyatakan belum cukup bukti untuk menyatakan bahwa terdapat autokorelasi pada taraf nyata 5%.

Transformasi Balik

cat("y = ", coef(modelhl)[1]/(1-0.9), "+", coef(modelhl)[2],"x", sep = "")
## y = -397.26+0.2330909x

Fungsi Hildreth Lu dengan library HoRM

modelhl2 <- HoRM::hildreth.lu(y, x, 0.9)
summary(modelhl2)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.25515 -0.13106  0.03978  0.13209  0.17716 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -39.7260    31.5220  -1.260    0.239
## x             0.2331     0.1557   1.497    0.169
## 
## Residual standard error: 0.1633 on 9 degrees of freedom
## Multiple R-squared:  0.1994, Adjusted R-squared:  0.1105 
## F-statistic: 2.242 on 1 and 9 DF,  p-value: 0.1685

Persamaan regresi yang didapatkan dari penanganan Hildreth-lu dengan library HoRM yakni \(yduga = -39.7260 + 0.2331\)

Penutup

Kesimpulan

Pada data Indeks Pembangunan Manusia (IPM) Provinsi Jawa Tengah Tahun 2010-2021 terdeteksi gejala autokorelasi. Hal ini terdeteksi setelah melakukan uji statistik Durbin-Watson Test, Breusch-Godfrey Test, dan Run’s Test. Walaupun demikian, secara visual berdasarkan plot ACF dan PCF tidak terdeteksi autokorelasi. Setelah dilakukan penanganan menggunakan metode Cochrane-Orcutt dan Hildreth-Lu, autokorelasi berhasil dihilangkan.

Daftar Pustaka

Agresti A. 2018. Introduction to Categorical Data Analysis, Second Edition. New Jersey (US): John Wiley and Sons, Inc.Β 

Aprianto, A., Debataraja, Naomi N., Imro’ah, Nurfitri. 2020. Metode cochrane-orcutt untuk mengatasi autokorelasi pada estimasi parameter ordinary least squares. Buletin Ilmiah Mat, Stat, dan Terapannya. 09(1):95-102.

Nurdin I, Sugiman, Sunarmi. 2018. Penerapan kombinasi metode ridge regression (RR) dan metode generalized least square (GLS) untuk mengatasi masalah multikolinearitas dan autokorelasi. Jurnal MIPA. 41(1): 58-68.