LABORATORIUM STATISTIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS BENGKULU 2026

Nama Fadillah Riski NST
NPM F1F025027
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 (F1F023018); Khalisa Qori Shofa (F1F024048); Rameza Elia (F1F024056); Carolin Veronika (F1F024060)

BAB I PENDAHULUAN

1.1 Latar Belakang

Analisis data merupakan tahapan penelitian yang dilakukan setelah seluruh data yang diperlukan terkumpul. Ketepatan pemilihan alat analisis sangat menentukan keakuratan kesimpulan, sehingga tahap ini tidak boleh diabaikan (Qomusuddin & Romlah, 2021). Perhitungan statistik yang cepat dan tepat dapat dibantu perangkat lunak seperti SPSS, MINITAB, MATLAB, dan R. Program R termasuk perangkat lunak open source yang banyak dipakai untuk komputasi statistik (Barus, 2023).

Analisis regresi merupakan metode statistika untuk mempelajari hubungan antara variabel independen (prediktor) dan variabel dependen (kriterium), serta untuk memodelkan dan mengestimasi nilai variabel dependen berdasarkan informasi pada variabel independen. Hubungan tersebut dinyatakan dalam suatu persamaan regresi.

Model regresi linier berganda yang baik harus dievaluasi secara menyeluruh. Pertama, model harus memenuhi asumsi klasik, yaitu normalitas residual, tidak adanya multikolinieritas, homoskedastisitas, dan tidak adanya autokorelasi. Pelanggaran asumsi dapat membuat estimasi menjadi bias, tidak efisien, dan menyesatkan dalam pengambilan kesimpulan. Kedua, model harus diuji signifikansinya, baik secara simultan (Uji F) maupun parsial (Uji t). Ketiga, model perlu diperiksa dari kemungkinan adanya pencilan (outlier), yaitu pengamatan yang jauh dari pola mayoritas data dan berpotensi memengaruhi koefisien regresi (Fadlilah dkk., 2022).

Laporan ini menggabungkan seluruh tahapan tersebut dalam satu rangkaian analisis menggunakan data sekunder dari Badan Pusat Statistik (BPS), yaitu data pembangunan manusia 37 provinsi di Indonesia tahun 2024. Variabel dependen yang dianalisis adalah Pengeluaran Riil per Kapita, dengan Indeks Pembangunan Manusia, Rata-rata Lama Sekolah, dan Harapan Lama Sekolah sebagai variabel independen.

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas, rumusan masalah dalam laporan ini adalah:

  1. Bagaimana gambaran statistik deskriptif dari data yang digunakan?
  2. Bagaimana model regresi linier berganda yang terbentuk dari data tersebut?
  3. Apakah model memenuhi asumsi klasik (normalitas, heteroskedastisitas, autokorelasi, dan multikolinieritas)?
  4. Apakah variabel independen berpengaruh signifikan terhadap variabel dependen, baik secara simultan (Uji F) maupun parsial (Uji t)?
  5. Apakah terdapat observasi yang teridentifikasi sebagai outlier berdasarkan influence plot dan Uji Bonferroni?

1.3 Tujuan Penelitian

Tujuan yang ingin dicapai adalah mahasiswa mampu:

  1. Mengumpulkan, memilih, dan mengeksplorasi data sekunder serta menyajikan statistik deskriptifnya.
  2. Membentuk dan mengestimasi model regresi linier berganda menggunakan program R.
  3. Menguji asumsi klasik regresi linier berganda.
  4. Melakukan pengujian hipotesis melalui Uji F dan Uji t beserta interpretasinya.
  5. Mengidentifikasi dan menguji outlier menggunakan influence plot dan Uji Bonferroni.

1.4 Manfaat Penelitian

  1. Bagi penulis
    1. Menambah wawasan dan keterampilan dalam analisis regresi linier berganda secara utuh, mulai dari pemodelan hingga evaluasi model.
    2. Menerapkan pengujian asumsi, pengujian hipotesis, dan deteksi outlier dengan benar menggunakan program R.
  2. Bagi pembaca
    1. Menambah pengetahuan mengenai analisis regresi linier berganda.
    2. Menjadi rujukan bagi peneliti yang ingin melakukan analisis regresi berganda dan evaluasi modelnya menggunakan program R.

1.5 Batasan Masalah

Batasan masalah pada laporan ini adalah membuat laporan analisis regresi dengan format R Markdown yang mengikuti sistematika laporan praktikum (Bab I sampai Bab V dan Daftar Pustaka). Analisis mencakup:

  1. pengumpulan dan pemilihan data sekunder,
  2. eksplorasi data,
  3. analisis statistik deskriptif,
  4. pembentukan dan estimasi model regresi,
  5. pengujian asumsi klasik,
  6. pengujian hipotesis melalui Uji F dan Uji t, dan
  7. evaluasi model melalui identifikasi dan pengujian outlier menggunakan Influence Plot dan Uji Bonferroni.

Data yang digunakan berjumlah lebih dari 35 observasi, dengan satu variabel dependen dan tiga variabel independen.

1.6 Sistematika Penulisan

Sistematika penulisan laporan ini adalah sebagai berikut:

  • BAB I PENDAHULUAN: memuat latar belakang, rumusan masalah, tujuan, manfaat, batasan masalah, dan sistematika penulisan.
  • BAB II TINJAUAN PUSTAKA: memuat pengertian dan teori yang mendasari analisis pada bab-bab berikutnya.
  • BAB III METODE PENELITIAN: memuat jenis dan sumber data, variabel penelitian, analisis data, dan diagram alir penelitian.
  • BAB IV HASIL DAN PEMBAHASAN: memuat hasil analisis dari program R beserta interpretasinya.
  • BAB V KESIMPULAN DAN SARAN: memuat kesimpulan dan saran.
  • DAFTAR PUSTAKA dan LAMPIRAN.

BAB II TINJAUAN PUSTAKA

2.1 Regresi Linier Berganda

Regresi linier berganda adalah metode untuk menjelaskan hubungan antara satu variabel dependen dengan dua atau lebih variabel independen. Dengan \(k\) variabel independen, model untuk pengamatan ke-\(i\) dituliskan:

\[Y_i = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i} + \dots + \beta_k X_{ki} + \varepsilon_i, \quad i = 1, 2, \dots, n\]

Dalam notasi matriks, \(\mathbf{y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon}\). Parameter diestimasi dengan metode kuadrat terkecil biasa (Ordinary Least Squares, OLS):

\[\hat{\boldsymbol{\beta}} = (\mathbf{X}^{\top}\mathbf{X})^{-1}\mathbf{X}^{\top}\mathbf{y}\]

Koefisien determinasi \(R^2 = 1 - \frac{JKG}{JKT}\) menyatakan proporsi variasi \(Y\) yang dijelaskan oleh seluruh variabel independen. \(R^2_{adj}\) adalah versi \(R^2\) yang telah dikoreksi oleh banyaknya parameter dalam model.

2.2 Statistik Deskriptif

Statistik deskriptif merangkum data dalam bentuk ukuran pemusatan (rata-rata, median) dan ukuran penyebaran (minimum, kuartil, maksimum, simpangan baku). Penyajian ini, bersama grafik seperti boxplot, histogram, dan diagram pencar, digunakan pada tahap eksplorasi data untuk mengenali sebaran, kecenderungan hubungan antarvariabel, dan kemungkinan nilai ekstrem sebelum pemodelan.

2.3 Uji Asumsi Klasik

Uji asumsi klasik memastikan bahwa model regresi linier berganda tidak melanggar prinsip-prinsip dasar statistik, sehingga hasil estimasi dan inferensinya dapat dipercaya (Mardiatmoko, 2020).

2.3.1 Normalitas

Asumsi normalitas mensyaratkan galat (residual) berdistribusi normal. Asumsi ini penting bagi validitas Uji F, Uji t, dan selang kepercayaan (Mardiatmoko, 2020). Deteksi dapat dilakukan secara visual (histogram residual dan Normal Q-Q Plot) maupun uji formal seperti Shapiro-Wilk, Anderson-Darling, dan Kolmogorov-Smirnov. Kombinasi pemeriksaan grafis dan uji formal dianjurkan karena kinerja uji normalitas bergantung pada ukuran sampel, kemencengan, dan keruncingan data (LaFromboise, 2024). Pada uji Shapiro-Wilk, hipotesisnya adalah:

  • \(H_0\): galat berdistribusi normal
  • \(H_1\): galat tidak berdistribusi normal

