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:
dplyrreadxlforecastTTRtserieslmtestorcuttHoRMlawstatggplot2kableExtra
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)
- Pada
Normal Q-Q Plotdi atas menunjukkan bahwa sisaannya tidak menyebar secara normal. Begitupula pada plotHistogram.
- 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.
- Berdasarkan plot
Sisaan vs Orderterlihat 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.