Penanganan Autokorelasi Dengan Metode

Analisis regresi adalah analisis yang digunakan untuk menjelaskan keterkaitan hubungan antara suatu variabel bebas (independent) terhadap variable tak bebas (dependent). Analisis ini memungkinkan pengamat untuk menduga nilai dari suatu variabel bebas dengan mempertimbangkan variabel tak bebasnya. Untuk data time series, analisis regresi mengidentifikasi keterkaikan hubungan suatu variabel bebas terhadap periode waktu.

1) Pengenalan Data

library(readxl)
DataP3 <- read_excel("C:/Users/ASUS/OneDrive/Documents/Kuliah/Semester 5/Metode Peramalan Deret Waktu/Praktikum/Tugas Individu MPDW.xlsx", sheet=2)
DataP3
## # A tibble: 12 × 2
##    Periode   IPM
##      <dbl> <dbl>
##  1    2010  67.2
##  2    2011  67.8
##  3    2012  68.4
##  4    2013  68.9
##  5    2014  69.4
##  6    2015  70.0
##  7    2016  70.7
##  8    2017  71.2
##  9    2018  71.7
## 10    2019  72.4
## 11    2020  72.4
## 12    2021  72.6
plot(DataP3)

cor(DataP3)
##           Periode       IPM
## Periode 1.0000000 0.9932977
## IPM     0.9932977 1.0000000

Pembangunan manusia didefinisikan sebagai “a process of enlarging people’s choices” atau proses yang meningkatkan aspek kehidupan masyarakat (Setiawan dan Hakim, 2013). Indeks Pembangunan Manusia merupakan indeks yang menggambarkan kondisi pembangunan manusia pada sebuah wilayah. Indeks ini dapat digunakan sebagai dasar peninjauan kebijakan bagi pemerintah maupun pengusaha.Indeks ini terbentuk dari rata-rata ukuran capaian tiga dimensi utama pembangunan manusia, yaitu umur panjang dan hidup sehat, pengetahuan, dan standar hidup layak (BPS 2022). Data yang digunakan adalah data yang menggambarkan perubahan Indeks Pembangunan Manusia (IPM) di Sumatera Utara sejak 2010 hingga 2021. Melalui plot diatas, IPM Sumatera Utara sejak 2010 hingga 2021 mengalami peningkatan yang signifikan dan hampir setiap tahunnya selalu mengalami peningkatan dengan besar perubahan yang berbeda-beda walaupun pada 2020 terjadi penurunan tingkat IPM dibandingkan 2019. Melalui matriks corelasi diatas diketahui korelasi yang sangat kuat antara IPM dengan periode yang mendekati 1. Untuk lebih mengetahui hubungan antara IPM dengan periode, maka perlu melakukan analisis regresi. Tetapi sebelum itu, peubah IPM harus dipastikan telah menyebar normal sebagai salah satu asumsi dasar dalam analisi regresi.

2) Eksplorasi Data

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✔ ggplot2 3.3.6     ✔ purrr   0.3.4
## ✔ tibble  3.1.7     ✔ dplyr   1.0.9
## ✔ tidyr   1.2.0     ✔ stringr 1.4.0
## ✔ readr   2.1.2     ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
ts.p <- ggplot(DataP3, aes(x=DataP3$Periode, y=DataP3$IPM)) +
  geom_line(lwd=1.2,col="purple2")
ts.p +labs(x="Tahun",y = "Indeks Pembangunan Manusia",
         title="Time Series Plot\nIndeks Pembangunan Manusia Provinsi Sumatera Utara",
        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)
## Warning: Use of `DataP3$Periode` is discouraged. Use `Periode` instead.
## Warning: Use of `DataP3$IPM` is discouraged. Use `IPM` instead.
## Warning: Use of `DataP3$Periode` is discouraged. Use `Periode` instead.
## Warning: Use of `DataP3$IPM` is discouraged. Use `IPM` instead.
## Warning: Use of `DataP3$Periode` is discouraged. Use `Periode` instead.
## Warning: Use of `DataP3$IPM` is discouraged. Use `IPM` instead.

Indeks Pembangunan Manusia Provinsi Sumatera Utara mengalami tren positif yang cukup signifikan pada setiap tahunnya. Peningkatan total IPM Sumatera Utara sebesar 5,4% dalam periode waktu 12 tahun.

3) Korelasi Antar Peubah

x <- DataP3$Periode
y <- DataP3$IPM

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

Berdasarkan hasil tersebut, nilai IPM sangat dipengaruhi oleh perubahan tahunan. Hal ini dapat memberikan indikasi baik bahwa kedua peubah ini dapat dianalisis dengan analisis regresi. Namun sebelum melanjutkan analisis regresi, perlu diperhatikan kenormalan peubah Y(IPM) agar memenuhi asumsi awal dari analisis regresi, yakni peubah Y menyebar normal.

4) Normalitas IPM

