Pemeriksaan Autokorelasi beserta Penanganannya menggunakan Cochrane-Orcutt dan Hildreth-Lu pada Studi Kasus IPM Maluku Utara Tahun 2010-2021

Pendahuluan

Indeks Pembangunan Manusia (IPM) merupakan indikator yang dapat mengukur kualitas manusia di suatu daerah. IPM mengukur salah satu aspek penting yang berhubungan dengan kualitas dari hasil pembangunan ekonomi, yaitu derajat perkembangan manusia. IPM memiliki tiga unsur yaitu kesehatan, pendidikan yang dicapai, dan standar kehidupan yang sering disebut ekonomi (Matdoan dan Delsen 2020).

UNDP (United Nation Development Programme) mengukur keberhasilan pembangunan manusia dengan Indeks Pembangunan Manusia (Human Development Index). Indeks Pembangunan Manusia (IPM) merupakan indeks gabungan yang dihitung sebagai rata-rata dari Indeks Harapan Hidup, Indeks Pendidikan, dan Indeks Standar Hidup Layak (Yektiningsih 2018). Indeks ini menggambarkan kondisi kualitas hidup penduduk dari segi kualitatif (non ekonomi) dan kuantitatif (ekonomi). Pengukurannya berdasarkan penghitungan peubah individu penduduk, bukan peubah akumulatif atau kolektif, misalnya pertumbuhan ekonomi diukur dari perubahan output total penduduk tanpa melihat penghasilnya (Siswati dan Hermawati 2018).

Menurut data dari Badan Pusat Statistik (2021), selama 2010-2021 IPM Indonesia rata-rata meningkat sebesar 0.76 persen. Pada tahun 2021, BPS mencatat IPM Indonesia mencapai 72.29, meningkat 0.49% dibandingkan tahun sebelumnya yaitu 71.94 (BPS 2021 dalam Nurcahyono et al. 2021).

Pada penelitian ini dipilih provinsi Maluku Utara sebagai studi kasus karena pembangunan manusia di Maluku Utara terus mengalami kemajuan. Hal ini berdasarkan data yang dirilis oleh Badan Pusat Statistik (BPS) Provinsi Maluku Utara. IPM Maluku Utara meningkat dari 62,79 pada tahun 2010 menjadi 68,76 pada tahun 2021. Selama periode tersebut, status pembangunan manusia Maluku Utara berada pada level “sedang” (Kumparan.com).

Data

Data yang akan digunakan adalah data IPM Provinsi Maluku Utara pada periode tahun 2010 sampai 2021. Data terdiri atas 12 observasi. Data IPM Provinsi Maluku Utara dapat dilihat sebagai berikut.

library(readxl)
ipm <- read_excel("C:/Users/User/Documents/DIAH/SEMESTER 5/STA1341 METODE PERAMALAN DERET WAKTU/3/IPM/IPM 2010-2021.xlsx", sheet="maluku utara")
attach(ipm)
ipm
## # A tibble: 12 x 2
##    Tahun   IPM
##    <dbl> <dbl>
##  1  2010  62.8
##  2  2011  63.2
##  3  2012  63.9
##  4  2013  64.8
##  5  2014  65.2
##  6  2015  65.9
##  7  2016  66.6
##  8  2017  67.2
##  9  2018  67.8
## 10  2019  68.7
## 11  2020  68.5
## 12  2021  68.8

Eksplorasi Data

Plot antara tahun dan IPM Maluku Utara dapat dilihat pada scatterplot di bawah ini.

library(ggplot2)
ggplot(ipm) +
  geom_point(aes(x = Tahun,y = IPM), color="navy", size=2) +
  ggtitle("Scatterplot Tahun vs IPM Maluku Utara") +
  ylab("IPM") +
  xlab("Tahun") + 
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5))

# Nilai korelasi antara tahun dan IPM Maluku Utara
cor(Tahun,IPM)
## [1] 0.9905635

