Analisis Faktor Menabung dengan Regresi Logistik di Kota Samarinda

Pendahuluan

Berdasarkan artikel yand dikutip dari CNN Indonesia, pada tahun 2019, Otoritas Jasa Keuangan (OJK) mengklaim rasio menabung masyarakat Indonesia terhadap Produk Domestik Bruto (PDB) hanya 30.78%. Angka tersebut masih kalah dengan negara tetangga di Asia, khususnya Filiphina. Berdasarkan hasil Survei Sosial Ekonomi Nasional (Susenas) Maret 2020 di Kota Samarinda, 53% masyarakat tidak memiliki tabungan di lembaga keuangan (perbankan atau pun koperasi). Tujuan dari penelitian ini adalah untuk menganalisa hubungan antara kepemilikan tabungan yang berupa peubah respon biner “ya” dan “tidak” dengan beberapa peubah prediktornya. Analisis yang akan digunakan adalah analisis regresi logistik biner. Penelitian ini bertujuan untuk mengetahui faktor-faktor yang mempengaruhi kepemilikan seseorang atas tabungan.

Tinjauan Pustaka

Regresi Logistik

Regresi logistik merupakan suatu model yang mendeskripsikan hubungan antara beberapa variabel bebas dengan variabel respon yang bersifat dikotomis (dua kategori) atau polikotomis (lebih dari dua kategori). Model regresi logistik biner digunakan ketika variabel responnya berupa data kualitatif dikotomi yang bernilai 1 untuk kejadian sukses dan 0 untuk kejadian gagal (Agresti, 2007). Distribusi yang diikuti dalam regresi logistik biner adalah distribusi Bernoulli untuk setiap observasi tunggal (Setyaningrum, 2020). Model dari regresi logistik ganda adalah sebagai berikut:
\[\mathrm{log[\frac{P(x)}{1-P(x)}]} = \beta_0 + \beta_1x_1 + ... +\beta_px_p\]

Tabungan

Tabungan adalah simpanan yang penarikannya hanya dapat dilakukan menurut syarat tertentu yang disepakati, tetapi tidak dapat ditarik dengan cek, bilyet giro, dan/ atau alat lainnya yang dipersamakan dengan itu (UU RI No. 10 tahun 1998 tentang Perubahan atas Undang - undang No. 7 tahun 1992 tentang Perbankan).

Metode Penelitian

Data yang digunakan adalah data yang bersumber dari Survei Sosial Ekonomi Nasional (SUSENAS) 2020 Kota Samarinda. Peubah yang digunakan dapat dilihat pada Tabel 1.

Tabel 1. Tabulasi Peubah Respon dan Prediktor
Variabel Skala Keterangan
Peubah Respon Kepemilikan rekening tabungan (\(Y\)) Nominal 0 = Tidak memiliki rekening
1 = Memiliki Rekening
Peubah Prediktor Pekerjaan (\(X_1\)) Nominal 0 = Tidak Bekerja
1 = Bekerja
Klasifikasi (\(X_2\)) Nominal 1 = Kota
2 = Desa
Status Perkawinan (\(X_3\)) Nominal 0 = Belum Kawin / Cerai
1 = Kawin
Jenis Kelamin (\(X_4\)) Nominal 1 = Laki - laki
2 = Perempuan
Umur (\(X_5\)) Kontinyu
Pendidikan (\(X_6\)) Nominal 0 = Tidak pernah sekolah
1 = Sekolah

Adapun data yang dianalisis adalah anggota rumah tangga yang berusia 17 tahun ke atas, dengan pertimbangan usia 17 tahun ke atas secara mandiri sudah dapat membuat tabungan. Dalam penelitian ini digunakan analisis deskripsi untuk melihat gambaran data secara umum. Selain itu, digunakan juga model regresi logistik untuk membuat inferensia dari data.

Hasil dan Pembahasan

Untuk melakukan prediksi model, data akan dibagi menjadi dua, yaitu data train dan data test.

set.seed(5815)
sample <- sample(nrow(f_1),floor(nrow(f_1)*0.8))
train <- f_1[sample,]
test <- f_1[-sample,]

Eksplorasi Data

Sebelum dilakukan pengolahan data, maka sebelumnya akan dilakukan eksplorasi data terlebih dahulu untuk melihat gambaran umum dari data yang digunakan.

Gambaran Umum Karakteristik Kepemilikan Tabungan di Kota Samarinda 2020

Berikut adalah struktur data yang digunakan.

Berikut ditampilkan dalam bentuk grafik, proporsi masing masing peubah prediktor terhadap masing-masing peubah respon.