\(H_0\) ditolak jika p-value \(< \alpha\).

2.3.2 Heteroskedastisitas

Heteroskedastisitas adalah keadaan ketika varians galat tidak konstan antarpengamatan. Kondisi ini membuat estimasi menjadi tidak efisien dan kesimpulan menjadi bias (Rachman & Kurniawati, 2024). Uji yang umum dipakai adalah Uji Glejser, Breusch-Pagan, dan White. Pada Uji Breusch-Pagan, hipotesisnya adalah:

  • \(H_0\): varians galat konstan (homoskedastisitas)
  • \(H_1\): varians galat tidak konstan (heteroskedastisitas)

Statistik ujinya berdistribusi \(\chi^2\) dengan derajat bebas sebanyak variabel independen, dan \(H_0\) ditolak jika p-value \(< \alpha\). Bila heteroskedastisitas terjadi, penanganannya dapat dilakukan dengan transformasi data atau Weighted Least Squares (WLS) (Rini, 2026).

2.3.3 Autokorelasi

Autokorelasi adalah korelasi antara galat pada pengamatan ke-\(t\) dengan galat pada pengamatan sebelumnya (\(t-1\)). Model yang baik tidak mengalami autokorelasi (Mardiatmoko, 2020). Pengujian dilakukan dengan statistik Durbin-Watson (Uyanto, 2024):

\[DW = \frac{\sum_{t=2}^{n}(e_t - e_{t-1})^2}{\sum_{t=1}^{n}e_t^2}\]

Nilai \(DW\) yang mendekati 2 menunjukkan tidak adanya autokorelasi. Hipotesisnya adalah \(H_0\): tidak ada autokorelasi dan \(H_1\): ada autokorelasi, dengan \(H_0\) ditolak jika p-value \(< \alpha\).

2.3.4 Multikolinieritas

Multikolinieritas adalah hubungan linier yang sempurna atau mendekati sempurna antarvariabel independen. Kondisi ini meningkatkan varians koefisien regresi sehingga galat baku membesar dan uji signifikansi menjadi tidak valid (Razek, 2022). Gejalanya dideteksi dengan Variance Inflation Factor (VIF) dan Tolerance:

\[VIF_j = \frac{1}{1 - R_j^2}, \qquad Tolerance_j = \frac{1}{VIF_j}\]

Tidak terjadi multikolinieritas jika \(VIF < 10\) dan \(Tolerance > 0{,}1\) (Mardiatmoko, 2020).

2.4 Pengujian Hipotesis

Uji signifikansi parameter menentukan apakah hipotesis yang dirumuskan diterima atau ditolak, dan dilakukan secara simultan maupun parsial (Rini, 2025).

2.4.1 Uji Simultan (Uji F)

Uji F menguji apakah model regresi secara keseluruhan dapat diterima, yaitu apakah minimal ada satu variabel independen yang memiliki hubungan linier dengan variabel dependen (Rini, 2025). Hipotesisnya:

\[H_0: \beta_1 = \beta_2 = \dots = \beta_k = 0 \qquad H_1: \text{tidak semua } \beta_j = 0\]

\[F_{hit} = \frac{KT_{Regresi}}{KT_{Galat}} = \frac{JKR/k}{JKG/(n-k-1)}\]

\(H_0\) ditolak jika \(F_{hit} > F_{(\alpha;\,k,\,n-k-1)}\) atau p-value \(< \alpha\). Jika \(H_0\) ditolak, variabel independen secara bersama-sama berpengaruh signifikan terhadap variabel dependen dan model dapat digunakan (Chamidah, 2020; Adnyani dkk., 2020).

2.4.2 Uji Parsial (Uji t)

Uji t menguji kontribusi masing-masing variabel independen terhadap variabel dependen secara individual (Rini, 2025; Firmansyah & Triastie, 2021). Hipotesisnya:

\[H_0: \beta_j = 0 \qquad H_1: \beta_j \neq 0, \quad j = 1, 2, \dots, k\]

\[t_{hit} = \frac{b_j}{SE(b_j)}\]

\(H_0\) ditolak jika \(|t_{hit}| > t_{(\alpha/2;\,n-k-1)}\) atau p-value \(< \alpha\) (Wahyono, 2021).

2.5 Identifikasi Outlier dan Pengamatan Berpengaruh

Outlier (pencilan) adalah pengamatan yang menyimpang dari pola mayoritas data. Keberadaannya dapat membuat estimasi parameter menjadi bias, memengaruhi signifikansi pengujian, dan membuat distribusi data menjadi tidak normal (Barus, 2023). Deteksinya dilakukan dengan diagnostika regresi, yaitu statistik per kasus yang dihitung untuk setiap pengamatan (Hakim, 2016).

a. Outlier pada pengamatan Y. Dideteksi dengan studentized deleted residual (Rini, 2026):

\[t_i = e_i\sqrt{\frac{n-p-1}{SSE(1-h_{ii}) - e_i^2}}\]

dengan hipotesis \(H_0\): kasus ke-\(i\) bukan outlier dan \(H_1\): kasus ke-\(i\) adalah outlier.

b. Outlier pada pengamatan X (leverage). Elemen diagonal matriks HAT, \(h_{ii}\), memenuhi \(0 \le h_{ii} \le 1\) dan \(\sum_i h_{ii} = p\). Pengamatan ke-\(i\) disebut outlier pengamatan-X jika \(h_{ii} > 2p/n\) (Rini, 2026).

c. Pengaruh pengamatan (Cook’s Distance). Ukuran ini menggabungkan besar residual dan leverage:

\[D_i = \frac{e_i^2\, h_{ii}}{p\, s^2 (1-h_{ii})^2}\]

Nilai \(D_i\) yang besar (misalnya \(D_i > 4/n\)) menandakan pengamatan tersebut berpengaruh besar terhadap koefisien regresi.

d. Influence Plot. Grafik yang memetakan studentized residual (sumbu-Y) terhadap hat value (sumbu-X), dengan ukuran lingkaran sebanding dengan Cook’s Distance. Observasi yang jauh dari pusat grafik merupakan kandidat outlier atau pengamatan berpengaruh.

e. Uji Bonferroni. Karena studentized deleted residual terbesar dipilih dari \(n\) pengamatan, p-value harus dikoreksi atas banyaknya pengujian:

\[p_{Bonferroni} = \min\{1,\; n \times p_{tak\ terkoreksi}\}\]

Observasi dinyatakan outlier jika \(p_{Bonferroni} < \alpha\).

BAB III METODE PENELITIAN

3.1 Jenis dan Sumber Data

Jenis data yang digunakan adalah data kuantitatif, yaitu data berbentuk angka yang dapat diolah dengan analisis statistik. Data yang digunakan merupakan data sekunder, yaitu data yang diperoleh tidak secara langsung oleh peneliti dari sumber yang sudah tersedia. Data bersumber dari situs resmi Badan Pusat Statistik (BPS), berupa indikator pembangunan manusia 37 provinsi di Indonesia tahun 2024 (BPS, 2024).

Pemilihan data mengikuti kriteria berikut:

  1. berasal dari sumber resmi pemerintah (BPS);
  2. memiliki minimal 35 observasi, dengan satu variabel dependen dan minimal tiga variabel independen;
  3. seluruh variabel berskala numerik dan tidak memiliki data hilang;
  4. secara teori terdapat hubungan antarvariabel, yaitu pengeluaran penduduk berkaitan dengan capaian pembangunan manusia dan pendidikan;
  5. data tidak sama dengan data yang digunakan praktikan lain.

3.2 Variabel Penelitian