DataP3.ts<-ts(DataP3)
DataP3.ts
## Time Series:
## Start = 1 
## End = 12 
## Frequency = 1 
##    Periode   IPM
##  1    2010 67.25
##  2    2011 67.81
##  3    2012 68.36
##  4    2013 68.91
##  5    2014 69.36
##  6    2015 69.98
##  7    2016 70.73
##  8    2017 71.24
##  9    2018 71.73
## 10    2019 72.39
## 11    2020 72.38
## 12    2021 72.65
summary(DataP3.ts)
##     Periode          IPM       
##  Min.   :2010   Min.   :67.25  
##  1st Qu.:2013   1st Qu.:68.77  
##  Median :2016   Median :70.36  
##  Mean   :2016   Mean   :70.23  
##  3rd Qu.:2018   3rd Qu.:71.89  
##  Max.   :2021   Max.   :72.65
qqnorm(DataP3$IPM, cex = 1)
qqline(DataP3$IPM, distribution = qnorm, 
       col = "red", lty = "dashed", lwd = 3)

ks.test(DataP3$IPM, "pnorm", mean=mean(DataP3$IPM), sd(DataP3$IPM))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  DataP3$IPM
## D = 0.12157, p-value = 0.9849
## alternative hypothesis: two-sided

Berdasarkan hasil plot quatil-quantil yang membandingkan sebaran data dengan sebaran Normal ditemukan pola sebaran IPM yang searah, memotong, serta menyinggung pola sebaran normal. Hal ini mengindikasikan bahwa sebaran peubah IPM menyebar normal. Untuk lebih memastikan hal ini, uji Kolmogorov-Smirnov dapat dimanfaatkan untuk mengetahui apakah peubah IPM menyebar normal atau tidak. Uji tersebut menghasil p-value = 0.9849 > alpha (0.05), sehingga tidak cukup bukti untuk mengatakan bahwa sisaan tidak menyebar normal pada tingkat kepercayaan 95%. Dengan demikian, baik secara eksplorasi maupun pengujian disimpulkan bahwa peubah IPM menyebar normal. Dengan demikian, asumsi dasar analisis regresi terpenuhi.

5) Analisis Regresi

DataP3_Reg <- lm(IPM~Periode, DataP3.ts)
summary(DataP3_Reg)
## 
## Call:
## lm(formula = IPM ~ Periode, data = DataP3.ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.45231 -0.09554 -0.03215  0.20099  0.33126 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -981.4216    38.6982  -25.36 2.08e-10 ***
## Periode        0.5218     0.0192   27.18 1.05e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2296 on 10 degrees of freedom
## Multiple R-squared:  0.9866, Adjusted R-squared:  0.9853 
## F-statistic: 738.5 on 1 and 10 DF,  p-value: 1.053e-10
plot(DataP3)
abline(DataP3_Reg, col ="Red")

Berdasarkan analisis regresi diperoleh persamaan regresi yang menggambarkan keterikatan antara peubah IPM dengan periode waktu sebagai berikut :

cat("Inflasi = ", coef(DataP3_Reg)[1], " + ", coef(DataP3_Reg)[2],"Periode", sep = "")
## Inflasi = -981.4216 + 0.5217832Periode

Model regresi tersebut memiliki koefisien determinasi sebesar 0.9866 yang menunjukkan bahwa 98.6% data dapat dijelaskan oleh model regresi dan sisanya tergambarkan segabai galat. Selain itu, hasil regresi tersebut menghasilkan p-value < alpha(0.05) pada uji F-simultann yang menunjukkan bahwa Cukup bukti untuk mengatakan bahwa ada periode berpengaruh signifikan terhadap peubah IPM secara simultan pada tingkat kepercayaan 95%. baik koefisien determasi maupun uji F-simultan, keduanya menunjukkan bahwa model yang kita miliki sudah cukup baik. Akan tetapi, untuk mengati lebih dalam lagi, kita perlu mengamati pemenuhan asumsi-asumsi klasik dalam analisis regresi. Asumsi-asumsi klasik tersebut, diantaranya : 1. Nilai harapan galat = 0 2. Ragam Galat seragam atau homoskedasatisitas 3. Normalitas sisaan 4. Tidak ada pengaruh antargalat atau non-autokorelasi

6) Pengujian Asumsi Klasik

a. Nilai harapan galat = 0

