1. Pendahuluan

  • Inklusi keuangan merupakan agenda strategis dalam pembangunan ekonomi global, didefinisikan Bank Dunia sebagai kemampuan individu dan pelaku usaha untuk mengakses produk dan layanan keuangan yang bermanfaat dan terjangkau, mulai dari transaksi, pembayaran, tabungan, kredit, hingga asuransi [1]. Di Indonesia, inklusi keuangan terbukti berkontribusi terhadap pertumbuhan ekonomi dan pemberantasan kemiskinan [2], dan telah diwujudkan melalui berbagai kebijakan konkret seperti Strategi Nasional Keuangan Inklusif (SNKI) serta program digitalisasi layanan keuangan oleh Otoritas Jasa Keuangan (OJK) [3]. Rekening bank formal kerap disebut sebagai “pintu pertama” inklusi keuangan karena tanpanya seseorang sulit mengakses layanan keuangan lain yang lebih kompleks.

  • Data Global Findex 2025 mencatat bahwa sekitar 52,8% orang dewasa Indonesia telah memiliki rekening bank formal [1], namun angka ini juga berarti hampir separuh populasi dewasa masih unbanked dan ini merupakan sebuah tantangan struktural yang besar.

  • Pesatnya perkembangan teknologi pembayaran digital seperti QRIS, dompet elektronik, dan transfer berbasis aplikasi telah mengubah cara masyarakat bertransaksi secara fundamental. Adopsi keuangan digital terbukti memperluas akses layanan keuangan sekaligus mendorong stabilitas sistem keuangan [6]. Penggunaan pembayaran digital diduga kuat berkaitan erat dengan kepemilikan rekening bank, mengingat sebagian besar layanan digital mensyaratkan rekening formal sebagai prasyaratnya.

  • Di luar faktor digital, berbagai literatur juga mengaitkan disparitas perkotaan-perdesaan dan perbedaan tingkat pendapatan dengan kesenjangan inklusi keuangan [4,5,7].

Tujuan Penelitian

Berdasarkan latar belakang di atas, penelitian ini bertujuan untuk:

  1. Menganalisis pengaruh penggunaan pembayaran digital terhadap kepemilikan rekening bank formal di Indonesia.
  2. Menganalisis pengaruh wilayah tempat tinggal (urban/rural) terhadap kepemilikan rekening bank formal di Indonesia.
  3. Menganalisis pengaruh tingkat pendapatan (kuintil pendapatan) terhadap kepemilikan rekening bank formal di Indonesia.
  4. Mengevaluasi kinerja model regresi logistik biner dalam memprediksi kepemilikan rekening bank formal berdasarkan ketiga faktor tersebut.

2. Metode Penelitian

2.1. Sumber Data

