Pembangunan manusia merupakan salah satu indikator penting untuk menilai kualitas hidup masyarakat, dan Indeks Pembangunan Manusia (IPM) menjadi ukuran utama dalam menggambarkan pencapaian pembangunan tersebut. Di Jawa Tengah, variasi IPM antar kabupaten/kota masih tampak nyata, dipengaruhi oleh sejumlah faktor yang saling berkaitan. Penelitian ini bertujuan untuk menganalisis hubungan antara pengeluaran per kapita, rata-rata lama sekolah, dan usia harapan hidup saat lahir terhadap IPM kabupaten/kota di Jawa Tengah tahun 2024. Dengan memahami kontribusi masing-masing variabel, hasil penelitian ini diharapkan dapat memberikan gambaran empiris yang berguna sebagai dasar perumusan kebijakan untuk meningkatkan kualitas pembangunan manusia di daerah tersebut.
Pada tahap ini dilakukan proses pengumpulan data yang terdiri dari variabel dependen IPM (Y) serta tiga variabel independen yaitu Pengeluaran per Kapita (X1), Rata-Rata Lama Sekolah (X2), dan Usia Harapan Hidup saat Lahir (X3). Data diperoleh untuk seluruh kabupaten/kota di Provinsi Jawa Tengah tahun 2024 dan diinput ke dalam R untuk dianalisis lebih lanjut.
# Input data
# Input nama kab/kota
Kab_Kota <- c(
"Kabupaten Cilacap","Kabupaten Banyumas","Kabupaten Purbalingga","Kabupaten Banjarnegara",
"Kabupaten Kebumen","Kabupaten Purworejo","Kabupaten Wonosobo","Kabupaten Magelang",
"Kabupaten Boyolali","Kabupaten Klaten","Kabupaten Sukoharjo","Kabupaten Wonogiri",
"Kabupaten Karanganyar","Kabupaten Sragen","Kabupaten Grobogan","Kabupaten Blora",
"Kabupaten Rembang","Kabupaten Pati","Kabupaten Kudus","Kabupaten Jepara",
"Kabupaten Demak","Kabupaten Semarang","Kabupaten Temanggung","Kabupaten Kendal",
"Kabupaten Batang","Kabupaten Pekalongan","Kabupaten Pemalang","Kabupaten Tegal",
"Kabupaten Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang",
"Kota Pekalongan","Kota Tegal"
)
# Input variabel
Y <- c(72.38,74.52,70.69,69.6,71.93,75.11,69.82,71.99,75.96,78.16,79.3,72.55,
78.11,75.53,72.02,71.39,72.53,74.1,77.22,74.32,74.57,75.67,71.87,74.34,
70.74,71.84,68.55,70.77,68.46,82.15,84.4,85.72,85.25,77.22,77.43)
X1 <- c(11868,12960,11343,10595,10176,11584,11980,10926,14195,13513,12758,10634,
12732,13890,11548,10926,11830,11829,12533,11729,11591,13377,10519,13277,
10919,11701,10017,10972,11389,13619,16291,17096,16990,14547,14358)
X2 <- c(7.4,7.91,7.36,6.87,7.87,8.65,6.9,7.83,8.17,9.29,10.01,7.68,9.26,7.88,7.29,
7.26,7.73,7.82,9.35,8.27,8.28,8.16,7.53,7.74,7.08,7.48,6.56,7.36,6.41,11.43,
11.25,11.48,11.05,9.34,9.28)
X3 <- c(74.57,74.34,73.56,74.66,73.96,75.51,72.4,74.45,76.44,77.3,78.01,76.84,77.91,
76.18,75.24,74.84,74.97,76.56,77.08,76.21,75.79,76.14,75.95,74.73,75.03,74,
73.99,72.16,70.29,77.53,77.9,78.26,78.24,74.8,74.87)
# Membuat Data Frame
data_jateng <- data.frame(Kab_Kota, X1, X2, X3, Y)
Eksplorasi data awal dilakukan untuk memahami karakteristik dasar dari setiap variabel sebelum masuk ke tahap pemodelan regresi. Tahapan ini mencakup pemeriksaan statistik deskriptif, pola hubungan antara variabel dependen dan variabel independen melalui scatterplot, serta analisis korelasi untuk melihat tingkat keeratan hubungan antar-variabel. Melalui eksplorasi ini dapat diketahui apakah data menunjukkan kecenderungan linear, adanya outlier, serta potensi multikolinearitas yang dapat memengaruhi hasil analisis regresi pada tahap berikutnya.
library(ggplot2)
library(GGally)
summary(data_jateng)
## Kab_Kota X1 X2 X3
## Length:35 Min. :10017 Min. : 6.410 Min. :70.29
## Class :character 1st Qu.:11158 1st Qu.: 7.380 1st Qu.:74.51
## Mode :character Median :11830 Median : 7.870 Median :75.24
## Mean :12463 Mean : 8.321 Mean :75.45
## 3rd Qu.:13445 3rd Qu.: 9.270 3rd Qu.:76.70
## Max. :17096 Max. :11.480 Max. :78.26
## Y
## Min. :68.46
## 1st Qu.:71.86
## Median :74.32
## Mean :74.75
## 3rd Qu.:77.22
## Max. :85.72
par(mfrow=c(2,2))
# y vs x1
plot(data_jateng$X1, data_jateng$Y,
main="Scatterplot Y vs X1",
xlab="Pengeluaran per Kapita", ylab="IPM (y)",
pch=19, col="pink")
abline(lm(Y ~ X1, data=data_jateng), col="purple", lwd=2)
# y vs x2
plot(data_jateng$X2, data_jateng$Y,
main="Scatterplot Y vs X2",
xlab="Rata-Rata Lama Sekolah", ylab="IPM (y)",
pch=19, col="pink")
abline(lm(Y ~ X2, data=data_jateng), col="purple", lwd=2)
# y vs x3
plot(data_jateng$X3, data_jateng$Y,
main="Scatterplot Y vs X3",
xlab="Usia Harapan Hidup Saat Lahir", ylab="IPM(y)",
pch=19, col="pink")
abline(lm(Y ~ X3, data=data_jateng), col="purple", lwd=2)
# Matriks korelasi (Pearson)
cor_matrix <- cor(data_jateng[, c("Y", "X1", "X2", "X3")])
cor_matrix
## Y X1 X2 X3
## Y 1.0000000 0.8906717 0.9749305 0.8003405
## X1 0.8906717 1.0000000 0.8090262 0.5611130
## X2 0.9749305 0.8090262 1.0000000 0.7636315
## X3 0.8003405 0.5611130 0.7636315 1.0000000
Berdasarkan matriks korelasi dan scatterplot, terlihat bahwa seluruh
variabel bebas memiliki hubungan positif dan kuat dengan IPM (Y).
Pengeluaran per kapita (X1) memiliki korelasi 0,89 dengan IPM,
menunjukkan hubungan sangat kuat dan searah. Rata-rata lama sekolah (X2)
bahkan memiliki korelasi paling tinggi yaitu 0,97, menandakan bahwa
peningkatan pendidikan sangat berasosiasi dengan peningkatan IPM. Usia
harapan hidup (X3) juga memiliki korelasi kuat dengan IPM sebesar 0,80,
sehingga tetap memberi kontribusi penting dalam variasi IPM. Secara
keseluruhan, baik scatterplot maupun korelasi menunjukkan bahwa X1, X2,
dan X3 semuanya memiliki hubungan positif yang kuat dengan IPM, dengan
X2 sebagai variabel yang hubungan linearitasnya paling dominan.
Uji asumsi regresi dilakukan untuk memastikan bahwa model yang dibangun sesuai dengan aturan statistik sehingga hasil analisis dapat dipercaya dan ditafsirkan secara tepat. Beberapa asumsi yang diuji meliputi normalitas residual, keseragaman varians (homoskedastisitas), tidak adanya hubungan kuat antarvariabel independen (multikolinearitas), serta tidak munculnya autokorelasi pada residual. Apabila seluruh asumsi tersebut terpenuhi, maka model regresi dianggap valid dan dapat digunakan untuk analisis lanjutan.
model <- lm(Y ~ X1 + X2 + X3, data = data_jateng)
model
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data_jateng)
##
## Coefficients:
## (Intercept) X1 X2 X3
## 1.590e+01 8.029e-04 1.887e+00 4.392e-01
# 1) Normalitas residual: Shapiro-Wilk dan QQ-plot
shapiro <- shapiro.test(residuals(model))
shapiro
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.97651, p-value = 0.6437
qqnorm(residuals(model)); qqline(residuals(model))
# 2) Homokedastisitas: Breusch-Pagan test
bptest_result <- lmtest::bptest(model)
bptest_result
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 9.9424, df = 3, p-value = 0.01906
# 3) Multikolinearitas: VIF
vif_values <- car::vif(model)
vif_values
## X1 X2 X3
## 2.960606 4.865981 2.453590
# 4) Autokorelasi: Durbin-Watson test
dw <- lmtest::dwtest(model)
dw
##
## Durbin-Watson test
##
## data: model
## DW = 2.115, p-value = 0.5472
## alternative hypothesis: true autocorrelation is greater than 0
Hasil diagnostik menunjukkan bahwa model regresi memenuhi sebagian besar asumsi klasik. Uji Shapiro-Wilk menghasilkan p-value 0.6437 yang menandakan residual berdistribusi normal, dan uji Durbin-Watson menunjukkan tidak adanya autokorelasi. VIF berada di bawah 10, sehingga multikolinearitas tidak menjadi masalah serius. Namun, uji Breusch-Pagan menghasilkan p-value 0.01906 yang mengindikasikan adanya heterokedastisitas. Meskipun demikian, model tetap menunjukkan performa yang sangat baik, ditunjukkan oleh nilai Adjusted R² sebesar 0.9929, serta seluruh variabel X1, X2, dan X3 signifikan dalam menjelaskan variasi IPM.
Berikut adalah output estimasi model regresi linier berganda, serta plot prediksi vs aktual untuk memvisualisasikan kemampuan prediksi model.
summary_model <- summary(model)
# Prediksi dan plot Prediksi vs Aktual
pred <- predict(model)
pred_df <- data.frame(aktual = data_jateng$Y, prediksi = pred, resid = residuals(model))
library(ggrepel)
ggplot(pred_df, aes(x = aktual, y = prediksi)) +
geom_point() +
geom_abline(intercept = 0, slope = 1, linetype = "dashed") +
geom_text_repel(aes(label = seq_along(aktual)), size = 3) +
labs(title = "Plot Prediksi vs Aktual", x = "Aktual (Y)", y = "Prediksi (Yhat)") +
theme_minimal()
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
# Tabel koefisien dengan p-value
knitr::kable(broom::tidy(model), digits = 4, caption = "Koefisien Estimasi Model")
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 15.9032 | 3.8129 | 4.1709 | 2e-04 |
| X1 | 0.0008 | 0.0001 | 12.9997 | 0e+00 |
| X2 | 1.8874 | 0.1047 | 18.0321 | 0e+00 |
| X3 | 0.4392 | 0.0560 | 7.8423 | 0e+00 |
Plot prediksi vs aktual menunjukkan bahwa titik-titik data berada sangat dekat dengan garis diagonal, yang berarti nilai prediksi model regresi hampir sama dengan nilai aktual IPM sehingga model memiliki akurasi yang sangat baik. Hasil ini konsisten dengan estimasi koefisien, di mana ketiga variabel independen memiliki koefisien positif dan p-value yang jauh lebih kecil dari 0.05, menandakan pengaruh yang signifikan terhadap IPM. Koefisien tersebut juga memperlihatkan bahwa peningkatan pada Pengeluaran per Kapita, Rata-Rata Lama Sekolah, dan Usia Harapan Hidup berkontribusi pada peningkatan IPM. Secara keseluruhan, baik plot prediksi maupun koefisien estimasi menunjukkan bahwa model regresi mampu menjelaskan variabilitas IPM secara akurat dan bahwa seluruh variabel dalam model memberikan pengaruh yang berarti.
Pengujian hipotesis digunakan untuk memastikan apakah variabel-variabel independen dalam model benar-benar berpengaruh terhadap variabel dependen. Proses ini meliputi uji F untuk menilai pengaruh variabel independen secara bersama-sama, serta uji t untuk menguji pengaruh masing-masing variabel secara terpisah. Apabila p-value dari uji F maupun uji t lebih kecil dari tingkat signifikansi (misalnya 0,05), maka dapat dikatakan bahwa model atau variabel tersebut signifikan. Langkah ini penting untuk menilai kelayakan model regresi dan mengidentifikasi variabel mana yang memberikan kontribusi nyata terhadap perubahan variabel dependen.
# Uji F (ANOVA)
anova_model <- anova(model)
anova_model
## Analysis of Variance Table
##
## Response: Y
## Df Sum Sq Mean Sq F value Pr(>F)
## X1 1 546.65 546.65 3775.025 < 2.2e-16 ***
## X2 1 129.04 129.04 891.132 < 2.2e-16 ***
## X3 1 8.91 8.91 61.501 7.513e-09 ***
## Residuals 31 4.49 0.14
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Alternatif: uji F melalui summary (F-statistic)
summary_model$fstatistic
## value numdf dendf
## 1575.886 3.000 31.000
# Uji parsial: t-test sudah tersedia pada summary(model) -> lihat koefisien
# Untuk uji kontribusi parsial variabel, dapat juga dilakukan drop1 (partial F)
partial_drop <- drop1(model, test = "F")
partial_drop
## Single term deletions
##
## Model:
## Y ~ X1 + X2 + X3
## Df Sum of Sq RSS AIC F value Pr(>F)
## <none> 4.489 -63.880
## X1 1 24.471 28.960 -0.630 168.993 4.338e-14 ***
## X2 1 47.085 51.574 19.568 325.157 < 2.2e-16 ***
## X3 1 8.906 13.395 -27.617 61.501 7.513e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Berdasarkan output regresi, hasil uji F menunjukkan bahwa model regresi berganda secara keseluruhan signifikan dengan nilai F sebesar 1575,886 dan p-value kurang dari 0,001, sehingga variabel X1, X2, dan X3 secara bersama-sama berpengaruh terhadap Y. Uji t pada masing-masing koefisien juga menunjukkan bahwa ketiga variabel independen tersebut signifikan secara parsial karena semua memiliki p-value yang jauh lebih kecil dari 0,05. Hasil ini diperkuat oleh uji partial F melalui fungsi drop1 yang menunjukkan bahwa penghapusan salah satu variabel menyebabkan peningkatan RSS yang signifikan sehingga setiap variabel tetap memberikan kontribusi penting dalam model. Dengan demikian, baik secara simultan maupun parsial, variabel X1, X2, dan X3 berpengaruh signifikan terhadap Y.
Evaluasi model dilakukan untuk mengetahui sejauh mana model regresi mampu menjelaskan variasi pada variabel dependen. Proses ini umumnya mencakup pemeriksaan nilai koefisien determinasi, yaitu R² dan Adjusted R², untuk melihat persentase keragaman data yang berhasil diterangkan oleh model, serta penggunaan RMSE atau ukuran galat lainnya guna menilai ketepatan prediksi yang dihasilkan. Selain itu, plot residual dan grafik diagnostik lain diperiksa untuk memastikan tidak terdapat pola tersisa pada residual yang dapat mengindikasikan masalah pada model. Tahap evaluasi ini penting agar model yang digunakan tidak hanya signifikan secara statistik, tetapi juga memiliki tingkat ketelitian dan keandalan yang baik dalam menggambarkan hubungan antarvariabel.
# Goodness of fit
r2 <- summary_model$r.squared
adjr2 <- summary_model$adj.r.squared
rmse <- sqrt(mean(residuals(model)^2))
cat(sprintf("R-squared: %.4f
Adjusted R-squared: %.4f
RMSE: %.4f
", r2, adjr2, rmse))
## R-squared: 0.9935
## Adjusted R-squared: 0.9929
## RMSE: 0.3581
## plot regresi
par(mfcol = c(2,2))
plot(model)
# Ringkasan evaluasi model
data.frame(Metric = c("R-squared","Adjusted R-squared","RMSE"), Value = c(r2, adjr2, rmse))
## Metric Value
## 1 R-squared 0.9934856
## 2 Adjusted R-squared 0.9928551
## 3 RMSE 0.3581297
Berdasarkan hasil evaluasi model, nilai R-squared sebesar 0,9935 dan Adjusted R-squared sebesar 0,9929 menunjukkan bahwa model regresi mampu menjelaskan lebih dari 99 persen variasi pada variabel dependen, sehingga model memiliki kemampuan penjelasan yang sangat kuat. Nilai RMSE sebesar 0,358 menandakan bahwa kesalahan prediksi rata-rata model relatif kecil, sehingga prediksi yang dihasilkan cukup akurat. Plot diagnostik juga memberikan indikasi bahwa asumsi regresi sebagian besar terpenuhi. Plot Residuals vs Fitted tidak menunjukkan pola tertentu yang jelas sehingga mengindikasikan linearitas terpenuhi, meskipun terdapat sedikit penyebaran yang tidak sepenuhnya seragam. Plot Scale-Location memperlihatkan pola yang relatif datar, menandakan bahwa asumsi homogenitas varians cukup terpenuhi. Namun, Q-Q plot menunjukkan adanya penyimpangan pada beberapa titik ekstrem yang mengindikasikan sedikit ketidaknormalan residual. Sementara itu, plot Residuals vs Leverage menunjukkan beberapa titik yang memiliki leverage lebih tinggi, tetapi tidak ada yang tampak melewati batas Cook’s distance secara berlebihan. Secara keseluruhan, model memiliki kinerja yang sangat baik dengan kesalahan prediksi rendah dan kemampuan penjelasan yang sangat tinggi, serta tidak menunjukkan pelanggaran asumsi yang serius.
Hasil analisis menunjukkan bahwa ketiga variabel independen, yaitu Pengeluaran per Kapita, Rata-Rata Lama Sekolah, dan Usia Harapan Hidup saat Lahir, memiliki hubungan positif dan signifikan terhadap Indeks Pembangunan Manusia (IPM) kabupaten/kota di Jawa Tengah tahun 2024. Model regresi yang dihasilkan memiliki kemampuan prediksi yang sangat baik dengan nilai Adjusted R² sebesar 0,9929, yang berarti sebagian besar variasi IPM dapat dijelaskan oleh ketiga variabel tersebut. Selain itu, hasil eksplorasi data dan uji asumsi menunjukkan bahwa model telah memenuhi sebagian besar asumsi klasik regresi, sehingga estimasi yang diperoleh dapat dianggap stabil dan reliabel.
Secara parsial, ketiga variabel terbukti signifikan berdasarkan uji t, dengan variabel Rata-Rata Lama Sekolah memberikan pengaruh paling dominan terhadap IPM, diikuti oleh Pengeluaran per Kapita dan Usia Harapan Hidup. Hasil uji F juga menegaskan bahwa ketiga variabel secara simultan berpengaruh signifikan terhadap IPM. Temuan ini mengindikasikan bahwa peningkatan kualitas pendidikan, kesejahteraan ekonomi, serta kesehatan masyarakat merupakan faktor kunci dalam mendorong peningkatan IPM di Jawa Tengah. Dengan demikian, upaya pembangunan di tingkat daerah perlu menempatkan ketiga aspek tersebut sebagai prioritas kebijakan untuk mencapai pembangunan manusia yang lebih merata dan berkelanjutan.