Simbol Variabel Keterangan
\(Y\) Pengeluaran Riil per Kapita (variabel dependen) Rata-rata pengeluaran riil penduduk per kapita yang disesuaikan
\(X_1\) Indeks Pembangunan Manusia (IPM) Capaian pembangunan manusia pada dimensi kesehatan, pendidikan, dan standar hidup layak
\(X_2\) Rata-rata Lama Sekolah (RLS) Rata-rata jumlah tahun pendidikan formal yang telah ditempuh penduduk
\(X_3\) Harapan Lama Sekolah (HLS) Perkiraan lamanya pendidikan formal yang dapat ditempuh anak pada masa mendatang

3.3 Analisis Data

Seluruh analisis dilakukan dengan program R menggunakan paket car dan lmtest. Langkah-langkah analisis adalah sebagai berikut:

  1. Mengumpulkan dan memilih data sekunder, lalu memasukkannya ke program R.
  2. Melakukan eksplorasi data (pemeriksaan struktur data, data hilang, grafik, dan korelasi).
  3. Menghitung statistik deskriptif.
  4. Membentuk dan mengestimasi model regresi linier berganda dengan fungsi lm().
  5. Menguji asumsi klasik:
    1. normalitas (Shapiro-Wilk, histogram, dan Q-Q plot);
    2. heteroskedastisitas (Breusch-Pagan);
    3. autokorelasi (Durbin-Watson);
    4. multikolinieritas (VIF).
  6. Menguji hipotesis dengan Uji F (simultan) dan Uji t (parsial) pada taraf nyata \(\alpha = 5\%\).
  7. Mengevaluasi model dengan mengidentifikasi outlier melalui Influence Plot dan Uji Bonferroni (outlierTest()).
  8. Menginterpretasikan hasil dan menarik kesimpulan.

3.4 Diagram Alir Penelitian

Gambar 3.1 Diagram alir penelitian

Gambar 3.1 Diagram alir penelitian

BAB IV HASIL DAN PEMBAHASAN

4.1 Pengumpulan dan Pemilihan Data

Data sekunder dari BPS dimasukkan ke dalam program R sebagai data frame bernama ipm. Data lengkap disajikan pada Lampiran 1.

Tabel 4.1 Hasil pemeriksaan data
Pemeriksaan Hasil
Jumlah observasi (n) 37
Jumlah variabel dependen 1
Jumlah variabel independen 3
Jumlah data hilang (NA) 0
Jumlah nama provinsi ganda 0

Tabel 4.1 menunjukkan bahwa data terdiri dari 37 observasi (provinsi), satu variabel dependen, dan tiga variabel independen, tanpa data hilang maupun duplikasi. Dengan demikian data memenuhi kriteria pemilihan data pada Bab III, yaitu minimal 35 observasi dan minimal tiga variabel independen.

4.2 Eksplorasi Data

Gambar 4.1 Boxplot masing-masing variabel

Gambar 4.1 Boxplot masing-masing variabel

Gambar 4.2 Diagram pencar antara Y dengan masing-masing variabel independen

Gambar 4.2 Diagram pencar antara Y dengan masing-masing variabel independen

Tabel 4.2 Matriks korelasi Pearson antarvariabel
Y X1 X2 X3
Y 1,0000 0,8872 0,6282 0,4997
X1 0,8872 1,0000 0,8779 0,7817
X2 0,6282 0,8779 1,0000 0,7850
X3 0,4997 0,7817 0,7850 1,0000

Gambar 4.1 memperlihatkan sebaran data tiap variabel. Terdapat beberapa pengamatan yang menjauh dari kelompok utama data, baik pada sisi nilai rendah maupun nilai tinggi, dan pengamatan tersebut perlu diperhatikan kembali pada tahap evaluasi outlier. Gambar 4.2 dan Tabel 4.2 menunjukkan hubungan linier yang positif antara \(Y\) dengan ketiga variabel independen. Korelasi terkuat dengan \(Y\) dimiliki \(X_1\) (IPM) sebesar 0,8872. Korelasi antarvariabel independen juga tinggi, misalnya \(X_1\) dengan \(X_2\) sebesar 0,8779. Hal ini wajar karena IPM memuat komponen pendidikan yang diukur oleh RLS dan HLS, sehingga perlu diperiksa melalui uji multikolinieritas.

4.3 Statistik Deskriptif

Tabel 4.3 Statistik deskriptif
Variabel Min Q1 Median Mean Q3 Max SD
Y 5.707 10.208 11.606 11.366 12.276 15.573 2.060
X1 54,43 72,01 73,87 73,21 75,36 81,62 4,88
X2 4,21 8,29 8,87 8,77 9,44 10,50 1,16
X3 9,63 12,86 13,23 13,20 13,72 15,70 1,03

Tabel 4.3 merangkum data dari 37 provinsi:

  • Pengeluaran Riil per Kapita (Y) bernilai minimum 5.707 (Papua Pegunungan) dan maksimum 15.573 (Kepulauan Riau), dengan rata-rata 11.366 dan median 11.606. Rata-rata yang sedikit di bawah median menunjukkan sebaran yang agak menjulur ke nilai rendah.
  • IPM (X1) berkisar antara 54,43 dan 81,62 dengan rata-rata 73,21.
  • Rata-rata Lama Sekolah (X2) berkisar antara 4,21 dan 10,50 tahun dengan rata-rata 8,77 tahun.
  • Harapan Lama Sekolah (X3) berkisar antara 9,63 dan 15,70 tahun dengan rata-rata 13,20 tahun.

Nilai minimum keempat variabel seluruhnya berasal dari provinsi di wilayah Papua (Papua Pegunungan dan Papua Tengah), yang berbeda jauh dari provinsi lain. Hal ini menjadi salah satu alasan dilakukannya evaluasi outlier pada Subbab 4.7 dan 4.8.

4.4 Pembentukan dan Estimasi Model Regresi

Tabel 4.4 Summary regresi linier berganda
Koefisien Estimate Std.Error t.value p.value
(Intercept) -20.975,30 1.834,34 -11,435 0,00000000000050870000
X1 680,92 41,41 16,445 < 2,2e-16
X2 -880,70 175,25 -5,026 0,00001711000000000000
X3 -741,40 151,10 -4,907 0,00002427000000000000

Ukuran kecocokan model: Residual standard error = 552 dengan derajat bebas 33; Multiple R-squared = 0,9342; Adjusted R-squared = 0,9282; \(F\) = 156,1 pada 3 dan 33 derajat bebas dengan p-value < 2,2e-16.

Berdasarkan Tabel 4.4, model regresi linier berganda yang terbentuk adalah:

\[\hat{Y} = -20.975,30 + 680,92X_1 - 880,70X_2 - 741,40X_3\]

Interpretasi koefisien (dengan variabel independen lainnya dianggap tetap):

  • Konstanta (-20.975,30) adalah nilai dugaan \(Y\) ketika \(X_1 = X_2 = X_3 = 0\). Nilai ini tidak memiliki makna praktis karena berada di luar rentang data.
  • \(X_1\) (680,92): setiap kenaikan IPM satu poin diperkirakan menaikkan pengeluaran riil per kapita sebesar 680,92 satuan.
  • \(X_2\) (-880,70): setiap kenaikan rata-rata lama sekolah satu tahun diperkirakan menurunkan pengeluaran riil per kapita sebesar 880,70 satuan.
  • \(X_3\) (-741,40): setiap kenaikan harapan lama sekolah satu tahun diperkirakan menurunkan pengeluaran riil per kapita sebesar 741,40 satuan.

Tanda negatif pada \(X_2\) dan \(X_3\) berbeda dari tanda korelasi sederhananya yang positif (Tabel 4.2). Hal ini terjadi karena koefisien regresi berganda mengukur pengaruh parsial, yaitu pengaruh setelah \(X_1\) dikendalikan. Karena IPM sendiri disusun dari komponen pendidikan, efek RLS dan HLS yang tersisa di luar IPM dapat berbalik arah. Koefisien \(X_2\) dan \(X_3\) sebaiknya tidak ditafsirkan sebagai hubungan sebab-akibat.