# bar plot, with each bar representing 100%
A <- ggplot(f_1,
            aes(x = kerja,
                fill = respon)) +
  geom_bar(position = "fill", names ="respon") +
  scale_fill_manual(values = c("#8d8741","#659dbd"))+
  labs(x = "Kerja",
       y = "Proporsi")

B <- ggplot(f_1,
            aes(x = klas,
                fill = respon)) +
  geom_bar(position = "fill", names ="respon") +
  scale_fill_manual(values = c("#8d8741","#659dbd"))+
  labs(x = "Klasifikasi",
       y = "Proporsi")

C <- ggplot(f_1,
            aes(x = kawin,
                fill = respon)) +
  geom_bar(position = "fill", names ="respon") +
  scale_fill_manual(values = c("#8d8741","#659dbd"))+
  labs(x = "Kawin",
       y = "Proporsi")

D <- ggplot(f_1,
            aes(x = jk,
                fill = respon)) +
  geom_bar(position = "fill", names ="respon") +
  scale_fill_manual(values = c("#8d8741","#659dbd"))+
  labs(x = "Jenis Kelamin",
       y = "Proporsi")

E <- ggplot(f_1, aes(x=umur, y= respon)) +
        geom_boxplot()+
    labs(x = "Umur",
       y = "Proporsi")

G <- ggplot(f_1,
            aes(x = pddkn,
                fill = respon)) +
  geom_bar(position = "fill", names ="respon") +
  scale_fill_manual(values = c("#8d8741","#659dbd"))+
  labs(x = "Pendidikan",
       y = "Proporsi")

ggarrange(A, B, C , D, E, G,
          ncol = 2, nrow = 3,
          labels = c("A", "B", "C", "D", "E", "F"))

Dari plot tersebut terlihat bahwa pekerjaan, klasifikasi desa/kota, dan status pendidikan, memberikan proporsi kepemilikan tabungan yang cukup berbeda untuk masing-masing kelompoknya. Sementara, status pernikahan dan jenis kelamin tidak menunjukkan proporsi yang terlalu berbeda. Selanjutnya, akan dilakukan analisis menggunakan regresi logistik terkait peubah prediktor tersebut.

Model Regresi Logistik

Model regresi logistik yang dibentuk dengan memasukkan variabel klasifikasi wilayah, pekerjaan, pendidikan, dan umur sebagai peubah prediktor.

model.awal<-glm(respon~kerja+klas+umur+pddkn, data=train, family=binomial)
summary(model.awal)

Call:
glm(formula = respon ~ kerja + klas + umur + pddkn, family = binomial, 
    data = train)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.6239  -1.1651   0.8282   0.9625   1.8061  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept) -0.557606   0.363845  -1.533 0.125390    
kerja1       0.923010   0.107178   8.612  < 2e-16 ***
klas2       -0.623636   0.231941  -2.689 0.007172 ** 
umur        -0.012582   0.003605  -3.490 0.000483 ***
pddkn1       0.855608   0.314727   2.719 0.006557 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2120.6  on 1544  degrees of freedom
Residual deviance: 2011.6  on 1540  degrees of freedom
AIC: 2021.6

Number of Fisher Scoring iterations: 4

Dari model tersebut terlihat bahwa peubah prediktor pekerjaan, klasifikasi kota/ desa, umur dan pendidikan, memberikan respon yang signifikan terhadap kepemilikan tabungan. Beberapa peubah penjelas, seperti klasifikasi desa dan umur bernilai negatif, sementara peubah penjelas lain bernilai positif.

Selanjutnya, dapat dilakukan interpretasi dari koefisien yang terbentuk dari model tersebut.

model.awal$coefficients
(Intercept)      kerja1       klas2        umur      pddkn1 
-0.55760592  0.92301034 -0.62363619 -0.01258243  0.85560775 

Hasil penduga \(\beta_1\) = 0.9230. Hasil penduga positif tersebut menyatakan bahwa masyarakat berusia 17 tahun ke atas yang bekerja cenderung memiliki tabungan. Peluang memiliki tabungan untuk seseorang yang bekerja akan menjadi 0.9230 kali lebih besar. Hasil penduga \(\beta_2\) = -0.6236. Hasil penduga negatif tersebut menyatakan bahwa masyarakat berusia 17 tahun ke atas yang tinggal di perkotaan cenderung memiliki tabungan. Masyarakat yang tinggal di wilayah perkotaan memiliki peluang 0.623 kali lebih besar untuk memiliki tabungan. Penduga \(\beta_3\) (Umur) dan \(\beta_4\) (Pendidikan) juga dapat diinterpretasikan seperti kedua penduga tersebut.