Berdasarkan plot di atas, terlihat bahwa terdapat hubungan positif antara tahun dan IPM Maluku Utara. Nilai korelasi antara kedua peubah tersebut juga sangat tinggi dengan nilai sebesar 0.99, artinya kedua peubah tersebut memiliki hubungan yang sangat erat.

Model Regresi

Jika data tahun dan IPM Maluku Utara diregresikan, maka model regresi linear sederhana yang dihasilkan sebagai berikut.

model <- lm(IPM ~ Tahun, data = ipm)
summary(model)
## 
## Call:
## lm(formula = IPM ~ Tahun, data = ipm)
## 
## 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
cat("IPM = ", coef(model)[1], " + ", coef(model)[2],"(Tahun)", sep = "")
## IPM = -1120.921 + 0.588951(Tahun)

Persamaan regresinya sebagai berikut:

\(IPM = -1120.921 + 0.588951(Tahun)\)

Mendeteksi Autokorelasi

Secara Eksploratif

Selanjutnya dilakukan pengecekan asumsi regresi secara eksploratif menggunakan 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)

Berdasarkan plot di atas, terlihat bahwa pada Normal Q-Q Plot menunjukkan sisaan dari model regresi cenderung menyebar normal. Histogram dari sisaan juga menunjukkan bahwa sisaan cenderung menyebar normal. Namun, pada plot sisaan vs fitted values dan sisaan vs order, terlihat bahwa ada pola yang terbentuk. Adanya pola yang terbentuk dapat menjadi indikasi awal adanya autokorelasi. Untuk memastikannya, dapat dilakukan dengan melihat plot ACF dan PACF sebagai berikut.

#ACF dan PACF identifikasi autokorelasi
par(mfrow = c(1,2))
acf(resi1)
pacf(resi1)

Berdasarkan plot ACF dan PACF di atas, terlihat bahwa data masih berada di batas aman autokorelasi (tidak keluar dari garis batas berwarna biru), sehingga berdasarkan grafik tersebut tidak ada autokorelasi. Namun, agar lebih akurat digunakan uji Durbin-Watson untuk mendeteksi adanya autokorelasi.

Menggunakan Uji Durbin-Watson

H0: tidak ada autokorelasi

H1: ada autokorelasi

library(lmtest)
## Warning: package 'lmtest' was built under R version 4.1.3
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
dwtest(model, alternative = 'two.sided') 
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 1.1205, p-value = 0.03608
## alternative hypothesis: true autocorrelation is not 0

Hasil Uji Durbin-Watson menunjukkan p-value sebesar \(0.03608\) (kurang dari taraf nyata 5%) atau tolak \(H0\) sehingga cukup bukti untuk menyatakan bahwa terdapat autokorelasi (positif) pada data tersebut pada taraf nyata 5%.

Penanganan Autokorelasi

Penanganan autokorelasi dapat dilakukan melalui metode Cochrane-Orcutt dan Hildreth-Lu.

Cochrane-Orcutt

library(orcutt)
## Warning: package 'orcutt' was built under R version 4.1.3
modelco<-cochrane.orcutt(model)
summary(modelco)
## Call:
## lm(formula = IPM ~ Tahun, data = ipm)
## 
##                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
#rho optimum
rho <- modelco$rho
IPM
##  [1] 62.79 63.19 63.93 64.78 65.18 65.91 66.63 67.20 67.76 68.70 68.49 68.76
IPM[-1]
##  [1] 63.19 63.93 64.78 65.18 65.91 66.63 67.20 67.76 68.70 68.49 68.76
IPM[-12]
##  [1] 62.79 63.19 63.93 64.78 65.18 65.91 66.63 67.20 67.76 68.70 68.49
#transformasi terhadap IPM dan Tahun
(ipm.trans <- IPM[-1]-IPM[-12]*rho)
##  [1] 28.58206 29.10159 29.54372 29.47523 29.98476 30.30241 30.47557 30.72140
##  [9] 31.35274 30.62464 31.01039
(tahun.trans <- Tahun[-1]-Tahun[-12]*rho)
##  [1] 903.1490 903.5978 904.0467 904.4955 904.9443 905.3931 905.8420 906.2908
##  [9] 906.7396 907.1885 907.6373
#model baru
modelcorho <- lm(ipm.trans~tahun.trans)
summary(modelcorho)
## 
## Call:
## lm(formula = ipm.trans ~ tahun.trans)
## 
## 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.50416   57.39389  -7.989 2.24e-05 ***
## tahun.trans    0.53967    0.06339   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.8773 
## F-statistic: 72.48 on 1 and 9 DF,  p-value: 1.342e-05
lmtest::dwtest(modelcorho,alternative = 'two.sided') 
## 
##  Durbin-Watson test
## 
## data:  modelcorho
## DW = 1.758, p-value = 0.4114
## alternative hypothesis: true autocorrelation is not 0