Nilai \(R^2\) sebesar 0,9342 berarti 93,42% variasi pengeluaran riil per kapita dapat dijelaskan oleh IPM, RLS, dan HLS secara bersama-sama, sedangkan sisanya sebesar 6,58% dijelaskan oleh faktor lain di luar model. Nilai \(R^2_{adj}\) sebesar 0,9282 hanya sedikit lebih rendah dari \(R^2\), sehingga model tidak mengalami penambahan variabel yang berlebihan.

4.5 Pengujian Asumsi Klasik

4.5.1 Uji Normalitas

Gambar 4.3 Histogram residual dan Normal Q-Q Plot

Gambar 4.3 Histogram residual dan Normal Q-Q Plot

Tabel 4.5 Hasil uji normalitas Shapiro-Wilk
W p-value
0,9720 0,4653

Uji Shapiro-Wilk menghasilkan \(W\) = 0,9720 dan p-value = 0,4653. Pengujian hipotesisnya:

  1. Hipotesis: \(H_0\): galat berdistribusi normal; \(H_1\): galat tidak berdistribusi normal.
  2. Taraf nyata: \(\alpha = 5\%\).
  3. Statistik uji: \(W = 0,9720\).
  4. Kriteria penolakan: tolak \(H_0\) jika p-value \(< \alpha\).
  5. Kesimpulan: karena p-value = 0,4653 > \(\alpha\) = 0,05, maka \(H_0\) diterima. Pada taraf nyata 5%, galat berdistribusi normal. Hal ini sejalan dengan grafik: titik-titik pada Q-Q plot mengikuti garis diagonal dan histogram residual berbentuk lonceng.

4.5.2 Uji Heteroskedastisitas

Tabel 4.6 Hasil uji heteroskedastisitas Breusch-Pagan
BP DF p-value
2,3802 3 0,4973
  1. Hipotesis: \(H_0\): varians galat konstan (homoskedastisitas); \(H_1\): varians galat berubah-ubah (heteroskedastisitas).
  2. Taraf nyata: \(\alpha = 5\%\).
  3. Statistik uji: \(BP = 2,3802\) dengan \(db = 3\).
  4. Kriteria penolakan: tolak \(H_0\) jika p-value \(< \alpha\).
  5. Kesimpulan: karena p-value = 0,4973 > 0,05, maka \(H_0\) diterima. Pada taraf nyata 5%, tidak terjadi masalah heteroskedastisitas, atau varians galat konstan (homoskedastis).
Gambar 4.4 Plot residual terhadap nilai dugaan (fitted values)

Gambar 4.4 Plot residual terhadap nilai dugaan (fitted values)

Gambar 4.4 mendukung hasil uji, yaitu residual tersebar acak di sekitar nol tanpa pola corong yang jelas.

4.5.3 Uji Autokorelasi

Tabel 4.7 Hasil uji autokorelasi Durbin-Watson
DW p-value
1,6917 0,1097
  1. Hipotesis: \(H_0\): tidak ada autokorelasi; \(H_1\): ada autokorelasi.
  2. Taraf nyata: \(\alpha = 5\%\).
  3. Statistik uji: \(DW = 1,6917\).
  4. Kriteria penolakan: tolak \(H_0\) jika p-value \(< \alpha\).
  5. Kesimpulan: karena p-value = 0,1097 > 0,05, maka \(H_0\) diterima. Pada taraf nyata 5%, tidak terdapat autokorelasi pada residual model, sehingga asumsi non-autokorelasi terpenuhi.

Catatan: data penelitian ini merupakan data antarwilayah (cross-section), bukan deret waktu. Nilai statistik Durbin-Watson bergantung pada urutan observasi, sehingga hasil uji ini sebaiknya dipandang sebagai pemeriksaan formal terhadap urutan data yang digunakan.

4.5.4 Uji Multikolinieritas

Tabel 4.8 Nilai VIF dan Tolerance
Variabel VIF Tolerance Keputusan
X1 4,8312 0,2070 Tidak multikolinier
X2 4,8962 0,2042 Tidak multikolinier
X3 2,8871 0,3464 Tidak multikolinier

Nilai VIF untuk \(X_1\) sebesar 4,8312, \(X_2\) sebesar 4,8962, dan \(X_3\) sebesar 2,8871. Seluruh nilai VIF lebih kecil dari 10 dan nilai Tolerance lebih besar dari 0,1, sehingga tidak terjadi multikolinieritas pada model regresi. Walaupun korelasi antarvariabel independen tinggi (Tabel 4.2), tingkatnya masih berada di batas yang dapat diterima.

4.5.5 Ringkasan Uji Asumsi Klasik

Tabel 4.9 Ringkasan hasil uji asumsi klasik
Asumsi Uji Statistik p-value Keputusan
Normalitas Shapiro-Wilk 0,9720 0,4653 Terpenuhi
Homoskedastisitas Breusch-Pagan 2,3802 0,4973 Terpenuhi
Non-autokorelasi Durbin-Watson 1,6917 0,1097 Terpenuhi
Non-multikolinieritas VIF maks. 4,8962 - Terpenuhi

Berdasarkan Tabel 4.9, keempat asumsi klasik terpenuhi, sehingga model layak dilanjutkan ke pengujian hipotesis.

4.6 Pengujian Hipotesis

4.6.1 Uji Simultan (Uji F)

Tabel 4.10 Tabel ANOVA untuk Uji F
Sumber Variasi db JK KT F hitung p-value
Regresi 3 142.687.365 47.562.455 156,110 < 2,2e-16
Galat 33 10.054.205 304.673
Total 36 152.741.570
  1. Hipotesis: \(H_0: \beta_1 = \beta_2 = \beta_3 = 0\) (tidak ada variabel independen yang berpengaruh terhadap \(Y\)); \(H_1\): tidak semua \(\beta_j = 0\), \(j = 1, 2, 3\) (minimal ada satu variabel independen yang berpengaruh terhadap \(Y\)).
  2. Taraf nyata: \(\alpha = 5\%\).
  3. Statistik uji: \(F_{hit} = \dfrac{KT_{Regresi}}{KT_{Galat}} = 156,110\), sedangkan \(F_{(0{,}05;\,3,\,33)} = 2,892\).
  4. Kriteria penolakan: tolak \(H_0\) jika \(F_{hit} > F_{tabel}\) atau p-value \(< \alpha\).
  5. Kesimpulan: karena \(F_{hit}\) = 156,110 > \(F_{tabel}\) = 2,892 dan p-value = < 2,2e-16 < 0,05, maka \(H_0\) ditolak. Pada taraf nyata 5%, minimal ada satu variabel independen yang berpengaruh signifikan, artinya IPM, rata-rata lama sekolah, dan harapan lama sekolah secara bersama-sama berpengaruh signifikan terhadap pengeluaran riil per kapita, sehingga model regresi dapat digunakan.

4.6.2 Uji Parsial (Uji t)

Tabel 4.11 Hasil Uji t (parsial)
Variabel Estimate Std. Error t hitung t tabel p-value Keputusan
X1 (IPM) 680,92 41,41 16,445 2,035 < 2,2e-16 Tolak H0
X2 (RLS) -880,70 175,25 -5,026 2,035 0,00001711000000000000 Tolak H0
X3 (HLS) -741,40 151,10 -4,907 2,035 0,00002427000000000000 Tolak H0

Untuk setiap variabel independen \(X_j\) (\(j = 1, 2, 3\)) digunakan langkah pengujian berikut.

  1. Hipotesis: \(H_0: \beta_j = 0\) (\(X_j\) tidak berpengaruh signifikan terhadap \(Y\)); \(H_1: \beta_j \neq 0\) (\(X_j\) berpengaruh signifikan terhadap \(Y\)).
  2. Taraf nyata: \(\alpha = 5\%\), dengan \(t_{(0{,}025;\,33)} = 2,035\).
  3. Statistik uji: \(t_{hit} = \dfrac{b_j}{SE(b_j)}\).
  4. Kriteria penolakan: tolak \(H_0\) jika \(|t_{hit}| > t_{tabel}\) atau p-value \(< \alpha\).
  5. Kesimpulan:
    • \(X_1\) (IPM): \(|t_{hit}|\) = 16,445 > 2,035 dan p-value = < 2,2e-16 < 0,05, maka \(H_0\) ditolak. IPM berpengaruh signifikan terhadap pengeluaran riil per kapita.
    • \(X_2\) (RLS): \(|t_{hit}|\) = 5,026 > 2,035 dan p-value = 0,00001711 < 0,05, maka \(H_0\) ditolak. Rata-rata lama sekolah berpengaruh signifikan terhadap pengeluaran riil per kapita.
    • \(X_3\) (HLS): \(|t_{hit}|\) = 4,907 > 2,035 dan p-value = 0,00002427 < 0,05, maka \(H_0\) ditolak. Harapan lama sekolah berpengaruh signifikan terhadap pengeluaran riil per kapita.

