Penanganan Autokorelasi Data Indeks Pembangunan Manusia (IPM) Provinsi Jawa Barat Tahun 2010-2021 dengan Metode Cochran- Orcutt dan Hildreth-Lu

Pendahuluan

Tujuan

  1. Mengidentifikasi autokorelasi pada data Indeks Pembangunan Manusia (IPM) Jawa Barat tahun 2010-2021
  2. Penanganan autokorelasi dengan metode Cochran- Orcutt dan Hildreth-Lu

Tinjauan Pustaka

Menurut Badan Pusat Statistik (BPS), Indeks Pembangunan Manusia (IPM) merupakan pengukuran perbandingan dari harapan hidup, pendidikan, dan standar hidup untuk semua negara. IPM digunakan sebagai indikator untuk menilai aspek kualitas dari pembangunan dan untuk mengklasifikasikan apakah sebuah negara termasuk negara maju, negara berkembang, atau negara terbelakang dan juga untuk mengukur pengaruh dari kebijakan ekonomi terhadap kualitas hidup.

Analisis Regresi Linier adalah metode statistika yang mengkaji hubungan antara satu peubah respon (Y) dengan satu atau lebih peubah penjelas (X). Regresi linier memiliki asumsi klasik yang harus dipenuhi. Salah satu asumsi klasik yang harus dipenuhi adalah tidak adanya autokorelasi. Dalam regresi deret waktu, peristiwa autokorelasi sering terjadi. Namun, autokorelasi dapat membuat estimasi parameter, bukan BLUE (Best, Linear, Unbiased Estimator). Oleh karena itu, penanganan autokorelasi menjadi sangat penting. Uji autokorelasi bertujuan menguji apakah dalam regresi linear ada korelasi antarkesalahan pengganggu (residual) pada periode t dengan kesalahan pada periode t-1 (sebelumnya). Regresi secara klasik mensyaratkan bahwa variable tidak boleh tergejala autokorelasi. Jika terjadi autokorelasi, maka model regresi menjadi buruk karena akan menghasilkan parameter yang tidak logis dan diluar akal sehat. Autokorelasi umumnya terjadi pada data time series, karena data time series terikat dari waktu-waktu, beda halnya dengan data cross section yang tidak terikat oleh waktu.

Pada penelitian ini akan dilakukan pendeteksian autokorelasi pada data IPM Jawa Barat Tahun 2010-2021 dan jika terdapat autokorelasi, akan dilakukan penanganan Cochran- Orcutt dan Hildreth-Lu.

Data Preparation

Library yang Digunakan

tidyverse

TTR

forecast

readxl

tseries

lmtest

orcutt

HoRM

knitr

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.2
## -- 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.0     v forcats 0.5.1
## Warning: package 'ggplot2' was built under R version 4.1.2
## Warning: package 'tibble' was built under R version 4.1.2
## Warning: package 'tidyr' was built under R version 4.1.2
## Warning: package 'readr' was built under R version 4.1.2
## Warning: package 'purrr' was built under R version 4.1.2
## Warning: package 'stringr' was built under R version 4.1.2
## Warning: package 'forcats' was built under R version 4.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(TTR)
## Warning: package 'TTR' was built under R version 4.1.3
library(forecast)
## Warning: package 'forecast' was built under R version 4.1.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
library(tseries)
## Warning: package 'tseries' was built under R version 4.1.3
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.1.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.1.2
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(orcutt)
## Warning: package 'orcutt' was built under R version 4.1.3
library(HoRM)
## Warning: package 'HoRM' was built under R version 4.1.3
library(knitr)

Data

Data yang digunakan adalah data Indeks Pembangunan Manusia (IPM) Jawa Barat tahun 2010-2021. Data berasalh dari Badan Pusat Statistik (BPS).

library(readxl)
IPM_Jabar <- read_excel("C:/SMT  5/MPDW/3/IPM Jabar.xlsx")
kable(IPM_Jabar, caption="IPM Jawa Barat (2010-2021)", align="c")
IPM Jawa Barat (2010-2021)
Tahun IPM
2010 66.15
2011 66.67
2012 67.32
2013 68.25
2014 68.80
2015 69.50
2016 70.05
2017 70.69
2018 71.30
2019 72.03
2020 72.09
2021 72.45

