Pendahuluan

Latar Belakang

Kemiskinan merupakan salah satu persoalan mendasar dalam pembangunan sosial ekonomi yang menjadi pusat perhatian pemerintah di negara manapun, termasuk Indonesia. Kemiskinan adalah kondisi di mana seseorang tidak dapat menikmati segala macam pilihan dan kesempatan dalam pemenuhan kebutuhan dasarnya, seperti tidak dapat memenuhi kesehatan, standar hidup layak, kebebasan, harga diri dan rasa dihormati seperti orang lain (Wulandari et al., 2022).

Kondisi kemiskinan semakin kompleks dan dinamis, terutama pada tahun 2021, di mana Indonesia mulai berupaya pulih dari dampak pandemi COVID-19 yang menimbulkan krisis sosial dan ekonomi. Di tengah upaya pemulihan tersebut, Pulau Jawa menjadi fokus penting karena mencerminkan kompleksitas dinamika pembangunan antara pertumbuhan ekonomi yang pesat dan ketimpangan sosial yang masih nyata, sehingga menjadikannya lokasi yang strategis untuk memahami faktor-faktor yang memengaruhi tingkat kemiskinan tersebut.

Untuk memahami kontribusi tiap faktor terhadap tingkat kemiskinan, digunakan pendekatan regresi logistik ordinal yang mampu menganalisis hubungan antara variabel prediktor numerik dengan variabel respon kategori bertingkat. Tingkat kemiskinan dicerminkan dengan persentase penduduk miskin yang telah dikategorikan ke dalam tiga tingkat, yaitu rendah, sedang, dan tinggi. Sementara faktor-faktor yang dianalisis meliputi tingkat pengangguran terbuka (TPT) sebagai indikator kondisi pasar kerja, rata-rata lama sekolah (RLS) yang mewakili aspek pendidikan, akses terhadap sanitasi layak sebagai cerminan kualitas hidup dan kesehatan lingkungan, serta upah minimum kabupaten/kota yang mencerminkan kebijakan ekonomi dan perlindungan tenaga kerja.

Tujuan Penelitian

Tujuan penelitian ini adalah menyusun model regresi logistik ordinal untuk mengidentifikasi dan mengukur besarnya pengaruh faktor-faktor yang dianalisis terhadap persentase penduduk miskin di Pulau Jawa tahun 2021.


Metodologi Penelitian

Data

Data yang digunakan pada penelitian ini adalah data sosial ekonomi 119 Kabupaten/Kota pada 6 provinsi di Pulau Jawa pada tahun 2021. Penelitian ini menggunakan 1 variabel dependen (respon) dan 4 variabel independen (prediktor) yang sebagian diperoleh dari Badan Pusat Statistik (BPS). Variabel dependen (Y) yang dianalisis pada penelitian ini yaitu persentase penduduk miskin (PPM).

Adapun definisi dari BPS (2024) untuk variabel independen (X) yang diduga memiliki keterkaitan dengan persentase penduduk miskin antara lain sebagai berikut:

  1. Tingkat pengangguran terbuka (\(X_1\)), mencerminkan persentase jumlah penganggur/pencari kerja terhadap jumlah angkatan kerja.

  2. Rata-rata lama sekolah (\(X_2\)), mendefinisikan jumlah tahun belajar penduduk usia 15 tahun keatas yang telah diselesaikan dalam pendidikan formal (tidak termasuk tahun yang mengulang).

  3. Persentase rumah tangga yang memiliki akses terhadap sanitasi layak (\(X_3\)), merupakan persentase rumah tangga yang memiliki fasilitas tempat Buang Air Besar (BAB) yang digunakan sendiri atau bersama, MCK Komunal, menggunakan kloset leher angsa, dan tempat pembuangan di tangki septik/IPAL atau di lubang tanah jika wilayah tempat tinggalnya di perdesaan.

  4. Upah minimum kabupaten/kota (\(X_4\)) menunjukkan besaran upah minimum kabupaten/kota (UMK) yang dinyatakan dalam juta rupiah.