Dengan demikian, seluruh variabel independen berpengaruh signifikan terhadap pengeluaran riil per kapita pada taraf nyata 5%, dengan pengaruh terbesar dari IPM (nilai |t| tertinggi).

4.7 Identifikasi Outlier dengan Influence Plot

Gambar 4.5 Influence plot (ukuran lingkaran sebanding dengan Cook's Distance)

Gambar 4.5 Influence plot (ukuran lingkaran sebanding dengan Cook’s Distance)

Tabel 4.12 Observasi yang teridentifikasi pada influence plot
Observasi Provinsi StudRes Hat CookD
10 Kepulauan Riau 2,7176 0,1910 0,3653
13 DI Yogyakarta 2,6263 0,2764 0,5589
36 Papua Tengah 0,6573 0,3799 0,0673
37 Papua Pegunungan 1,8654 0,4756 0,7339

Influence plot pada Gambar 4.5 menandai empat observasi, yaitu 10 (Kepulauan Riau), 13 (DI Yogyakarta), 36 (Papua Tengah), 37 (Papua Pegunungan). Ketiga ukuran diagnostik dibaca dengan batas berikut:

  • StudRes (outlier pengamatan-Y): nilai \(|t_i| > 2\) menandakan residual yang relatif besar. Observasi yang melampaui batas ini adalah 10 (Kepulauan Riau), 13 (DI Yogyakarta).
  • Hat (leverage, outlier pengamatan-X): batasnya \(2p/n = 2(4)/37 =\) 0,2162. Observasi yang melampaui batas ini adalah 13 (DI Yogyakarta), 30 (Maluku), 36 (Papua Tengah), 37 (Papua Pegunungan).
  • CookD (pengaruh terhadap koefisien): batasnya \(4/n =\) 0,1081. Observasi yang melampaui batas ini adalah 10 (Kepulauan Riau), 13 (DI Yogyakarta), 37 (Papua Pegunungan).

Pembacaan terhadap observasi pada Tabel 4.12 adalah sebagai berikut. Observasi dengan StudRes besar tetapi leverage kecil merupakan kandidat outlier pada arah \(Y\), yaitu pengeluaran riil yang menyimpang dari nilai dugaan model. Observasi dengan leverage tinggi merupakan wilayah yang kombinasi nilai \(X_1\), \(X_2\), dan \(X_3\)-nya berbeda dari pola umum, misalnya Papua Tengah dan Papua Pegunungan yang indikator pembangunan manusianya sangat rendah, atau DI Yogyakarta yang sangat tinggi. Observasi dengan Cook’s Distance terbesar, yaitu Papua Pegunungan (CookD = 0,7339), adalah pengamatan yang paling memengaruhi koefisien regresi. Grafik ini hanya berfungsi sebagai identifikasi awal, sehingga status outlier diuji secara formal dengan Uji Bonferroni.

4.8 Uji Outlier dengan Uji Bonferroni

Output fungsi outlierTest() pada R:

No Studentized residuals with Bonferroni p < 0.05
Largest |rstudent|:
   rstudent unadjusted p-value Bonferroni p
10 2.717634           0.010524      0.38938
Tabel 4.13 Hasil Uji Bonferroni untuk observasi dengan |rstudent| terbesar
Observasi Provinsi rstudent p-value tak terkoreksi Bonferroni p
10 Kepulauan Riau 2,717634 0,01052 0,3894

Observasi dengan nilai mutlak studentized residual terbesar adalah observasi ke-10 (Kepulauan Riau). Pengujian hipotesisnya:

  1. Hipotesis: \(H_0\): observasi ke-10 bukan outlier; \(H_1\): observasi ke-10 merupakan outlier.
  2. Taraf nyata: \(\alpha = 5\%\).
  3. Statistik uji: \(t_i = e_i\sqrt{\dfrac{n-p-1}{SSE(1-h_{ii}) - e_i^2}} = 2,7176\), dengan p-value tak terkoreksi = 0,01052 dan \(p_{Bonferroni} = \min\{1,\, 37 \times 0,01052\} = 0,3894\).
  4. Kriteria penolakan: tolak \(H_0\) jika \(p_{Bonferroni} < \alpha\) (atau \(|t_i| > t_{(\alpha/2n;\,n-p-1)} = 3,511\)).
  5. Kesimpulan: karena \(p_{Bonferroni}\) = 0,3894 > 0,05, maka \(H_0\) diterima. Observasi ke-10 tidak terbukti sebagai outlier yang signifikan secara statistik. Oleh karena observasi dengan |rstudent| terbesar pun tidak signifikan, tidak terdapat observasi lain yang teridentifikasi sebagai outlier pada taraf 5%.

Perlu dicatat bahwa p-value tak terkoreksi (0,01052) tampak signifikan jika dilihat sendiri, tetapi koreksi Bonferroni memperhitungkan bahwa nilai terbesar dipilih dari 37 pengamatan, sehingga p-value menjadi 0,3894. Hasil ini menunjukkan bahwa observasi yang tampak menonjol pada influence plot tidak cukup ekstrem untuk dinyatakan sebagai outlier secara formal. Observasi tersebut tetap perlu dicermati (misalnya Papua Pegunungan yang memiliki Cook’s Distance terbesar, serta Kepulauan Riau dan DI Yogyakarta yang residualnya besar), tetapi tidak ada dasar statistik untuk menghapusnya dari data. Model yang diperoleh dapat dipertahankan.

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil analisis regresi linier berganda terhadap 37 provinsi di Indonesia dengan satu variabel dependen (Pengeluaran Riil per Kapita) dan tiga variabel independen (IPM, Rata-rata Lama Sekolah, dan Harapan Lama Sekolah), diperoleh kesimpulan sebagai berikut:

  1. Data dan statistik deskriptif. Data sekunder dari BPS terdiri dari 37 observasi lengkap tanpa data hilang. Rata-rata pengeluaran riil per kapita adalah 11.366, dengan nilai terendah di Papua Pegunungan dan tertinggi di Kepulauan Riau.
  2. Model regresi. Model yang terbentuk adalah \(\hat{Y} = -20.975,30 + 680,92X_1 - 880,70X_2 - 741,40X_3\) dengan \(R^2\) = 0,9342 ( 93,42% variasi \(Y\) dijelaskan model) dan \(R^2_{adj}\) = 0,9282.
  3. Asumsi klasik. Seluruh asumsi klasik terpenuhi: galat berdistribusi normal (Shapiro-Wilk), varians galat konstan (Breusch-Pagan), tidak ada autokorelasi (Durbin-Watson), dan tidak ada multikolinieritas (VIF < 10).
  4. Uji hipotesis. Uji F menunjukkan bahwa ketiga variabel independen secara simultan berpengaruh signifikan terhadap pengeluaran riil per kapita (F = 156,110, p-value < 2,2e-16). Uji t menunjukkan bahwa IPM, rata-rata lama sekolah, dan harapan lama sekolah masing-masing berpengaruh signifikan pada taraf nyata 5%.
  5. Evaluasi outlier. Influence plot menandai observasi 10 (Kepulauan Riau), 13 (DI Yogyakarta), 36 (Papua Tengah), 37 (Papua Pegunungan) sebagai pengamatan yang perlu diperhatikan. Namun, berdasarkan Uji Bonferroni, nilai \(p_{Bonferroni}\) terkecil sebesar 0,3894 > 0,05, sehingga tidak terdapat observasi yang terbukti sebagai outlier signifikan dan model dapat dipertahankan tanpa menghapus data.

5.2 Saran

  1. Dalam menjalankan fungsi pada program R, penulisan sintaks dan pembuatan variabel perlu dilakukan dengan teliti karena kesalahan kecil dapat menyebabkan galat atau mengubah hasil analisis.
  2. Tafsiran koefisien \(X_2\) dan \(X_3\) yang bertanda negatif perlu dilakukan dengan hati-hati karena IPM memuat komponen pendidikan. Penelitian selanjutnya dapat mempertimbangkan model tanpa IPM atau metode lain, misalnya ridge regression, untuk membandingkan hasil.
  3. Observasi dengan leverage dan Cook’s Distance besar, khususnya Papua Pegunungan, sebaiknya tetap dicermati. Peneliti selanjutnya dapat membandingkan model dengan dan tanpa observasi tersebut atau menggunakan regresi robust sebagai analisis sensitivitas.
  4. Untuk data yang tidak berstruktur waktu, pengujian autokorelasi dapat dilengkapi dengan pemeriksaan autokorelasi spasial antarwilayah.

DAFTAR PUSTAKA

Adnyani, N. P. S., Endiana, I. D. M., & Arizona, P. E. (2020). Pengaruh Penerapan Good Corporate Governance dan Corporate Social Responsibility terhadap Kinerja Perusahaan. Jurnal Kharisma.

Badan Pusat Statistik (BPS). (2024). Indeks Pembangunan Manusia (IPM) Indonesia tahun 2024 mencapai 75,02, meningkat 0,63 poin atau 0,85% dibandingkan tahun sebelumnya yang sebesar 74,39. Badan Pusat Statistik Republik Indonesia.

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.

Chamidah, S. (2020). Pengaruh Kepemimpinan, Kedisiplinan, dan Lingkungan Kerja terhadap Prestasi Kerja Guru. ASET: Jurnal Manajemen dan Bisnis.

Fadlilah, A. F., Chrisnanto, Y. H., & Ningsih, A. K. (2022). Identifikasi Anomali Data Akademik Menggunakan DBSCAN Outlier Detection. Prosiding Seminar Nasional Sains dan Teknologi, 12(1), 336-342.

Firmansyah, A., & Triastie, G. A. (2021). Bagaimana Peran Tata Kelola Perusahaan dalam Penghindaran Pajak, Pengungkapan Risiko, Efisiensi Investasi? Indramayu: Penerbit ADAB.

Hakim, L. (2016). Analisis Regresi pada Data Outlier dengan Metode MM-Estimasi. Malang: Universitas Islam Negeri Maulana Malik Ibrahim.

LaFromboise, L. (2024). Power Comparisons of Tests for Normality and Recommendations.

Mardiatmoko, G. (2020). Pentingnya Uji Asumsi Klasik pada Analisis Regresi Linier Berganda (Studi Kasus Penyusunan Persamaan Allometrik Kenari Muda [Canarium indicum L.]). BAREKENG: Jurnal Ilmu Matematika dan Terapan, 14(3), 333-342.

Qomusuddin, I. F., & Romlah, S. (2021). Analisis Data Kuantitatif dengan Program IBM SPSS Statistic 20.0. Yogyakarta: CV Budi Utama.

Rachman, T., & Kurniawati, D. (2024). Identifikasi dan Penanganan Heteroskedastisitas pada Model Regresi dengan Data Keuangan Perusahaan.

Razek, A. M. A. E. (2022). Detecting of Multicollinearity, Autocorrelation and Heteroscedasticity in Regression Analysis.

Rini, D. S. (2025). Modul Praktikum Analisis Regresi dan Korelasi. Bengkulu: Laboratorium Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Bengkulu.

Rini, D. S. (2026). Modul Analisis Regresi. Bengkulu: Laboratorium Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Bengkulu.

Uyanto, S. (2024). Power Comparisons of Five Most Commonly Used Autocorrelation Tests. Pakistan Journal of Statistics and Operation Research, 16(1).

Wahyono, K. (2021). Analisis Regresi Sederhana dan Berganda. Yogyakarta: UAD PRESS.

LAMPIRAN

Lampiran 1. Data Batasan Masalah

Data pengeluaran riil per kapita (Y), IPM (X1), rata-rata lama sekolah (X2), dan harapan lama sekolah (X3) 37 provinsi
No Provinsi Y X1 X2 X3
1 Aceh 10811 75.36 9.64 14.39
2 Sumatera Utara 11460 75.76 9.93 13.49
3 Sumatera Barat 11718 76.43 9.44 14.30
4 Riau 11857 75.67 9.43 13.42
5 Jambi 11621 74.36 8.90 13.14
6 Sumatera Selatan 12015 73.84 8.57 12.64
7 Bengkulu 11733 74.91 9.04 13.75
8 Lampung 11258 73.13 8.36 12.78
9 Kepulauan Bangka Belitung 13667 74.55 8.33 12.49
10 Kepulauan Riau 15573 79.89 10.50 13.27
11 Jawa Barat 12157 74.92 8.87 12.80
12 Jawa Tengah 12276 73.87 8.02 12.86
13 DI Yogyakarta 15361 81.62 9.92 15.70
14 Jawa Timur 12852 75.35 8.28 13.43
15 Banten 13097 76.35 9.23 13.10
16 Bali 14920 78.63 9.54 13.62
17 Nusa Tenggara Barat 11606 73.10 7.87 13.98
18 Nusa Tenggara Timur 8534 69.14 8.02 13.23
19 Kalimantan Barat 10321 71.19 7.78 12.68
20 Kalimantan Tengah 12303 74.28 8.81 12.77
21 Kalimantan Selatan 13399 75.19 8.62 12.87
22 Kalimantan Timur 13793 78.79 10.02 14.03
23 Kalimantan Utara 10197 73.41 9.35 13.21
24 Sulawesi Utara 11998 75.68 9.84 12.97
25 Sulawesi Tengah 10536 72.24 9.04 13.34
26 Sulawesi Selatan 12275 75.18 8.86 13.55
27 Sulawesi Tenggara 10606 73.62 9.42 13.71
28 Gorontalo 11539 72.01 8.29 13.17
29 Sulawesi Barat 10208 70.46 8.15 12.89
30 Maluku 9684 73.40 10.26 14.09
31 Maluku Utara 9320 71.84 9.37 13.75
32 Papua Barat 8805 67.69 7.86 13.17
33 Papua Barat Daya 8733 69.65 8.39 13.88
34 Papua 11037 73.83 9.82 13.72
35 Papua Selatan 9756 68.86 8.38 12.67
36 Papua Tengah 7809 60.25 6.12 9.63
37 Papua Pegunungan 5707 54.43 4.21 9.97

Lampiran 2. Sintaks Analisis Regresi Berganda

Seluruh sintaks R yang digunakan dalam laporan ini (termasuk data dan pemanggilan paket) adalah sebagai berikut.

knitr::opts_chunk$set(
  echo = FALSE, warning = FALSE, message = FALSE,
  fig.align = "center", fig.width = 7, fig.height = 4.5, dpi = 110
)

# Paket yang dibutuhkan (install sekali saja bila belum ada):
# install.packages(c("car", "lmtest", "knitr", "rmarkdown"))
library(car)     # vif(), influencePlot(), outlierTest()
library(lmtest)  # bptest(), dwtest()
library(knitr)   # kable()

# Fungsi bantu: format angka gaya Indonesia (koma desimal, titik ribuan)
fmt <- function(x, d = 2) formatC(x, format = "f", digits = d,
                                  big.mark = ".", decimal.mark = ",")
# Fungsi bantu: format p-value
fp <- function(p) {
  ifelse(p < 2.2e-16, "< 2,2e-16",
         gsub("\\.", ",", format(signif(p, 4), scientific = FALSE)))
}
steps <- c(
  "Mulai",
  "Pengumpulan dan pemilihan data sekunder (BPS)",
  "Eksplorasi data dan statistik deskriptif",
  "Pembentukan dan estimasi model regresi linier berganda",
  "Uji asumsi klasik\n(normalitas, heteroskedastisitas,\nautokorelasi, multikolinieritas)",
  "Uji hipotesis: Uji F (simultan) dan Uji t (parsial)",
  "Evaluasi model: Influence Plot dan Uji Bonferroni",
  "Interpretasi hasil",
  "Kesimpulan dan saran",
  "Selesai"
)
m <- length(steps)
gap <- 1.6
op <- par(mar = c(0.2, 0.2, 0.2, 0.2))
plot.new()
plot.window(xlim = c(0, 10), ylim = c(0, m * gap))
for (i in seq_len(m)) {
  y <- (m - i + 1) * gap - 0.5
  terminal <- i %in% c(1, m)
  rect(1.8, y - 0.5, 8.2, y + 0.5,
       col = ifelse(terminal, "#2c3e50", "#ecf0f1"), border = "#2c3e50", lwd = 1.5)
  text(5, y, steps[i], cex = 0.85, col = ifelse(terminal, "white", "black"))
  if (i < m) arrows(5, y - 0.5, 5, y - gap + 0.5, length = 0.1, lwd = 1.5)
}
par(op)
ipm <- data.frame(
  Provinsi = c("Aceh", "Sumatera Utara", "Sumatera Barat", "Riau", "Jambi",
               "Sumatera Selatan", "Bengkulu", "Lampung", "Kepulauan Bangka Belitung",
               "Kepulauan Riau", "Jawa Barat", "Jawa Tengah", "DI Yogyakarta",
               "Jawa Timur", "Banten", "Bali", "Nusa Tenggara Barat",
               "Nusa Tenggara Timur", "Kalimantan Barat", "Kalimantan Tengah",
               "Kalimantan Selatan", "Kalimantan Timur", "Kalimantan Utara",
               "Sulawesi Utara", "Sulawesi Tengah", "Sulawesi Selatan",
               "Sulawesi Tenggara", "Gorontalo", "Sulawesi Barat", "Maluku",
               "Maluku Utara", "Papua Barat", "Papua Barat Daya", "Papua",
               "Papua Selatan", "Papua Tengah", "Papua Pegunungan"),
  Y  = c(10811, 11460, 11718, 11857, 11621, 12015, 11733, 11258, 13667, 15573,
         12157, 12276, 15361, 12852, 13097, 14920, 11606, 8534, 10321, 12303,
         13399, 13793, 10197, 11998, 10536, 12275, 10606, 11539, 10208, 9684,
         9320, 8805, 8733, 11037, 9756, 7809, 5707),
  X1 = c(75.36, 75.76, 76.43, 75.67, 74.36, 73.84, 74.91, 73.13, 74.55, 79.89,
         74.92, 73.87, 81.62, 75.35, 76.35, 78.63, 73.10, 69.14, 71.19, 74.28,
         75.19, 78.79, 73.41, 75.68, 72.24, 75.18, 73.62, 72.01, 70.46, 73.40,
         71.84, 67.69, 69.65, 73.83, 68.86, 60.25, 54.43),
  X2 = c(9.64, 9.93, 9.44, 9.43, 8.90, 8.57, 9.04, 8.36, 8.33, 10.50,
         8.87, 8.02, 9.92, 8.28, 9.23, 9.54, 7.87, 8.02, 7.78, 8.81,
         8.62, 10.02, 9.35, 9.84, 9.04, 8.86, 9.42, 8.29, 8.15, 10.26,
         9.37, 7.86, 8.39, 9.82, 8.38, 6.12, 4.21),
  X3 = c(14.39, 13.49, 14.30, 13.42, 13.14, 12.64, 13.75, 12.78, 12.49, 13.27,
         12.80, 12.86, 15.70, 13.43, 13.10, 13.62, 13.98, 13.23, 12.68, 12.77,
         12.87, 14.03, 13.21, 12.97, 13.34, 13.55, 13.71, 13.17, 12.89, 14.09,
         13.75, 13.17, 13.88, 13.72, 12.67, 9.63, 9.97)
)
vars <- c("Y", "X1", "X2", "X3")
n <- nrow(ipm)
cek <- data.frame(
  Pemeriksaan = c("Jumlah observasi (n)", "Jumlah variabel dependen", "Jumlah variabel independen",
                  "Jumlah data hilang (NA)", "Jumlah nama provinsi ganda"),
  Hasil = c(n, 1, 3, sum(is.na(ipm[, vars])), sum(duplicated(ipm$Provinsi)))
)
kable(cek, caption = "Tabel 4.1 Hasil pemeriksaan data")
par(mfrow = c(1, 4), mar = c(3, 4, 3, 1))
for (v in vars) {
  boxplot(ipm[[v]], main = v, col = "#aed6f1", ylab = "", outpch = 19)
}
par(mfrow = c(1, 1))
par(mfrow = c(1, 3), mar = c(4, 4, 2, 1))
for (v in c("X1", "X2", "X3")) {
  plot(ipm[[v]], ipm$Y, pch = 19, col = "#2980b9", xlab = v, ylab = "Y",
       main = paste("Y vs", v))
  abline(lm(ipm$Y ~ ipm[[v]]), col = "#c0392b", lwd = 2)
}
par(mfrow = c(1, 1))
kor <- cor(ipm[, vars])
kable(round(kor, 4), caption = "Tabel 4.2 Matriks korelasi Pearson antarvariabel", format.args = list(decimal.mark = ","))
desk <- t(sapply(ipm[, vars], 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)
)))
desk_tab <- data.frame(
  Variabel = rownames(desk),
  Min = c(fmt(desk["Y", "Min"], 0), fmt(desk[-1, "Min"], 2)),
  Q1 = c(fmt(desk["Y", "Q1"], 0), fmt(desk[-1, "Q1"], 2)),
  Median = c(fmt(desk["Y", "Median"], 0), fmt(desk[-1, "Median"], 2)),
  Mean = c(fmt(desk["Y", "Mean"], 0), fmt(desk[-1, "Mean"], 2)),
  Q3 = c(fmt(desk["Y", "Q3"], 0), fmt(desk[-1, "Q3"], 2)),
  Max = c(fmt(desk["Y", "Max"], 0), fmt(desk[-1, "Max"], 2)),
  SD = c(fmt(desk["Y", "SD"], 0), fmt(desk[-1, "SD"], 2))
)
kable(desk_tab, row.names = FALSE, align = "lrrrrrrr",
      caption = "Tabel 4.3 Statistik deskriptif")