Hasil uji Durbin-Watson setelah ditangani menggunakan metode Cochrane-Orcutt menunjukkan p-value sebesar 0.4114, artinya lebih dari taraf nyata 5% sehingga tak tolak \(H0\). Oleh karena itu, dapat disimpulkan bahwa dengan model dengan Cochrane-Orcutt, belum cukup bukti untuk menyatakan bahwa terdapat autokorelasi pada taraf nyata 5% atau tidak terdapat autokorelasi pada model ini. Nilai ini didapatkan ketika rho optimum yaitu 0.5511697.

Hildreth-Lu

Metode Hildreth-Lu dapat didefinisikan berdasarkan function berikut:

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


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, model))}))
round(tab, 4)
##     rho    SSE
## 1  0.10 0.8945
## 2  0.20 0.8578
## 3  0.30 0.8303
## 4  0.40 0.8119
## 5  0.50 0.8026
## 6  0.60 0.8025
## 7  0.70 0.8115
## 8  0.80 0.8297
## 9  0.90 0.8570
## 10 0.91 0.8603
## 11 0.92 0.8636
## 12 0.93 0.8670
## 13 0.94 0.8705
## 14 0.95 0.8741
## 15 0.96 0.8778
## 16 0.97 0.8816
## 17 0.98 0.8855
## 18 0.99 0.8894
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty= 3)

Metode Hildreth-Lu akan mencari nilai rho optimum yang menghasilkan SSE terkecil. Pada iterasi di atas terlihat bahwa nilai rho optimum berada di antara 0.5 dan 0.6. Untuk melihat lebih spesifik berapa nilai rho yang optimum, maka selang nilai rho akan diperkecil.