t.test(DataP3_Reg$residuals,
       mu = 0,
       conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  DataP3_Reg$residuals
## t = 6.4086e-17, df = 11, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -0.1390931  0.1390931
## sample estimates:
##    mean of x 
## 4.049947e-18

Berdasarkan t-test tersebut diperoleh p-value = 1 > alpha(0.05) yang menunjukkan bahwa tidak cukup bukti untuk mengatakan bahwa nilai tengah galat tidak sama dengan 0 pada tingkat kepercayaan 95%. Dengan demikian, asumsi ini terpenuhi.

b. Homoskedastisitas

Untuk menguji Homoskedastisitas dapat menggunakan uji studentized Breusch-Pagan maupun Non-constant Variance Score Test. Pada kesempatan ini, uji yang akan digunakan adalah studentized Breusch-Pagan test. Library yg digunakan adalah “lmtest”.

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest(DataP3_Reg)
## 
##  studentized Breusch-Pagan test
## 
## data:  DataP3_Reg
## BP = 6.6379, df = 1, p-value = 0.009983

Berdasarkan uji studentized Breusch-Pagan diperoleh p-value = 0.009983 < alpha(0.05) yang menunjukkan bahwa cukup bukti untuk mengatakan bahwa residual memiliki gejala heteroskedastisitas pada tingkat kepercayaan 95%. Dengan demikian, asumsi ini tidak terpenuhi dan memerlukan penanganan untuk menghasilkan pendugaan regresi yang lebih presisi.

c. Normalitas Sisaan

Salah satu uji yang dapat digunakan untuk pengujian normalitas sisaan selain t-test adalah shapiro test.

shapiro.test(DataP3_Reg$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  DataP3_Reg$residuals
## W = 0.94802, p-value = 0.6083

Berdasarkan uji Shapiro-Wil diperoleh p-value = 0.6083 > alpha(0.05) yang menunjukkan bahwa Tidak cukup bukti untuk mengatakan bahwa sisaan tidak menyebar normal pada tingkat kepercayaan 95%. Dengan demikian, asumsi ini terpenuhi.

d. Autokorelasi

Untuk menguji autokorelasi dapat menggunakan uji Runs Test maupun Durbin-Watson Test. Pada kesempatan ini, uji yang akan digunakan adalah Durbin-Watson test. Library yg digunakan adalah “lmtest”.

dwtest(DataP3_Reg)
## 
##  Durbin-Watson test
## 
## data:  DataP3_Reg
## DW = 0.82777, p-value = 0.002368
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan uji Durbin-Watsonn diperoleh p-value = 0.002368 < alpha(0.05) yang menunjukkan bahwa cukup bukti untuk mengatakan bahwa antarsisaan tidak saling bebas satu dengan lainnya, atau dengan kata lain ada autokorelasi tingkat kepercayaan 95%. Dengan demikian, asumsi ini tidak terpenuhi dan memerlukan penanganan untuk menghasilkan pendugaan regresi yang lebih presisi. Beberapa metode untuk menanganani autokorelasi, diantaranya Cochran-Orcutt dan Hildreth-Lu.

Penanganan Autokorelasi

1) Cochran-Orcutt

Metode Cochrane-Orcuttini merupakan salah satu metode yang dapat digunakan untuk mengatasi masalah autokorelasi pada regresi OLS, khususnya bila struktur autokorelasi tidak diketahui (Gujarati (2003), Widarjono (2007)). Metode ini diawali dengan rho menggunakan nilai estimasi error Selanjutnya perhitungan dilakukan dengan cara iterasi sampai diperoleh nilai estimasi bagi rho yang tidak mengandung masalah autokorelasi (Fathurahman M, 2012). Dengan R, Cochran-orcutt dapat diselesaikan memanfaatkan fungsi library(orcutt)

#Rho optimum
library(orcutt)
Rho <- cochrane.orcutt(DataP3_Reg)$rho
## Warning in cochrane.orcutt(DataP3_Reg): Did not converge
Rho
## [1] 0.8714765
#Transformasi Peubah
y.trans <- DataP3$IPM[-1]-(DataP3$IPM[-12]*Rho)
x.trans <- DataP3$Periode[-1]-(DataP3$Periode[-12]*Rho)
#Model Penanganan
Model.tr <- lm(y.trans~x.trans)
summary(Model.tr)
## 
## Call:
## lm(formula = y.trans ~ x.trans)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.35303 -0.09636 -0.03508  0.08131  0.27156 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -70.2368    36.3099  -1.934   0.0851 .
## x.trans       0.3067     0.1397   2.196   0.0557 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1883 on 9 degrees of freedom
## Multiple R-squared:  0.3488, Adjusted R-squared:  0.2765 
## F-statistic: 4.821 on 1 and 9 DF,  p-value: 0.05573

Melalui transformasi tersebut, diperoleh hasil regresi baru dengan persamaan :

cat("IPM Sumut* = ", coef(Model.tr)[1], " + ", coef(Model.tr)[2],"Periode*", sep = "")
## IPM Sumut* = -70.23683 + 0.3066682Periode*

Selanjutnya kita dapat menguji pemenuhan asumsi-asumsi klasik dari model tersebut.

a. Nilai harapan galat = 0

t.test(Model.tr$residuals,
       mu = 0,
       conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  Model.tr$residuals
## t = -9.37e-17, df = 10, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -0.1199885  0.1199885
## sample estimates:
##     mean of x 
## -5.045852e-18

Berdasarkan t-test tersebut diperoleh p-value = 1 > alpha(0.05) yang menunjukkan bahwa tidak cukup bukti untuk mengatakan bahwa nilai tengah galat tidak sama dengan 0 pada tingkat kepercayaan 95%. Dengan demikian, asumsi ini terpenuhi.

b. Homoskedastisitas

bptest(Model.tr)
## 
##  studentized Breusch-Pagan test
## 
## data:  Model.tr
## BP = 3.0887, df = 1, p-value = 0.07884

Berdasarkan uji studentized Breusch-Pagan diperoleh p-value = 0.07884 > alpha(0.05) yang menunjukkan bahwa tidak cukup bukti untuk mengatakan bahwa residual memiliki gejala heteroskedastisitas pada tingkat kepercayaan 95%. Dengan demikian, asumsi ini telah terpenuhi.

c. Normalitas Sisaan

Salah satu uji yang dapat digunakan untuk pengujian normalitas sisaan selain t-test adalah shapiro test.

shapiro.test(Model.tr$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  Model.tr$residuals
## W = 0.94183, p-value = 0.5422

Berdasarkan uji Shapiro-Wil diperoleh p-value = 0.5422 > alpha(0.05) yang menunjukkan bahwa Tidak cukup bukti untuk mengatakan bahwa sisaan tidak menyebar normal pada tingkat kepercayaan 95%. Dengan demikian, asumsi ini terpenuhi.

d. Autokorelasi

Untuk menguji autokorelasi dapat menggunakan uji Runs Test maupun Durbin-Watson Test. Pada kesempatan ini, uji yang akan digunakan adalah Durbin-Watson test. Library yg digunakan adalah “lmtest”.

dwtest(Model.tr)
## 
##  Durbin-Watson test
## 
## data:  Model.tr
## DW = 1.8467, p-value = 0.2539
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan uji Durbin-Watsonn diperoleh p-value = 0.2539 > alpha(0.05) yang menunjukkan bahwa tidak cukup bukti untuk mengatakan bahwa antarsisaan tidak saling bebas satu dengan lainnya, atau dengan kata lain tidak ada autokorelasi tingkat kepercayaan 95%. Metode cochran-orcutt terbukti dapat menangani kendala autokorelasi dalam kasus ini. Bahkan berhasil menangani asumsi-asumsi lainnya yang sebelumnya tidak terpenuhi. Sehingga, kini kita memiliki model regresi baru dengan persamaan :

cat("IPM Sumut* = ", coef(Model.tr)[1], " + ", coef(Model.tr)[2],"Periode*", sep = "")
## IPM Sumut* = -70.23683 + 0.3066682Periode*

Transformasi Balik :

cat("IPM Sumut = ", coef(Model.tr)[1]/(1-0.8714765), " + ", coef(Model.tr)[2]," Periode", sep = "")
## IPM Sumut = -546.4902 + 0.3066682 Periode

2) Hildreth-Lu

Prosedur Hildreth-Lu digunakan untuk mengestimasi autokorelasi gangguan dan koefisien secara simultan dengan memberikan estimasi parameter yang lebih efisien dan estimasi standar error yang konsisten. Prosedur ini nantikan akan menghasilkan rho yang menyebabkan jumlah kuadrat kesalahan (SSE) terkecil.

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, DataP3_Reg))}))
round(tab, 4)
##     rho    SSE
## 1  0.10 0.4691
## 2  0.20 0.4337
## 3  0.30 0.4031
## 4  0.40 0.3772
## 5  0.50 0.3560
## 6  0.60 0.3396
## 7  0.70 0.3280
## 8  0.80 0.3210
## 9  0.90 0.3189
## 10 0.91 0.3189
## 11 0.92 0.3190
## 12 0.93 0.3191
## 13 0.94 0.3193
## 14 0.95 0.3195
## 15 0.96 0.3198
## 16 0.97 0.3202
## 17 0.98 0.3205
## 18 0.99 0.3209
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty= 3)