Data yang digunakan dalam penelitian ini bersumber dari Global Financial Inclusion Database (Global Findex) 2025: Connectivity and Financial Inclusion in the Digital Economy, yang diterbitkan oleh Bank Dunia [1]. Data dikumpulkan pada periode Mei–Desember 2024 melalui survei tatap muka yang representatif secara nasional, dengan melibatkan 1.068 responden dewasa berusia 15 tahun ke atas di Indonesia. Dataset tersedia secara publik dan dapat diakses melalui World Bank Microdata Library (DOI: https://doi.org/10.48529/cdk5-2m94) [1].

2.2. Variabel Penelitian

Dalam penelitian ini digunakan dua jenis variabel, yaitu variabel dependen yang berbentuk biner dan tiga variabel independen sebagai prediktor [8]. Variabel-variabel tersebut disajikan pada Tabel 1.

Tabel 1. Deskripsi Variabel Penelitian

Variabel Jenis Variabel Kode Skala Keterangan
Kepemilikan rekening bank Dependen (Y) account_fin Nominal biner 0 = tidak punya, 1 = punya
Penggunaan pembayaran digital Independen (X1) anydigpayment Nominal biner 0 = tidak, 1 = ya
Wilayah tempat tinggal Independen (X2) urbanicity Nominal biner 1 = urban, 2 = rural
Kuintil pendapatan Independen (X3) inc_q Numerik ordinal 1 = termiskin, 5 = terkaya

3. Hasil

3.1. Statistik Deskriptif dan Eksplorasi Data

3.1.1. Distribusi Variabel Dependen

Dari total 1.068 responden, sebanyak 564 orang (52,8%) dilaporkan telah memiliki rekening di lembaga keuangan formal, sedangkan 504 orang (47,2%) belum memiliki rekening bank. Distribusi ini mencerminkan kondisi inklusi keuangan Indonesia yang masih berada pada tahap transisi, di mana separuh lebih populasi memang telah terjangkau layanan perbankan formal, namun gap yang tersisa masih cukup substansial untuk menjadi perhatian kebijakan.

# IMPORT DATA
library(readxl)
library(dplyr)
library(ggplot2)
library(broom)
library(knitr)
library(scales)
library(car)
library(ResourceSelection)

raw_data <- readxl::read_excel("Data Project ADK (2).xlsx")

# Rename kolom
findex <- raw_data %>%
  rename(
    account_fin   = `account_fin (Y)`,
    anydigpayment = `anydigpayment (X1)`,
    urbanicity    = `urbanicity (X2)`,
    inc_q         = `inc_q (X3)`
  )
# PERSIAPAN VARIABEL
findex_model <- findex %>%
  mutate(
    account_fin = factor(
      account_fin, levels = c(0, 1),
      labels = c("Tidak Punya Rekening", "Punya Rekening")
    ),
    anydigpayment = factor(
      anydigpayment, levels = c(0, 1),
      labels = c("Tidak", "Ya")
    ),
    urbanicity = factor(
      urbanicity, levels = c(1, 2),
      labels = c("Urban", "Rural")
    ),
    inc_q = as.numeric(inc_q)
  )
# Distribusi variabel dependen
class_summary <- findex_model %>%
  count(account_fin, name = "Jumlah") %>%
  mutate(Proporsi = scales::percent(Jumlah / sum(Jumlah), accuracy = 0.1)) %>%
  rename(`Status Rekening` = account_fin)

knitr::kable(class_summary,
             caption = "**Tabel 2.** Distribusi Kepemilikan Rekening",
             align   = c("l", "c", "c"))
Tabel 2. Distribusi Kepemilikan Rekening
Status Rekening Jumlah Proporsi
Tidak Punya Rekening 504 47.2%
Punya Rekening 564 52.8%
# Visualisasi distribusi Y
ggplot(findex_model, aes(x = account_fin, fill = account_fin)) +
  geom_bar(width = 0.62, color = "white", linewidth = 0.8) +
  geom_text(
    stat  = "count",
    aes(label = after_stat(count)),
    vjust = -0.4, fontface = "bold"
  ) +
  scale_fill_manual(
    values = c("Tidak Punya Rekening" = "#e76f51", "Punya Rekening" = "#2a9d8f")
  ) +
  labs(
    title    = "Distribusi Kepemilikan Rekening Bank",
    subtitle = "Data Findex Indonesia 2025",
    x = NULL, y = "Jumlah responden"
  ) +
  theme_minimal(base_size = 12) +
  theme(legend.position = "none")
**Gambar 1.** Distribusi Kepemilikan Rekening Bank (Findex Indonesia 2025)

Gambar 1. Distribusi Kepemilikan Rekening Bank (Findex Indonesia 2025)

Kondisi ini sejalan dengan data Global Findex terbaru yang menunjukkan Indonesia mengalami peningkatan inklusi keuangan secara bertahap, terutama didorong oleh program pemerintah seperti Laku Pandai, Simpanan Pelajar (SimPel), dan perluasan infrastruktur keuangan digital. Meski demikian, angka hampir separuh penduduk yang belum terbanked mengindikasikan masih terdapat hambatan struktural yang perlu diatasi secara sistemik.


3.1.2. Tabulasi Silang Variabel Prediktor terhadap Kepemilikan Rekening

Penggunaan Pembayaran Digital (X1)

Tabulasi silang antara penggunaan pembayaran digital dan kepemilikan rekening bank menunjukkan pola yang sangat kontras. Di antara responden yang tidak menggunakan pembayaran digital (n = 624), hanya 25,6% (160 orang) yang memiliki rekening bank. Sebaliknya, dari responden yang menggunakan pembayaran digital (n = 444), sebanyak 91,0% (404 orang) tercatat memiliki rekening. Perbedaan proporsi yang mencapai lebih dari 65 persentase poin ini menunjukkan asosiasi yang kuat antara literasi dan adopsi teknologi keuangan digital dengan kepemilikan rekening formal.

# Tabulasi silang X1 vs Y
tabulasi_digital <- findex_model %>%
  group_by(anydigpayment) %>%
  summarise(
    Jumlah   = n(),
    Punya    = sum(account_fin == "Punya Rekening"),
    Proporsi = scales::percent(Punya / Jumlah, accuracy = 0.1),
    .groups  = "drop"
  ) %>%
  rename(`Pembayaran Digital` = anydigpayment)

knitr::kable(tabulasi_digital,
             caption = "**Tabel 3.** X1 vs Kepemilikan Rekening",
             align   = c("l", "c", "c", "c"))
Tabel 3. X1 vs Kepemilikan Rekening
Pembayaran Digital Jumlah Punya Proporsi
Tidak 624 160 25.6%
Ya 444 404 91.0%
ggplot(findex_model, aes(x = anydigpayment, fill = account_fin)) +
  geom_bar(position = "fill", width = 0.6, color = "white", linewidth = 0.7) +
  geom_text(
    stat = "count",
    aes(label = scales::percent(after_stat(count) / tapply(after_stat(count),
        after_stat(x), sum)[after_stat(x)], accuracy = 0.1)),
    position = position_fill(vjust = 0.5),
    color = "white", fontface = "bold", size = 4
  ) +
  scale_fill_manual(
    values = c("Tidak Punya Rekening" = "#e76f51", "Punya Rekening" = "#2a9d8f"),
    name   = "Status Rekening"
  ) +
  scale_y_continuous(labels = scales::percent) +
  labs(
    title    = "Proporsi Kepemilikan Rekening Menurut Pembayaran Digital",
    subtitle = "Data Findex Indonesia 2025",
    x = "Penggunaan Pembayaran Digital", y = "Proporsi"
  ) +
  theme_minimal(base_size = 12)
**Gambar 2.** Proporsi Kepemilikan Rekening Berdasarkan Penggunaan Pembayaran Digital

Gambar 2. Proporsi Kepemilikan Rekening Berdasarkan Penggunaan Pembayaran Digital

Wilayah Tempat Tinggal (X2)

Proporsi kepemilikan rekening antara responden urban dan rural memperlihatkan perbedaan yang relatif kecil namun tetap bermakna. Responden di wilayah urban (n = 613) memiliki proporsi kepemilikan rekening sebesar 51,4%, sedangkan wilayah rural (n = 455) mencatat angka 54,7%. Secara deskriptif, kepemilikan rekening di pedesaan justru sedikit lebih tinggi dibandingkan perkotaan, yang mungkin mencerminkan keberhasilan program pemerintah seperti penyaluran bantuan sosial non-tunai dan program Kartu Keluarga Sejahtera (KKS) yang secara masif diarahkan ke daerah rural.

tabulasi_wilayah <- findex_model %>%
  group_by(urbanicity) %>%
  summarise(
    Jumlah   = n(),
    Punya    = sum(account_fin == "Punya Rekening"),
    Proporsi = scales::percent(Punya / Jumlah, accuracy = 0.1),
    .groups  = "drop"
  ) %>%
  rename(Wilayah = urbanicity)

knitr::kable(tabulasi_wilayah,
             caption = "**Tabel 4.** X2 vs Kepemilikan Rekening",
             align   = c("l", "c", "c", "c"))
Tabel 4. X2 vs Kepemilikan Rekening
Wilayah Jumlah Punya Proporsi
Urban 613 315 51.4%
Rural 455 249 54.7%
ggplot(findex_model, aes(x = urbanicity, fill = account_fin)) +
  geom_bar(position = "fill", width = 0.6, color = "white", linewidth = 0.7) +
  geom_text(
    stat = "count",
    aes(label = scales::percent(after_stat(count) / tapply(after_stat(count),
        after_stat(x), sum)[after_stat(x)], accuracy = 0.1)),
    position = position_fill(vjust = 0.5),
    color = "white", fontface = "bold", size = 4
  ) +
  scale_fill_manual(
    values = c("Tidak Punya Rekening" = "#e76f51", "Punya Rekening" = "#2a9d8f"),
    name   = "Status Rekening"
  ) +
  scale_y_continuous(labels = scales::percent) +
  labs(
    title    = "Proporsi Kepemilikan Rekening Menurut Wilayah",
    subtitle = "Data Findex Indonesia 2025",
    x = "Wilayah Tempat Tinggal", y = "Proporsi"
  ) +
  theme_minimal(base_size = 12)
**Gambar 3.** Proporsi Kepemilikan Rekening Berdasarkan Wilayah Tempat Tinggal

Gambar 3. Proporsi Kepemilikan Rekening Berdasarkan Wilayah Tempat Tinggal

Kuintil Pendapatan (X3)

Kepemilikan rekening menunjukkan pola yang cenderung meningkat seiring dengan kelompok pendapatan yang lebih tinggi, meski tidak monoton sempurna. Kelompok termiskin (kuintil 1) mencatat proporsi kepemilikan rekening sebesar 44,8%, sementara kelompok terkaya (kuintil 5) mencapai 68,0%. Yang menarik, kuintil 3 justru mencatat angka terendah (42,4%), yang sedikit di bawah kuintil 1. Pola ini menunjukkan bahwa hubungan antara pendapatan dan kepemilikan rekening bersifat umum positif, namun terdapat variasi yang dapat dipengaruhi oleh faktor lain.

tabulasi_pendapatan <- findex_model %>%
  group_by(inc_q) %>%
  summarise(
    Jumlah   = n(),
    Punya    = sum(account_fin == "Punya Rekening"),
    Proporsi = scales::percent(Punya / Jumlah, accuracy = 0.1),
    .groups  = "drop"
  ) %>%
  rename(`Kuintil Pendapatan` = inc_q)

knitr::kable(tabulasi_pendapatan,
             caption = "**Tabel 5.** X3 vs Kepemilikan Rekening",
             align   = c("c", "c", "c", "c"))
Tabel 5. X3 vs Kepemilikan Rekening
Kuintil Pendapatan Jumlah Punya Proporsi
1 210 94 44.8%
2 199 93 46.7%
3 210 89 42.4%
4 205 122 59.5%
5 244 166 68.0%
ggplot(findex_model, aes(x = factor(inc_q), fill = account_fin)) +
  geom_bar(position = "fill", width = 0.65, color = "white", linewidth = 0.7) +
  geom_text(
    stat = "count",
    aes(label = scales::percent(after_stat(count) / tapply(after_stat(count),
        after_stat(x), sum)[after_stat(x)], accuracy = 0.1)),
    position = position_fill(vjust = 0.5),
    color = "white", fontface = "bold", size = 3.8
  ) +
  scale_fill_manual(
    values = c("Tidak Punya Rekening" = "#e76f51", "Punya Rekening" = "#2a9d8f"),
    name   = "Status Rekening"
  ) +
  scale_y_continuous(labels = scales::percent) +
  scale_x_discrete(labels = c("1\n(Termiskin)", "2", "3", "4", "5\n(Terkaya)")) +
  labs(
    title    = "Proporsi Kepemilikan Rekening Menurut Kuintil Pendapatan",
    subtitle = "Data Findex Indonesia 2025",
    x = "Kuintil Pendapatan", y = "Proporsi"
  ) +
  theme_minimal(base_size = 12)
**Gambar 4.** Proporsi Kepemilikan Rekening Berdasarkan Kuintil Pendapatan

Gambar 4. Proporsi Kepemilikan Rekening Berdasarkan Kuintil Pendapatan

3.2. Pembagian Data: Training dan Testing

Guna memperoleh evaluasi model yang tidak bias, data dibagi secara stratifikasi (stratified split) ke dalam data training dan data testing dengan rasio 80:20. Stratifikasi dilakukan berdasarkan variabel dependen agar proporsi kelas kepemilikan rekening tetap terjaga pada kedua subset.

# SPLIT DATA: TRAINING (80%) & TESTING (20%)
findex_model <- findex_model %>%
  mutate(account_bin = as.integer(account_fin == "Punya Rekening"))

stratified_split <- function(y, prop = 0.8) {
  idx_by_class <- split(seq_along(y), y)
  train_idx    <- lapply(
    idx_by_class,
    function(idx) sample(idx, size = floor(length(idx) * prop))
  )
  unlist(train_idx, use.names = FALSE)
}

set.seed(42)
train_id   <- stratified_split(findex_model$account_bin, prop = 0.8)
train_data <- findex_model[train_id, ]
test_data  <- findex_model[-train_id, ]

split_summary <- bind_rows(
  train_data %>% count(account_fin) %>% mutate(data = "Training"),
  test_data  %>% count(account_fin) %>% mutate(data = "Testing")
) %>%
  group_by(data) %>%
  mutate(Proporsi = scales::percent(n / sum(n), accuracy = 0.1)) %>%
  ungroup() %>%
  select(data, account_fin, n, Proporsi) %>%
  rename(
    Data              = data,
    `Status Rekening` = account_fin,
    Jumlah            = n
  )

knitr::kable(split_summary,
             caption = "**Tabel 6.** Distribusi Training–Testing (80:20)",
             align   = c("l", "l", "c", "c"))
Tabel 6. Distribusi Training–Testing (80:20)
Data Status Rekening Jumlah Proporsi
Training Tidak Punya Rekening 403 47.2%
Training Punya Rekening 451 52.8%
Testing Tidak Punya Rekening 101 47.2%
Testing Punya Rekening 113 52.8%

Hasilnya, data training terdiri dari 854 observasi (403 tidak punya rekening, 451 punya rekening) dan data testing sebanyak 214 observasi (101 tidak punya rekening, 113 punya rekening). Proporsi 47,2% : 52,8% terjaga identik di kedua subset, memastikan bahwa model tidak dilatih maupun dievaluasi pada distribusi kelas yang berbeda.


3.3. Pengujian Asumsi Regresi Logistik

Sebelum model regresi logistik diestimasi, dilakukan serangkaian uji asumsi untuk memastikan bahwa data dan model memenuhi prasyarat yang diperlukan agar hasil estimasi dapat diandalkan dan valid secara statistik.

3.3.1. Uji Multikolinearitas

Multikolinieritas merujuk pada kondisi di mana dua atau lebih variabel prediktor saling berkorelasi tinggi sehingga dapat mengacaukan estimasi koefisien. Untuk mendeteksinya, digunakan nilai Variance Inflation Factor (VIF). Nilai VIF > 10 mengindikasikan adanya masalah multikolinieritas yang serius.

# UJI ASUMSI — Multikolinearitas (VIF)
vif_model <- lm(
  account_bin ~ anydigpayment + urbanicity + inc_q,
  data = train_data
)
nilai_vif <- car::vif(vif_model)

vif_table <- data.frame(
  Variabel   = c("Penggunaan Pembayaran Digital (X1)",
                 "Wilayah Tempat Tinggal (X2)",
                 "Kuintil Pendapatan (X3)"),
  VIF        = round(nilai_vif, 3),
  Keterangan = ifelse(nilai_vif < 10,
                      "Tidak ada multikolinearitas",
                      "Gejala Multikolinearitas")
)
row.names(vif_table) <- NULL

knitr::kable(vif_table,
             caption = "**Tabel 7.** Uji Multikolinearitas (VIF)",
             align   = c("l", "c", "l"))
Tabel 7. Uji Multikolinearitas (VIF)
Variabel VIF Keterangan
Penggunaan Pembayaran Digital (X1) 1.047 Tidak ada multikolinearitas
Wilayah Tempat Tinggal (X2) 1.009 Tidak ada multikolinearitas
Kuintil Pendapatan (X3) 1.049 Tidak ada multikolinearitas

Hasil pengujian menunjukkan bahwa seluruh variabel prediktor memiliki nilai VIF jauh di bawah ambang 10, sehingga asumsi tidak adanya multikolinearitas terpenuhi.

Catatan: Nilai VIF < 10 menunjukkan tidak ada masalah multikolinieritas.


3.3.2. Uji Linearitas Logit (Box–Tidwell)

Uji Box–Tidwell dilakukan untuk memeriksa apakah variabel numerik inc_q (kuintil pendapatan) memiliki hubungan yang linear dengan logit dari variabel dependen. Pengujian dilakukan dengan menambahkan interaksi antara inc_q dan ln(inc_q) ke dalam model. Apabila interaksi tersebut tidak signifikan (p > 0,05), maka asumsi linearitas terpenuhi.

# UJI ASUMSI — Linearitas Logit (Box-Tidwell)
train_data_box <- train_data %>%
  mutate(inc_q_log = inc_q * log(inc_q))

box_tidwell_fit <- glm(
  account_bin ~ anydigpayment + urbanicity + inc_q + inc_q_log,
  data   = train_data_box,
  family = binomial(link = "logit")
)

p_val_box <- broom::tidy(box_tidwell_fit) %>%
  filter(term == "inc_q_log") %>%
  pull(p.value)

box_result <- data.frame(
  Asumsi   = "Linearitas Logit (Box-Tidwell)",
  Variabel = "inc_q",
  `p-value`    = round(p_val_box, 4),
  Keterangan   = ifelse(p_val_box > 0.05,
                        "Memenuhi (Linear)",
                        "Tidak Memenuhi (Non-linear)"),
  check.names  = FALSE
)

knitr::kable(box_result,
             caption = "**Tabel 8.** Uji Linearitas Logit (Box–Tidwell)",
             align   = c("l", "c", "c", "l"))
Tabel 8. Uji Linearitas Logit (Box–Tidwell)
Asumsi Variabel p-value Keterangan
Linearitas Logit (Box-Tidwell) inc_q 0.8309 Memenuhi (Linear)

Hasil uji menunjukkan nilai p = 0,8308 (> 0,05), sehingga dapat disimpulkan bahwa asumsi linearitas logit terpenuhi untuk variabel inc_q.

Catatan: p > 0,05 menunjukkan hubungan linear antara inc_q dengan log-odds.


3.4. Pembentukan dan Kelayakan Model

Sebagai langkah awal sebelum menguji kontribusi tiap variabel, perlu memperhatikan ringkasan dari model regresi logistik yang telah dibangun. Model estimasi dibangun menggunakan data training sebanyak 854 observasi.

# FITTING MODEL REGRESI LOGISTIK
findex_fit <- glm(
  account_bin ~ anydigpayment + urbanicity + inc_q,
  data   = train_data,
  family = binomial(link = "logit")
)

ringkasan_model <- data.frame(
  Keterangan = c(
    "Jumlah Observasi Training",
    "Null Deviance",
    "Residual Deviance",
    "Derajat Bebas Residual",
    "AIC"
  ),
  Nilai = c(
    nobs(findex_fit),
    round(findex_fit$null.deviance, 3),
    round(findex_fit$deviance, 3),
    findex_fit$df.residual,
    round(AIC(findex_fit), 3)
  )
)

knitr::kable(ringkasan_model,
             caption = "**Tabel 9.** Ringkasan Kecocokan Model Regresi Logistik",
             align   = c("l", "c"))
Tabel 9. Ringkasan Kecocokan Model Regresi Logistik
Keterangan Nilai
Jumlah Observasi Training 854.000
Null Deviance 1181.196
Residual Deviance 771.275
Derajat Bebas Residual 850.000
AIC 779.275

Penurunan deviance yang cukup besar (dari 1181,196 menjadi 771,275) menjadi bukti awal bahwa kombinasi variabel yang digunakan memberikan informasi yang sangat berharga dalam membantu model menebak status kepemilikan rekening bank masyarakat secara lebih akurat. Sementara itu, nilai AIC sebesar 779,275 menjadi ukuran standar kualitas model yang tergolong rendah (baik) untuk estimasi parameter berikutnya.


3.4.1. Uji Signifikansi Simultan (Omnibus Test)

Uji omnibus atau uji Likelihood Ratio digunakan untuk menguji apakah setidaknya satu variabel prediktor dalam model memberikan kontribusi yang signifikan secara statistik terhadap variabel dependen. Statistik G dihitung dari selisih antara null deviance dan residual deviance model.

# UJI KELAYAKAN — Omnibus Test (Likelihood Ratio)
g_statistik <- findex_fit$null.deviance - findex_fit$deviance
df_g        <- findex_fit$df.null - findex_fit$df.residual
p_value_g   <- pchisq(g_statistik, df = df_g, lower.tail = FALSE)

uji_serentak <- data.frame(
  `Statistik G` = round(g_statistik, 4),
  Db            = df_g,
  `p-value`     = format(p_value_g, scientific = TRUE, digits = 3),
  Kesimpulan    = ifelse(p_value_g < 0.05,
                         "Signifikan (Model Valid)",
                         "Tidak Signifikan"),
  check.names   = FALSE
)

knitr::kable(uji_serentak,
             caption = "**Tabel 10.** Uji Signifikansi Serentak (Omnibus / *Likelihood Ratio Test*)",
             align   = c("c", "c", "c", "l"))
Tabel 10. Uji Signifikansi Serentak (Omnibus / Likelihood Ratio Test)
Statistik G Db p-value Kesimpulan
409.9212 3 1.57e-88 Signifikan (Model Valid)

Hasil menunjukkan nilai G = 409,9212 dengan 3 derajat bebas dan p < 0,001. Artinya, model secara keseluruhan signifikan dan variabel-variabel prediktor secara bersama-sama mampu menjelaskan variasi kepemilikan rekening bank di Indonesia.

Catatan: H0 = semua koefisien = 0. Tolak H0 jika p < 0,05.


3.4.2. Uji Kecocokan Model (Hosmer–Lemeshow Test)

Uji Hosmer–Lemeshow digunakan untuk mengevaluasi seberapa baik model yang diestimasi sesuai dengan data observasi (goodness of fit). Berbeda dengan uji omnibus, uji ini justru tidak menginginkan penolakan H0, di mana H0 menyatakan bahwa model cocok dengan data.

# UJI KELAYAKAN — Hosmer-Lemeshow
hl_test <- ResourceSelection::hoslem.test(
  findex_fit$y,
  fitted(findex_fit),
  g = 10
)

uji_gof <- data.frame(
  `Chi-Square` = round(hl_test$statistic, 4),
  Db           = hl_test$parameter,
  `p-value`    = round(hl_test$p.value, 4),
  Kesimpulan   = ifelse(hl_test$p.value > 0.05,
                        "Model Fit (Sesuai)",
                        "Model Tidak Fit"),
  check.names  = FALSE
)
row.names(uji_gof) <- NULL

knitr::kable(uji_gof,
             caption = "**Tabel 11.** Uji Hosmer–Lemeshow (*Goodness of Fit*)",
             align   = c("c", "c", "c", "l"))
Tabel 11. Uji Hosmer–Lemeshow (Goodness of Fit)
Chi-Square Db p-value Kesimpulan
4.1648 8 0.842 Model Fit (Sesuai)

Hasil pengujian menunjukkan nilai χ² = 4,1648 dengan 8 derajat bebas dan p = 0,842. Karena p > 0,05, H0 tidak ditolak, yang berarti model fit dengan data observasi. Ini mengonfirmasi bahwa model regresi logistik yang dibangun sudah memadai untuk menggambarkan pola kepemilikan rekening bank di Indonesia.

Catatan: Gagal tolak H0 (p > 0,05) menunjukkan model layak digunakan.


3.5. Hasil Estimasi Model Regresi Logistik

Model regresi logistik diestimasi menggunakan 854 data training (80%) dari total 1.068 observasi yang dipisahkan secara stratified untuk menjaga proporsi kelas. Hasil estimasi meliputi koefisien regresi (β), odds ratio (OR), interval kepercayaan 95%, serta nilai p untuk setiap variabel prediktor. Adapun persamaan logit model yang terbentuk adalah sebagai berikut:

\[\widehat{\text{logit}}(P) = -1{,}3398 + 3{,}3647 \cdot \text{anydigpayment}_1 - 0{,}1711 \cdot \text{rural}_2 + 0{,}1066 \cdot \text{inc_q}\]

# KOEFISIEN, ODDS RATIO, DAN UJI SIGNIFIKANSI
coef_table <- broom::tidy(findex_fit) %>%
  mutate(
    odds_ratio = exp(estimate),
    ci_low     = exp(estimate - 1.96 * std.error),
    ci_high    = exp(estimate + 1.96 * std.error)
  ) %>%
  arrange(p.value) %>%
  transmute(
    `Variabel/Level`           = term,
    `Koefisien (β)`            = round(estimate, 4),
    `Odds Ratio (OR)`          = round(odds_ratio, 3),
    `CI 95%`                   = paste0(round(ci_low, 3), " – ", round(ci_high, 3)),
    `p-value`                  = round(p.value, 4),
    `Keterangan`               = ifelse(p.value < 0.05, "Signifikan", "Tidak Signifikan")
  )

knitr::kable(coef_table,
             caption = "**Tabel 12.** Hasil Estimasi Model (OR, CI, p-value)",
             align   = c("l", "c", "c", "c", "c", "l"))
Tabel 12. Hasil Estimasi Model (OR, CI, p-value)
Variabel/Level Koefisien (β) Odds Ratio (OR) CI 95% p-value Keterangan
anydigpaymentYa 3.3647 28.925 19.069 – 43.873 0.0000 Signifikan
(Intercept) -1.3398 0.262 0.17 – 0.404 0.0000 Signifikan
inc_q 0.1066 1.113 0.981 – 1.262 0.0970 Tidak Signifikan
urbanicityRural -0.1711 0.843 0.586 – 1.213 0.3569 Tidak Signifikan

3.5.1. Pengaruh Penggunaan Pembayaran Digital terhadap Kepemilikan Rekening

Variabel penggunaan pembayaran digital (anydigpayment) merupakan prediktor yang paling dominan dan signifikan dalam model. Dengan nilai koefisien β = 3,3647 dan odds ratio (OR) = 28,925, hasil ini mengandung makna bahwa individu yang menggunakan pembayaran digital memiliki peluang 28,92 kali lebih besar untuk memiliki rekening bank dibandingkan individu yang tidak menggunakan pembayaran digital, dengan mengendalikan variabel lainnya (CI 95%: 19,069–43,873; p < 0,001).

Temuan ini secara konseptual konsisten dengan teori adopsi teknologi keuangan, di mana penggunaan layanan pembayaran digital merupakan bagian dari ekosistem perbankan yang mensyaratkan kepemilikan rekening formal. Dalam konteks Indonesia, layanan seperti QRIS, GoPay, OVO, Dana, dan berbagai dompet digital lainnya pada umumnya terhubung langsung dengan rekening bank.

3.5.2. Pengaruh Wilayah Tempat Tinggal terhadap Kepemilikan Rekening

Variabel wilayah tempat tinggal (urbanicity) menunjukkan nilai koefisien β = −0,1711 dengan OR = 0,843 (CI 95%: 0,586–1,213; p = 0,357). Nilai p yang berada di atas batas signifikansi 0,05 menegaskan bahwa variabel wilayah tidak terbukti berpengaruh signifikan terhadap kepemilikan rekening bank setelah mengendalikan penggunaan pembayaran digital dan kuintil pendapatan.

Ketidaksignifikanan variabel wilayah ini mengindikasikan bahwa disparitas urban-rural dalam kepemilikan rekening bank di Indonesia sudah tidak lagi menjadi faktor utama, yang mencerminkan dampak positif dari ekspansi jaringan agen bank (Laku Pandai) dan layanan mobile banking.

3.5.3. Pengaruh Kuintil Pendapatan terhadap Kepemilikan Rekening

Kuintil pendapatan (inc_q) memiliki koefisien β = 0,1066 dengan OR = 1,113 (CI 95%: 0,981–1,262; p = 0,097). Berdasarkan p-value tersebut, variabel pendapatan tidak signifikan pada tingkat 5% (α = 0,05), namun bersifat marginal pada α = 10%. Setiap kenaikan satu tingkat kelompok pendapatan hanya memberikan dorongan sekitar 11,3% terhadap peluang kepemilikan rekening, yang mengindikasikan bahwa tingkat ekonomi individu kini tidak lagi menjadi penentu utama karena tergeser oleh peran digitalisasi keuangan yang jauh lebih dominan.


3.6. Evaluasi Kinerja Model Prediktif

# Confusion Matrix & Metrik Klasifikasi
safe_div <- function(num, den) ifelse(den == 0, NA_real_, num / den)

confusion_matrix <- function(actual, prob, threshold = 0.5) {
  pred <- as.integer(prob >= threshold)
  tp   <- sum(pred == 1 & actual == 1)
  tn   <- sum(pred == 0 & actual == 0)
  fp   <- sum(pred == 1 & actual == 0)
  fn   <- sum(pred == 0 & actual == 1)
  matrix(
    c(tn, fp, fn, tp), nrow = 2,
    dimnames = list(
      `Aktual`   = c("Tidak Punya", "Punya"),
      `Prediksi` = c("Tidak Punya", "Punya")
    )
  )
}

classification_metrics <- function(actual, prob, threshold = 0.5) {
  pred        <- as.integer(prob >= threshold)
  tp          <- sum(pred == 1 & actual == 1)
  tn          <- sum(pred == 0 & actual == 0)
  fp          <- sum(pred == 1 & actual == 0)
  fn          <- sum(pred == 0 & actual == 1)
  sensitivity <- safe_div(tp, tp + fn)
  specificity <- safe_div(tn, tn + fp)
  precision   <- safe_div(tp, tp + fp)
  npv         <- safe_div(tn, tn + fn)
  accuracy    <- safe_div(tp + tn, tp + tn + fp + fn)
  data.frame(
    Threshold          = threshold,
    Accuracy           = accuracy,
    `Error Rate`       = 1 - accuracy,
    Sensitivity        = sensitivity,
    Specificity        = specificity,
    Precision          = precision,
    NPV                = npv,
    `F1-Score`         = safe_div(2 * precision * sensitivity,
                                   precision + sensitivity),
    `Balanced Accuracy`= (sensitivity + specificity) / 2,
    `False Pos Rate`   = 1 - specificity,
    `False Neg Rate`   = 1 - sensitivity,
    check.names        = FALSE
  )
}

# Prediksi probabilitas
p_train <- predict(findex_fit, newdata = train_data, type = "response")
p_test  <- predict(findex_fit, newdata = test_data,  type = "response")

3.6.1. Confusion Matrix dan Metrik Klasifikasi

Pada threshold default 0,50, model menghasilkan 76 prediksi benar untuk kelas positif (True Positive = 76) dan 94 prediksi benar untuk kelas negatif (True Negative = 94). Terdapat 7 prediksi False Positive dan 37 prediksi False Negative. Model mencapai tingkat akurasi 79,4%, dengan sensitivitas 67,3% dan spesifisitas 93,1%.

# EVALUASI — Confusion Matrix & Metrik (threshold 0.5)
confusion_default <- confusion_matrix(
  test_data$account_bin, p_test, threshold = 0.5
)
metrics_default <- classification_metrics(
  test_data$account_bin, p_test, threshold = 0.5
) %>%
  mutate(across(where(is.numeric), round, 3))

knitr::kable(confusion_default,
             caption = "**Tabel 13.** *Confusion Matrix* Data Testing (Threshold = 0,50)")
Tabel 13. Confusion Matrix Data Testing (Threshold = 0,50)
Tidak Punya Punya
Tidak Punya 94 37
Punya 7 76
knitr::kable(t(metrics_default),
             caption = "**Tabel 14.** Metrik Klasifikasi pada Threshold 0,50",
             col.names = "Nilai")
Tabel 14. Metrik Klasifikasi pada Threshold 0,50
Nilai
Threshold 0.500
Accuracy 0.794
Error Rate 0.206
Sensitivity 0.673
Specificity 0.931
Precision 0.916
NPV 0.718
F1-Score 0.776
Balanced Accuracy 0.802
False Pos Rate 0.069
False Neg Rate 0.327

3.6.2. Kurva ROC dan Area Under Curve (AUC)

Kemampuan model dalam membedakan individu yang memiliki rekening bank dan yang tidak dievaluasi menggunakan kurva Receiver Operating Characteristic (ROC) serta nilai Area Under Curve (AUC).

# KURVA ROC DAN AUC
roc_points <- function(actual, prob) {
  thresholds <- c(Inf, sort(unique(prob), decreasing = TRUE), -Inf)
  out <- lapply(thresholds, function(th) {
    pred        <- as.integer(prob >= th)
    tp          <- sum(pred == 1 & actual == 1)
    tn          <- sum(pred == 0 & actual == 0)
    fp          <- sum(pred == 1 & actual == 0)
    fn          <- sum(pred == 0 & actual == 1)
    sensitivity <- safe_div(tp, tp + fn)
    specificity <- safe_div(tn, tn + fp)
    data.frame(
      threshold   = th,
      sensitivity = sensitivity,
      specificity = specificity,
      fpr         = 1 - specificity,
      youden      = sensitivity + specificity - 1
    )
  })
  bind_rows(out)
}

auc_value <- function(roc_df) {
  roc_sorted <- roc_df %>% arrange(fpr, sensitivity)
  sum(
    diff(roc_sorted$fpr) *
      (head(roc_sorted$sensitivity, -1) + tail(roc_sorted$sensitivity, -1)) / 2
  )
}

roc_train <- roc_points(train_data$account_bin, p_train) %>%
  mutate(data = "Training")
roc_test  <- roc_points(test_data$account_bin,  p_test)  %>%
  mutate(data = "Testing")

auc_train     <- auc_value(roc_train)
auc_test      <- auc_value(roc_test)
optimal_train <- roc_train %>% slice_max(youden, n = 1, with_ties = FALSE)
threshold_opt <- optimal_train$threshold
test_at_opt   <- roc_test %>%
  filter(threshold == threshold_opt) %>%
  slice(1)
# Plot kurva ROC
roc_plot <- bind_rows(roc_train, roc_test)

ggplot(roc_plot, aes(x = fpr, y = sensitivity, color = data)) +
  geom_path(linewidth = 1.1) +
  geom_abline(intercept = 0, slope = 1,
              linetype = "dashed", color = "#6c757d") +
  geom_point(
    data        = optimal_train,
    aes(x = fpr, y = sensitivity),
    inherit.aes = FALSE,
    color = "#ffb703", fill = "#fb8500",
    shape = 21, size = 4, stroke = 1.2
  ) +
  geom_point(
    data        = test_at_opt,
    aes(x = fpr, y = sensitivity),
    inherit.aes = FALSE,
    color = "#8338ec", fill = "#3a86ff",
    shape = 24, size = 4, stroke = 1.2
  ) +
  coord_equal() +
  scale_color_manual(
    values = c("Training" = "#0077b6", "Testing" = "#e76f51")
  ) +
  labs(
    title    = "Kurva ROC — Regresi Logistik Kepemilikan Rekening Bank",
    subtitle = paste0(
      "AUC Training = ", round(auc_train, 3),
      "  |  AUC Testing = ", round(auc_test, 3),
      "  |  Threshold Optimal = ", round(threshold_opt, 3)
    ),
    x     = "False Positive Rate (1 − Specificity)",
    y     = "True Positive Rate (Sensitivity)",
    color = "Data"
  ) +
  theme_minimal(base_size = 12)
**Gambar 5.** Kurva ROC — Regresi Logistik Kepemilikan Rekening Bank

Gambar 5. Kurva ROC — Regresi Logistik Kepemilikan Rekening Bank

Berdasarkan hasil pemodelan, diperoleh nilai AUC Training = 0,839 dan AUC Testing = 0,824. Merujuk pada klasifikasi Hosmer dan Lemeshow (2013), kedua nilai tersebut masuk dalam kategori baik, yang menunjukkan bahwa model memiliki kemampuan diskriminasi yang andal. Selain itu, selisih AUC yang sangat tipis (0,015) antara data training dan testing mengonfirmasi bahwa model tidak mengalami gejala overfitting.

# Threshold optimal berdasarkan Indeks Youden
threshold_table <- optimal_train %>%
  transmute(
    `Threshold Optimal` = round(threshold, 3),
    Sensitivity         = round(sensitivity, 3),
    Specificity         = round(specificity, 3),
    `Youden Index`      = round(youden, 3)
  )

knitr::kable(threshold_table,
             caption = "**Tabel 15.** Threshold Optimal Berdasarkan ROC *Training*",
             align   = c("c", "c", "c", "c"))
Tabel 15. Threshold Optimal Berdasarkan ROC Training
Threshold Optimal Sensitivity Specificity Youden Index
0.877 0.727 0.918 0.645

Penentuan titik potong peluang menggunakan indeks Youden pada data training menghasilkan nilai threshold optimal sebesar 0,877. Pada tingkat ini, diperoleh nilai sensitivitas sebesar 72,7% dan spesifisitas mencapai 91,8%.


3.6.3. Perbandingan Threshold 0,50 vs Threshold Optimal

# PERBANDINGAN THRESHOLD 0.50 vs THRESHOLD OPTIMAL
metrics_compare <- bind_rows(
  classification_metrics(test_data$account_bin, p_test, threshold = 0.5) %>%
    mutate(`Aturan Klasifikasi` = "Threshold 0,50"),
  classification_metrics(test_data$account_bin, p_test, threshold = threshold_opt) %>%
    mutate(`Aturan Klasifikasi` = paste0("Threshold Optimal (",
                                          round(threshold_opt, 3), ")"))
) %>%
  select(`Aturan Klasifikasi`, everything()) %>%
  mutate(across(where(is.numeric), round, 3))

confusion_opt <- confusion_matrix(
  test_data$account_bin, p_test, threshold = threshold_opt
)

knitr::kable(t(metrics_compare[, -1]),
             caption = "**Tabel 16.** Perbandingan Metrik: Threshold 0,50 vs Threshold Optimal",
             col.names = c("Threshold 0,50", paste0("Threshold Optimal (",
                                                      round(threshold_opt, 3), ")")))
Tabel 16. Perbandingan Metrik: Threshold 0,50 vs Threshold Optimal
Threshold 0,50 Threshold Optimal (0.877)
Threshold 0.500 0.877
Accuracy 0.794 0.794
Error Rate 0.206 0.206
Sensitivity 0.673 0.673
Specificity 0.931 0.931
Precision 0.916 0.916
NPV 0.718 0.718
F1-Score 0.776 0.776
Balanced Accuracy 0.802 0.802
False Pos Rate 0.069 0.069
False Neg Rate 0.327 0.327
knitr::kable(confusion_opt,
             caption = paste0("**Tabel 17.** *Confusion Matrix* pada Threshold Optimal (",
                               round(threshold_opt, 3), ")"))
Tabel 17. Confusion Matrix pada Threshold Optimal (0.877)
Tidak Punya Punya
Tidak Punya 94 37
Punya 7 76

Hasil evaluasi menunjukkan bahwa nilai akurasi (79,4%), sensitivitas (67,3%), spesifisitas (93,1%), hingga error rate (20,6%) menunjukkan angka yang sama persis di antara kedua threshold tersebut. Kesamaan ini mengonfirmasi bahwa nilai probabilitas prediksi yang dihasilkan oleh model pada sampel testing sudah mengelompok secara tegas pada area ekstrem dan tidak ada satu pun responden yang memiliki nilai peluang prediksi di rentang abu-abu antara 0,50 hingga 0,877. Hal ini membuktikan bahwa model memiliki tingkat kestabilan yang sangat tinggi.


3.6.4. Distribusi Probabilitas Prediksi

# DISTRIBUSI PROBABILITAS PREDIKSI
test_prob_plot <- test_data %>%
  mutate(peluang_punya = p_test)

ggplot(test_prob_plot, aes(x = peluang_punya, fill = account_fin)) +
  geom_density(alpha = 0.55, color = "white", linewidth = 0.7) +
  geom_vline(
    xintercept = threshold_opt,
    color      = "#fb8500",
    linewidth  = 1.2,
    linetype   = "dashed"
  ) +
  annotate(
    "label",
    x     = threshold_opt, y = Inf,
    label = paste0("threshold = ", round(threshold_opt, 3)),
    vjust = 1.4, fill = "#fff3b0", color = "#5f370e", label.size = 0
  ) +
  scale_fill_manual(
    values = c("Tidak Punya Rekening" = "#e76f51", "Punya Rekening" = "#2a9d8f")
  ) +
  labs(
    title    = "Distribusi Peluang Prediksi Kepemilikan Rekening Bank",
    subtitle = "Data Testing — Findex Indonesia 2025",
    x    = "Peluang prediksi punya rekening bank",
    y    = "Kepadatan",
    fill = "Status aktual"
  ) +
  theme_minimal(base_size = 12)
**Gambar 6.** Distribusi Peluang Prediksi Kepemilikan Rekening Bank (Data Testing)

Gambar 6. Distribusi Peluang Prediksi Kepemilikan Rekening Bank (Data Testing)


3.6.5. Implikasi Kebijakan dalam Konteks Inklusi Keuangan Indonesia

Hasil analisis ini memberikan implikasi kebijakan yang cukup spesifik untuk agenda inklusi keuangan nasional. Karena hanya variabel penggunaan pembayaran digital yang terbukti berpengaruh signifikan, prioritas kebijakan ke depan perlu lebih difokuskan untuk memperkuat ekosistem non-tunai di masyarakat. Langkah nyata yang bisa diambil adalah mempercepat integrasi masyarakat yang belum memiliki rekening (unbanked) ke platform digital, misalnya dengan memperluas penggunaan QRIS di sektor mikro serta melanjutkan digitalisasi pada penyaluran bantuan sosial (bansos) pemerintah.

Selain itu, faktor wilayah tinggal (urban-rural) dan tingkat pendapatan menunjukkan bahwa perluasan infrastruktur keuangan digital perlahan mulai berhasil mengurangi ketimpangan akses. Oleh karena itu, fokus Otoritas Jasa Keuangan (OJK) dan Bank Indonesia sebaiknya tidak lagi sekadar mengejar kuantitas pembukaan rekening fisik, melainkan bergeser pada penguatan literasi digital, kestabilan jaringan internet di daerah, serta aspek perlindungan konsumen agar masyarakat dapat bertransaksi secara aman.


4. Kesimpulan dan Saran

4.1. Kesimpulan

Berdasarkan analisis regresi logistik biner menggunakan data Global Findex 2025 Indonesia (N = 1.068), dapat ditarik beberapa kesimpulan berikut:

  1. Penggunaan pembayaran digital merupakan determinan paling kuat terhadap kepemilikan rekening bank formal. Dengan nilai odds ratio (OR) mencapai 28,925, individu yang aktif menggunakan infrastruktur pembayaran digital memiliki kecenderungan 28,925 kali lebih besar untuk memiliki rekening bank dibandingkan dengan mereka yang belum mengadopsi teknologi tersebut. Hal ini menegaskan bahwa ekosistem digital dan sektor perbankan formal memiliki keterikatan yang sangat kuat.

  2. Variabel wilayah tempat tinggal (urban/rural) tidak berpengaruh signifikan setelah mengendalikan variabel lain (p = 0,357). Ketidaksignifikanan ini mengindikasikan bahwa sekat pembatas berupa dikotomi desa-kota dalam konteks akses finansial dasar di Indonesia sudah mulai terkikis, sebagai sinyal positif keberhasilan ekspansi layanan perbankan tanpa kantor dan pemanfaatan mobile banking yang semakin merata.

  3. Kuintil pendapatan menunjukkan kecenderungan pengaruh positif, namun tidak signifikan pada tingkat 5% (p = 0,097) dan dapat dikategorikan marginal pada α = 10%.

  4. Evaluasi performa prediktif pada data testing menunjukkan akurasi 79,4%, sensitivitas 67,3%, dan spesifisitas 93,1% pada threshold 0,50. Threshold optimal berdasarkan data training sebesar 0,877 menghasilkan metrik yang identik pada data testing, sehingga threshold 0,50 sudah memadai untuk klasifikasi pada studi ini.

Secara kebijakan, hasil ini menegaskan pentingnya perluasan adopsi pembayaran digital yang aman dan terjangkau serta peningkatan literasi keuangan digital untuk mendorong kepemilikan rekening bank formal, khususnya bagi kelompok yang masih unbanked.

4.2. Saran

Mengingat penggunaan pembayaran digital menjadi faktor tunggal yang paling dominan dalam mendorong kepemilikan rekening bank, Bank Indonesia dan Otoritas Jasa Keuangan (OJK) sebaiknya memprioritaskan perluasan infrastruktur digital. Langkah ini bisa dilakukan dengan memperluas interkoneksi QRIS di sektor pelaku usaha mikro serta melanjutkan digitalisasi penuh pada program penyaluran bantuan sosial pemerintah.

Selain itu, karena faktor wilayah tinggal (urban-rural) sudah tidak lagi menjadi penghalang yang signifikan, alokasi anggaran sebaiknya dialihkan untuk penguatan literasi keuangan digital, kestabilan jaringan internet pedesaan, serta jaminan keamanan konsumen dalam bertransaksi online.

Penelitian ini hanya membatasi analisis pada tiga variabel prediktor. Untuk penelitian selanjutnya, diharapkan menambah karakteristik sosiodemografi lain yang tersedia di data Global Findex, seperti tingkat pendidikan, kelompok usia, kepemilikan telepon seluler, atau tingkat literasi keuangan responden agar daya penjelas model menjadi lebih tinggi.


Referensi

[1] Development Research Group, Finance and Private Sector Development Unit. Indonesia - The Global Findex Database 2025: Connectivity and Financial Inclusion in the Digital Economy; World Bank: Washington, DC, USA, 2025; Ref. IDN_2024_FINDEX_v02_M. https://doi.org/10.48529/cdk5-2m94.

[2] Erlando, A.; Riyanto, F.D.; Masakazu, S. Financial inclusion, economic growth, and poverty alleviation: Evidence from eastern Indonesia. Heliyon 2020, 6(10), e05235. https://doi.org/10.1016/j.heliyon.2020.e05235.

[3] Otoritas Jasa Keuangan. Survei Nasional Literasi dan Inklusi Keuangan (SNLIK) Tahun 2024; OJK: Jakarta, Indonesia, 2024.

[4] Demirgüç-Kunt, A.; Klapper, L.; Singer, D.; Ansar, S. The Global Findex Database 2017: Measuring Financial Inclusion and the Fintech Revolution; World Bank: Washington, DC, USA, 2018.

[5] Allen, F.; Demirgüç-Kunt, A.; Klapper, L.; Martinez Peria, M.S. The foundations of financial inclusion: Understanding ownership and use of formal accounts. J. Financ. Intermediation 2016, 27, 1–30. https://doi.org/10.1016/j.jfi.2015.12.003.

[6] Ozili, P.K. Impact of digital finance on financial inclusion and stability. Borsa Istanbul Rev. 2018, 18(4), 329–340. https://doi.org/10.1016/j.bir.2017.12.003.

[7] Sahputri, R.A.M.; Sujarwoto; Sihombing, S.; Njoman, M.G. Financial inclusion in Indonesia: An analysis of determinants of bank account ownership and credit access at individual and regional levels. Econ. Finance Indones. 2024, 70(2), 1. https://doi.org/10.47291/efi.2024.06.

[8] Hosmer, D.W.; Lemeshow, S.; Sturdivant, R.X. Applied Logistic Regression, 3rd ed.; Wiley: Hoboken, NJ, USA, 2013.

[9] Chowdhury, M.A.M.; Labib, T.; Hossain, A.; Hossain, M.B.; Rengasamy, D.; Atiullah, M. Socio-economic determinants of digital financial inclusion in SAARC countries. Int. J. Sociol. Soc. Policy 2025, ahead-of-print. https://doi.org/10.1108/IJSSP-01-2025-0071.

[10] Hendrawaty, E.; Hasnawati, S.; Widodo, J.; Hadianto, B. The determinants of the financial inclusion of Indonesian female entrepreneurs. Int. J. Manag. Sustain. 2024, 13(2), 273–282.

[11] Agresti, A. Categorical Data Analysis, 3rd ed.; Wiley: Hoboken, NJ, USA, 2013.

[12] Midi, H.; Sarkar, S.K.; Rana, S. Collinearity diagnostics of binary logistic regression model. J. Interdiscip. Math. 2010, 13(3), 253–267. https://doi.org/10.1080/09720502.2010.10700699.

[13] Box, G.E.P.; Tidwell, P.W. Transformation of the independent variables. Technometrics 1962, 4(4), 531–550. https://doi.org/10.1080/00401706.1962.10490038.

[14] Akaike, H. A new look at the statistical model identification. IEEE Trans. Autom. Control 1974, 19(6), 716–723. https://doi.org/10.1109/TAC.1974.1100705.

[15] Fawcett, T. An introduction to ROC analysis. Pattern Recognit. Lett. 2006, 27(8), 861–874. https://doi.org/10.1016/j.patrec.2005.10.010.