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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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*
cat("IPM Sumut = ", coef(Model.tr)[1]/(1-0.8714765), " + ", coef(Model.tr)[2]," Periode", sep = "")
## IPM Sumut = -546.4902 + 0.3066682 Periode
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.
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.
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%.
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.
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.
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.
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