Berdasarkan tabel dan grafik diatas, rho yang menghasilkan SSE terkecil berada pada rentang 0.9 hingga 1. Dari rentang tersebut dilakukan kembali prosedur diatas hingga ditemukan titik dimana rho meminimalkan SSE.

r <- seq(0.8,1, by= 0.001)
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, DataP3_Reg))}))
round(tab, 4)
##       rho    SSE
## 1   0.800 0.3210
## 2   0.801 0.3210
## 3   0.802 0.3210
## 4   0.803 0.3209
## 5   0.804 0.3209
## 6   0.805 0.3208
## 7   0.806 0.3208
## 8   0.807 0.3207
## 9   0.808 0.3207
## 10  0.809 0.3206
## 11  0.810 0.3206
## 12  0.811 0.3206
## 13  0.812 0.3205
## 14  0.813 0.3205
## 15  0.814 0.3204
## 16  0.815 0.3204
## 17  0.816 0.3204
## 18  0.817 0.3203
## 19  0.818 0.3203
## 20  0.819 0.3203
## 21  0.820 0.3202
## 22  0.821 0.3202
## 23  0.822 0.3202
## 24  0.823 0.3201
## 25  0.824 0.3201
## 26  0.825 0.3201
## 27  0.826 0.3200
## 28  0.827 0.3200
## 29  0.828 0.3200
## 30  0.829 0.3199
## 31  0.830 0.3199
## 32  0.831 0.3199
## 33  0.832 0.3198
## 34  0.833 0.3198
## 35  0.834 0.3198
## 36  0.835 0.3197
## 37  0.836 0.3197
## 38  0.837 0.3197
## 39  0.838 0.3197
## 40  0.839 0.3196
## 41  0.840 0.3196
## 42  0.841 0.3196
## 43  0.842 0.3195
## 44  0.843 0.3195
## 45  0.844 0.3195
## 46  0.845 0.3195
## 47  0.846 0.3194
## 48  0.847 0.3194
## 49  0.848 0.3194
## 50  0.849 0.3194
## 51  0.850 0.3194
## 52  0.851 0.3193
## 53  0.852 0.3193
## 54  0.853 0.3193
## 55  0.854 0.3193
## 56  0.855 0.3193
## 57  0.856 0.3192
## 58  0.857 0.3192
## 59  0.858 0.3192
## 60  0.859 0.3192
## 61  0.860 0.3192
## 62  0.861 0.3191
## 63  0.862 0.3191
## 64  0.863 0.3191
## 65  0.864 0.3191
## 66  0.865 0.3191
## 67  0.866 0.3191
## 68  0.867 0.3191
## 69  0.868 0.3190
## 70  0.869 0.3190
## 71  0.870 0.3190
## 72  0.871 0.3190
## 73  0.872 0.3190
## 74  0.873 0.3190
## 75  0.874 0.3190
## 76  0.875 0.3190
## 77  0.876 0.3189
## 78  0.877 0.3189
## 79  0.878 0.3189
## 80  0.879 0.3189
## 81  0.880 0.3189
## 82  0.881 0.3189
## 83  0.882 0.3189
## 84  0.883 0.3189
## 85  0.884 0.3189
## 86  0.885 0.3189
## 87  0.886 0.3189
## 88  0.887 0.3189
## 89  0.888 0.3189
## 90  0.889 0.3189
## 91  0.890 0.3189
## 92  0.891 0.3189
## 93  0.892 0.3189
## 94  0.893 0.3189
## 95  0.894 0.3189
## 96  0.895 0.3189
## 97  0.896 0.3189
## 98  0.897 0.3189
## 99  0.898 0.3189
## 100 0.899 0.3189
## 101 0.900 0.3189
## 102 0.901 0.3189
## 103 0.902 0.3189
## 104 0.903 0.3189
## 105 0.904 0.3189
## 106 0.905 0.3189
## 107 0.906 0.3189
## 108 0.907 0.3189
## 109 0.908 0.3189
## 110 0.909 0.3189
## 111 0.910 0.3189
## 112 0.911 0.3189
## 113 0.912 0.3189
## 114 0.913 0.3189
## 115 0.914 0.3189
## 116 0.915 0.3189
## 117 0.916 0.3189
## 118 0.917 0.3190
## 119 0.918 0.3190
## 120 0.919 0.3190
## 121 0.920 0.3190
## 122 0.921 0.3190
## 123 0.922 0.3190
## 124 0.923 0.3190
## 125 0.924 0.3190
## 126 0.925 0.3191
## 127 0.926 0.3191
## 128 0.927 0.3191
## 129 0.928 0.3191
## 130 0.929 0.3191
## 131 0.930 0.3191
## 132 0.931 0.3191
## 133 0.932 0.3192
## 134 0.933 0.3192
## 135 0.934 0.3192
## 136 0.935 0.3192
## 137 0.936 0.3192
## 138 0.937 0.3193
## 139 0.938 0.3193
## 140 0.939 0.3193
## 141 0.940 0.3193
## 142 0.941 0.3193
## 143 0.942 0.3194
## 144 0.943 0.3194
## 145 0.944 0.3194
## 146 0.945 0.3194
## 147 0.946 0.3194
## 148 0.947 0.3195
## 149 0.948 0.3195
## 150 0.949 0.3195
## 151 0.950 0.3195
## 152 0.951 0.3196
## 153 0.952 0.3196
## 154 0.953 0.3196
## 155 0.954 0.3197
## 156 0.955 0.3197
## 157 0.956 0.3197
## 158 0.957 0.3197
## 159 0.958 0.3198
## 160 0.959 0.3198
## 161 0.960 0.3198
## 162 0.961 0.3199
## 163 0.962 0.3199
## 164 0.963 0.3199
## 165 0.964 0.3199
## 166 0.965 0.3200
## 167 0.966 0.3200
## 168 0.967 0.3200
## 169 0.968 0.3201
## 170 0.969 0.3201
## 171 0.970 0.3202
## 172 0.971 0.3202
## 173 0.972 0.3202
## 174 0.973 0.3203
## 175 0.974 0.3203
## 176 0.975 0.3203
## 177 0.976 0.3204
## 178 0.977 0.3204
## 179 0.978 0.3204
## 180 0.979 0.3205
## 181 0.980 0.3205
## 182 0.981 0.3206
## 183 0.982 0.3206
## 184 0.983 0.3206
## 185 0.984 0.3207
## 186 0.985 0.3207
## 187 0.986 0.3208
## 188 0.987 0.3208
## 189 0.988 0.3209
## 190 0.989 0.3209
## 191 0.990 0.3209
## 192 0.991 0.3210
## 193 0.992 0.3210
## 194 0.993 0.3211
## 195 0.994 0.3211
## 196 0.995 0.3212
## 197 0.996 0.3212
## 198 0.997 0.3213
## 199 0.998 0.3213
## 200 0.999 0.3214
## 201 1.000 0.4259
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Berdasarkan tabel dan grafik diatas, rho yang menghasilkan SSE terkecil berada pada rentang 0.87 hingga 0.90.