Eksplorasi Data

Akan dilakukan eksplorasi data terhadap data IPM Jabar dengan membuat time series plot, mencari nilai korelasi antara peubah Tahun dan IPM, membuat model regresi, dan membuat scatterplot peubah Tahun dan IPM.

Time Series Plot

p <- ggplot(IPM_Jabar, aes(x=Tahun, y=IPM)) +
  geom_line(lwd=1.2,col="blue")
p +labs(x="Tahun",y ="IPM",
         title="Time Series Plot Indeks Pembangunan Manusia Jawa Barat Tahun 2010-2021 ",
        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)

Berdasarkan plot time series, indeks pembangunan manusia (IPM) di Jawa Barat mengalami peningkatan yang konstan setiap tahunnya. IPM di Jawa Barat pada tahun 2021 naik mencapai 72.45%.

Korelasi Peubah Tahun (X) dan IPM (Y)

cor(IPM_Jabar$Tahun, IPM_Jabar$IPM)
## [1] 0.9939809

Scatter Plot Peubah Tahun (X) dan IPM (Y)

plot(IPM_Jabar$Tahun, IPM_Jabar$IPM, pch = 20, col = "blue", main = "Scatter Plot Tahun vs IPM Jabar")

Berdasarkan scatter plot terlihat bahwa hubungan antara Tahun dengan IPM memiliki hubungan linier positif dengan nilai korelasi 0.99.

Pemodelan Regresi Linier Data Deret Waktu

Formula model regresi linier data deret waktu yaitu y=β0+β1x+ϵ

x <- IPM_Jabar$Tahun
y <- IPM_Jabar$IPM
modelts <- lm(IPM~Tahun, data = IPM_Jabar)
summary(modelts)
## 
## Call:
## lm(formula = IPM ~ Tahun, data = IPM_Jabar)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.4760 -0.1888  0.1183  0.1785  0.3104 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.146e+03  4.237e+01  -27.05 1.10e-10 ***
## Tahun        6.032e-01  2.102e-02   28.69 6.16e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2514 on 10 degrees of freedom
## Multiple R-squared:  0.988,  Adjusted R-squared:  0.9868 
## F-statistic: 823.2 on 1 and 10 DF,  p-value: 6.159e-11

Berdasarkan output diatas, diperoleh model regresi linier data deret waktu yaitu:

      IPM^ = -1146 + 0.6032 (Tahun)
      
  • Uji t : Uji t dilakukan untuk menguji signifikansi peubah penjelas terhdap variabel dependent. Berdasarkan output, diperoleh bahwa pada peubah penjelas Tahun memiliki P-Value<0.05 sehingga dapat disimpulkan bahwa peubah penjelas tahun berpengaruh signifikan pada taraf nyata 5%.

  • Nilai R-Squared pada model regresi linier deret waktu yaitu 98.8%, artinya keragaman Y(IPM) yang mampu dijelaskan oleh peubah penjelas (Tahun) adalah sebesar 98.8%.

  • Interpretasi Model Regresi

    Nilai intersep sebesar -1146 yang artinya jika peubah penjelas tahun bernilai nol, maka dugaan nilai IPM sebesar -1146.

    Pengaruh peubah waktu (Tahun) terhadap IPM bernilai positif sebesar 0.603, hal ini menunjukkan bahwa jika waktunya bertambah satu tahun maka dugaan nilai IPM bertambah sebesar 0.603.

Uji Asumsi Autokorelasi