model <- lm(Y ~ X1 + X2 + X3, data = ipm)
sm <- summary(model)
b <- coef(model)
p_par <- length(b)                 # banyaknya parameter (termasuk intersep)
dfres <- df.residual(model)
fst <- unname(sm$fstatistic)       # F, db1, db2
pF <- pf(fst[1], fst[2], fst[3], lower.tail = FALSE)

koef <- data.frame(
  Koefisien = c("(Intercept)", "X1", "X2", "X3"),
  Estimate = fmt(sm$coefficients[, 1], 2),
  Std.Error = fmt(sm$coefficients[, 2], 2),
  t.value = fmt(sm$coefficients[, 3], 3),
  p.value = fp(sm$coefficients[, 4])
)
kable(koef, row.names = FALSE, align = "lrrrr",
      caption = "Tabel 4.4 Summary regresi linier berganda")
res <- residuals(model)
alpha <- 0.05

sw  <- shapiro.test(res)
bp  <- bptest(model)
dw  <- dwtest(model)
vf  <- vif(model)
par(mfrow = c(1, 2), mar = c(4, 4, 3, 1))
hist(res, breaks = 10, col = "#aed6f1", border = "white", freq = FALSE,
     main = "Histogram Residual", xlab = "Residual")
curve(dnorm(x, mean(res), sd(res)), add = TRUE, col = "#c0392b", lwd = 2)
qqnorm(res, pch = 19, col = "#2980b9", main = "Normal Q-Q Plot Residual")
qqline(res, col = "#c0392b", lwd = 2)
par(mfrow = c(1, 1))
kable(data.frame(W = fmt(sw$statistic, 4), `p-value` = fp(sw$p.value), check.names = FALSE),
      row.names = FALSE, align = "cc",
      caption = "Tabel 4.5 Hasil uji normalitas Shapiro-Wilk")