r <- seq(0.87,0.90, by= 0.0001)
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, DataP3_Reg))}))
round(tab, 4)
##        rho    SSE
## 1   0.8700 0.3190
## 2   0.8701 0.3190
## 3   0.8702 0.3190
## 4   0.8703 0.3190
## 5   0.8704 0.3190
## 6   0.8705 0.3190
## 7   0.8706 0.3190
## 8   0.8707 0.3190
## 9   0.8708 0.3190
## 10  0.8709 0.3190
## 11  0.8710 0.3190
## 12  0.8711 0.3190
## 13  0.8712 0.3190
## 14  0.8713 0.3190
## 15  0.8714 0.3190
## 16  0.8715 0.3190
## 17  0.8716 0.3190
## 18  0.8717 0.3190
## 19  0.8718 0.3190
## 20  0.8719 0.3190
## 21  0.8720 0.3190
## 22  0.8721 0.3190
## 23  0.8722 0.3190
## 24  0.8723 0.3190
## 25  0.8724 0.3190
## 26  0.8725 0.3190
## 27  0.8726 0.3190
## 28  0.8727 0.3190
## 29  0.8728 0.3190
## 30  0.8729 0.3190
## 31  0.8730 0.3190
## 32  0.8731 0.3190
## 33  0.8732 0.3190
## 34  0.8733 0.3190
## 35  0.8734 0.3190
## 36  0.8735 0.3190
## 37  0.8736 0.3190
## 38  0.8737 0.3190
## 39  0.8738 0.3190
## 40  0.8739 0.3190
## 41  0.8740 0.3190
## 42  0.8741 0.3190
## 43  0.8742 0.3190
## 44  0.8743 0.3190
## 45  0.8744 0.3190
## 46  0.8745 0.3190
## 47  0.8746 0.3190
## 48  0.8747 0.3190
## 49  0.8748 0.3190
## 50  0.8749 0.3190
## 51  0.8750 0.3190
## 52  0.8751 0.3190
## 53  0.8752 0.3190
## 54  0.8753 0.3190
## 55  0.8754 0.3190
## 56  0.8755 0.3190
## 57  0.8756 0.3190
## 58  0.8757 0.3190
## 59  0.8758 0.3190
## 60  0.8759 0.3190
## 61  0.8760 0.3189
## 62  0.8761 0.3189
## 63  0.8762 0.3189
## 64  0.8763 0.3189
## 65  0.8764 0.3189
## 66  0.8765 0.3189
## 67  0.8766 0.3189
## 68  0.8767 0.3189
## 69  0.8768 0.3189
## 70  0.8769 0.3189
## 71  0.8770 0.3189
## 72  0.8771 0.3189
## 73  0.8772 0.3189
## 74  0.8773 0.3189
## 75  0.8774 0.3189
## 76  0.8775 0.3189
## 77  0.8776 0.3189
## 78  0.8777 0.3189
## 79  0.8778 0.3189
## 80  0.8779 0.3189
## 81  0.8780 0.3189
## 82  0.8781 0.3189
## 83  0.8782 0.3189
## 84  0.8783 0.3189
## 85  0.8784 0.3189
## 86  0.8785 0.3189
## 87  0.8786 0.3189
## 88  0.8787 0.3189
## 89  0.8788 0.3189
## 90  0.8789 0.3189
## 91  0.8790 0.3189
## 92  0.8791 0.3189
## 93  0.8792 0.3189
## 94  0.8793 0.3189
## 95  0.8794 0.3189
## 96  0.8795 0.3189
## 97  0.8796 0.3189
## 98  0.8797 0.3189
## 99  0.8798 0.3189
## 100 0.8799 0.3189
## 101 0.8800 0.3189
## 102 0.8801 0.3189
## 103 0.8802 0.3189
## 104 0.8803 0.3189
## 105 0.8804 0.3189
## 106 0.8805 0.3189
## 107 0.8806 0.3189
## 108 0.8807 0.3189
## 109 0.8808 0.3189
## 110 0.8809 0.3189
## 111 0.8810 0.3189
## 112 0.8811 0.3189
## 113 0.8812 0.3189
## 114 0.8813 0.3189
## 115 0.8814 0.3189
## 116 0.8815 0.3189
## 117 0.8816 0.3189
## 118 0.8817 0.3189
## 119 0.8818 0.3189
## 120 0.8819 0.3189
## 121 0.8820 0.3189
## 122 0.8821 0.3189
## 123 0.8822 0.3189
## 124 0.8823 0.3189
## 125 0.8824 0.3189
## 126 0.8825 0.3189
## 127 0.8826 0.3189
## 128 0.8827 0.3189
## 129 0.8828 0.3189
## 130 0.8829 0.3189
## 131 0.8830 0.3189
## 132 0.8831 0.3189
## 133 0.8832 0.3189
## 134 0.8833 0.3189
## 135 0.8834 0.3189
## 136 0.8835 0.3189
## 137 0.8836 0.3189
## 138 0.8837 0.3189
## 139 0.8838 0.3189
## 140 0.8839 0.3189
## 141 0.8840 0.3189
## 142 0.8841 0.3189
## 143 0.8842 0.3189
## 144 0.8843 0.3189
## 145 0.8844 0.3189
## 146 0.8845 0.3189
## 147 0.8846 0.3189
## 148 0.8847 0.3189
## 149 0.8848 0.3189
## 150 0.8849 0.3189
## 151 0.8850 0.3189
## 152 0.8851 0.3189
## 153 0.8852 0.3189
## 154 0.8853 0.3189
## 155 0.8854 0.3189
## 156 0.8855 0.3189
## 157 0.8856 0.3189
## 158 0.8857 0.3189
## 159 0.8858 0.3189
## 160 0.8859 0.3189
## 161 0.8860 0.3189
## 162 0.8861 0.3189
## 163 0.8862 0.3189
## 164 0.8863 0.3189
## 165 0.8864 0.3189
## 166 0.8865 0.3189
## 167 0.8866 0.3189
## 168 0.8867 0.3189
## 169 0.8868 0.3189
## 170 0.8869 0.3189
## 171 0.8870 0.3189
## 172 0.8871 0.3189
## 173 0.8872 0.3189
## 174 0.8873 0.3189
## 175 0.8874 0.3189
## 176 0.8875 0.3189
## 177 0.8876 0.3189
## 178 0.8877 0.3189
## 179 0.8878 0.3189
## 180 0.8879 0.3189
## 181 0.8880 0.3189
## 182 0.8881 0.3189
## 183 0.8882 0.3189
## 184 0.8883 0.3189
## 185 0.8884 0.3189
## 186 0.8885 0.3189
## 187 0.8886 0.3189
## 188 0.8887 0.3189
## 189 0.8888 0.3189
## 190 0.8889 0.3189
## 191 0.8890 0.3189
## 192 0.8891 0.3189
## 193 0.8892 0.3189
## 194 0.8893 0.3189
## 195 0.8894 0.3189
## 196 0.8895 0.3189
## 197 0.8896 0.3189
## 198 0.8897 0.3189
## 199 0.8898 0.3189
## 200 0.8899 0.3189
## 201 0.8900 0.3189
## 202 0.8901 0.3189
## 203 0.8902 0.3189
## 204 0.8903 0.3189
## 205 0.8904 0.3189
## 206 0.8905 0.3189
## 207 0.8906 0.3189
## 208 0.8907 0.3189
## 209 0.8908 0.3189
## 210 0.8909 0.3189
## 211 0.8910 0.3189
## 212 0.8911 0.3189
## 213 0.8912 0.3189
## 214 0.8913 0.3189
## 215 0.8914 0.3189
## 216 0.8915 0.3189
## 217 0.8916 0.3189
## 218 0.8917 0.3189
## 219 0.8918 0.3189
## 220 0.8919 0.3189
## 221 0.8920 0.3189
## 222 0.8921 0.3189
## 223 0.8922 0.3189
## 224 0.8923 0.3189
## 225 0.8924 0.3189
## 226 0.8925 0.3189
## 227 0.8926 0.3189
## 228 0.8927 0.3189
## 229 0.8928 0.3189
## 230 0.8929 0.3189
## 231 0.8930 0.3189
## 232 0.8931 0.3189
## 233 0.8932 0.3189
## 234 0.8933 0.3189
## 235 0.8934 0.3189
## 236 0.8935 0.3189
## 237 0.8936 0.3189
## 238 0.8937 0.3189
## 239 0.8938 0.3189
## 240 0.8939 0.3189
## 241 0.8940 0.3189
## 242 0.8941 0.3189
## 243 0.8942 0.3189
## 244 0.8943 0.3189
## 245 0.8944 0.3189
## 246 0.8945 0.3189
## 247 0.8946 0.3189
## 248 0.8947 0.3189
## 249 0.8948 0.3189
## 250 0.8949 0.3189
## 251 0.8950 0.3189
## 252 0.8951 0.3189
## 253 0.8952 0.3189
## 254 0.8953 0.3189
## 255 0.8954 0.3189
## 256 0.8955 0.3189
## 257 0.8956 0.3189
## 258 0.8957 0.3189
## 259 0.8958 0.3189
## 260 0.8959 0.3189
## 261 0.8960 0.3189
## 262 0.8961 0.3189
## 263 0.8962 0.3189
## 264 0.8963 0.3189
## 265 0.8964 0.3189
## 266 0.8965 0.3189
## 267 0.8966 0.3189
## 268 0.8967 0.3189
## 269 0.8968 0.3189
## 270 0.8969 0.3189
## 271 0.8970 0.3189
## 272 0.8971 0.3189
## 273 0.8972 0.3189
## 274 0.8973 0.3189
## 275 0.8974 0.3189
## 276 0.8975 0.3189
## 277 0.8976 0.3189
## 278 0.8977 0.3189
## 279 0.8978 0.3189
## 280 0.8979 0.3189
## 281 0.8980 0.3189
## 282 0.8981 0.3189
## 283 0.8982 0.3189
## 284 0.8983 0.3189
## 285 0.8984 0.3189
## 286 0.8985 0.3189
## 287 0.8986 0.3189
## 288 0.8987 0.3189
## 289 0.8988 0.3189
## 290 0.8989 0.3189
## 291 0.8990 0.3189
## 292 0.8991 0.3189
## 293 0.8992 0.3189
## 294 0.8993 0.3189
## 295 0.8994 0.3189
## 296 0.8995 0.3189
## 297 0.8996 0.3189
## 298 0.8997 0.3189
## 299 0.8998 0.3189
## 300 0.8999 0.3189
## 301 0.9000 0.3189
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Berdasarkan tabel dan grafik diatas, rho yang menghasilkan SSE terkecil berada pada rentang 0.895 hingga 0.897.

