Penanganan Autokorelasi Data dengan Metode Cochrann-Orcutt dan Hildreth-Lu Pada Studi Kasus IPM Provinsi Maluku Utara Tahun 2010-2021
Pendahuluan
BPS mendefinisikan IPM (Indeks Pembangunan Manusia) sebagai suatu tolak ukur mengenai bagaimana penduduk dapat mengakses hasil pembangunan dalam memperoleh pendapatan, kesehatan, pendidikan, dan lain-lain. IPM digunakan untuk mengukur dan mengklasifikasikan negara-negara menjadi empat kelompok, yaitu IPM rendah (IPM < 0.05), IPM medium (0.55 < IPM < 0.699), IPM tinggi (0.7 < IPM < 0.799), dan IPM sangat tinggi (IPM > 0.8) (UNDP 2018; Stanton dan Elizabeth 2007). IPM suatu negara menggambarkan seberapa sejahtera penduduknya, dengan semakin tinggi IPM maka penduduknya dapat dikatakan semakin sejahtera. Saat ini Indonesia mendapatkan nilai HDI sebesar 0.718, yang menempatkannya termasuk dalam kelompok IPM tinggi dengan posisi ranking tepat pada 107.
Secara umum, IPM dipengaruhi oleh beberapa hal, yaitu angka harapan hidup saat lahir, lama sekolah, dan GNI suatu negara. Semakin tinggi ketiga faktor tersebut maka semakin tinggi nilai IPM suatu negara. Faktor terakhir berupa GNI sangat berkaitan dengan GDP suatu negara. Penelitian Elistia dan Syahzuni (2018) menemukan bahwa GNI berpengaruh positif terhadap perekonomian suatu negara. Keterkaitan dengan data perekonomian dapat menyebabkan terjadinya autokorelasi pada data IPM. Sehingga pendeteksian dan penanganan autokorelasi pada data IPM yang tepat diperlukan.
Metodologi
Pendeteksian autokorelasi secara umum dapat dilakukan dengan dua cara, yaitu cara grafik dan cara analitik. Deteksi autokorelasi dengan metode grafik dapat dilakukaan dengan melihat plot sisaan terhadap waktu. Autokorelasi positif terjadi apabila tanda pada sisaan yang sama muncul sebagai klaster dan tidak berganti secara acak. Sedangkan autokorelasi negatif terjadi apabila tanda pada sisaan berganti terlalu sering. Uji analitik yang dapta digunakan adalah uji Durbin-Watson. Uji Durbin-Watson mengasumsikan bahwa galat pada model regresi dihasilkan oleh proses autoregressive derajat satu yang dapat dimodelkan sebagai berikut \[\varepsilon_t = \phi \varepsilon_{t-1} + \alpha_t\] dengan:
- \(\varepsilon_t\) adalah galat pada periode t
- \(\alpha_t\) adalah variabel acak yang berdistribusi bebas acak dengan parameter \((0, \sigma_\alpha^2)\)
- \(\phi\) adalah suatu parameter yang mendefinisikan hubungan antara \(\varepsilon_t\) dan \(\varepsilon_{t-1}\) (Montgomery 2015).
Apabila tidak terdapat autokorelasi, maka nilai statistik uji Durbin-Watson akan bernilai di sekitar 2. Data dengan autokorelasi positif akan memiliki nilai Durbin-Watson kurang dari dua dan data dengan autokorelasi negatif akan memiliki nilai Durbin-Watson lebih dari 2. Untuk menguji apakah statistik uji tersebut signifikan secara statistik dapat menggunakan bantuan software seperti R
. Hipotesis paa uji ini adalah:
- \(H_0\): \(\rho = 0\) (koefisien autokorelasi tidak nyata)
- \(H_1\): \(\rho \neq 0\) (koefisien autokorelasi nyata)
Untuk melakukan regresi dengan data yang memiliki autokorelasi, maka dapat memakai beberapa model alternatif seperti model Cochrann-Orcutt dan model Hildreth-Lu. Model Cochrann-Orcutt berusaha mengubah bentuk model menjadi \(y'_t = y_t - \phi y_{t-1}\). Sehingga model akhir memiliki bentuk sebagai berikut: \[y_t = \beta_0(1-\phi) + \beta_1 (x_t - \phi x_{t-1}) + \varepsilon_t - \phi \varepsilon_{t-1}\] (Montgomery 2015).
Metode Hildreth-Lu memiliki pendekatan berbeda, dimana ide utamanya adalah untuk memodelkan data dengan model seperti berikut \[y_t - \rho y_{t-1} = \alpha(1-\rho) + \beta(X_t - \rho X_{t-1}) + \varepsilon_t\] secara berulang kemudian mmeilih nilai \(\rho\) yang menghasilkan nilai SSE terkecil.
Eksplorasi Data
Eksplorasi data dilakukan dengan menggunakan software R
. Sebelum melakukan langkah lebih lanjut, ada beberapa library yang harus di-load terlebih dahulu.
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(orcutt)
library(HoRM)
## Warning in register(): Can't find generic `scale_type` in package ggplot2 to
## register S3 method.
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v dplyr 1.0.7
## v tidyr 1.1.4 v stringr 1.4.0
## v readr 2.1.1 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
Data yang akan digunakan adalah data IPM Provinsi Maluku pada periode tahun 2010 sampai 2021. Data IPM Provinsi Maluku Utara dapat dilihat sebagai berikut.
<- c(62.79,
ipm 63.19,
63.93,
64.78,
65.18,
65.91,
66.63,
67.20,
67.76,
68.70,
68.49,
68.76
)<- c(2010,
tahun 2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021
)<- cbind(tahun, ipm) %>% as.data.frame()
maluku maluku
## tahun ipm
## 1 2010 62.79
## 2 2011 63.19
## 3 2012 63.93
## 4 2013 64.78
## 5 2014 65.18
## 6 2015 65.91
## 7 2016 66.63
## 8 2017 67.20
## 9 2018 67.76
## 10 2019 68.70
## 11 2020 68.49
## 12 2021 68.76
Terlihat bahwa data terdiri atas 12 observasi yang dimulai dari tahun 2010 sampai tahun 2021. Plot antara IPM Maluku Utara dan tahun dapat dilihat pada plot di bawah ini.
plot(maluku$ipm~maluku$tahun, main = "Plot IPM Maluku Utara vs Tahun", xlab = "Tahun", ylab = "IPM Maluku Utara",
pch = 19)
Terlihat bahwa terdapat hubungan positif antara IPM dan tahun. Terlihat bahwa korelasi antara kedua variabel tersebut juga cukup tinggi dengan nilai sebesar 0.99, yang berarti hubungan antara kedua variabel tersebut hampir sempurna.
cor(maluku)
## tahun ipm
## tahun 1.0000000 0.9905635
## ipm 0.9905635 1.0000000
Apabila data tersebut diregresikan secara sederhana, maka model regresi sebagai berikut.
<- lm(ipm~tahun, data = maluku)
model summary(model)
##
## Call:
## lm(formula = ipm ~ tahun, data = maluku)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.58923 -0.15643 0.02395 0.18486 0.52867
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.121e+03 5.194e+01 -21.58 1.02e-09 ***
## tahun 5.889e-01 2.577e-02 22.86 5.80e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3081 on 10 degrees of freedom
## Multiple R-squared: 0.9812, Adjusted R-squared: 0.9793
## F-statistic: 522.4 on 1 and 10 DF, p-value: 5.8e-10
Model regresi sederhana yang terbentuk adalah sebagai berikut. \[ y_i = -1121 + 0.589x_i\]. Uji-F dilakukan untuk melihat apakah terdapat minimal teradapat satu variabel yang nyata pada taraf nyata 5%. Karena uji-F memiliki p-value < 0.05, maka dapat disimpulkan bahwa terdapat minimal satu variabel yang berpengaruh nyata pada model tersebut pada taraf nyata 5%. Hasil uji-t parsial untuk intersep dan koefisien regresi juga memperlihatkan bahwa kedua parameter tersebut nyata pada taraf nyata 5%. Nilai \(R^2 = 0.9793\) menandakan bahwa variabel tahun dapat menjelaskan keragaman variabel IPM sebesar 97.93%.
Model regresi tersebut memang sangat menyakinkan peneliti bahwa model tersebut adalah model terbaik. Akan tetepi, apabila sisaan model tersebut diplotkan, maka terlihat hal-hal janggal.
<- residuals(model)
resi1<- predict(model)
fit
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 Plot terlihat bahwa sisaan dari model regresi tersebut cenderung menyebar normal. Histogram dari sisaan tersebut juga mendukung fakta bahwa sisaan tersebut cenderung menyebar normal.Akan tetapi, pada plot sisaan vs fitted values dan sisaan vs urutan, terlihat bahwa ada sedikit pola yang terbentuk pada plot tersebut. Untuk memastikan apakah pola tersebut adalah autokorelasi atau bukan, dapat dilakukan dengan melihat plot ACF dan PACF.
par(mfrow = c(1,2))
acf(resi1)
pacf(resi1)
Pada plot ACF dan PACF, terlihat bahwa data masih berada di antara batas autokorelasi, sehingga berdasarkan grafik tersebut tidak ada autokorelasi yang terjadi pada data IPM Maluku Utara. Untuk memastikan hal tersebut, dapat dilakukan uji Durbin-Watson.
dwtest(model)
##
## Durbin-Watson test
##
## data: model
## DW = 1.1205, p-value = 0.01804
## alternative hypothesis: true autocorrelation is greater than 0
Uji Durbin-Watson memberikan nilai p-value < 0.01804. Hal tersebut menandakan bahwa terdapat autokorelasi pada data IPM tersebut pada taraf nyata 5%.
Pemodelan Alternatif
Metode Cochrane-Orcutt
Penggunaaan metode Cochrane-Orcutt pada R
dapat dilakukan dengan menggunakan library orcutt
.
<- cochrane.orcutt(model)
modelOrcut summary(modelOrcut)
## Call:
## lm(formula = ipm ~ tahun, data = maluku)
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.0216e+03 1.2787e+02 -7.989 2.239e-05 ***
## tahun 5.3967e-01 6.3391e-02 8.513 1.342e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2984 on 9 degrees of freedom
## Multiple R-squared: 0.8895 , Adjusted R-squared: 0.8773
## F-statistic: 72.5 on 1 and 9 DF, p-value: < 1.342e-05
##
## Durbin-Watson statistic
## (original): 1.12046 , p-value: 1.804e-02
## (transformed): 1.75799 , p-value: 2.057e-01
cat("y = ", coef(modelOrcut)[1], "+", coef(modelOrcut)[2],"x", sep = "")
## y = -1021.553+0.5396671x
Model yang sudah terkoreksi dengan metode Cochrane-Orcutt adalah \[y_i = -1021.553 + 0.5397x_i\] Dengan perubahan model tersebut, terlihat bahwa nilai p-value Durbin-Watson sebesar 0.2057, yang memiliki nilai lebih besar dari 0.05. Sehingga dapat disimpulkan bahwa dengan perubahan model menjadi model Cochrane-Orcutt, belum cukup bukti untuk menyatakan bahwa pada taraf nyata 5% terdapat autokorelasi. Nilai \(\phi\) optimum yang digunakan pada model ini adalah 0.55117.
$rho modelOrcut
## [1] 0.5511697
Metode Hildreth-Lu
Pendekatan Hildreth-Lu dapat dilakukan dengan sintaks sebagai berikut.
<- function(r, model){
hildreth.lu.func<- model.matrix(model)[,-1]
x <- model.response(model.frame(model))
y <- length(y)
n <- 2:n
t <- y[t]-r*y[t-1]
y <- x[t]-r*x[t-1]
x
return(lm(y~x))
}<- c(seq(0.1,0.8, by= 0.1), seq(0.9,0.99, by= 0.01))
r <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, model))}))
tab head(tab[order(tab$SSE),])
## rho SSE
## 6 0.6 0.8025012
## 5 0.5 0.8026082
## 7 0.7 0.8115375
## 4 0.4 0.8118583
## 8 0.8 0.8297169
## 3 0.3 0.8302517
Perlu diingat bahwa pada metode Hildreth-Lu akan mencari nilai \(\rho\) optimum yang menghasilkan SSE terkecil. Pada iterasi pertama terlihat bahwa nilai \(\rho\) optimum berada di anatara 0.5 dan 0.6. Untuk melihat lebih spesifik berapa nilai \(\rho\) yang optimum, maka selang antara 0.5 dan 0.6 dapat diperkecil.
<- c(seq(0.5, 0.6, by = 0.0001))
r.opt <- data.frame("rho" = r.opt, "SSE" = sapply(r.opt, function(i){deviance(hildreth.lu.func(i, model))}))
tab.opt head(tab.opt[order(tab.opt$SSE),])
## rho SSE
## 513 0.5512 0.8014112
## 512 0.5511 0.8014112
## 514 0.5513 0.8014112
## 511 0.5510 0.8014112
## 515 0.5514 0.8014112
## 510 0.5509 0.8014112
Pada tabel tersebut terlihat bahwa nilai \(\rho\) optimum sebesar 0.5512. Plot antara nilai \(\rho\) dan SSE dapat dilihat sebagai berikut.
plot(tab.opt$SSE ~ tab.opt$rho , type = "l", xlab = "Nilai rho", ylab = "SSE",
main = "Plot SSE vs Rho Hildreth-Lu", lwd = 1.5)
abline(v = 0.5512, lty = 2, col = "red", lwd = 2)
text(x = 0.552, y = 0.8014, labels = "rho = 0.5512", cex = 0.72)
Dari plot tersebut memang terlihat bahwa nilai \(\rho = 0.5512~\) adalah nilai \(\rho\) optimum yang menghasillkan SSE minimum. Dengan memasukan nilai \(\rho = 0.5512~\) pada fungsi
hildreth.lu.func()
, maka model optimum yang dihasilkan sebagai berikut.
<- hildreth.lu.func(0.5512, model)
modelOpt summary(modelOpt)
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.4510 -0.2273 0.1202 0.1469 0.5193
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -458.4682 57.3939 -7.988 2.24e-05 ***
## x 0.5397 0.0634 8.513 1.34e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2984 on 9 degrees of freedom
## Multiple R-squared: 0.8895, Adjusted R-squared: 0.8772
## F-statistic: 72.47 on 1 and 9 DF, p-value: 1.343e-05
dwtest(modelOpt)
##
## Durbin-Watson test
##
## data: modelOpt
## DW = 1.758, p-value = 0.2057
## alternative hypothesis: true autocorrelation is greater than 0
# Transformasi Balik
cat("y = ", coef(modelOpt)[1]/(1-0.5512), "+", coef(modelOpt)[2],"x", sep = "")
## y = -1021.542+0.5396616x
Model optimum Hildreth-Lu menghasilkan model sebagai berikut. \[y_i = -1021.542 + 0.5396616x_i\] Hal terpenting terdapat pada hasil uji Durbin-Watson, dimana nilai p-value lebih besar dari 0.05. Sehingga dapat disimpulkan bahwa tidak cukup bukti untuk menyatakan bahwa data IPM Provinsi Maluku Utara yang sudah dimodifikasi dengan metode Hildreth-Lu tidak mengalami autokorelasi pada taraf nyata 5%.
Kesimpulan
IPM atau indeks pembangunan manusia sangat berkaitan dengan aspek ekonomi, sehingga rawan terhadap autokorelasi. Penanganan autokorelasi dapat dilakukan dengan beberapa cara, yaitu dengan metode grafik dan uji Durbin-Watson. Pada data tersebut terlihat bahwa terdapat autokorelasi sehingga harus ditangani dengan dua cara, yaitu dengan metode Cochrane-Orcutt dan metode Hildreth-Lu. Kedua cara penanganan tersebut berhasil menghilangkan efek autokorelasi pada data IPM tersebut.
Daftar Pustaka
Elistia, Syahzuni BA. 2018. The correlation of the human development index (HDI) towards economic growth (GDP per Capita) in 10 ASEAN member countries. Journal of Humanities and Social Studies. 2(2):40-46.
Montgomery DC, Jennings CL. Kulahci M. 2015. Introduction to Time Series Analysis and Forecasting: 2nd Edition. Hoboken (US): John Wiley and Sons.
Stanton AE. 2007. The Human Development Index: A History. PERI Working Papers: 14–15. Archived from the original on 28 February 2019. Retrieved 28 February 2019. https://scholarworks.umass.edu/cgi/viewcontent.cgi?article=1101&context=peri_workingpapers
UNDP. 2018. Human Development Indices and Indicators: 2018 Statistical Update. New York (US):UNDP.