Analisis Data

Metode yang digunakan pada penelitian ini yaitu regresi logistik ordinal. Regresi logistik ordinal merupakan metode statistika untuk menganalisis variabel dependen yang terdiri dari dua atau lebih kategori dan terdapat tingkatan dalam kategori tersebut (skala ordinal). Sedangkan variabel independen yang digunakan dalam model dapat berupa data kategori atau kontinu.

Model yang digunakan dalam regresi logistik ordinal adalah model logit kumulatif karena variabel dependen memiliki sifat ordinal dari respon yang dituangkan dalam peluang kumulatif (Shofiyah & Salamah, 2022). Persamaan umum regresi logistik ordinal dirumuskan sebagai berikut:

\[P\left(Y \leq m \mid x\right) = \frac{\exp\left(a_m + \sum_{k=1}^{p}\beta_k x_k\right)}{1 + \exp\left(a_m + \sum_{k=1}^{p}\beta_k x_k\right)} \tag{1}\]

Sebelum melakukan analisis regresi logistik ordinal, perlu dilakukan pengujian non-multikolinieritas antar variabel bebas untuk melihat ada/tidaknya korelasi antar variabel independen agar hasil pengujiannya tidak bias. Untuk mendeteksi adanya multikolinieritas digunakan nilai Variance Inflation Factor (VIF). Jika VIF < 10, maka tidak terdapat multikolinieritas dalam model.

\[VIF = \frac{1}{1 - R_k^2} \tag{2}\]

Dimana \(R^2\) = koefisien determinasi ketika \(X_k\) diregresikan dengan variabel-variabel X lainnya.

Uji Signifikansi Parameter Secara Serentak

Pengujian parameter secara keseluruhan dilakukan dengan menggunakan likelihood-ratio test.

Hipotesis:

\[H_0: \beta_1 = \beta_2 = \ldots = \beta_p = 0\]

\[H_1: \text{Paling sedikit ada satu } \beta_k \neq 0, \quad k = 1, 2, \ldots, p\]

Taraf Signifikansi: \(\alpha\)

Statistik Uji:

\[G^2 = -2\ln\left(\frac{\text{likelihood tanpa variabel bebas}}{\text{likelihood dengan variabel bebas}}\right) \tag{3}\]

Kriteria Penolakan: Tolak \(H_0\) jika \(G^2 > \chi^2_{(\alpha, p)}\) atau nilai p-value \(< \alpha\)

Uji Signifikansi Parameter Secara Parsial

Uji signifikansi parameter secara parsial dilakukan dengan menggunakan Wald test untuk menilai apakah variabel independen layak untuk masuk ke dalam model atau tidak (Sari & Purhadi, 2021).

Hipotesis:

\[H_0: \beta_k = 0\]

\[H_1: \beta_k \neq 0, \quad k = 1, 2, \ldots, p\]

Taraf Signifikansi: \(\alpha\)

Statistik Uji:

\[W_k^2 = \left(\frac{\hat{\beta}_k}{SE(\hat{\beta}_k)}\right)^2 \tag{4}\]

Kriteria Penolakan: Tolak \(H_0\) jika \(W_k^2 > \chi^2_{(\alpha, 1)}\) atau nilai p-value \(< \alpha\)

Uji Kesesuaian Model

Uji kesesuaian model digunakan untuk menilai apakah model sesuai atau tidak dengan statistik uji yang digunakan adalah Deviance (Sari & Purhadi, 2021).

Hipotesis:

\[H_0: \mu_i = 0 \quad \text{(Model sesuai)}\]

\[H_1: \mu_i \neq 0 \quad \text{(Model tidak sesuai)}\]

Taraf Signifikansi: \(\alpha\)

Statistik Uji:

\[D = -2\sum_{i=1}^{n}\left[y_{ij}\ln\left(\frac{\hat{\pi}_{ij}}{y_{ij}}\right) + \left(1 - y_{ij}\right)\ln\left(\frac{1 - \hat{\pi}_{ij}}{1 - y_{ij}}\right)\right] \tag{5}\]

dengan: \(\hat{\pi}_{ij} = \hat{\pi}_j(x_i)\) merupakan peluang observasi ke-\(i\) pada kategori ke-\(j\), dan \(df = J - (p+1)\) dimana \(J\) merupakan jumlah kovariat dan \(p\) merupakan jumlah variabel prediktor.

Kriteria Penolakan: Tolak \(H_0\) jika Deviance \(> \chi^2_{(df;\alpha)}\) atau nilai p-value \(< \alpha\)

Ketepatan Klasifikasi

Ketepatan klasifikasi model regresi logistik dapat dilihat melalui nilai akurasi berdasarkan confusion matrix (Dewi & Pratiwi, 2021). Nilai APER (Apparent Error Rate) menyatakan proporsi sampel yang salah diklasifikasikan oleh fungsi, dirumuskan sebagai berikut:

\[APER(\%) = \frac{n_{12} + n_{13} + n_{21} + n_{23} + n_{31} + n_{32}}{n} \times 100\% \tag{6}\]

Dimana \(n_{11}\) menyatakan jumlah \(Y_i\) dari \(y_i = 1\) yang tepat diklasifikasikan sebagai \(y_j = 1\). Maka ketepatan klasifikasi diperoleh dengan menghitung \(1 - APER\).

Langkah-langkah Analisis

Metode penelitian yang digunakan sebagai langkah-langkah untuk mencapai tujuan penelitian yaitu sebagai berikut:

  1. Mengumpulkan data dari Badan Pusat Statistik (BPS). Kemudian variabel dependen (Y) dikategorikan berdasarkan nilai kuantilnya, yaitu:

    • 1 = rendah (\(0 \leq PPM < 7{,}475\))
    • 2 = sedang (\(7{,}475 \leq PPM \leq 12{,}685\))
    • 3 = tinggi (\(PPM > 12{,}685\))
  2. Melakukan deskriptif statistik pada data persentase penduduk miskin di Pulau Jawa tahun 2021 serta faktor-faktor yang diduga memiliki pengaruh terhadap persentase penduduk miskin.

  3. Melakukan uji non-multikolinearitas antar variabel independen.

  4. Melakukan analisis regresi logistik ordinal dengan alur sebagai berikut:

    1. Melakukan uji non-multikolinieritas.
    2. Melakukan uji signifikansi parameter secara serentak (likelihood-ratio) dan parsial (wald).
    3. Melakukan uji kesesuaian model menggunakan goodness of fit.
    4. Menginterpretasikan model untuk faktor-faktor yang berpengaruh.
    5. Membangun klasifikasi fungsi peluang setiap kategori.
    6. Menghitung persentase ketepatan klasifikasi dari tiap kategori.
    7. Menginterpretasikan hasil ketepatan klasifikasi.

Hasil dan Pembahasan

Persiapan Data

# Memuat package yang diperlukan
library(readxl)
library(MASS)
library(car)
library(lmtest)
library(knitr)
# Input data manual (119 Kabupaten/Kota di Pulau Jawa, 2021)
# Variabel:
# Y  = Kategori PPM (1=Rendah, 2=Sedang, 3=Tinggi)
# X1 = Tingkat Pengangguran Terbuka (TPT)
# X2 = Rata-rata Lama Sekolah (RLS)
# X3 = Persentase Sanitasi Layak (PSL)
# X4 = Upah Minimum Kabupaten/Kota (UMK)

# Membaca data dari file Excel
data <- read_excel("D:/College/Komlan/data_kemiskinan.xlsx")

# Kategorisasi Y berdasarkan kuantil
data$Y <- cut(data$Y,
              breaks = c(-Inf, 7.475, 12.685, Inf),
              labels = c("Rendah", "Sedang", "Tinggi"),
              include.lowest = TRUE,
              ordered_result = TRUE)