Evaluasi Model

Untuk mengevaluasi model yang sudah dibentuk, akan dilakukan dua perhitungan, yaitu dengan confusion matrix dan ROC curve

Confusion Matrix

Sensitivitas atau true positive rate adalah persentase pengamatan (aktual) yang diprediksi dengan benar oleh model, sedangkan spesifitas adalah persentase dari 0 (aktual) yang diprediksi dengan benar.

test$pred <- predict(model.awal, test, type="response")

# turn probabilities into classes and look at their frequencies
test$pred_class <- ifelse(test$pred > 0.5, "1", "0")
test$pred_class <- as.factor(test$pred_class)
(conf.mat<-caret::confusionMatrix(test$pred_class, test$respon, positive="1"))
Confusion Matrix and Statistics

          Reference
Prediction   0   1
         0  67  55
         1  92 173
                                          
               Accuracy : 0.6202          
                 95% CI : (0.5697, 0.6687)
    No Information Rate : 0.5891          
    P-Value [Acc > NIR] : 0.117103        
                                          
                  Kappa : 0.1867          
                                          
 Mcnemar's Test P-Value : 0.002985        
                                          
            Sensitivity : 0.7588          
            Specificity : 0.4214          
         Pos Pred Value : 0.6528          
         Neg Pred Value : 0.5492          
             Prevalence : 0.5891          
         Detection Rate : 0.4470          
   Detection Prevalence : 0.6848          
      Balanced Accuracy : 0.5901          
                                          
       'Positive' Class : 1               
                                          

Dari hasil perhitungan confusion matrix tersebut terlihat bahwa model tersebut mempunyai akurasi sebesar 62%.

# A tibble: 14 x 6
   term                 class estimate conf.low conf.high  p.value
   <chr>                <chr>    <dbl>    <dbl>     <dbl>    <dbl>
 1 accuracy             <NA>     0.620    0.570     0.669  0.117  
 2 kappa                <NA>     0.187   NA        NA     NA      
 3 mcnemar              <NA>    NA       NA        NA      0.00299
 4 sensitivity          1        0.759   NA        NA     NA      
 5 specificity          1        0.421   NA        NA     NA      
 6 pos_pred_value       1        0.653   NA        NA     NA      
 7 neg_pred_value       1        0.549   NA        NA     NA      
 8 precision            1        0.653   NA        NA     NA      
 9 recall               1        0.759   NA        NA     NA      
10 f1                   1        0.702   NA        NA     NA      
11 prevalence           1        0.589   NA        NA     NA      
12 detection_rate       1        0.447   NA        NA     NA      
13 detection_prevalence 1        0.685   NA        NA     NA      
14 balanced_accuracy    1        0.590   NA        NA     NA      

Receiver Operating Characteristics (ROC) Curve
ROC curve diplot berdasarkan nilai TPR (True Positive Rate) dengan FPR (False Positive Rate). Pada sumbu y adalah nilai dari TPR dan pada sumbu x adalah nilai dari FPR.

library(InformationValue)
plotROC(test$respon=="1", test$pred)

Kesimpulan

Berdasarkan hasil analisis menggunakan model regresi logistik tersebut, dapat dikatakan bahwa terdapat beberapa faktor yang mempengaruhi kepemilikan tabungan pada masyarakat berusia di atas 17 tahun di Kota Samarinda. Masyarakat yang tinggal di daerah perkotaan, menempuh pendidikan formal, dan bekerja memiliki peluang yang lebih tinggi untuk memiliki tabungan. Model yang dihasilkan dengan peubah-peubah tersebut memiliki akurasi sebesar 64%.

Daftar Pustaka

Badan Pusat Statistik Kota Samarinda(2020). Indikator Kesejahteraan Rakyat Kota Samarinda 2019/2020. Samarinda: BPS Kota Samarinda.

Narkhede, Sarang. (2018). Understanding AUC - ROC Curve.

Nurussadad, A.A., Rahma, Anisa (Maret, 2021). STA581-05 - Logistics Regression. Retrieved from https://rpubs.com/nurussadad/STA581-05-regresi-logistik

Setyaningrum, Dwi Ayu & Sirait, Timbang (2020). Pemodelan Logit, Probit, dan Complementary Log-Log. Studi Kasus: Partisipasi Angkatan Kerja Perempuan dan Perekonomian di Kalimantan Timur Tahun 2019.