kable(data.frame(BP = fmt(unname(bp$statistic), 4), DF = unname(bp$parameter),
                 `p-value` = fp(bp$p.value), check.names = FALSE),
      row.names = FALSE, align = "ccc",
      caption = "Tabel 4.6 Hasil uji heteroskedastisitas Breusch-Pagan")
plot(fitted(model), res, pch = 19, col = "#2980b9",
     xlab = "Nilai dugaan (fitted)", ylab = "Residual", main = "Residual vs Fitted")
abline(h = 0, col = "#c0392b", lwd = 2, lty = 2)
kable(data.frame(DW = fmt(unname(dw$statistic), 4), `p-value` = fp(dw$p.value), check.names = FALSE),
      row.names = FALSE, align = "cc",
      caption = "Tabel 4.7 Hasil uji autokorelasi Durbin-Watson")
vif_tab <- data.frame(Variabel = names(vf), VIF = fmt(unname(vf), 4),
                      Tolerance = fmt(1 / unname(vf), 4),
                      Keputusan = ifelse(vf < 10, "Tidak multikolinier", "Multikolinier"))
kable(vif_tab, row.names = FALSE, align = "lrrl",
      caption = "Tabel 4.8 Nilai VIF dan Tolerance")
ring <- data.frame(
  Asumsi = c("Normalitas", "Homoskedastisitas", "Non-autokorelasi", "Non-multikolinieritas"),
  Uji = c("Shapiro-Wilk", "Breusch-Pagan", "Durbin-Watson", "VIF"),
  Statistik = c(fmt(sw$statistic, 4), fmt(unname(bp$statistic), 4),
                fmt(unname(dw$statistic), 4), paste0("maks. ", fmt(max(vf), 4))),
  `p-value` = c(fp(sw$p.value), fp(bp$p.value), fp(dw$p.value), "-"),
  Keputusan = c(ifelse(sw$p.value > alpha, "Terpenuhi", "Tidak terpenuhi"),
                ifelse(bp$p.value > alpha, "Terpenuhi", "Tidak terpenuhi"),
                ifelse(dw$p.value > alpha, "Terpenuhi", "Tidak terpenuhi"),
                ifelse(all(vf < 10), "Terpenuhi", "Tidak terpenuhi")),
  check.names = FALSE
)
kable(ring, row.names = FALSE, align = "llrrl",
      caption = "Tabel 4.9 Ringkasan hasil uji asumsi klasik")