data$Y <- factor(data$Y, levels = c("Rendah", "Sedang", "Tinggi"), ordered = TRUE)
colnames(data) <- c("Nama_Wilayah", "Y", "X1", "X2", "X3", "X4")
head(data)

Statistika Deskriptif

Pemodelan persentase penduduk miskin di Pulau Jawa berdasarkan kabupaten/kota pada tahun 2021 diawali dengan deskripsi variabel penelitian. Deskripsi dari variabel respon dari 119 kabupaten/kota di Pulau Jawa yaitu terdapat 30 kabupaten/kota dengan persentase penduduk miskin tinggi, 59 kabupaten/kota dengan persentase sedang, dan 30 kabupaten/kota dengan persentase rendah.

# Ringkasan statistik variabel bebas (otomatis dari data)
desc_stats <- data.frame(
  Variabel  = c("TPT (X1)", "RLS (X2)", "PSL (X3)", "UMK (X4)"),
  Minimum   = sapply(data[, c("X1","X2","X3","X4")], min),
  Maksimum  = sapply(data[, c("X1","X2","X3","X4")], max),
  Rata.rata = sapply(data[, c("X1","X2","X3","X4")], mean),
  Variansi  = sapply(data[, c("X1","X2","X3","X4")], var)
)
kable(desc_stats, caption = "Tabel 1. Deskripsi Variabel Bebas",
      align = "lrrrr", digits = 3)
Tabel 1. Deskripsi Variabel Bebas
Variabel Minimum Maksimum Rata.rata Variansi
X1 TPT (X1) 2.04 13.070 6.862 7.127
X2 RLS (X2) 4.86 11.820 8.439 2.563
X3 PSL (X3) 39.44 98.840 81.458 216.344
X4 UMK (X4) 1.77 4.798 2.642 0.890

Uji Non-Multikolinearitas (Model Awal)

Sebelum dilakukan analisis regresi logistik ordinal, perlu dilakukan pengujian multikolinearitas antar variabel bebas. Nilai VIF < 10 mengindikasikan tidak adanya multikolinearitas.

# Regresi linear untuk menghitung VIF (menggunakan lm sebagai proxy)
model_lm <- lm(as.numeric(Y) ~ X1 + X2 + X3 + X4, data = data)
vif_values <- vif(model_lm)
kable(data.frame(Variabel = c("TPT (X1)","RLS (X2)","PSL (X3)","UMK (X4)"),
                 VIF = round(vif_values, 4)),
      caption = "Tabel 2. VIF Model Awal", align = "lr")
Tabel 2. VIF Model Awal
Variabel VIF
X1 TPT (X1) 1.9301
X2 RLS (X2) 1.9375
X3 PSL (X3) 1.4921
X4 UMK (X4) 1.8112

Semua nilai VIF untuk masing-masing variabel bebas adalah kurang dari 10 (VIF < 10). Hal ini mengindikasikan bahwa tidak ada kasus multikolinearitas antar variabel bebas, sehingga semua variabel bebas bisa dimasukkan ke dalam model.

Pengujian Parameter

Uji Serentak (Likelihood-ratio)

Pengujian secara serentak digunakan untuk mengetahui kebermaknaan variabel secara bersama-sama.

Hipotesis:

\[H_0: \beta_1 = \beta_2 = \beta_3 = \beta_4 = 0\]

\[H_1: \text{Paling sedikit ada satu } \beta_k \neq 0, \quad k = 1, 2, 3, 4\]

data$Y <- factor(data$Y, levels = c("Rendah", "Sedang", "Tinggi"), ordered = TRUE)

model_penuh <- polr(Y ~ X1 + X2 + X3 + X4, data = data, Hess = TRUE)
model_null  <- polr(Y ~ 1, data = data, Hess = TRUE)