r <- seq(0.5,0.6, by= 0.001)
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, model))}))
round(tab, 4)
##       rho    SSE
## 1   0.500 0.8026
## 2   0.501 0.8026
## 3   0.502 0.8025
## 4   0.503 0.8025
## 5   0.504 0.8024
## 6   0.505 0.8024
## 7   0.506 0.8023
## 8   0.507 0.8023
## 9   0.508 0.8023
## 10  0.509 0.8022
## 11  0.510 0.8022
## 12  0.511 0.8021
## 13  0.512 0.8021
## 14  0.513 0.8021
## 15  0.514 0.8020
## 16  0.515 0.8020
## 17  0.516 0.8020
## 18  0.517 0.8019
## 19  0.518 0.8019
## 20  0.519 0.8019
## 21  0.520 0.8019
## 22  0.521 0.8018
## 23  0.522 0.8018
## 24  0.523 0.8018
## 25  0.524 0.8017
## 26  0.525 0.8017
## 27  0.526 0.8017
## 28  0.527 0.8017
## 29  0.528 0.8017
## 30  0.529 0.8016
## 31  0.530 0.8016
## 32  0.531 0.8016
## 33  0.532 0.8016
## 34  0.533 0.8016
## 35  0.534 0.8015
## 36  0.535 0.8015
## 37  0.536 0.8015
## 38  0.537 0.8015
## 39  0.538 0.8015
## 40  0.539 0.8015
## 41  0.540 0.8015
## 42  0.541 0.8015
## 43  0.542 0.8014
## 44  0.543 0.8014
## 45  0.544 0.8014
## 46  0.545 0.8014
## 47  0.546 0.8014
## 48  0.547 0.8014
## 49  0.548 0.8014
## 50  0.549 0.8014
## 51  0.550 0.8014
## 52  0.551 0.8014
## 53  0.552 0.8014
## 54  0.553 0.8014
## 55  0.554 0.8014
## 56  0.555 0.8014
## 57  0.556 0.8014
## 58  0.557 0.8014
## 59  0.558 0.8014
## 60  0.559 0.8014
## 61  0.560 0.8014
## 62  0.561 0.8015
## 63  0.562 0.8015
## 64  0.563 0.8015
## 65  0.564 0.8015
## 66  0.565 0.8015
## 67  0.566 0.8015
## 68  0.567 0.8015
## 69  0.568 0.8015
## 70  0.569 0.8016
## 71  0.570 0.8016
## 72  0.571 0.8016
## 73  0.572 0.8016
## 74  0.573 0.8016
## 75  0.574 0.8016
## 76  0.575 0.8017
## 77  0.576 0.8017
## 78  0.577 0.8017
## 79  0.578 0.8017
## 80  0.579 0.8018
## 81  0.580 0.8018
## 82  0.581 0.8018
## 83  0.582 0.8018
## 84  0.583 0.8019
## 85  0.584 0.8019
## 86  0.585 0.8019
## 87  0.586 0.8020
## 88  0.587 0.8020
## 89  0.588 0.8020
## 90  0.589 0.8021
## 91  0.590 0.8021
## 92  0.591 0.8021
## 93  0.592 0.8022
## 94  0.593 0.8022
## 95  0.594 0.8022
## 96  0.595 0.8023
## 97  0.596 0.8023
## 98  0.597 0.8024
## 99  0.598 0.8024
## 100 0.599 0.8025
## 101 0.600 0.8025
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Untuk melihat lebih spesifik berapa nilai rho yang optimum, maka selang nilai rho akan kembali diperkecil.

