Dosen Pengampu: Dr. Pepi Novianti, S.Si., M.Si.; Riwi Dyah Pangesti, S.Si., M.Si.; Susi Wijuniamurti, S.Si., M.Stat.; Wina Ayu Lestari, S.Si., M.Stat.
Asisten Praktikum: Mustika Surya Ningsih (F1F024018); Khalisha Qori Shofa (F1F024048); Rameza Elia (F1F024056); Carolin Veronika (F1F024060)
Data mentah perlu diolah dengan metode analisis yang tepat agar menjadi informasi yang bermakna. Salah satu metode yang paling sering digunakan adalah analisis regresi, yaitu metode untuk mengetahui dan mengukur pola hubungan antara sebuah variabel dependen dengan satu atau lebih variabel independen (Prasmono & Ahdika, 2023). Berdasarkan banyaknya variabel independen, regresi linier dibedakan menjadi regresi linier sederhana dan regresi linier berganda (Kartiningrum dkk., 2022).
Parameter model regresi umumnya diestimasi dengan Metode Kuadrat Terkecil (MKT) yang meminimumkan jumlah kuadrat galat. Agar penduga yang diperoleh bersifat Best Linear Unbiased Estimator (BLUE), beberapa asumsi klasik harus terpenuhi, yaitu linieritas, tidak ada multikolinieritas, tidak ada heteroskedastisitas, tidak ada autokorelasi, dan galat berdistribusi normal (Sabrina dkk., 2023). Setelah model terbentuk, signifikansi parameter diuji secara simultan dengan Uji F dan secara parsial dengan Uji t (Rini, 2026).
Selain asumsi klasik, kualitas model juga dipengaruhi oleh keberadaan outlier. Outlier dapat membuat distribusi data menjadi tidak normal, menimbulkan bias pada penduga parameter, dan memengaruhi hasil uji signifikansi parameter (Barus, 2023). Oleh karena itu, evaluasi model melalui identifikasi dan pengujian outlier perlu dilakukan (Hakim, 2016).
Laporan ini mengintegrasikan tiga topik praktikum sebelumnya (uji asumsi klasik, pengujian signifikansi parameter, dan deteksi outlier) pada satu kasus, yaitu pemodelan Indeks Pembangunan Manusia (IPM) menurut provinsi di Indonesia menggunakan program R.
Analisis dibatasi pada: (1) data sekunder dengan minimal 35 observasi dan minimal 3 variabel independen yang berpengaruh signifikan; (2) eksplorasi data dan statistik deskriptif; (3) pembentukan dan estimasi model regresi linier berganda; (4) pengujian asumsi klasik; (5) pengujian hipotesis melalui Uji F dan Uji t; serta (6) evaluasi model melalui identifikasi dan pengujian outlier menggunakan Influence Plot dan Uji Bonferroni. Taraf nyata yang digunakan adalah \(\alpha = 5\%\).
| Bab | Isi |
|---|---|
| BAB I Pendahuluan | Latar belakang, rumusan masalah, tujuan, manfaat, batasan masalah, dan sistematika penulisan. |
| BAB II Tinjauan Pustaka | Teori regresi linier berganda, asumsi klasik, uji F dan uji t, serta outlier. |
| BAB III Metode Penelitian | Jenis dan sumber data, variabel penelitian, langkah analisis, dan diagram alir. |
| BAB IV Hasil dan Pembahasan | Pemilihan data, eksplorasi, statistik deskriptif, model, asumsi klasik, uji hipotesis, dan evaluasi outlier. |
| BAB V Kesimpulan dan Saran | Kesimpulan dan saran. |
| Daftar Pustaka dan Lampiran | Rujukan, data, dan informasi sesi R. |
Regresi merupakan teknik statistik untuk mengestimasi hubungan antara satu atau lebih variabel independen dengan satu variabel dependen, dengan tujuan memprediksi nilai variabel dependen ketika nilai variabel independen diketahui (Kartiningrum dkk., 2022). Model regresi linier berganda dengan \(k\) variabel independen dituliskan sebagai berikut (Suryono, 2021):
\[Y_i = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i} + \cdots + \beta_k X_{ki} + \varepsilon_i \qquad (2.1)\]
dengan \(Y\) variabel dependen, \(X_1,\dots,X_k\) variabel independen, \(\beta_0,\dots,\beta_k\) parameter regresi, dan \(\varepsilon\) galat acak. Dalam notasi matriks, penduga MKT adalah:
\[\hat{\boldsymbol{\beta}} = (\mathbf{X}^{\top}\mathbf{X})^{-1}\mathbf{X}^{\top}\mathbf{y} \qquad (2.2)\]
Koefisien determinasi \(R^2 = 1 - \dfrac{JKG}{JKT}\) dan \(R^2_{adj} = 1 - (1-R^2)\dfrac{n-1}{n-k-1}\) digunakan untuk menilai kemampuan model menjelaskan keragaman \(Y\).
Berikut ringkasan uji asumsi klasik yang digunakan (Rini, 2026):
Untuk keempat uji berbasis p-value, \(H_0\) ditolak jika \(p\text{-value} \le \alpha\).
Uji simultan (Uji F) menguji apakah model regresi secara keseluruhan dapat diterima, yaitu apakah sedikitnya satu variabel independen berhubungan linier dengan \(Y\) (Rini, 2026).
\[H_0: \beta_1=\beta_2=\cdots=\beta_k=0 \qquad H_1: \text{minimal ada satu } \beta_j \neq 0\]
\[F_{hitung} = \frac{R^2/k}{(1-R^2)/(n-k-1)}\]
\(H_0\) ditolak jika \(F_{hitung} > F_{\alpha;\,k;\,n-k-1}\) atau \(p\text{-value} < \alpha\).
Uji parsial (Uji t) menguji pengaruh tiap variabel independen secara individual (Firmansyah & Tristie, 2021):
\[H_0: \beta_j = 0 \qquad H_1: \beta_j \neq 0 \qquad t_{hitung} = \frac{b_j}{SE(b_j)}\]
\(H_0\) ditolak jika \(|t_{hitung}| > t_{\alpha/2;\,n-k-1}\) (Wahyono, 2021).
Outlier adalah pengamatan yang menyimpang dari pola mayoritas data. Keberadaannya dapat membuat distribusi data tidak normal, menimbulkan bias pada taksiran parameter, dan memengaruhi hasil uji signifikansi (Barus, 2023). Deteksi outlier dan pengamatan berpengaruh dilakukan melalui diagnostika regresi, yaitu statistik per kasus (Hakim, 2016). Pendekatan yang digunakan (Rini, 2026):
a. Outlier pada pengamatan \(Y\) dideteksi dengan studentized deleted residual:
\[t_i = e_i\sqrt{\frac{n-p-1}{SSE\,(1-h_{ii})-e_i^2}} \qquad (2.3)\]
dengan \(p = k+1\) banyaknya parameter. Hipotesisnya: \(H_0\): kasus ke-\(i\) bukan outlier; \(H_1\): kasus ke-\(i\) merupakan outlier.
b. Uji Bonferroni. Karena \(n\) pengamatan diuji sekaligus, peluang salah menyatakan suatu data sebagai outlier membesar. Uji Bonferroni mengoreksi hal ini dengan mengalikan p-value tak terkoreksi dengan \(n\) (\(p_{Bonf} = \min(1,\, n \times p_i)\)). Kasus dinyatakan outlier jika \(p_{Bonf} < \alpha\), atau jika \(|t_i|\) melebihi \(t_{\alpha/(2n);\,n-p-1}\).
c. Outlier pada pengamatan \(X\) (leverage) dideteksi dengan elemen diagonal matriks hat, \(h_{ii}\), yang memenuhi \(0 \le h_{ii} \le 1\) dan \(\sum h_{ii} = p\). Pengamatan dengan \(h_{ii} > 2p/n\) dinyatakan sebagai outlier pengamatan-\(X\).
d. Influence Plot menampilkan studentized residual (sumbu vertikal), hat value (sumbu horizontal), dan Cook’s Distance (ukuran lingkaran) dalam satu grafik untuk menilai pengaruh tiap pengamatan terhadap model.
Data yang digunakan adalah data kuantitatif bertipe rasio dan merupakan data sekunder, yaitu data yang diperoleh secara tidak langsung melalui publikasi resmi Badan Pusat Statistik (BPS) (Badan Pusat Statistik, 2024a, 2024b, 2024c, 2024d). Unit pengamatan adalah 38 provinsi di Indonesia pada tahun 2024.
| Simbol | Variabel | Peran | Satuan |
|---|---|---|---|
| \(Y\) | Indeks Pembangunan Manusia (IPM) | Dependen | indeks |
| \(X_1\) | Harapan Lama Sekolah | Independen | tahun |
| \(X_2\) | Proporsi individu yang menggunakan internet | Independen | persen |
| \(X_3\) | Persentase penduduk yang menggunakan komputer | Independen | persen |
Model yang diestimasi adalah:
\[Y_i = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i} + \beta_3 X_{3i} + \varepsilon_i\]
lm().resettest),
multikolinieritas (vif), heteroskedastisitas
(bptest), normalitas (shapiro.test), dan
autokorelasi (dwtest).influencePlot() dan Uji Bonferroni dengan
outlierTest(). [ Mulai ]
|
[ Pengumpulan & pemilihan data sekunder ]
|
[ Input data & eksplorasi data di R ]
|
[ Statistik deskriptif ]
|
[ Pembentukan & estimasi model regresi (lm) ]
|
[ Uji asumsi klasik: linieritas, VIF, Breusch-Pagan,
Shapiro-Wilk, Durbin-Watson ]
|
[ Uji F (simultan) -> Uji t (parsial) ]
|
[ Evaluasi model: Influence Plot & Uji Bonferroni ]
|
[ Interpretasi & kesimpulan ]
|
[ Selesai ]
Gambar 3.1. Diagram alir penelitian
Data bersumber dari tabel statistik BPS: IPM (metode baru), harapan lama sekolah, proporsi individu yang menggunakan internet, dan persentase penduduk yang menggunakan komputer menurut provinsi. Data dimasukkan ke R sebagai data frame berikut (38 provinsi).
dat <- read.csv(text = "
Provinsi,Y,X1,X2,X3
ACEH,74.03,14.4,35.6,9.37
SUMATERA UTARA,74.02,13.5,41.38,9.95
SUMATERA BARAT,74.49,14.31,41.15,12.83
RIAU,74.79,13.44,44.97,10.3
JAMBI,73.43,13.34,42.68,10.0
SUMATERA SELATAN,72.3,12.65,38.14,8.79
BENGKULU,73.39,13.76,40.72,11.34
LAMPUNG,71.81,12.79,40.17,7.88
KEP. BANGKA BELITUNG,73.33,12.5,45.85,11.21
KEP. RIAU,77.97,13.28,65.02,18.34
DKI JAKARTA,83.08,13.8,73.46,23.47
JAWA BARAT,74.43,13.02,53.94,14.54
JAWA TENGAH,73.88,13.05,47.74,10.1
DI YOGYAKARTA,81.55,15.78,61.73,19.91
JAWA TIMUR,74.09,13.44,47.1,10.92
BANTEN,74.48,13.11,56.25,13.72
BALI,77.76,13.63,54.08,17.25
NUSA TENGGARA BARAT,70.93,13.99,39.16,10.29
NUSA TENGGARA TIMUR,67.39,13.34,26.29,11.13
KALIMANTAN BARAT,70.13,12.69,38.38,8.89
KALIMANTAN TENGAH,72.73,12.78,46.73,10.8
KALIMANTAN SELATAN,73.03,13.12,50.37,11.22
KALIMANTAN TIMUR,78.83,14.04,59.12,15.48
KALIMANTAN UTARA,73.02,13.31,54.3,11.81
SULAWESI UTARA,75.03,12.98,46.73,10.97
SULAWESI TENGAH,71.56,13.35,35.52,10.99
SULAWESI SELATAN,74.05,13.56,43.91,12.97
SULAWESI TENGGARA,73.48,13.72,41.92,12.29
GORONTALO,71.23,13.18,41.78,12.86
SULAWESI BARAT,68.2,12.9,31.26,10.02
MALUKU,71.57,14.1,33.89,11.67
MALUKU UTARA,71.03,13.76,29.13,9.61
PAPUA BARAT,67.02,13.21,43.46,10.09
PAPUA BARAT DAYA,68.63,13.89,0.0,9.71
PAPUA,73.0,13.94,21.7,13.61
PAPUA SELATAN,67.9,12.68,0.0,10.94
PAPUA TENGAH,59.75,9.64,0.0,4.81
PAPUA PEGUNUNGAN,53.42,9.98,0.0,1.16
", stringsAsFactors = FALSE)
dat$Provinsi <- trimws(dat$Provinsi)Ketentuan data adalah minimal 35 observasi, minimal 3 variabel independen, dan seluruh variabel independen signifikan. Berdasarkan tiga set data yang sebelumnya dikerjakan pada praktikum, set data IPM provinsi dipilih dengan pertimbangan berikut.
| Kandidat data | \(n\) | Hasil pada praktikum sebelumnya | Keputusan |
|---|---|---|---|
| Usaha pertanian perorangan (padi, palawija, peternakan, kehutanan) | 38 | Semua variabel signifikan, tetapi \(VIF\) = 37.7 dan 51.3 (multikolinieritas berat), heteroskedastisitas, dan galat tidak normal | Tidak dipilih |
| IPM kabupaten/kota (Aceh dan Sumatera Utara) | 35 | Variabel angka melek huruf (\(X_2\)) tidak signifikan (\(p\) = 0.7638) | Tidak dipilih |
| IPM provinsi, 2024 | 38 | Ketiga variabel independen signifikan (\(p\) < 0.05) | Dipilih |
#> [1] 38 5
#> 'data.frame': 38 obs. of 5 variables:
#> $ Provinsi: chr "ACEH" "SUMATERA UTARA" "SUMATERA BARAT" "RIAU" ...
#> $ Y : num 74 74 74.5 74.8 73.4 ...
#> $ X1 : num 14.4 13.5 14.3 13.4 13.3 ...
#> $ X2 : num 35.6 41.4 41.1 45 42.7 ...
#> $ X3 : num 9.37 9.95 12.83 10.3 10 ...
#> Provinsi Y X1 X2 X3
#> 0 0 0 0 0
Data terdiri dari 38 observasi dan 5
kolom (nama provinsi, \(Y\),
\(X_1\), \(X_2\), \(X_3\)), seluruh variabel numerik berjenis
rasio, dan tidak ada nilai hilang (NA).
par(mfrow = c(1, 4))
boxplot(dat$Y, main = "Y (IPM)", col = "#9ecae1")
boxplot(dat$X1, main = "X1 (HLS)", col = "#a1d99b")
boxplot(dat$X2, main = "X2 (Internet)", col = "#fdd0a2")
boxplot(dat$X3, main = "X3 (Komputer)", col = "#dadaeb")Gambar 4.1. Boxplot masing-masing variabel
pairs(dat[, c("Y", "X1", "X2", "X3")], panel = panel.smooth,
lower.panel = NULL, pch = 19, col = "#3182bd",
main = "Diagram pencar antarvariabel")Gambar 4.2. Diagram pencar antarvariabel
kable(round(cor(dat[, c("Y", "X1", "X2", "X3")]), 4),
caption = "Tabel 4.1. Matriks korelasi antarvariabel")| Y | X1 | X2 | X3 | |
|---|---|---|---|---|
| Y | 1.0000 | 0.7613 | 0.8318 | 0.8503 |
| X1 | 0.7613 | 1.0000 | 0.5029 | 0.6481 |
| X2 | 0.8318 | 0.5029 | 1.0000 | 0.7187 |
| X3 | 0.8503 | 0.6481 | 0.7187 | 1.0000 |
Diagram pencar menunjukkan pola hubungan yang cenderung linier dan searah antara \(Y\) dengan setiap \(X\). Korelasi \(Y\) dengan \(X_1\), \(X_2\), dan \(X_3\) berturut-turut sebesar 0.7613, 0.8318, dan 0.8503, sehingga ketiga variabel independen layak dimasukkan ke dalam model. Korelasi antarvariabel independen tertinggi adalah \(X_2\) dengan \(X_3\) (0.7187), yang tergolong kuat namun perlu dikonfirmasi dengan VIF pada uji multikolinieritas. Pada boxplot terlihat beberapa titik di luar batas, terutama pada \(Y\) (nilai rendah) dan \(X_3\) (nilai tinggi). Titik-titik ini diperiksa lebih lanjut pada evaluasi outlier (Subbab 4.7).
desk <- sapply(dat[, c("Y", "X1", "X2", "X3")], function(v)
c(Min = min(v), Q1 = unname(quantile(v, 0.25)), Median = median(v),
Mean = mean(v), Q3 = unname(quantile(v, 0.75)), Max = max(v), SD = sd(v)))
kable(round(desk, 3), caption = "Tabel 4.2. Statistik deskriptif data")| Y | X1 | X2 | X3 | |
|---|---|---|---|---|
| Min | 53.420 | 9.640 | 0.000 | 1.160 |
| Q1 | 71.080 | 12.990 | 35.540 | 10.005 |
| Median | 73.180 | 13.340 | 41.850 | 10.980 |
| Mean | 72.388 | 13.262 | 39.832 | 11.612 |
| Q3 | 74.345 | 13.760 | 47.580 | 12.852 |
| Max | 83.080 | 15.780 | 73.460 | 23.470 |
| SD | 5.150 | 1.028 | 17.287 | 3.821 |
Berdasarkan Tabel 4.2:
Catatan data. Terdapat 4 provinsi dengan \(X_2 = 0\) (PAPUA BARAT DAYA, PAPUA SELATAN, PAPUA TENGAH, PAPUA PEGUNUNGAN), seluruhnya di wilayah Papua. Nilai nol tersebut kemungkinan mencerminkan data yang belum tersedia pada provinsi-provinsi pemekaran baru, bukan penggunaan internet yang benar-benar nol. Hal ini perlu diverifikasi ke sumber dan menjadi catatan dalam menafsirkan hasil.
#>
#> Call:
#> lm(formula = Y ~ X1 + X2 + X3, data = dat)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -5.0829 -0.6696 0.1228 1.2520 2.5096
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 39.96175 4.34405 9.199 0.0000000000946 ***
#> X1 1.67779 0.37766 4.443 0.0000895909905 ***
#> X2 0.12832 0.02461 5.215 0.0000090268382 ***
#> X3 0.43613 0.12633 3.452 0.00151 **
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Residual standard error: 1.794 on 34 degrees of freedom
#> Multiple R-squared: 0.8884, Adjusted R-squared: 0.8786
#> F-statistic: 90.26 on 3 and 34 DF, p-value: 0.0000000000000002886
koef <- coef(ringkasan)
tab_koef <- data.frame(
Parameter = rownames(koef),
Estimate = round(koef[, 1], 5),
Std.Error = round(koef[, 2], 5),
t.value = round(koef[, 3], 3),
`Pr(>|t|)` = fp(koef[, 4]),
check.names = FALSE, row.names = NULL)
kable(tab_koef, caption = "Tabel 4.3. Koefisien regresi")| Parameter | Estimate | Std.Error | t.value | Pr(>|t|) |
|---|---|---|---|---|
| (Intercept) | 39.96175 | 4.34405 | 9.199 | 9.457e-11 |
| X1 | 1.67779 | 0.37766 | 4.443 | 8.959e-05 |
| X2 | 0.12832 | 0.02461 | 5.215 | 9.027e-06 |
| X3 | 0.43613 | 0.12633 | 3.452 | 0.0015 |
Model regresi linier berganda yang terbentuk:
\[\hat{Y}_i = 39.96175 + 1.67779\,X_{1i} + 0.12832\,X_{2i} + 0.43613\,X_{3i}\]
Interpretasi.
Ketiga koefisien bernilai positif sehingga seluruh variabel independen berhubungan searah dengan IPM. Koefisien determinasi \(R^2\) = 0.8884 dan \(R^2_{adj}\) = 0.8786, artinya sekitar 87.86% keragaman IPM dapat dijelaskan oleh ketiga variabel dalam model, sedangkan sisanya dijelaskan oleh faktor lain di luar model. Residual standard error sebesar 1.794 poin menunjukkan simpangan rata-rata nilai amatan terhadap nilai dugaan.
Taraf nyata \(\alpha = 0.05\) digunakan pada seluruh pengujian.
#>
#> RESET test
#>
#> data: model
#> RESET = 2.0586, df1 = 2, df2 = 32, p-value = 0.1442
par(mfrow = c(1, 2))
plot(fitted(model), resid(model), pch = 19, col = "#3182bd",
xlab = "Nilai dugaan", ylab = "Residual", main = "Residual vs Nilai Dugaan")
abline(h = 0, lty = 2, col = "red")
lines(lowess(fitted(model), resid(model)), col = "darkgreen", lwd = 2)
plot(model, which = 3, pch = 19, col = "#3182bd") # Scale-LocationGambar 4.3. Plot residual terhadap nilai dugaan (kiri) dan plot Scale-Location (kanan)
vif_val <- vif(model)
tab_vif <- data.frame(Variabel = names(vif_val),
VIF = round(vif_val, 4),
Toleransi = round(1 / vif_val, 4), row.names = NULL)
kable(tab_vif, caption = "Tabel 4.4. Hasil uji multikolinieritas (VIF)")| Variabel | VIF | Toleransi |
|---|---|---|
| X1 | 1.7328 | 0.5771 |
| X2 | 2.0788 | 0.4810 |
| X3 | 2.6778 | 0.3734 |
Nilai VIF masing-masing variabel (\(X_1\) = 1.733, \(X_2\) = 2.079, \(X_3\) = 2.678) seluruhnya jauh di bawah 10 dan nilai toleransi jauh di atas 0.1. Dengan demikian tidak terdapat multikolinieritas, sehingga asumsi multikolinieritas terpenuhi. Meskipun korelasi \(X_2\) dan \(X_3\) cukup kuat (0.7187), tingkat keterkaitannya belum mengganggu pendugaan koefisien.
#>
#> studentized Breusch-Pagan test
#>
#> data: model
#> BP = 5.1021, df = 3, p-value = 0.1645
#>
#> Shapiro-Wilk normality test
#>
#> data: resid(model)
#> W = 0.9381, p-value = 0.03636
par(mfrow = c(1, 2))
qqnorm(resid(model), pch = 19, col = "#3182bd", main = "Normal Q-Q Plot Residual")
qqline(resid(model), col = "red", lwd = 2)
hist(resid(model), breaks = 10, col = "#9ecae1", border = "white",
main = "Histogram Residual", xlab = "Residual")Gambar 4.4. Q-Q plot dan histogram residual
#>
#> Durbin-Watson test
#>
#> data: model
#> DW = 1.7964, p-value = 0.1772
#> alternative hypothesis: true autocorrelation is greater than 0
rekap <- data.frame(
Asumsi = c("Linieritas (RESET)", "Multikolinieritas (VIF maksimum)",
"Heteroskedastisitas (Breusch-Pagan)",
"Normalitas galat (Shapiro-Wilk)", "Autokorelasi (Durbin-Watson)"),
Statistik = c(as.numeric(reset$statistic), max(vif_val), as.numeric(bp$statistic),
as.numeric(sw$statistic), as.numeric(dw$statistic)),
`p-value` = c(fp(reset$p.value), "-", fp(bp$p.value), fp(sw$p.value), fp(dw$p.value)),
Keputusan = c(ifelse(reset$p.value > 0.05, "Terpenuhi", "Tidak terpenuhi"),
ifelse(max(vif_val) < 10, "Terpenuhi", "Tidak terpenuhi"),
ifelse(bp$p.value > 0.05, "Terpenuhi", "Tidak terpenuhi"),
ifelse(sw$p.value > 0.05, "Terpenuhi", "Tidak terpenuhi"),
ifelse(dw$p.value > 0.05, "Terpenuhi", "Tidak terpenuhi")),
check.names = FALSE)
rekap$Statistik <- round(rekap$Statistik, 4)
kable(rekap, caption = "Tabel 4.5. Rekapitulasi uji asumsi klasik")| Asumsi | Statistik | p-value | Keputusan |
|---|---|---|---|
| Linieritas (RESET) | 2.0586 | 0.1442 | Terpenuhi |
| Multikolinieritas (VIF maksimum) | 2.6778 | - | Terpenuhi |
| Heteroskedastisitas (Breusch-Pagan) | 5.1021 | 0.1645 | Terpenuhi |
| Normalitas galat (Shapiro-Wilk) | 0.9381 | 0.0364 | Tidak terpenuhi |
| Autokorelasi (Durbin-Watson) | 1.7964 | 0.1772 | Terpenuhi |
Empat dari lima asumsi (linieritas, multikolinieritas, heteroskedastisitas, dan autokorelasi) terpenuhi. Hanya asumsi normalitas galat yang belum terpenuhi pada taraf 5% dengan \(p\)-value yang tidak terlalu jauh dari batas (0.0364). Dengan \(n\) = 38, penyimpangan ringan dari normalitas umumnya tidak banyak memengaruhi pendugaan koefisien, tetapi dapat memengaruhi ketepatan uji \(t\) dan \(F\) sehingga hasil pengujian hipotesis perlu dibaca dengan hati-hati. Pemeriksaan outlier pada Subbab 4.7 dilakukan untuk mengetahui apakah penyebabnya adalah pengamatan tertentu.
n <- nrow(dat); k <- 3
F_hit <- as.numeric(ringkasan$fstatistic[1])
F_tab <- qf(0.95, k, n - k - 1)
p_F <- pf(F_hit, k, n - k - 1, lower.tail = FALSE)
data.frame(F_hitung = round(F_hit, 4), F_tabel = round(F_tab, 4),
derajat_bebas = paste0(k, " dan ", n - k - 1), p_value = fp(p_F))t_tab <- qt(0.975, df.residual(model))
uji_t <- data.frame(
Variabel = c("X1 (Harapan lama sekolah)", "X2 (Pengguna internet)",
"X3 (Pengguna komputer)"),
Koefisien = round(koef[-1, 1], 5),
t_hitung = round(koef[-1, 3], 3),
t_tabel = round(t_tab, 3),
p_value = fp(koef[-1, 4]),
Keputusan = ifelse(abs(koef[-1, 3]) > t_tab & koef[-1, 4] < 0.05,
"Tolak H0 (signifikan)", "Gagal tolak H0"),
row.names = NULL)
kable(uji_t, caption = "Tabel 4.6. Hasil uji parsial (uji t)")| Variabel | Koefisien | t_hitung | t_tabel | p_value | Keputusan |
|---|---|---|---|---|---|
| X1 (Harapan lama sekolah) | 1.67779 | 4.443 | 2.032 | 8.959e-05 | Tolak H0 (signifikan) |
| X2 (Pengguna internet) | 0.12832 | 5.215 | 2.032 | 9.027e-06 | Tolak H0 (signifikan) |
| X3 (Pengguna komputer) | 0.43613 | 3.452 | 2.032 | 0.0015 | Tolak H0 (signifikan) |
Untuk setiap \(j = 1,2,3\): \(H_0: \beta_j = 0\) lawan \(H_1: \beta_j \neq 0\), dengan \(\alpha = 5\%\) dan kriteria tolak \(H_0\) jika \(|t_{hitung}| > t_{0.025;34}\) = 2.032 atau \(p\)-value < 0.05.
Seluruh variabel independen berpengaruh signifikan, sehingga ketentuan batasan masalah terpenuhi. Berdasarkan nilai \(|t|\), penggunaan internet (\(X_2\)) memberikan bukti pengaruh yang paling kuat, diikuti harapan lama sekolah (\(X_1\)) dan penggunaan komputer (\(X_3\)). Perlu diingat bahwa hubungan ini bersifat asosiasi dan bukan bukti sebab-akibat.
inf <- influencePlot(model, main = "Influence Plot",
sub = "Ukuran lingkaran sebanding dengan Cook's Distance")inf$Provinsi <- dat$Provinsi[as.numeric(rownames(inf))]
kable(round(inf[, c("StudRes", "Hat", "CookD")], 5), caption = "Tabel 4.7. Pengamatan yang ditandai pada Influence Plot")| StudRes | Hat | CookD | |
|---|---|---|---|
| 11 | 0.21279 | 0.39179 | 0.00750 |
| 33 | -3.29259 | 0.04570 | 0.10065 |
| 37 | 1.10998 | 0.41634 | 0.21822 |
| 38 | -2.82564 | 0.32581 | 0.80023 |
#> [1] "DKI JAKARTA" "PAPUA BARAT" "PAPUA TENGAH" "PAPUA PEGUNUNGAN"
Gambar 4.5. Influence plot
diag_tab <- data.frame(No = seq_len(n), Provinsi = dat$Provinsi,
StudRes = rstudent(model), Hat = hatvalues(model),
CookD = cooks.distance(model))
batas_hat <- 2 * length(coef(model)) / n
batas_cook <- 4 / n
cat("Batas leverage 2p/n =", round(batas_hat, 4), "| Batas Cook's D 4/n =", round(batas_cook, 4), "\n")#> Batas leverage 2p/n = 0.2105 | Batas Cook's D 4/n = 0.1053
top <- diag_tab[order(-abs(diag_tab$StudRes)), ][1:5, ]
kable(top, digits = 4, row.names = FALSE,
caption = "Tabel 4.8. Lima pengamatan dengan |studentized residual| terbesar")| No | Provinsi | StudRes | Hat | CookD |
|---|---|---|---|---|
| 33 | PAPUA BARAT | -3.2926 | 0.0457 | 0.1007 |
| 38 | PAPUA PEGUNUNGAN | -2.8256 | 0.3258 | 0.8002 |
| 19 | NUSA TENGGARA TIMUR | -1.8923 | 0.0557 | 0.0490 |
| 25 | SULAWESI UTARA | 1.4537 | 0.0442 | 0.0236 |
| 6 | SUMATERA SELATAN | 1.3845 | 0.0526 | 0.0259 |
lev <- diag_tab[diag_tab$Hat > batas_hat, ]
kable(lev, digits = 4, row.names = FALSE,
caption = "Tabel 4.9. Pengamatan dengan leverage tinggi (h > 2p/n)")| No | Provinsi | StudRes | Hat | CookD |
|---|---|---|---|---|
| 11 | DKI JAKARTA | 0.2128 | 0.3918 | 0.0075 |
| 14 | DI YOGYAKARTA | -0.9347 | 0.2116 | 0.0588 |
| 34 | PAPUA BARAT DAYA | 0.7468 | 0.2997 | 0.0605 |
| 36 | PAPUA SELATAN | 1.2683 | 0.2961 | 0.1662 |
| 37 | PAPUA TENGAH | 1.1100 | 0.4163 | 0.2182 |
| 38 | PAPUA PEGUNUNGAN | -2.8256 | 0.3258 | 0.8002 |
Berdasarkan Influence Plot dan tabel diagnostik, diperoleh temuan berikut:
Influence Plot hanya menandai pengamatan yang berpotensi menjadi outlier atau berpengaruh. Untuk memastikannya diperlukan uji formal, yaitu Uji Bonferroni.
#> rstudent unadjusted p-value Bonferroni p
#> 33 -3.292589 0.0023723 0.090147
#> 38 -2.825645 0.0079491 0.302060
#> 19 -1.892308 0.0672510 NA
idx <- as.numeric(names(ot$rstudent))
tab_bon <- data.frame(Observasi = idx, Provinsi = dat$Provinsi[idx],
Rstudent = round(ot$rstudent, 4),
p_value_tak_terkoreksi = fp(ot$p),
p_Bonferroni = round(ot$bonf.p, 4), row.names = NULL)
kable(tab_bon, caption = "Tabel 4.10. Hasil uji Bonferroni (tiga residual terbesar)")| Observasi | Provinsi | Rstudent | p_value_tak_terkoreksi | p_Bonferroni |
|---|---|---|---|---|
| 33 | PAPUA BARAT | -3.2926 | 0.0024 | 0.0901 |
| 38 | PAPUA PEGUNUNGAN | -2.8256 | 0.0079 | 0.3021 |
| 19 | NUSA TENGGARA TIMUR | -1.8923 | 0.0673 | 2.5555 |
t_bon <- qt(1 - 0.05 / (2 * n), n - length(coef(model)) - 1)
cat("Nilai kritis Bonferroni t(0.05/(2n); n-p-1) =", round(t_bon, 4), "\n")#> Nilai kritis Bonferroni t(0.05/(2n); n-p-1) = 3.5109
Pengujian dilakukan pada pengamatan dengan studentized deleted residual terbesar, yaitu Papua Barat (observasi ke-33):
Perhatikan bahwa \(p\)-value tak terkoreksi (0.0024) tampak signifikan, tetapi nilai ini tidak boleh dipakai langsung karena 38 pengamatan diuji sekaligus. Koreksi Bonferroni memperhitungkan hal ini, sehingga kesimpulan yang tepat adalah mengikuti \(p_{Bonf}\). Papua Barat dan Papua Pegunungan adalah pengamatan yang menyimpang dan berpengaruh, tetapi belum cukup bukti secara formal untuk disebut outlier pada \(\alpha\) = 5%.
Untuk menilai seberapa besar pengaruh pengamatan yang ditandai terhadap kesimpulan, model diestimasi ulang tanpa pengamatan tersebut. Analisis ini hanya bersifat diagnostik; model utama tetap menggunakan seluruh data.
ringkas <- function(m, label) {
s <- summary(m); cf <- coef(s)
data.frame(Skenario = label, n = nobs(m),
b0 = round(cf[1, 1], 3), b1 = round(cf[2, 1], 3),
b2 = round(cf[3, 1], 4), b3 = round(cf[4, 1], 4),
R2_adj = round(s$adj.r.squared, 4),
`p maks. koefisien` = fp(max(cf[-1, 4])),
`p Shapiro-Wilk` = fp(shapiro.test(resid(m))$p.value),
check.names = FALSE)
}
m_tanpa_pb <- update(model, data = subset(dat, Provinsi != "PAPUA BARAT"))
m_tanpa_pp <- update(model, data = subset(dat, Provinsi != "PAPUA PEGUNUNGAN"))
m_tanpa_dua <- update(model, data = subset(dat, !Provinsi %in% c("PAPUA BARAT", "PAPUA PEGUNUNGAN")))
sens <- rbind(ringkas(model, "Model utama (semua data)"),
ringkas(m_tanpa_pb, "Tanpa Papua Barat"),
ringkas(m_tanpa_pp, "Tanpa Papua Pegunungan"),
ringkas(m_tanpa_dua, "Tanpa keduanya"))
kable(sens, caption = "Tabel 4.11. Perbandingan model utama dan model tanpa pengamatan yang ditandai")| Skenario | n | b0 | b1 | b2 | b3 | R2_adj | p maks. koefisien | p Shapiro-Wilk |
|---|---|---|---|---|---|---|---|---|
| Model utama (semua data) | 38 | 39.962 | 1.678 | 0.1283 | 0.4361 | 0.8786 | 0.0015 | 0.0364 |
| Tanpa Papua Barat | 37 | 39.797 | 1.719 | 0.1367 | 0.3868 | 0.9055 | 0.0016 | 0.1706 |
| Tanpa Papua Pegunungan | 37 | 45.393 | 1.321 | 0.1238 | 0.4043 | 0.8428 | 0.0014 | 0.0058 |
| Tanpa keduanya | 36 | 45.503 | 1.345 | 0.1323 | 0.3513 | 0.8883 | 0.0010 | 0.0874 |
Hasil analisis sensitivitas menunjukkan bahwa:
Mengingat Papua Barat dan Papua Pegunungan merupakan data valid (bukan kesalahan pencatatan yang terbukti) dan tidak terbukti sebagai outlier menurut Uji Bonferroni, pengamatan tersebut dipertahankan pada model utama. Jika ingin menghapusnya, hal itu perlu didasarkan pada alasan substantif, misalnya verifikasi data sumber.
Badan Pusat Statistik. (2024a). [Metode Baru] Indeks Pembangunan Manusia menurut Provinsi. Diakses pada 9 Oktober 2026, dari https://www.bps.go.id/id/statistics-table/2/NDk0IzI=/-metode-baru--indeks-pembangunan-manusia-menurut-provinsi.html
Badan Pusat Statistik. (2024b). [Metode Baru] Harapan Lama Sekolah. Diakses pada 9 Oktober 2026, dari https://www.bps.go.id/id/statistics-table/2/NDE3IzI=/-metode-baru--harapan-lama-sekolah--tahun-.html
Badan Pusat Statistik. (2024c). Proporsi Individu yang Menggunakan Internet menurut Provinsi. Diakses pada 9 Oktober 2026, dari https://www.bps.go.id/id/statistics-table/2/MTIyNSMy/proporsi-individu-yang-menggunakan-internet-menurut-provinsi.html
Badan Pusat Statistik. (2024d). Persentase Penduduk yang Menggunakan Komputer menurut Provinsi dan Klasifikasi Daerah. Diakses pada 9 Oktober 2026, dari https://www.bps.go.id/id/statistics-table/2/MTY3MSMy/persentase-penduduk-yang-menggunakan-komputer-menurut-provinsi-dan-klasifikasi-daerah.html
Barus, F. M. (2023). Mendeteksi outlier pada data multivariat dengan metode Jarak Mahalanobis-Minimum Covariance Determinant (MMCD). Indonesian Journal of Multidisciplinary, 1(1), 1–10.
Firmansyah, A., & Tristie, G. A. (2021). Bagaimana peran tata kelola perusahaan dalam penghindaran pajak, pengungkapan risiko, efisiensi investasi? Indramayu: Penerbit ADAB.
Fox, J., & Weisberg, S. (2019). An R companion to applied regression (3rd ed.). Thousand Oaks, CA: Sage.
Hakim, L. (2016). Analisis regresi pada data outlier dengan metode MM-estimasi. Malang: Universitas Islam Negeri Maulana Malik Ibrahim.
Kartiningrum, E. D., Notobroto, H. B., Otok, B. W., Kumarijati, N. E., & Yuswatiningsih, E. (2022). Aplikasi regresi dan korelasi dalam analisis data hasil penelitian. E-Book Penerbit STIKes Majapahit.
Prasmono, A. S. P., & Ahdika, A. (2023). Analisis regresi berganda pada faktor-faktor yang mempengaruhi kinerja fisik preservasi jalan dan jembatan di Provinsi Sumatera Selatan. Emerging Statistics and Data Science Journal, 1(1), 47–56.
R Core Team. (2025). R: A language and environment for statistical computing. Vienna: R Foundation for Statistical Computing. https://www.R-project.org/
Rini, D. S. (2026). Modul praktikum analisis regresi dan korelasi. Bengkulu: Universitas Bengkulu.
Sabrina, F. A., Nandita, W. V., & Maharani, D. D. (2023). Uji asumsi klasik untuk menghindari pelanggaran asumsi klasik pada regresi linier Ordinary Least Squares (OLS) dalam ekonometrika. Jurnal Ilmiah Manajemen Ekonomi dan Akuntansi, 1(1), 195–203.
Suryono, M. S. (2021). Analisis regresi untuk penelitian. Semarang: Semarang University Press.
Wahyono, K. (2021). Analisis regresi sederhana dan berganda. Yogyakarta: UAD Press.
Zeileis, A., & Hothorn, T. (2002). Diagnostic checking in regression relationships. R News, 2(3), 7–10.
| Provinsi | Y | X1 | X2 | X3 | |
|---|---|---|---|---|---|
| 1 | ACEH | 74.03 | 14.40 | 35.60 | 9.37 |
| 2 | SUMATERA UTARA | 74.02 | 13.50 | 41.38 | 9.95 |
| 3 | SUMATERA BARAT | 74.49 | 14.31 | 41.15 | 12.83 |
| 4 | RIAU | 74.79 | 13.44 | 44.97 | 10.30 |
| 5 | JAMBI | 73.43 | 13.34 | 42.68 | 10.00 |
| 6 | SUMATERA SELATAN | 72.30 | 12.65 | 38.14 | 8.79 |
| 7 | BENGKULU | 73.39 | 13.76 | 40.72 | 11.34 |
| 8 | LAMPUNG | 71.81 | 12.79 | 40.17 | 7.88 |
| 9 | KEP. BANGKA BELITUNG | 73.33 | 12.50 | 45.85 | 11.21 |
| 10 | KEP. RIAU | 77.97 | 13.28 | 65.02 | 18.34 |
| 11 | DKI JAKARTA | 83.08 | 13.80 | 73.46 | 23.47 |
| 12 | JAWA BARAT | 74.43 | 13.02 | 53.94 | 14.54 |
| 13 | JAWA TENGAH | 73.88 | 13.05 | 47.74 | 10.10 |
| 14 | DI YOGYAKARTA | 81.55 | 15.78 | 61.73 | 19.91 |
| 15 | JAWA TIMUR | 74.09 | 13.44 | 47.10 | 10.92 |
| 16 | BANTEN | 74.48 | 13.11 | 56.25 | 13.72 |
| 17 | BALI | 77.76 | 13.63 | 54.08 | 17.25 |
| 18 | NUSA TENGGARA BARAT | 70.93 | 13.99 | 39.16 | 10.29 |
| 19 | NUSA TENGGARA TIMUR | 67.39 | 13.34 | 26.29 | 11.13 |
| 20 | KALIMANTAN BARAT | 70.13 | 12.69 | 38.38 | 8.89 |
| 21 | KALIMANTAN TENGAH | 72.73 | 12.78 | 46.73 | 10.80 |
| 22 | KALIMANTAN SELATAN | 73.03 | 13.12 | 50.37 | 11.22 |
| 23 | KALIMANTAN TIMUR | 78.83 | 14.04 | 59.12 | 15.48 |
| 24 | KALIMANTAN UTARA | 73.02 | 13.31 | 54.30 | 11.81 |
| 25 | SULAWESI UTARA | 75.03 | 12.98 | 46.73 | 10.97 |
| 26 | SULAWESI TENGAH | 71.56 | 13.35 | 35.52 | 10.99 |
| 27 | SULAWESI SELATAN | 74.05 | 13.56 | 43.91 | 12.97 |
| 28 | SULAWESI TENGGARA | 73.48 | 13.72 | 41.92 | 12.29 |
| 29 | GORONTALO | 71.23 | 13.18 | 41.78 | 12.86 |
| 30 | SULAWESI BARAT | 68.20 | 12.90 | 31.26 | 10.02 |
| 31 | MALUKU | 71.57 | 14.10 | 33.89 | 11.67 |
| 32 | MALUKU UTARA | 71.03 | 13.76 | 29.13 | 9.61 |
| 33 | PAPUA BARAT | 67.02 | 13.21 | 43.46 | 10.09 |
| 34 | PAPUA BARAT DAYA | 68.63 | 13.89 | 0.00 | 9.71 |
| 35 | PAPUA | 73.00 | 13.94 | 21.70 | 13.61 |
| 36 | PAPUA SELATAN | 67.90 | 12.68 | 0.00 | 10.94 |
| 37 | PAPUA TENGAH | 59.75 | 9.64 | 0.00 | 4.81 |
| 38 | PAPUA PEGUNUNGAN | 53.42 | 9.98 | 0.00 | 1.16 |
kable(diag_tab, digits = 4, row.names = FALSE,
caption = "Studentized residual, hat value, dan Cook's Distance seluruh provinsi")| No | Provinsi | StudRes | Hat | CookD |
|---|---|---|---|---|
| 1 | ACEH | 0.7477 | 0.1390 | 0.0229 |
| 2 | SUMATERA UTARA | 1.0063 | 0.0514 | 0.0137 |
| 3 | SUMATERA BARAT | -0.2025 | 0.0622 | 0.0007 |
| 4 | RIAU | 1.1595 | 0.0519 | 0.0182 |
| 5 | JAMBI | 0.7077 | 0.0480 | 0.0064 |
| 6 | SUMATERA SELATAN | 1.3845 | 0.0526 | 0.0259 |
| 7 | BENGKULU | 0.0957 | 0.0398 | 0.0001 |
| 8 | LAMPUNG | 1.0470 | 0.0818 | 0.0244 |
| 9 | KEP. BANGKA BELITUNG | 0.9311 | 0.0600 | 0.0139 |
| 10 | KEP. RIAU | -0.3721 | 0.1729 | 0.0074 |
| 11 | DKI JAKARTA | 0.2128 | 0.3918 | 0.0075 |
| 12 | JAWA BARAT | -0.3655 | 0.0726 | 0.0027 |
| 13 | JAWA TENGAH | 0.8547 | 0.0613 | 0.0120 |
| 14 | DI YOGYAKARTA | -0.9347 | 0.2116 | 0.0588 |
| 15 | JAWA TIMUR | 0.4355 | 0.0470 | 0.0024 |
| 16 | BANTEN | -0.3868 | 0.0657 | 0.0027 |
| 17 | BALI | 0.2711 | 0.1040 | 0.0022 |
| 18 | NUSA TENGGARA BARAT | -1.1728 | 0.0713 | 0.0261 |
| 19 | NUSA TENGGARA TIMUR | -1.8923 | 0.0557 | 0.0490 |
| 20 | KALIMANTAN BARAT | 0.0422 | 0.0510 | 0.0000 |
| 21 | KALIMANTAN TENGAH | 0.3497 | 0.0511 | 0.0017 |
| 22 | KALIMANTAN SELATAN | -0.1702 | 0.0534 | 0.0004 |
| 23 | KALIMANTAN TIMUR | 0.5550 | 0.0627 | 0.0053 |
| 24 | KALIMANTAN UTARA | -0.7967 | 0.0622 | 0.0106 |
| 25 | SULAWESI UTARA | 1.4537 | 0.0442 | 0.0236 |
| 26 | SULAWESI TENGAH | -0.0844 | 0.0299 | 0.0001 |
| 27 | SULAWESI SELATAN | 0.0257 | 0.0299 | 0.0000 |
| 28 | SULAWESI TENGGARA | -0.1342 | 0.0323 | 0.0002 |
| 29 | GORONTALO | -1.0299 | 0.0338 | 0.0093 |
| 30 | SULAWESI BARAT | -1.0131 | 0.0334 | 0.0089 |
| 31 | MALUKU | -0.8540 | 0.0658 | 0.0129 |
| 32 | MALUKU UTARA | 0.0299 | 0.0702 | 0.0000 |
| 33 | PAPUA BARAT | -3.2926 | 0.0457 | 0.1007 |
| 34 | PAPUA BARAT DAYA | 0.7468 | 0.2997 | 0.0605 |
| 35 | PAPUA | 0.5580 | 0.1558 | 0.0147 |
| 36 | PAPUA SELATAN | 1.2683 | 0.2961 | 0.1662 |
| 37 | PAPUA TENGAH | 1.1100 | 0.4163 | 0.2182 |
| 38 | PAPUA PEGUNUNGAN | -2.8256 | 0.3258 | 0.8002 |
#> R version 4.6.1 (2026-06-24 ucrt)
#> Platform: x86_64-w64-mingw32/x64
#> Running under: Windows 11 x64 (build 26300)
#>
#> Matrix products: default
#> LAPACK version 3.12.1
#>
#> locale:
#> [1] LC_COLLATE=English_United States.utf8
#> [2] LC_CTYPE=English_United States.utf8
#> [3] LC_MONETARY=English_United States.utf8
#> [4] LC_NUMERIC=C
#> [5] LC_TIME=English_United States.utf8
#>
#> time zone: Asia/Bangkok
#> tzcode source: internal
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] knitr_1.52 lmtest_0.9-40 zoo_1.9-1 car_3.1-5 carData_3.0-6
#>
#> loaded via a namespace (and not attached):
#> [1] vctrs_0.7.3 cli_3.6.6 rlang_1.3.0 xfun_0.62
#> [5] Formula_1.2-6 otel_0.3.0 jsonlite_2.0.0 glue_1.8.1
#> [9] htmltools_0.5.9 sass_0.4.10 scales_1.4.0 rmarkdown_2.32
#> [13] grid_4.6.1 evaluate_1.0.5 jquerylib_0.1.4 abind_1.4-8
#> [17] fastmap_1.2.0 yaml_2.3.12 lifecycle_1.0.5 compiler_4.6.1
#> [21] RColorBrewer_1.1-3 rstudioapi_0.19.0 farver_2.1.2 lattice_0.22-9
#> [25] digest_0.6.39 R6_2.6.1 bslib_0.12.0 tools_4.6.1
#> [29] cachem_1.1.0