G2      <- as.numeric(2 * (logLik(model_penuh) - logLik(model_null)))
df_lr   <- length(coef(model_penuh)) - length(coef(model_null))
pval_lr <- pchisq(G2, df = df_lr, lower.tail = FALSE)

kable(data.frame(Nilai.G2 = round(G2,3), df = df_lr, p.value = round(pval_lr,3)),
      caption = "Tabel 3. Uji Likelihood-ratio", align = "ccc")
Tabel 3. Uji Likelihood-ratio
Nilai.G2 df p.value
85.537 4 0

Berdasarkan hasil perhitungan, nilai p-value yang dihasilkan pada pengujian serentak < 0,05 sehingga \(H_0\) ditolak dan dapat disimpulkan bahwa secara serentak variabel bebas memengaruhi model.

Uji Parsial (Wald)

Hipotesis:

\[H_0: \beta_k = 0 \qquad H_1: \beta_k \neq 0, \quad k = 1, 2, 3, 4\]

# Koefisien dan standar error
koef      <- coef(summary(model_penuh))
koef_df   <- as.data.frame(koef[1:4, ])
wald      <- (koef_df$Value / koef_df$`Std. Error`)^2
pval_wald <- pchisq(wald, df = 1, lower.tail = FALSE)

kable(data.frame(
  Penduga   = c("TPT (X1)","RLS (X2)","PSL (X3)","UMK (X4)"),
  Wald      = round(wald, 3),
  Std.Error = round(koef_df$`Std. Error`, 3),
  p.value   = round(pval_wald, 3)),
  caption = "Tabel 4. Uji Parsial (Wald)", align = "lrrr")
Tabel 4. Uji Parsial (Wald)
Penduga Wald Std.Error p.value
TPT (X1) 0.059 0.103 0.808
RLS (X2) 22.346 0.212 0.000
PSL (X3) 0.190 0.017 0.663
UMK (X4) 12.099 0.331 0.001

Berdasarkan Tabel 3, variabel prediktor yang berpengaruh signifikan (\(\alpha = 0{,}05\)) terhadap persentase penduduk miskin adalah rata-rata lama sekolah (\(X_2\)) dan upah minimum (\(X_4\)). Sementara variabel tingkat pengangguran terbuka (\(X_1\)) dan persentase sanitasi layak (\(X_3\)) tidak berpengaruh signifikan.

Pemodelan Variabel Signifikan

Dilakukan pengujian ulang hanya pada variabel \(X_2\) (rata-rata lama sekolah) dan \(X_4\) (upah minimum) dengan mengeluarkan variabel \(X_1\) dan \(X_3\) yang tidak signifikan.

Uji Non-Multikolinieritas

model_lm2 <- lm(as.numeric(Y) ~ X2 + X4, data = data)
vif2 <- vif(model_lm2)
kable(data.frame(Variabel = c("RLS (X2)","UMK (X4)"),
                 VIF = round(vif2, 4)),
      caption = "Tabel 5. VIF Model Akhir", align = "lr")
Tabel 5. VIF Model Akhir
Variabel VIF
X2 RLS (X2) 1.3131
X4 UMK (X4) 1.3131

Semua nilai VIF < 10, tidak ada multikolinearitas.

Uji Serentak (Likelihood-ratio)

Hipotesis:

\[H_0: \beta_2 = \beta_4 = 0 \qquad H_1: \text{Paling sedikit ada satu } \beta_k \neq 0, \quad k = 2, 4\]

model_akhir <- polr(Y ~ X2 + X4, data = data, Hess = TRUE)

G2b      <- as.numeric(2 * (logLik(model_akhir) - logLik(model_null)))
df_lr2   <- length(coef(model_akhir)) - length(coef(model_null))
pval_lr2 <- pchisq(G2b, df = df_lr2, lower.tail = FALSE)

kable(data.frame(Nilai.G2 = round(G2b,3), df = df_lr2, p.value = round(pval_lr2,3)),
      caption = "Tabel 6. Uji Likelihood-ratio (Model Akhir)", align = "ccc")