jkr <- sum((fitted(model) - mean(ipm$Y))^2)
jkg <- sum(res^2)
jkt <- jkr + jkg
k_var <- p_par - 1
ktr <- jkr / k_var
ktg <- jkg / dfres
Fhit <- ktr / ktg
Ftab <- qf(1 - alpha, k_var, dfres)
anova_tab <- data.frame(
  `Sumber Variasi` = c("Regresi", "Galat", "Total"),
  db = c(k_var, dfres, n - 1),
  JK = fmt(c(jkr, jkg, jkt), 0),
  KT = c(fmt(ktr, 0), fmt(ktg, 0), ""),
  `F hitung` = c(fmt(Fhit, 3), "", ""),
  `p-value` = c(fp(pF), "", ""),
  check.names = FALSE
)
kable(anova_tab, row.names = FALSE, align = "lrrrrr",
      caption = "Tabel 4.10 Tabel ANOVA untuk Uji F")
ttab <- qt(1 - alpha / 2, dfres)
thit <- sm$coefficients[, 3]
pt_val <- sm$coefficients[, 4]
ut_tab <- data.frame(
  Variabel = c("X1 (IPM)", "X2 (RLS)", "X3 (HLS)"),
  Estimate = fmt(sm$coefficients[-1, 1], 2),
  `Std. Error` = fmt(sm$coefficients[-1, 2], 2),
  `t hitung` = fmt(thit[-1], 3),
  `t tabel` = fmt(ttab, 3),
  `p-value` = fp(pt_val[-1]),
  Keputusan = ifelse(pt_val[-1] < alpha, "Tolak H0", "Terima H0"),
  check.names = FALSE
)
kable(ut_tab, row.names = FALSE, align = "lrrrrrl",
      caption = "Tabel 4.11 Hasil Uji t (parsial)")
inf <- influencePlot(model, main = "Influence Plot")
ids <- as.integer(rownames(inf))
inf_tab <- data.frame(
  Observasi = ids,
  Provinsi = ipm$Provinsi[ids],
  StudRes = fmt(inf$StudRes, 4),
  Hat = fmt(inf$Hat, 4),
  CookD = fmt(inf$CookD, 4)
)
kable(inf_tab, row.names = FALSE, align = "rlrrr",
      caption = "Tabel 4.12 Observasi yang teridentifikasi pada influence plot")
batas_lev <- 2 * p_par / n
batas_cook <- 4 / n
hat_all <- hatvalues(model)
cook_all <- cooks.distance(model)
rs_all <- rstudent(model)
lev_ids <- which(hat_all > batas_lev)
cook_ids <- which(cook_all > batas_cook)
res_ids <- which(abs(rs_all) > 2)
lst <- function(v) paste0(v, " (", ipm$Provinsi[v], ")", collapse = ", ")
ot <- outlierTest(model)
rt <- rstudent(model)
imax <- which.max(abs(rt))
df_t <- dfres - 1                                   # n - p - 1
p_unadj <- 2 * pt(abs(rt[imax]), df_t, lower.tail = FALSE)
p_bonf <- min(1, n * p_unadj)
t_krit <- qt(1 - alpha / (2 * n), df_t)             # nilai kritis terkoreksi Bonferroni
print(ot)
bon_tab <- data.frame(
  Observasi = unname(imax), Provinsi = ipm$Provinsi[imax],
  `rstudent` = fmt(rt[imax], 6), `p-value tak terkoreksi` = fp(p_unadj),
  `Bonferroni p` = fp(p_bonf), check.names = FALSE
)
kable(bon_tab, row.names = FALSE, align = "rlrrr",
      caption = "Tabel 4.13 Hasil Uji Bonferroni untuk observasi dengan |rstudent| terbesar")
lamp <- data.frame(No = seq_len(n), ipm)
kable(lamp, row.names = FALSE, align = "rlrrrr",
      caption = "Data pengeluaran riil per kapita (Y), IPM (X1), rata-rata lama sekolah (X2), dan harapan lama sekolah (X3) 37 provinsi")
summary(model)
shapiro.test(res)
bptest(model)
dwtest(model)
vif(model)
outlierTest(model)
print(inf)

Lampiran 3. Output Summary Model Regresi


Call:
lm(formula = Y ~ X1 + X2 + X3, data = ipm)

Residuals:
    Min      1Q  Median      3Q     Max 
-925.89 -404.68  -75.06  344.74 1235.00 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -20975.30    1834.34 -11.435 5.09e-13 ***
X1             680.92      41.41  16.445  < 2e-16 ***
X2            -880.70     175.25  -5.026 1.71e-05 ***
X3            -741.40     151.10  -4.907 2.43e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 552 on 33 degrees of freedom
Multiple R-squared:  0.9342,    Adjusted R-squared:  0.9282 
F-statistic: 156.1 on 3 and 33 DF,  p-value: < 2.2e-16

Lampiran 4. Output Uji Asumsi Klasik


    Shapiro-Wilk normality test

data:  res
W = 0.972, p-value = 0.4653

    studentized Breusch-Pagan test

data:  model
BP = 2.3802, df = 3, p-value = 0.4973

    Durbin-Watson test

data:  model
DW = 1.6917, p-value = 0.1097
alternative hypothesis: true autocorrelation is greater than 0
      X1       X2       X3 
4.831156 4.896164 2.887140 

Lampiran 5. Output Pengujian Outlier

No Studentized residuals with Bonferroni p < 0.05
Largest |rstudent|:
   rstudent unadjusted p-value Bonferroni p
10 2.717634           0.010524      0.38938
    StudRes       Hat     CookD
10 2.717634 0.1910178 0.3652868
13 2.626319 0.2764380 0.5589187
36 0.657289 0.3798931 0.0673267
37 1.865448 0.4756132 0.7339058