r <- seq(0.54,0.56, by= 0.0001)
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, model))}))
round(tab, 4)
##        rho    SSE
## 1   0.5400 0.8015
## 2   0.5401 0.8015
## 3   0.5402 0.8015
## 4   0.5403 0.8015
## 5   0.5404 0.8015
## 6   0.5405 0.8015
## 7   0.5406 0.8015
## 8   0.5407 0.8015
## 9   0.5408 0.8015
## 10  0.5409 0.8015
## 11  0.5410 0.8015
## 12  0.5411 0.8015
## 13  0.5412 0.8015
## 14  0.5413 0.8015
## 15  0.5414 0.8015
## 16  0.5415 0.8015
## 17  0.5416 0.8015
## 18  0.5417 0.8015
## 19  0.5418 0.8015
## 20  0.5419 0.8015
## 21  0.5420 0.8014
## 22  0.5421 0.8014
## 23  0.5422 0.8014
## 24  0.5423 0.8014
## 25  0.5424 0.8014
## 26  0.5425 0.8014
## 27  0.5426 0.8014
## 28  0.5427 0.8014
## 29  0.5428 0.8014
## 30  0.5429 0.8014
## 31  0.5430 0.8014
## 32  0.5431 0.8014
## 33  0.5432 0.8014
## 34  0.5433 0.8014
## 35  0.5434 0.8014
## 36  0.5435 0.8014
## 37  0.5436 0.8014
## 38  0.5437 0.8014
## 39  0.5438 0.8014
## 40  0.5439 0.8014
## 41  0.5440 0.8014
## 42  0.5441 0.8014
## 43  0.5442 0.8014
## 44  0.5443 0.8014
## 45  0.5444 0.8014
## 46  0.5445 0.8014
## 47  0.5446 0.8014
## 48  0.5447 0.8014
## 49  0.5448 0.8014
## 50  0.5449 0.8014
## 51  0.5450 0.8014
## 52  0.5451 0.8014
## 53  0.5452 0.8014
## 54  0.5453 0.8014
## 55  0.5454 0.8014
## 56  0.5455 0.8014
## 57  0.5456 0.8014
## 58  0.5457 0.8014
## 59  0.5458 0.8014
## 60  0.5459 0.8014
## 61  0.5460 0.8014
## 62  0.5461 0.8014
## 63  0.5462 0.8014
## 64  0.5463 0.8014
## 65  0.5464 0.8014
## 66  0.5465 0.8014
## 67  0.5466 0.8014
## 68  0.5467 0.8014
## 69  0.5468 0.8014
## 70  0.5469 0.8014
## 71  0.5470 0.8014
## 72  0.5471 0.8014
## 73  0.5472 0.8014
## 74  0.5473 0.8014
## 75  0.5474 0.8014
## 76  0.5475 0.8014
## 77  0.5476 0.8014
## 78  0.5477 0.8014
## 79  0.5478 0.8014
## 80  0.5479 0.8014
## 81  0.5480 0.8014
## 82  0.5481 0.8014
## 83  0.5482 0.8014
## 84  0.5483 0.8014
## 85  0.5484 0.8014
## 86  0.5485 0.8014
## 87  0.5486 0.8014
## 88  0.5487 0.8014
## 89  0.5488 0.8014
## 90  0.5489 0.8014
## 91  0.5490 0.8014
## 92  0.5491 0.8014
## 93  0.5492 0.8014
## 94  0.5493 0.8014
## 95  0.5494 0.8014
## 96  0.5495 0.8014
## 97  0.5496 0.8014
## 98  0.5497 0.8014
## 99  0.5498 0.8014
## 100 0.5499 0.8014
## 101 0.5500 0.8014
## 102 0.5501 0.8014
## 103 0.5502 0.8014
## 104 0.5503 0.8014
## 105 0.5504 0.8014
## 106 0.5505 0.8014
## 107 0.5506 0.8014
## 108 0.5507 0.8014
## 109 0.5508 0.8014
## 110 0.5509 0.8014
## 111 0.5510 0.8014
## 112 0.5511 0.8014
## 113 0.5512 0.8014
## 114 0.5513 0.8014
## 115 0.5514 0.8014
## 116 0.5515 0.8014
## 117 0.5516 0.8014
## 118 0.5517 0.8014
## 119 0.5518 0.8014
## 120 0.5519 0.8014
## 121 0.5520 0.8014
## 122 0.5521 0.8014
## 123 0.5522 0.8014
## 124 0.5523 0.8014
## 125 0.5524 0.8014
## 126 0.5525 0.8014
## 127 0.5526 0.8014
## 128 0.5527 0.8014
## 129 0.5528 0.8014
## 130 0.5529 0.8014
## 131 0.5530 0.8014
## 132 0.5531 0.8014
## 133 0.5532 0.8014
## 134 0.5533 0.8014
## 135 0.5534 0.8014
## 136 0.5535 0.8014
## 137 0.5536 0.8014
## 138 0.5537 0.8014
## 139 0.5538 0.8014
## 140 0.5539 0.8014
## 141 0.5540 0.8014
## 142 0.5541 0.8014
## 143 0.5542 0.8014
## 144 0.5543 0.8014
## 145 0.5544 0.8014
## 146 0.5545 0.8014
## 147 0.5546 0.8014
## 148 0.5547 0.8014
## 149 0.5548 0.8014
## 150 0.5549 0.8014
## 151 0.5550 0.8014
## 152 0.5551 0.8014
## 153 0.5552 0.8014
## 154 0.5553 0.8014
## 155 0.5554 0.8014
## 156 0.5555 0.8014
## 157 0.5556 0.8014
## 158 0.5557 0.8014
## 159 0.5558 0.8014
## 160 0.5559 0.8014
## 161 0.5560 0.8014
## 162 0.5561 0.8014
## 163 0.5562 0.8014
## 164 0.5563 0.8014
## 165 0.5564 0.8014
## 166 0.5565 0.8014
## 167 0.5566 0.8014
## 168 0.5567 0.8014
## 169 0.5568 0.8014
## 170 0.5569 0.8014
## 171 0.5570 0.8014
## 172 0.5571 0.8014
## 173 0.5572 0.8014
## 174 0.5573 0.8014
## 175 0.5574 0.8014
## 176 0.5575 0.8014
## 177 0.5576 0.8014
## 178 0.5577 0.8014
## 179 0.5578 0.8014
## 180 0.5579 0.8014
## 181 0.5580 0.8014
## 182 0.5581 0.8014
## 183 0.5582 0.8014
## 184 0.5583 0.8014
## 185 0.5584 0.8014
## 186 0.5585 0.8014
## 187 0.5586 0.8014
## 188 0.5587 0.8014
## 189 0.5588 0.8014
## 190 0.5589 0.8014
## 191 0.5590 0.8014
## 192 0.5591 0.8014
## 193 0.5592 0.8014
## 194 0.5593 0.8014
## 195 0.5594 0.8014
## 196 0.5595 0.8014
## 197 0.5596 0.8014
## 198 0.5597 0.8014
## 199 0.5598 0.8014
## 200 0.5599 0.8014
## 201 0.5600 0.8014
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Untuk melihat lebih spesifik berapa nilai rho yang optimum, maka selang nilai rho akan kembali diperkecil.