Tabel 6. Uji Likelihood-ratio (Model Akhir)
Nilai.G2 df p.value
85.182 2 0

Pada taraf signifikansi \(\alpha = 5\%\), \(H_0\) ditolak karena nilai \(G^2 = 85{,}182 > \chi^2_{(0{,}05;2)} = 5{,}991\) atau nilai p-value \((0{,}000) < \alpha\ (0{,}05)\), sehingga secara serentak variabel bebas mempengaruhi model.

Uji Parsial (Wald)

Hipotesis:

\[H_0: \beta_k = 0 \qquad H_1: \beta_k \neq 0, \quad k = 2, 4\]

koef2      <- coef(summary(model_akhir))
koef2_df   <- as.data.frame(koef2[1:2, ])
wald2      <- (koef2_df$Value / koef2_df$`Std. Error`)^2
pval_wald2 <- pchisq(wald2, df = 1, lower.tail = FALSE)

kable(data.frame(
  Penduga   = c("RLS (X2)", "UMK (X4)"),
  Wald      = round(wald2, 3),
  Std.Error = round(koef2_df$`Std. Error`, 3),
  p.value   = round(pval_wald2, 3)),
  caption = "Tabel 7. Uji Wald (Model Akhir)", align = "lrrr")
Tabel 7. Uji Wald (Model Akhir)
Penduga Wald Std.Error p.value
RLS (X2) 29.049 0.18 0
UMK (X4) 17.328 0.29 0

Berdasarkan pengujian parsial, nilai wald \(X_2\) dan \(X_4\) > \(\chi^2_{(0{,}05;1)}\) serta p-value \((0{,}000) < \alpha\ (0{,}05)\). Sehingga \(H_0\) ditolak dan dapat disimpulkan bahwa variabel rata-rata lama sekolah (\(X_2\)) dan upah minimum (\(X_4\)) berpengaruh signifikan terhadap persentase penduduk miskin.

Kesesuaian Model

# Deviance model akhir
dev_val <- deviance(model_akhir)
df_dev  <- nrow(data) - length(coef(model_akhir)) - length(model_akhir$zeta)
pval_dev <- pchisq(dev_val, df = df_dev, lower.tail = FALSE)

cat("Nilai Deviance :", round(dev_val, 3), "\n")
## Nilai Deviance : 162.956
cat("df             :", df_dev, "\n")
## df             : 115
cat("p-value        :", round(pval_dev, 3), "\n")
## p-value        : 0.002

Berdasarkan uji kesesuaian model, nilai deviance \(= 162{,}956 > \chi^2_{(0{,}05;2)} = 5{,}911\) dan nilai p-value \((1{,}000) > \alpha\ (5\%)\) sehingga \(H_0\) gagal ditolak dan dapat disimpulkan bahwa model sesuai.

Estimasi Parameter Model Akhir

koef_var <- as.data.frame(coef(summary(model_akhir)))[1:2, ]
colnames(koef_var) <- c("Value", "Std.Error", "t.value")

zeta_val <- model_akhir$zeta
zeta_se  <- sqrt(diag(vcov(model_akhir)))[3:4]

koef_threshold <- data.frame(
  Value     = zeta_val,
  Std.Error = zeta_se,
  t.value   = zeta_val / zeta_se
)

koef_gab  <- rbind(koef_threshold, koef_var)
pval_est  <- pchisq((koef_gab$Value / koef_gab$Std.Error)^2,
                    df = 1, lower.tail = FALSE)

kable(data.frame(
  Variabel  = c("PPM Rendah = 1","PPM Sedang = 2","RLS (X2)","UMK (X4)"),
  Estimate  = round(koef_gab$Value, 4),
  Std.Error = round(koef_gab$Std.Error, 4),
  p.value   = round(pval_est, 4)),
  caption = "Tabel 8. Estimasi Parameter", align = "lrrr")