r <- seq(0.895,0.897, by= 0.0001)
tab <- data.frame("rho" = r, "SSE" = sapply(r, function(i){deviance(hildreth.lu.func(i, DataP3_Reg))}))
round(tab, 4)
##       rho    SSE
## 1  0.8950 0.3189
## 2  0.8951 0.3189
## 3  0.8952 0.3189
## 4  0.8953 0.3189
## 5  0.8954 0.3189
## 6  0.8955 0.3189
## 7  0.8956 0.3189
## 8  0.8957 0.3189
## 9  0.8958 0.3189
## 10 0.8959 0.3189
## 11 0.8960 0.3189
## 12 0.8961 0.3189
## 13 0.8962 0.3189
## 14 0.8963 0.3189
## 15 0.8964 0.3189
## 16 0.8965 0.3189
## 17 0.8966 0.3189
## 18 0.8967 0.3189
## 19 0.8968 0.3189
## 20 0.8969 0.3189
## 21 0.8970 0.3189
plot(tab$SSE ~ tab$rho , type = "l")
abline(v = tab[tab$SSE==min(tab$SSE),"rho"], lty = 3)

Berdasarkan tabel dan grafik diatas, rho yang menyebabkan SSE terkecil adalah saat rho sama dengan 0.896. Rho ini kemudian dijadikan parameter guna mentransformasi peubah IPM dan Periode.