r <- seq(0.550,0.553, by= 0.0001)
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, model))}))
round(tab, 4)
##       rho    SSE
## 1  0.5500 0.8014
## 2  0.5501 0.8014
## 3  0.5502 0.8014
## 4  0.5503 0.8014
## 5  0.5504 0.8014
## 6  0.5505 0.8014
## 7  0.5506 0.8014
## 8  0.5507 0.8014
## 9  0.5508 0.8014
## 10 0.5509 0.8014
## 11 0.5510 0.8014
## 12 0.5511 0.8014
## 13 0.5512 0.8014
## 14 0.5513 0.8014
## 15 0.5514 0.8014
## 16 0.5515 0.8014
## 17 0.5516 0.8014
## 18 0.5517 0.8014
## 19 0.5518 0.8014
## 20 0.5519 0.8014
## 21 0.5520 0.8014
## 22 0.5521 0.8014
## 23 0.5522 0.8014
## 24 0.5523 0.8014
## 25 0.5524 0.8014
## 26 0.5525 0.8014
## 27 0.5526 0.8014
## 28 0.5527 0.8014
## 29 0.5528 0.8014
## 30 0.5529 0.8014
## 31 0.5530 0.8014
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Untuk melihat lebih spesifik berapa nilai rho yang optimum, maka selang nilai rho akan kembali diperkecil.

r <- seq(0.551,0.552, by= 0.0001)
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, model))}))
round(tab, 4)
##       rho    SSE
## 1  0.5510 0.8014
## 2  0.5511 0.8014
## 3  0.5512 0.8014
## 4  0.5513 0.8014
## 5  0.5514 0.8014
## 6  0.5515 0.8014
## 7  0.5516 0.8014
## 8  0.5517 0.8014
## 9  0.5518 0.8014
## 10 0.5519 0.8014
## 11 0.5520 0.8014
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Berdasarkan plot di atas, terlihat bahwa rho optimum adalah ketika 0.5512. Selanjutnya memasukkan nilai rho 0.5512 pada fungsi hildreth.lu.func(). Model yang dihasilkan sebagai berikut.

# Model terbaik
modelhl <- hildreth.lu.func(0.5512, model)
summary(modelhl)
## 
## 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
# Transformasi Balik
cat("IPM = ", coef(modelhl)[1]/(1-0.5512), " + ", coef(modelhl)[2],"(Tahun)", sep = "")
## IPM = -1021.542 + 0.5396616(Tahun)