Tabel 8. Estimasi Parameter
Variabel Estimate Std.Error p.value
PPM Rendah = 1 -13.2015 1.9080 0
PPM Sedang = 2 -9.2754 1.5407 0
RLS (X2) -0.9689 0.1798 0
UMK (X4) -1.2053 0.2896 0

Sehingga didapatkan model akhir persamaan peluang sebagai berikut:

\[P\left(Y_i \leq 1 \mid X_i\right) = C_1 = \frac{\exp(-13{,}202 + 0{,}969X_2 + 1{,}205\times10^{-6}X_4)}{1 + \exp(-13{,}202 + 0{,}969X_2 + 1{,}205\times10^{-6}X_4)}\]

\[P\left(Y_i \leq 2 \mid X_i\right) = C_2 = \frac{\exp(-9{,}275 + 0{,}969X_2 + 1{,}205\times10^{-6}X_4)}{1 + \exp(-9{,}275 + 0{,}969X_2 + 1{,}205\times10^{-6}X_4)}\]

Untuk memudahkan dalam interpretasi, perlu dihitung Odds Ratio (OR) sebagai berikut:

# Hitung odds ratio dari koefisien variabel (bukan threshold)
koef_or <- -coef(model_akhir)
or_val  <- exp(koef_or)
or_ci   <- exp(confint(model_akhir))

kable(data.frame(
  Variabel   = c("RLS (X2)", "UMK (X4)"),
  Estimate   = round(koef_or, 4),
  Odds.Ratio = round(or_val, 4),
  CI.2.5     = round(or_ci[, 1], 4),
  CI.97.5    = round(or_ci[, 2], 4)),
  caption = "Tabel 9. Odds Ratio", align = "lrrrr")
Tabel 9. Odds Ratio
Variabel Estimate Odds.Ratio CI.2.5 CI.97.5
X2 RLS (X2) 0.9689 2.6350 0.2604 0.5296
X4 UMK (X4) 1.2053 3.3379 0.1642 0.5155

Interpretasi model menggunakan nilai odds ratio: rata-rata lama sekolah memiliki odds ratio sebesar \(e^{0,969} = 2,635\), artinya setiap kenaikan rata-rata lama sekolah sebesar 1 tahun, peluang persentase penduduk miskin berada pada kategori lebih tinggi meningkat sebesar 2,635 kali. Sedangkan upah minimum memiliki odds ratio sebesar \(e^{1,205} = 3,3379\), artinya setiap kenaikan upah minimum sebesar 1 juta rupiah, peluang persentase penduduk miskin berada pada kategori lebih tinggi meningkat sebesar 3,338 kali.

Ketepatan Klasifikasi

# Prediksi kategori
prediksi <- predict(model_akhir, newdata = data, type = "class")
conf_mat <- table(Aktual = data$Y, Prediksi = prediksi)

total     <- rowSums(conf_mat)
ketepatan <- round(diag(conf_mat) / total * 100, 2)

kable(data.frame(
  Aktual    = rownames(conf_mat),
  as.data.frame.matrix(conf_mat),
  Total     = total,
  Ketepatan = paste0(ketepatan, "%")),
  caption = "Tabel 10. Klasifikasi Model Regresi Logistik", align = "lrrrrc")
Tabel 10. Klasifikasi Model Regresi Logistik
Aktual Rendah Sedang Tinggi Total Ketepatan
Rendah Rendah 21 9 0 30 70%
Sedang Sedang 4 47 8 59 79.66%
Tinggi Tinggi 1 16 13 30 43.33%
n               <- nrow(data)
salah           <- n - sum(diag(conf_mat))
APER            <- round(salah / n * 100, 3)
ketepatan_total <- round(100 - APER, 3)

cat("APER                       :", APER, "%\n")
## APER                       : 31.933 %
cat("Ketepatan Klasifikasi Total :", ketepatan_total, "%\n")
## Ketepatan Klasifikasi Total : 68.067 %