# Model terbaik
Model.hl <- hildreth.lu.func(0.896, DataP3_Reg)
summary(Model.hl)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.35773 -0.09587 -0.03475  0.08096  0.26965 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -44.8943    36.3347  -1.236    0.248
## x             0.2501     0.1726   1.449    0.181
## 
## Residual standard error: 0.1882 on 9 degrees of freedom
## Multiple R-squared:  0.1893, Adjusted R-squared:  0.09918 
## F-statistic: 2.101 on 1 and 9 DF,  p-value: 0.1811

Kini telah diperoleh model baru hasil trasnformasi dengan rho = 0.896 yang memiliki persamaan :

# Model Terbaik
cat("IPM Sumut* = ", coef(Model.hl)[1], " + ", coef(Model.hl)[2]," Periode*", sep = "")
## IPM Sumut* = -44.89427 + 0.2501259 Periode*

Selanjutnya, periksa pemenuhan asumsi-asumsi klasik pada model yang baru didapatkan.

a. Nilai harapan galat = 0

t.test(Model.hl$residuals,
       mu = 0,
       conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  Model.hl$residuals
## t = -4.6912e-17, df = 10, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -0.1199616  0.1199616
## sample estimates:
##     mean of x 
## -2.525698e-18

Berdasarkan t-test tersebut diperoleh p-value = 1 > alpha(0.05) yang menunjukkan bahwa tidak cukup bukti untuk mengatakan bahwa nilai tengah galat tidak sama dengan 0 pada tingkat kepercayaan 95%. Dengan demikian, asumsi ini terpenuhi.

b. Homoskedastisitas

Untuk menguji Homoskedastisitas dapat menggunakan uji studentized Breusch-Pagan maupun Non-constant Variance Score Test. Pada kesempatan ini, uji yang akan digunakan adalah studentized Breusch-Pagan test.

library(lmtest)
bptest(Model.hl)
## 
##  studentized Breusch-Pagan test
## 
## data:  Model.hl
## BP = 2.9585, df = 1, p-value = 0.08543

Berdasarkan uji studentized Breusch-Pagan diperoleh p-value = 0.08543 > alpha(0.05) yang menunjukkan bahwa tidak cukup bukti untuk mengatakan bahwa residual memiliki gejala heteroskedastisitas pada tingkat kepercayaan 95%.

c. Normalitas Sisaan

Salah satu uji yang dapat digunakan untuk pengujian normalitas sisaan selain t-test adalah shapiro test. Selian itu, Kolmogorov-Smirnov test juga dapat digunakan untuk menguji normalitas suatu sebaran termasuk sisaan.

ks.test(Model.hl$residuals, "pnorm", 
       mean=mean(Model.hl$residuals), 
        sd=sd(Model.hl$residuals))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  Model.hl$residuals
## D = 0.18777, p-value = 0.768
## alternative hypothesis: two-sided

Berdasarkan uji Shapiro-Wil diperoleh p-value = 0.768 > alpha(0.05) yang menunjukkan bahwa tidak cukup bukti untuk mengatakan bahwa sisaan tidak menyebar normal pada tingkat kepercayaan 95%. Dengan demikian, asumsi ini terpenuhi.

d. Autokorelasi

Untuk menguji autokorelasi dapat menggunakan uji Runs Test maupun Durbin-Watson Test. Pada kesempatan ini, uji yang akan digunakan adalah Durbin-Watson test. Library yg digunakan adalah “lmtest”.

dwtest(Model.hl)
## 
##  Durbin-Watson test
## 
## data:  Model.hl
## DW = 1.8879, p-value = 0.278
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan uji Durbin-Watsonn diperoleh p-value = 0.278 < alpha(0.05) yang menunjukkan bahwa tidak cukup bukti untuk mengatakan bahwa antarsisaan tidak saling bebas satu dengan lainnya, atau dengan kata lain tidak ada autokorelasi tingkat kepercayaan 95%. Hal ini menunjukkan bahwa Hildreth Lu dapat menangani autokorelasi pada data ini.

Kesimpulan

Berdasarkan hasil analisis, prosedur cochran-orcutt dan Hildreth Lu pada umumnya dapat digunakan sebagai prosedur penanganan autokorelasi. Dalam penerapannya pada data IPM Sumatera Utara 2010 hingga 2021, data yang awalnya memiliki autokorelasi ini berhasil ditangani dengan menggunakan metode cochran-orcutt dan Hildreth Lu.

Daftar Pustaka

Fathurahman M. 2012. Metode Cochrane-Orcutt untuk Mengatasi Autokorelasipada Regresi Ordinary Least Squares. Jurnal EKSPONENSIAL. 3(1): 34

Setiawan MB. Hakim A. Indeks Pembangunan Manusia Indonesia. Jurnal Economia. 9(1): 18-19