Pendeteksian autokorelasi pada model regresi dilakukan dengan dua cara yaitu :

  1. Secara eksploratif: Menggunakan plot sisaan vs urutan dan plot ACF/PACF

    1. Secara Formal: Menggunakan uji Durbin-Watson dan Runs`s Test

Secara Eksploratif

1. Plot Sisaan

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

#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",main = "Histogram Residual")

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. Normal QQ-Plot

QQ-Plot diatas menunjukkan bahwa sisaan berada di sepanjang garis normal, sehingga mengindikasikan bahwa sisaan menyebar normal.

2. Residual vs Fitted Values

Berdasarkan plot di atas, diketahui bahwa lebar pita relatif sama sehingga hal ini mengindikasikan ragam sisaan homogen.

3. Histogram

Berdasarkan histogram, sebaran sisaan menjulur ke kiri, yang artinya sisaan banyak tersebar di sebelah kanan atau bernilai besar.

4. Residual vs Urutan

Berdasarkan plot sisaan vs urutan, terlihat bahwa tebaran amatan memiliki pola yang tidak acak. Hal ini karena empat sisaan pertama membentuk garis naik, selanjutnya sisaan keempat sampai kesepuluh cenderung konstan, dan tiga sisaan terakhir membentuk garis turun. Oleh karena itu, diduga terdapat autokorelasi.

2. Plot ACF dan PACF

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

Berdasarkan plot ACF dan Partial ACF, terlihat ada garis vertikal yang melewati garis horizontal yang berwarna biru sehingga dapat diduga ada autokorelasi.

Uji Formal

Dengan menggunakan α=0.05, akan dilakukan uji formal Durbin Watson, Breusch-Godfrey, Run`s Test dengan hipotesis:

H0 : ρ=0 (Tidak ada autokorelasi)

H1 : ρ≠0 (Ada autokorelasi)

1. Durbin Watson Test

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

Diperoleh p-value = 0.001768 < 0.05 Tolak H0, artinya cukup bukti untuk menyatakan bahwa ada autokorelasi pada taraf 5%.

2. Run`s Test

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

Diperoleh p-value =0.2259 > 0.05 Tak Tolak H0, artinya tidak cukup bukti untuk menyatakan bahwa terdapat autokorelasi pada taraf 5%.

Penanganan Autokorelasi

1. Cochran Orcutt

modelco<-cochrane.orcutt(modelts, convergence = 5, max.iter=1000)
modelco
## Cochrane-orcutt estimation for first order autocorrelation 
##  
## Call:
## lm(formula = IPM ~ Tahun, data = IPM_Jabar)
## 
##  number of interaction: 412
##  rho 0.878545
## 
## Durbin-Watson statistic 
## (original):    0.79521 , p-value: 1.768e-03
## (transformed): 2.07953 , p-value: 4.014e-01
##  
##  coefficients: 
## (Intercept)       Tahun 
## -638.590309    0.352236
x <- IPM_Jabar$Tahun
y <- IPM_Jabar$IPM
rho<- modelco$rho
rho
## [1] 0.8785453
y.trans<- y[-1]-y[-12]*rho
x.trans<- x[-1]-x[-12]*rho
modelcorho<- lm(y.trans~x.trans)
summary(modelcorho)
## 
## Call:
## lm(formula = y.trans ~ x.trans)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.35835 -0.08547 -0.00451  0.11199  0.26577 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -77.5598    38.7676  -2.001   0.0765 .
## x.trans       0.3522     0.1578   2.233   0.0525 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.201 on 9 degrees of freedom
## Multiple R-squared:  0.3564, Adjusted R-squared:  0.2849 
## F-statistic: 4.985 on 1 and 9 DF,  p-value: 0.05247

Pengecekan Autokorelasi

1. Uji Durbin Watson

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

2. Run`s Test

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