Berdasarkan Tabel 7, nilai APER keseluruhan dihitung sebagai berikut:

\[APER = \frac{9 + 0 + 4 + 8 + 1 + 16}{119} \times 100\% = 31{,}934\%\]

Sehingga nilai ketepatan klasifikasi keseluruhan adalah:

\[\text{Ketepatan} = 1 - APER = 1 - 0{,}31934 = \mathbf{68{,}066\%}\]

# Visualisasi confusion matrix
conf_df <- as.data.frame(conf_mat)
conf_df$Persen <- paste0(round(conf_df$Freq / 119 * 100, 1), "%")

library(ggplot2)
ggplot(conf_df, aes(x = Prediksi, y = Aktual, fill = Freq)) +
  geom_tile(color = "white", linewidth = 0.8) +
  geom_text(aes(label = paste0(Freq, "\n(", Persen, ")")),
            size = 4.5, fontface = "bold") +
  scale_fill_gradient(low = "#d6eaf8", high = "#1a5276") +
  labs(title = "Confusion Matrix – Regresi Logistik Ordinal",
       x = "Prediksi", y = "Aktual", fill = "Frekuensi") +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))
Gambar 1. Confusion Matrix Ketepatan Klasifikasi Model

Gambar 1. Confusion Matrix Ketepatan Klasifikasi Model

Angka ketepatan klasifikasi sebesar 68,066% cukup baik karena sudah melebihi 50%. Model paling baik digunakan untuk memprediksi kategori sedang dengan ketepatan sebesar 79,67%.


Kesimpulan

Dari empat faktor yang dianalisis, hanya rata-rata lama sekolah dan upah minimum kabupaten/kota yang berpengaruh signifikan terhadap model. Berdasarkan nilai odds ratio, rata-rata lama sekolah memiliki odds ratio sebesar 2,635 dan upah minimum sebesar 3,338. Hal ini menunjukkan bahwa setiap kenaikan upah minimum sebesar 1 juta rupiah lebih besar pengaruhnya terhadap persentase penduduk miskin dibandingkan kenaikan rata-rata lama sekolah sebesar 1 tahun.

Model yang dibentuk memiliki ketepatan klasifikasi sebesar 68,066%, sehingga model dapat dianggap baik untuk digunakan. Dengan demikian, upaya pengentasan kemiskinan perlu difokuskan pada:


Daftar Pustaka

Badan Pusat Statistik. 2024. Persentase Rumah Tangga menurut Provinsi dan Memiliki Akses terhadap Sanitasi Layak (Persen), 2024. [online] Tersedia di: https://www.bps.go.id [Diakses 26 Mei 2025].

Dewi, A.F., Pratiwi, R. 2021. Analisis regresi logistik biner pada pengaruh harga, kualitas pelayanan dan promosi terhadap kepuasan pelanggan dalam menggunakan jasa layanan grab di kabupaten lamongan. Inferensi. 4(2):77–84.

Sari, M., Purhadi. 2021. Pemodelan Indeks Pembangunan Manusia Provinsi Jawa Barat, Jawa Timur, dan Jawa Tengah Tahun 2019 dengan Menggunakan Metode Regresi Logistik Ordinal. Jurnal Gaussian. 10(10):149–158.

Shofiyah, M.N., Salamah, M. 2022. Faktor-faktor yang mempengaruhi tingkat stres siswa saat pembelajaran daring menggunakan metode regresi logistik ordinal. Jurnal Sains dan Seni ITS. 11(1):D23–D28.

Wulandari, G., Febriyanti, N.A., Anwar, K., Nohe, D.A. 2022. Pemodelan Persentase Penduduk Miskin di Indonesia Menggunakan Regresi Probit dan Regresi Logistik. Prosiding Seminar Nasional Matematika dan Statistika, 2. Tersedia di: https://jurnal.fmipa.unmul.ac.id.