Model terbaik Hildreth-Lu menghasilkan persamaan regresi sebagai berikut:

\(IPM = -1021.542 + 0.5396616(Tahun)\)

Selanjutnya dilakukan uji Durbin-Watson pada model terbaik Hildreth-Lu untuk memeriksa adanya autokorelasi.

# Deteksi autokorelasi
library(lmtest)
dwtest(modelhl)
## 
##  Durbin-Watson test
## 
## data:  modelhl
## DW = 1.758, p-value = 0.2057
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan output di atas diperoleh p-value sebesar 0.2057 (lebih dari taraf nyata 5%) sehingga tak tolak H0. Dapat disimpulkan bahwa belum cukup bukti untuk menyatakan bahwa terdapat autokorelasi dalam data IPM Provinsi Maluku Utara pada taraf nyata 5% atau tidak terdapat autokorelasi pada model dengan Hildreth-Lu.

Penentuan model dengan Hildreth-Lu juga dapat menggunakan package HoRM seperti dibawah ini:

#mengidentifikasi vektor x dan y
y<-ipm$IPM
x<-ipm$Tahun

library(HoRM)
## Warning: package 'HoRM' was built under R version 4.1.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
modelhl2<-hildreth.lu(y,x,0.5521)
modelhl2
## 
## Call:
## lm(formula = y ~ x)
## 
## Coefficients:
## (Intercept)            x  
##   -457.4009       0.5395
# Transformasi Balik
cat("IPM = ", coef(modelhl2)[1]/(1-0.5512), " + ", coef(modelhl2)[2],"(Tahun)", sep = "")
## IPM = -1019.164 + 0.539498(Tahun)

Berdasarkan hasil output di atas, dapat dilihat bahwa persamaan regresi yang terbentuk adalah

\(IPM = -1019.164 + 0.539498(Tahun)\)

Kesimpulan

Data deret waktu rawan terhadap autokorelasi. Mendeteksi adanya autokorelasi dapat dilakukan secara eksploratif melalui grafik dan uji formal Durbin-Watson. Terdapat autokorelasi pada data IPM Provinsi Maluku Utara. Penanganan autokorelasi dapat dilakukan dengan metode Cochrane-Orcutt dan Hildreth-Lu.

Daftar Pustaka

Matdoan MY, Delsen MSNV. 2020. Penerapan analisis cluster dengan metode hierarki untuk klasifikasi kabupaten/kota di Provinsi Maluku berdasarkan indikator Indeks Pembangunan Manusia. Jurnal Statistika dan Matematika. 2(2):123-130. DOI: http://dx.doi.org/10.32493/sm.v2i2.4740.

Nurcahyono D, Metandi F, Najib A. 2021. Pelatihan system penilaian kerja guru di SMK Negeri 7 Samarinda. Community Empowerment. 6(12):2339-2343.

Siswati E, Hermawati DT. 2018. Analisis Indeks Pembangunan Manusia (IPM) Kabupaten Bojonegoro. Jurnal Ilmiah Sosio Agribis. 18(2):93-114. DOI: http://dx.doi.org/10.30742/jisa.v18i2.531.

Yektiningish E. 2018. Analisis Indeks Pembangunan Manusia (IPM) Kabupaten Pacitan tahun 2018. Jurnal Ilmiah Sosio Agribis. 18(2):32-50. DOI: http://dx.doi.org/10.30742/jisa.v18i2.528.

Kumparan.com. 19 Agustus 2022. Kinerja Pembangunan Manusia Maluku Utara. Diakses pada 4 September 2022, dari https://kumparan.com/ridwan-prayogi/kinerja-pembangunan-manusia-maluku-utara-1yfHlOA5uNN/2

Badan Pusat Statistik. Diakses pada 4 September 2022, dari https://www.bps.go.id/indicator/26/494/1/-metode-baru-indeks-pembangunan-manusia-menurut-provinsi.html