Berdasarkan uji formal Durbin Watson dan Run`s test p-value > 0.05 Tak Tolak H0, artinya tidak cukup bukti untuk menyatakan bahwa ada autokorelasi pada taraf 5%.

Transformasi Balik

cat("IPM = ", coef(modelcorho)[1]/(1-rho), "+", coef(modelcorho)[2]," Tahun", sep = "")
## IPM = -638.5903+0.3522361 Tahun

Setelah dilakukan transformasi balik, diperoleh model regresi yaitu :

                      IPM^ = -638.5903 + 0.3522361 (Tahun)
       

Interpretasi Model Regresi

  • Nilai intersep sebesar -638.5903 yang artinya jika peubah penjelas tahun bernilai nol, maka dugaan nilai IPM sebesar -638.5903.

  • Pengaruh peubah waktu (Tahun) terhadap IPM bernilai positif sebesar 0.3522361, hal ini menunjukkan bahwa jika waktunya bertambah satu tahun maka dugaan nilai IPM bertambah sebesar 0.3522361.

2. Hidreth-lu

hildreth.lu.func<- function(r, modelts){
  x <- model.matrix(modelts)[,-1]
  y <- model.response(model.frame(modelts))
  n <- length(y)
  t <- 2:n
  y <- y[t]-r*y[t-1]
  x <- x[t]-r*x[t-1]
  
  return(lm(y~x))
}
r <- c(seq(0.1,0.8, by= 0.1), seq(0.9,0.99, by= 0.01))
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, modelts))}))
optrho <- which.min(round(tab, 4)[,2])
round(tab, 4)
##     rho    SSE
## 1  0.10 0.5525
## 2  0.20 0.5071
## 3  0.30 0.4680
## 4  0.40 0.4350
## 5  0.50 0.4083
## 6  0.60 0.3878
## 7  0.70 0.3735
## 8  0.80 0.3655
## 9  0.90 0.3636
## 10 0.91 0.3638
## 11 0.92 0.3640
## 12 0.93 0.3643
## 13 0.94 0.3646
## 14 0.95 0.3650
## 15 0.96 0.3655
## 16 0.97 0.3660
## 17 0.98 0.3666
## 18 0.99 0.3672
round(tab, 4)[optrho,]
##   rho    SSE
## 9 0.9 0.3636

Dari hasil diatas, diketahui bahwa nilai ρ optimum yang meminimumkan SSE adalah 0.9 .

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

r <- seq(0.2,1.0, by= 0.01)
tab <- data.frame("rho" = r, "SSE" = sapply(r,function(i){deviance(hildreth.lu.func(i, modelts))}))
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Terlihat bahwa nilai ρ optimum yang menghasilkan SES terkecil adalah sebesar 0.9. Dengan demikian, model optimum yang dibuat dengan metode Hidreth-Lu yaitu:

modelhl <- hildreth.lu.func(0.9, modelts)
summary(modelhl)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.36185 -0.07965 -0.00773  0.11035  0.26443 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -51.7880    38.8082  -1.334    0.215
## x             0.2928     0.1916   1.528    0.161
## 
## Residual standard error: 0.201 on 9 degrees of freedom
## Multiple R-squared:  0.206,  Adjusted R-squared:  0.1177 
## F-statistic: 2.335 on 1 and 9 DF,  p-value: 0.1609

Pengecekan Asumsi Autokorelasi

1. Uji Durbin Watson

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

2. Run`s Test

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

Berdasarkan uji formal Durbin Watson dan Run`s test p-value > 0.05 Tak Tolak H0, artinya tidak cukup bukti untuk menyatakan bahwa ada autokorelasi pada taraf 5%.

Transformasi Balik

cat("y = ", coef(modelhl)[1]/(1-0.9), "+", coef(modelhl)[2],"Tahun", sep = "") 
## y = -517.8795+0.2928182Tahun

Model regresi yang terbentuk setelah dilakukan penanganan autokorelasi dengan metode Hidreth-Lu yaitu:

                   IPM^ = -517.8795+0.2928182 (Tahun)
        

Interpretasi Model Regresi

  • Nilai intersep sebesar -517.8795 yang artinya jika peubah penjelas tahun bernilai nol, maka dugaan nilai IPM sebesar -517.8795.

  • Pengaruh peubah waktu (Tahun) terhadap IPM bernilai positif sebesar 0.2928182, hal ini menunjukkan bahwa jika waktunya bertambah satu tahun maka dugaan nilai IPM bertambah sebesar 0.2928182.

Kesimpulan

Model regresi linier data deret waktu IPM Jawa 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. Oleh karena itu, dilakukan penanganan autokorelasi dengan metode Cochrane-Orcutt dan Hidreth-Lu. Dengan melakukan penanganan menggunakan kedua metode tersebut, masalah autokorelasi pada model regresi IPM Jawab Barat tahun 2010-2021 berhasil ditangani.