Paper Regresi Logistik untuk Memprediksi Jenis Hunian

LATAR BELAKANG

Salah satu masalah utama di Indonesia adalah jumlah penduduk yang cukup tinggi. Laju pertumbuhan penduduk bervariasi pada tahun 2009 sebesar 2,4%, sedangkan jumlah penduduk Indonesia pada tahun 2014 mencapai 231,4 juta jiwa (BPS 2014). Hal ini menimbulkan berbagai macam masalah lain seperti kepadatan penduduk. Kepadatan Penduduk (KP) merupakan perbandingan antara jumlah penduduk yang tinggal di suatu daerah dengan luas wilayah yang dihuni dalam satuan jiwa/km2. Akibat dari kepadatan penduduk salah satunya adalah persaingan untuk mendapatkan pemukiman.

Permukiman merupakan salah satu kebutuhan dasar manusia. Permasalahan perumahan dan permukiman merupakan sebuah isu utama yang selalu mendapat perhatian lebih dari pemerintah. Kendala utama yang dihadapi masyarakat pada umumnya keterjangkauan pembiayaan rumah. Secara sederhana permasalahan perumahan dan permukiman ini adalah tidak sesuainya jumlah hunian yang tersedia jika dibandingkan dengan kebutuhan dan jumlah masyarakat yang akan menempatinya. Pembangunan perumahan dan permukiman dalam skala besar akan selalu dihadapkan kepada masalah tanah, yang didaerah perkotaan menjadi semakin langka dan semakin mahal.

Berdasarkan uraian latar belakang di atas, sangat penting untuk mengupayakan kesuksesan pembangunan perumahan dan pemukiman guna memenuhi kebutuhan dasar masyarakat. Maka dari itu, pemerintah perlu mencanangkan sebuah program untuk mengatasi masalah persaingan mendapatkan pemukiman. Hal yang dapat dilakukan dalam rangka menanggulangi masalah tersebut adalah membangun perumahan dan pemukiman yang sesuai dengan kebutuhan dan jumlah masyarakat yang akan menempatinya. Untuk memprediksi jenis hunian yang dibutuhkan oleh masyarakat, dapat dilakukan pemodelan dengan memanfaatkan karakteristik dari masyarakat sebagai peubah bebas dan prediksi jenis hunian sebagai peubah respon. Dengan mengetahui jenis hunian yang tepat dan sesuai dengan kebutuhan dan jumlah masyarakat, pembangunan perumahan dan pemukiman dapat menjadi lebih efektif sehingga tidak ada lagi persaingan untuk mendapatkan pemukiman.

TUJUAN PENELITIAN

Tujuan dari tugas praktikum ini untuk membangun model prediksi jenis hunian masyarakat yang sesuai dengan kebutuhan dan jumlah masyarakat berdasarkan karakteristik dari masyarakat tersebut.

RUANG LINGKUP PENELITIAN

Data yang digunakan dalam penelitian ini adalah data SDKI BKKBN tahun 2017 yang didapatkan dari www.bkkbn.go.id (website BKKBN). Data tersebut berisikan karakteristik pasangan seperti kategori kekayaan pasangan suami istri, usia suami, usia istri, dst. Peubah respon yang digunakan adalah peubah jenis hunian. Metode yang digunakan yaitu klasifikasi menggunakan Regresi Logistik Biner yang dapat memprediksi kategori dari data tersebut.

MANFAAT PENELITIAN

Penelitian ini memiliki output model prediksi jenis hunian (Pedesaan atau Perkotaan) pasangan suami istri. Pasangan yang diprediksi akan menghuni wilayah pedesaan dapat memberikan gambaran kepada Pemerintah seberapa banyak jumlah hunian yang harus disiapkan di wilayah pedesaan, begitu juga jika pasangan yang diprediksi akan menghuni wilayah perkotaan. Hasilnya dapat dijadikan pertimbangan bagi Pemerintah untuk mengatur jumlah pemukiman baik di wilayah pedesaan maupun perkotaan sehingga pemerintah dapat mengoptimalkan layanan yang mendukung agar pembangunan pemukiman dan perumahan ini menjadi lebih baik.

TINJAUAN PUSTAKA

Pemukiman dan Perumahan

Lingkungan pemukiman adalah suatu daerah yang di dalamnya terdapat susunan ketetanggaan atau kumpulan tempat tinggal dan sarana perkantoran, niaga, pendidikan, budaya, kesehatan, dan fasilitas administrasi penting lainnya di sekitar area tersebut (Eckbo 1964). Dalam kata lain, lingkungan pemukiman adalah kawasan perumahan dalam berbagai bentuk dan ukuran dengan penataan tanah dan ruang, prasarana dan sarana lingkungan yang terstruktur. Rumah adalah bangunan yang dijadikan tempat tinggal selama jangka waktu tertentu.

Perkotaan

Pendekatan dari segi ekonomi melihat kota sebagai pusat pertemuan lalu lintas ekonomi, perdagangan, kegiatan industri serta tempat perputaran uang yang bergerak dengan cepat dan dalam volume yang banyak (Marbun 1994). Berbeda dengan definisi kota secara administratif, definisi perkotaan menurut BPS yaitu wilayah yang memiliki kepadatan penduduk mencapai 5 ribu jiwa atau lebih per kilometer persegi, jumlah rumah tangga dengan pola usaha pertanian maksimum 25 persen dan menunjukkan adanya delapan atau lebih jenis fasilitas perkotaan, seperti sekolah, pasar, rumah sakit, jalan aspal dan listrik. Baik kabupaten maupun kota (dalam pengertian administrasi) memiliki wilayah perkotaan.

Pedesaan

Kawasan perdesaan (Rural) adalah wilayah yang mempunyai kegiatan utama pertanian, termasuk pengelolaan sumber daya alam dengan susunan fungsi kawasan sebagai tempat permukiman perdesaan, pelayanan jasa, pemerintahan, pelayanan sosial, dan kegiatan ekonomi. Ciri kawasan pedesaan adalah kepadatan penduduk rendah, kegiatan di pedesaan didominasi oleh kegiatan pertanian tanaman keras, tanaman tumpang sari, peternakan sapi, kambing, unggas, kolam ikan, masih banyak ditemukan hewan liar seperti burung, tikus, tupai, ular dan sebagainya, penduduk terkonsentrasi dalam bentuk kluster yang disebut desa dan hubungan sosial masyarakat masih sangat akrab dan saling bantu (Jamaludin 2015).

Regresi Logistik

Regresi logistik adalah suatu metode regresi yang menggambarkan hubungan antara peubah respon berskala kategorik dan peubah penjelas berskala kategorik, numerik atau campuran. Menurut Hosmer dan Lemeshow (2000), Regresi Logistik merupakan salah satu metode klasifikasi yang mendeskripsikan hubungan antara peubah respon yang memiliki dua kategori atau lebih dengan satu atau lebih peubah penjelas berskala kategori atau interval. Regresi logistik biner merupakan regresi logistik yang digunakan saat peubah respon memiliki dua kelompok dan berskala nominal. Pendekatan model regresi logistik digunakan karena dapat menjelaskan hubungan antara X dan π(x) yang bersifat tidak linear. Asumsi yang harus dipenuhi pada regresi logistik adalah tidak ada multikolinearitas pada peubah prediktor.

METODE PENELITIAN

Data

Data yang digunakan pada penelitian ini adalah data Survei Demografi dan Kesehatan Indonesia (SDKI) 2017 yang dimiliki oleh Badan Kependudukan dan Keluarga Berencana Nasional. Data ini didapat dari website www.bkkbn.go.id. Pada data ini, terdapat 13 peubah dan 8165 amatan. SDKI merupakan hasil survei demografi dan kesehatan indonesia. Survei tersebut mengenai karakteristik dari demografi keluarga seperti usia suami (ageOfHusband), usia istri (ageOfWife), pendidikan suami (educationHusband), pendidikan istri (educationWife), frekuensi penggunaan internet suami (FrequencyInternetHusband), frekuensi penggunaan internet istri (FrequencyInternetWife), status kekayaan (Wealth), jumlah anak (Totalchildren), jenis kelamin anak pertama (Sexthefirstchild), usia istri saat memiliki anak pertama (AgeOfWife1stbirth), usia suami saat memiliki anak pertama (AgeofHusband1stbirth), jenis hunian (TypeOfPlace) dan usia anak (Agechild). Atribut prediktor dalam data tersebut memiliki tipe data kategorik dan numerik. Pada peubah jenis hunian yang digunakan sebagai kelas tujuan dibagi menjadi 2 kategori yaitu kategori Rural merupakan kategori jenis hunian di wilayah pedesaan dan kategori Urban merupakan kategori jenis hunian di wilayah perkotaan.

Tahapan Penelitian

Penelitian ini memiliki beberapa tahapan yang terdiri atas praproses data, ekplorasi data, pembagian data latih dan data uji, pemodelan klasifikasi dengan algoritma Regresi Logistik Biner, dan diakhiri dengan interpretasi dan evaluasi model dari hasil penarikan kesimpulan.

Praproses Data

Praproses data bertujuan untuk membuat data menjadi data lengkap dan baik untuk dianalisis. Pada proposes data penelitian ini sebelumnya telah dilakukan beberapa teknik yaitu pembersihan data (menghapus missing value) dan pemilihan peubah bebas yang sekiranya berpengaruh terhadap peubah respon jenis hunian. Setelah itu, dilakukan pemeriksaan multikolinearitas melalui nilai korelasi antar peubah bebas. Hal ini dilakukan berdasarkan sumber literatur dan penelitian terdahulu.

Eksplorasi Data

Pada eksplorasi data dilakukan pengamatan secara objektif untuk melihat karakteristik dan tipe data yang digunakan. Eksplorasi data ini bertujuan untuk mempelajari pola data agar nantinya menjadi informasi yang dapat menunjang analisis data. Dengan adanya eksplorasi data akan lebih mudah menentukan informasi yang akan disampaikan.

Pembagian Data

Data pada penelitian ini dibagi menjadi dua bagian yaitu data latih dan data uji dimana data latih digunakan untuk membuat model Regresi Logistik Biner sedangkan data uji untuk menguji model tersebut.

Pemodelan Regresi Logistik Biner

Data latih kemudian digunakan untuk pemodelan pada tahap ini. Model klasifikasi dibuat dengan menggunakan bahasa pemograman R dengan package yang telah tersedia.

Interpretasi dan Evaluasi Model Regresi Logistik Biner

Model yang didapat tentunya menjadi alat untuk memprediksi jenis hunian masyarakat. Evaluasi yang dilakukan pada model yaitu dengan melihat akurasi model pada data uji yang telah ditentukan sebelumnya. Selain melihat akurasi, dilihat juga hasil prediksi oleh model lalu dibandingkan dengan data aslinya. Sehingga terlihat banyaknya amatan pada data uji yang terprediksi tepat oleh masing-masing model dan banyaknya amatan yang tidak terprediksi dengan tepat.

HASIL DAN PEMBAHASAN

Load package

Pertama-tama, jangan lupa untuk memanggil package yang akan digunakan dengan menggunakan sintaks berikut

library(stringr)
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.6     v dplyr   1.0.7
## v tidyr   1.1.4     v forcats 0.5.1
## v readr   2.0.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(broom)
library(caret)
## Loading required package: lattice
## 
## Attaching package: 'caret'
## The following object is masked from 'package:purrr':
## 
##     lift
library(DataExplorer)
library(grid)
library(InformationValue)
## 
## Attaching package: 'InformationValue'
## The following objects are masked from 'package:caret':
## 
##     confusionMatrix, precision, sensitivity, specificity
library(ISLR)
library(pscl)
## Classes and Methods for R developed in the
## Political Science Computational Laboratory
## Department of Political Science
## Stanford University
## Simon Jackman
## hurdle and zeroinfl functions by Achim Zeileis
library(tidyverse)
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following object is masked from 'package:purrr':
## 
##     some
library(GGally)
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2

Load dataset

Data sudah tersedia pada link github berikut https://raw.githubusercontent.com/azzahramonra/sainsdata/main/Copy%20of%20Generate%20SDKI.csv

tugas<-utils::read.csv("https://raw.githubusercontent.com/azzahramonra/sainsdata/main/Copy%20of%20Generate%20SDKI.csv",sep=';',stringsAsFactors = T)
str(tugas)
## 'data.frame':    8164 obs. of  13 variables:
##  $ ageOfWife               : int  30 42 37 38 36 28 43 43 30 33 ...
##  $ ageOfHusband            : int  33 45 39 44 42 28 45 45 35 36 ...
##  $ AgeOfWife1stbirth       : int  19 22 18 20 20 21 23 21 23 18 ...
##  $ AgeofHusband1stbirth    : int  22 19 21 26 26 21 24 23 28 23 ...
##  $ educationWife           : Factor w/ 4 levels "Higher","No education",..: 3 2 3 4 3 4 4 4 3 4 ...
##  $ educationHusband        : Factor w/ 4 levels "Higher","No education",..: 3 3 4 4 4 4 4 4 3 3 ...
##  $ FrequencyInternetWife   : Factor w/ 4 levels "AlmostEveryday",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ FrequencyInternetHusband: Factor w/ 5 levels "AlmostEveryday",..: 4 4 4 4 4 4 4 4 4 4 ...
##  $ Wealth                  : Factor w/ 5 levels "Middle","Poorer",..: 3 3 2 1 4 2 2 4 3 3 ...
##  $ TypeofPlace             : Factor w/ 2 levels "Rural","Urban": 1 1 1 1 1 1 1 1 1 1 ...
##  $ Totalchildren           : int  4 5 8 2 4 2 6 3 2 4 ...
##  $ Agechild                : int  9 19 17 18 16 6 20 22 7 14 ...
##  $ Sexthefirstchild        : Factor w/ 2 levels "F","M": 1 2 2 1 2 1 1 2 1 2 ...
summary(tugas)
##    ageOfWife      ageOfHusband   AgeOfWife1stbirth AgeofHusband1stbirth
##  Min.   :16.00   Min.   :17.00   Min.   :10.00     Min.   :14.00       
##  1st Qu.:30.00   1st Qu.:34.00   1st Qu.:19.00     1st Qu.:23.00       
##  Median :36.00   Median :40.00   Median :21.00     Median :25.00       
##  Mean   :35.58   Mean   :39.49   Mean   :21.88     Mean   :26.59       
##  3rd Qu.:42.00   3rd Qu.:46.00   3rd Qu.:24.00     3rd Qu.:29.00       
##  Max.   :49.00   Max.   :54.00   Max.   :46.00     Max.   :99.00       
##       educationWife      educationHusband       FrequencyInternetWife
##  Higher      :1108   Higher      :1095    AlmostEveryday   :1963     
##  No education: 167   No education: 153    LessThanOnceAweek: 201     
##  Primary     :2539   Primary     :2536    NotAtAll         :5440     
##  Secondary   :4350   Secondary   :4380    onceAweek        : 560     
##                                                                      
##                                                                      
##          FrequencyInternetHusband     Wealth     TypeofPlace  Totalchildren  
##  AlmostEveryday      :2174        Middle :1627   Rural:4096   Min.   : 1.00  
##  At least once a week: 550        Poorer :1634   Urban:4068   1st Qu.: 2.00  
##  LessThanOnceAweek   : 179        Poorest:1811                Median : 2.00  
##  NotAtAll            :5169        Richer :1565                Mean   : 2.52  
##  onceAweek           :  92        Richest:1527                3rd Qu.: 3.00  
##                                                               Max.   :12.00  
##     Agechild     Sexthefirstchild
##  Min.   : 0.00   F:3996          
##  1st Qu.: 6.00   M:4168          
##  Median :13.00                   
##  Mean   :13.03                   
##  3rd Qu.:19.00                   
##  Max.   :38.00
colnames(tugas)
##  [1] "ageOfWife"                "ageOfHusband"            
##  [3] "AgeOfWife1stbirth"        "AgeofHusband1stbirth"    
##  [5] "educationWife"            "educationHusband"        
##  [7] "FrequencyInternetWife"    "FrequencyInternetHusband"
##  [9] "Wealth"                   "TypeofPlace"             
## [11] "Totalchildren"            "Agechild"                
## [13] "Sexthefirstchild"

Praproses Data

Seperti yang sudah dijelaskan pada bagian Metode Penelitian. Praproses yang sudah dilakukan adalah pemilihan peubah bebas dan penanganan nilai hilang (Missing Value) berdasarkan sumber literatur dan penelitian terdahulu. Selanjutnya, akan dilakukan pemeriksaan multikolinieritas yaitu masalah yang terjadi pada regresi berganda jika peubah-peubah X saling berkorelasi. Adanya hubungan linier yang kuat antara peubah-peubah bebas X.

 Hal ini akan mempengaruhi ragam dari dugaan koefisien regresi

 Peubah X yang dianggap penting kemungkinan akan tidak nyata walaupun nilai R2 nya tinggi.

 Pendugaan dari koefisien regresi menjadi tidak benar, misalnya koefisien memiliki tanda negatif padahal dalam hubungan X dan Y sebenarnya adalah positif

Untuk memerika multikolinearitas, akan dilihat nilai korelasi pearson dari peubah numeric.

GGally::ggcorr(tugas, method = c("everything","pearson"),geom = "tile") 
## Warning in GGally::ggcorr(tugas, method = c("everything", "pearson"),
## geom = "tile"): data in column(s) 'educationWife', 'educationHusband',
## 'FrequencyInternetWife', 'FrequencyInternetHusband', 'Wealth', 'TypeofPlace',
## 'Sexthefirstchild' are not numeric and were ignored

cor_mat <- cor(tugas[,c(1:4,11,12)],method = "pearson")
cor_mat[upper.tri(cor_mat,diag = TRUE)] <- NA #ganti jd na krn nilai korelasi simetris dan berulang pilih salah 1 sj
cor_df <- cor_mat   %>%
  as.data.frame() %>% 
  rownames_to_column(var = "Var1") %>%
  pivot_longer(names_to = "Var2", #ada pivot longer ada jg pivot wider utk reshaping data
               values_to = "corr",
               -Var1) %>% na.omit

cor_df %>% filter(abs(corr)>0.6) %>% arrange(desc(abs(corr))) #korelasi diatas abs 0.6

Pada output diatas, terlihat untuk peubah yang terindikasi memiliki masalah multikolinearitas adalah peubah usia istri ageOfWife dan peubah usia anak Agechild karena memiliki nilai korelasi yang tinggi dengan peubah ageOfHusband yaitu lbeih dari 0.80. Oleh karena itu, peubah tersebut akan dikeluarkan dari model.

tugas <- tugas %>% 
  select(c(-ageOfWife,-Agechild))
cor_mat <- cor(tugas[,c(1:3,10)],method = "pearson")
cor_mat[upper.tri(cor_mat,diag = TRUE)] <- NA 
cor_df <- cor_mat   %>%
  as.data.frame() %>% 
  rownames_to_column(var = "Var1") %>%
  pivot_longer(names_to = "Var2", 
               values_to = "corr",
               -Var1) %>% na.omit

cor_df

Terlihat bahwa korelasi antar peubah sudah tidak ada yang melebihi 0.6, sehingga proses pemodelan dapat dilanjutkan.

Eksplorasi Data

Untuk melihat barplot dan boxplot digunakan sintaks berikut

plot_bar(tugas)

plot_boxplot(tugas,by="TypeofPlace")

Berdasarkan eksplorasi data, terlihat untuk level pendidikan bagi suami dan istri mayoritas adalah SMA (secondary), frekuensi penggunanaan internet bagi suami dan istri mayoritas adalah tidak pernah sama sekali (NotAtAll). Status kekayaan masyarakat yang disurvei mayoritas adalah miskin sekali (poorest). Untuk proporsi kedua kelas atau kategori dari peubah respon,jenis hunian perkotaan (Urban) dan pedesaan (Rural) cenderung seimbang.

Sementara itu, untuk usia suami, cenderung lebih tua yang tinggal di jenis hunian perkotaan daripada pedesaan. Jumlah anak yang lebih banyak juga cenderung ditemukan pada jenis hunian perkotaan daripada jenis hunian pedesaan. Usia istri ketika memiliki anak pertama cenderung lebih muda yang tinggal di jenis hunian perkotaan daripada pedesaan.

Pembagian Data

Sebelum data dimasukan ke model, data perlu dibagi menjadi dua bagian yaitu data latih dan data uji secara acak. Data latih merupakan 80% dari data keseluruhan, sedangkan data uji 20% dari data keseluruhan.

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

train adalah data latih berisi 80% dari data keseluruhan dan test adalah data uji, 20% dari data keseluruhan.

Pemodelan

Pada tahap pemodelan, terdapat 1 peubah respon yaitu jenis hunian (TypeOfPlace) dan 10 peubah bebas yang masuk kedalam model setelah dikeluarkan 2 peubah yang cenderung terindikasi mengalami masalah multikolinearitas yaitu usia istri (ageOfWife) dan usia anak (Agechild). Kesepuluh peubah tersebut adalah usia suami (ageOfHusband), pendidikan suami (educationHusband), pendidikan istri (educationWife), frekuensi penggunaan internet suami (FrequencyInternetHusband), frekuensi penggunaan internet istri (FrequencyInternetWife), status kekayaan (Wealth), jumlah anak (Totalchildren), jenis kelamin anak pertama (Sexthefirstchild), usia istri saat memiliki anak pertama (AgeOfWife1stbirth), usia suami saat memiliki anak pertama (AgeofHusband1stbirth).

reglog <- glm(`TypeofPlace`~`ageOfHusband`+`AgeOfWife1stbirth`+`AgeofHusband1stbirth`+`educationWife`+`educationHusband`+`FrequencyInternetWife`+`FrequencyInternetHusband`+`Wealth`+`Totalchildren`+`Sexthefirstchild`, data = train, family = "binomial")
summary(reglog)
## 
## Call:
## glm(formula = TypeofPlace ~ ageOfHusband + AgeOfWife1stbirth + 
##     AgeofHusband1stbirth + educationWife + educationHusband + 
##     FrequencyInternetWife + FrequencyInternetHusband + Wealth + 
##     Totalchildren + Sexthefirstchild, family = "binomial", data = train)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -2.3611  -0.8777  -0.3827   0.8809   2.3587  
## 
## Coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                  -1.556784   0.268798  -5.792
## ageOfHusband                                  0.010863   0.004694   2.314
## AgeOfWife1stbirth                             0.054964   0.007788   7.057
## AgeofHusband1stbirth                          0.006906   0.003688   1.873
## educationWifeNo education                     0.285124   0.289126   0.986
## educationWifePrimary                          0.541025   0.131177   4.124
## educationWifeSecondary                        0.721022   0.112274   6.422
## educationHusbandNo education                 -0.249594   0.288541  -0.865
## educationHusbandPrimary                       0.156481   0.129755   1.206
## educationHusbandSecondary                     0.239092   0.112589   2.124
## FrequencyInternetWifeLessThanOnceAweek       -0.443332   0.186741  -2.374
## FrequencyInternetWifeNotAtAll                -0.803107   0.095518  -8.408
## FrequencyInternetWifeonceAweek               -0.474134   0.136236  -3.480
## FrequencyInternetHusbandAt least once a week -0.515922   0.126319  -4.084
## FrequencyInternetHusbandLessThanOnceAweek    -0.649016   0.209733  -3.094
## FrequencyInternetHusbandNotAtAll             -0.628777   0.091117  -6.901
## FrequencyInternetHusbandonceAweek            -0.608260   0.284034  -2.142
## WealthPoorer                                 -0.567325   0.083586  -6.787
## WealthPoorest                                -1.605070   0.098813 -16.244
## WealthRicher                                  0.460461   0.086801   5.305
## WealthRichest                                 0.951550   0.108377   8.780
## Totalchildren                                 0.063477   0.025271   2.512
## SexthefirstchildM                             0.115224   0.058126   1.982
##                                              Pr(>|z|)    
## (Intercept)                                  6.97e-09 ***
## ageOfHusband                                 0.020658 *  
## AgeOfWife1stbirth                            1.70e-12 ***
## AgeofHusband1stbirth                         0.061094 .  
## educationWifeNo education                    0.324055    
## educationWifePrimary                         3.72e-05 ***
## educationWifeSecondary                       1.35e-10 ***
## educationHusbandNo education                 0.387027    
## educationHusbandPrimary                      0.227826    
## educationHusbandSecondary                    0.033705 *  
## FrequencyInternetWifeLessThanOnceAweek       0.017594 *  
## FrequencyInternetWifeNotAtAll                 < 2e-16 ***
## FrequencyInternetWifeonceAweek               0.000501 ***
## FrequencyInternetHusbandAt least once a week 4.42e-05 ***
## FrequencyInternetHusbandLessThanOnceAweek    0.001972 ** 
## FrequencyInternetHusbandNotAtAll             5.17e-12 ***
## FrequencyInternetHusbandonceAweek            0.032233 *  
## WealthPoorer                                 1.14e-11 ***
## WealthPoorest                                 < 2e-16 ***
## WealthRicher                                 1.13e-07 ***
## WealthRichest                                 < 2e-16 ***
## Totalchildren                                0.012011 *  
## SexthefirstchildM                            0.047443 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 9053.3  on 6530  degrees of freedom
## Residual deviance: 7102.1  on 6508  degrees of freedom
## AIC: 7148.1
## 
## Number of Fisher Scoring iterations: 4
pscl::pR2(reglog)["McFadden"]
## fitting null model for pseudo-r2
##  McFadden 
## 0.2155234

Output diatas menunjukkan peubah yang tidak signifikan dalam taraf nyata 5% adalah educationHusbandNo education, educationHusbandPrimary, educationWifeNo education, dan AgeofHusband1stbirth. Sementara untuk peubah selain itu signifikan semua.

Nilai Pseudo R2 yang diperoleh adalah 0.21552. Model memerlukan interasi Fisher sebanyak 4 kali dan diperoleh AIC sebesar 7148.1.

Interpretasi Model

Untuk mengeluarkan koefisien dari model digunakan sintaks reglog$coefficien.

Sementara untuk rasio odds, yaitu rasio antara dua odds, digunakan sintaks exp(reglog$coefficien). Untuk mengeluarkan selang kepercayaan dari masing-masing koefisien regresi, digunakan sintaks confint(reglog).

reglog$coefficien
##                                  (Intercept) 
##                                 -1.556783529 
##                                 ageOfHusband 
##                                  0.010863073 
##                            AgeOfWife1stbirth 
##                                  0.054964256 
##                         AgeofHusband1stbirth 
##                                  0.006906254 
##                    educationWifeNo education 
##                                  0.285123831 
##                         educationWifePrimary 
##                                  0.541024791 
##                       educationWifeSecondary 
##                                  0.721022423 
##                 educationHusbandNo education 
##                                 -0.249593678 
##                      educationHusbandPrimary 
##                                  0.156481202 
##                    educationHusbandSecondary 
##                                  0.239092352 
##       FrequencyInternetWifeLessThanOnceAweek 
##                                 -0.443331865 
##                FrequencyInternetWifeNotAtAll 
##                                 -0.803106866 
##               FrequencyInternetWifeonceAweek 
##                                 -0.474133731 
## FrequencyInternetHusbandAt least once a week 
##                                 -0.515921951 
##    FrequencyInternetHusbandLessThanOnceAweek 
##                                 -0.649015531 
##             FrequencyInternetHusbandNotAtAll 
##                                 -0.628777271 
##            FrequencyInternetHusbandonceAweek 
##                                 -0.608260194 
##                                 WealthPoorer 
##                                 -0.567325209 
##                                WealthPoorest 
##                                 -1.605069912 
##                                 WealthRicher 
##                                  0.460460775 
##                                WealthRichest 
##                                  0.951549703 
##                                Totalchildren 
##                                  0.063476724 
##                            SexthefirstchildM 
##                                  0.115224037
exp(reglog$coefficien)
##                                  (Intercept) 
##                                    0.2108131 
##                                 ageOfHusband 
##                                    1.0109223 
##                            AgeOfWife1stbirth 
##                                    1.0565029 
##                         AgeofHusband1stbirth 
##                                    1.0069302 
##                    educationWifeNo education 
##                                    1.3299267 
##                         educationWifePrimary 
##                                    1.7177663 
##                       educationWifeSecondary 
##                                    2.0565348 
##                 educationHusbandNo education 
##                                    0.7791173 
##                      educationHusbandPrimary 
##                                    1.1693888 
##                    educationHusbandSecondary 
##                                    1.2700958 
##       FrequencyInternetWifeLessThanOnceAweek 
##                                    0.6418941 
##                FrequencyInternetWifeNotAtAll 
##                                    0.4479351 
##               FrequencyInternetWifeonceAweek 
##                                    0.6224240 
## FrequencyInternetHusbandAt least once a week 
##                                    0.5969500 
##    FrequencyInternetHusbandLessThanOnceAweek 
##                                    0.5225600 
##             FrequencyInternetHusbandNotAtAll 
##                                    0.5332434 
##            FrequencyInternetHusbandonceAweek 
##                                    0.5442970 
##                                 WealthPoorer 
##                                    0.5670401 
##                                WealthPoorest 
##                                    0.2008755 
##                                 WealthRicher 
##                                    1.5848041 
##                                WealthRichest 
##                                    2.5897198 
##                                Totalchildren 
##                                    1.0655347 
##                            SexthefirstchildM 
##                                    1.1221248
confint(reglog)
## Waiting for profiling to be done...
##                                                      2.5 %      97.5 %
## (Intercept)                                  -2.0845115908 -1.03064584
## ageOfHusband                                  0.0016680280  0.02007157
## AgeOfWife1stbirth                             0.0397357729  0.07027127
## AgeofHusband1stbirth                         -0.0003069355  0.01417871
## educationWifeNo education                    -0.2986625734  0.83826339
## educationWifePrimary                          0.2844475315  0.79877261
## educationWifeSecondary                        0.5014497404  0.94170239
## educationHusbandNo education                 -0.8288524739  0.30526917
## educationHusbandPrimary                      -0.0977421643  0.41101503
## educationHusbandSecondary                     0.0182587968  0.45976192
## FrequencyInternetWifeLessThanOnceAweek       -0.8086601351 -0.07589488
## FrequencyInternetWifeNotAtAll                -0.9910640967 -0.61654060
## FrequencyInternetWifeonceAweek               -0.7402386411 -0.20596284
## FrequencyInternetHusbandAt least once a week -0.7630805984 -0.26774014
## FrequencyInternetHusbandLessThanOnceAweek    -1.0614589120 -0.23831222
## FrequencyInternetHusbandNotAtAll             -0.8077946778 -0.45053996
## FrequencyInternetHusbandonceAweek            -1.1650045041 -0.04903684
## WealthPoorer                                 -0.7314470535 -0.40374633
## WealthPoorest                                -1.8002506813 -1.41279547
## WealthRicher                                  0.2905704894  0.63088272
## WealthRichest                                 0.7402139479  1.16517793
## Totalchildren                                 0.0138361428  0.11292389
## SexthefirstchildM                             0.0013442314  0.22921831

Hasil koefisien regresi untuk umur istri saat memiliki anak pertama (AgeOfWife1stbirth) = 0.054964256 (positif) dan total jumlah anak (Totalchildren) = 0.063476724 (positif) berarti semakin bertambahnya umur istri saat memiliki anak pertama akan meningkatkan peluang memiliki jenis hunian perkotaan. Sama juga, semakin bertambahnya jumlah anak akan meningkatkan peluang memiliki jenis hunian perkotaan.

Istri yang berumur lebih tua saat memiliki anak pertama memiliki risiko 0.054964256 kali lebih besar untuk memiliki jenis hunian perkotaan. Dalam kata lain, peningkatan satu tahun usia pada istri saat memiliki anak pertama, berhubungan dengan meningkatnya log-odds jenis hunian perkotaan sebesar 0.054964256 unit. Begitu juga dengan jumlah anak. Masyarakat yang memiliki jumlah anak lebih banyak memiliki risiko 0.063476724 kali lebih besar untuk memiliki jenis hunian perkotaan. Dalam kata lain, peningkatan satu anak, berhubungan dengan meningkatnya log-odds jenis hunian perkotaan sebesar 0.063476724 unit.

Selain itu, terlihat bahwa nilai rasio odds untuk peubah umur suami (AgeofHusband) = 1.0109223 (positif) dan umur istri saat memiliki anak pertama (AgeOfWife1stbirth) = 1.0565029 (positif). Hal ini dapat diartikan bahwa ketika usia suami meningkat 1 tahun maka kemungkinan memiliki jenis hunian perkotaan meningkat sebesar 1.0109223 kali dibandingkan usia tetap dan ketika usia istri saat memiliki anak pertama meningkat 1 tahun maka kemungkinan memiliki jenis hunian perkotaan meningkat sebesar 1.0565029 kali dibandingkan usia tetap. Terlihat juga bahwa nilai rasio odds untuk peubah total anak (Totalchildren) = 1.0655347 (positif). Hal ini dapat diartikan bahwa ketika jumlah anak meningkat 1 anak maka kemungkinan memiliki jenis hunian perkotaan meningkat sebesar 1.0655347 kali dibandingkan jumlah anak tetap

Evaluasi Model

Nilai akurasi, sensitifitas atau recall, spesifisitas, dan presisi dapat diukur dari matriks konfusi. Recall atau sensitifitas merupakan proporsi amatan kelas positif yang benar diprediksi positif. Spesifisitas merupakan proporsi amatan kelas negatif yang benar diprediksi negatif. Sedangkan precision merupakan proporsi amatan diprediksi positif yang benar-benar positif (Powers 2011). Pada kasus ini, tidak ada kelas positif dan negatif, karena dua kategori dari peubah respon adalah pedesaan dan perkotaan. Akurasi menggambarkan kemampuan untuk menunjukkan dengan benar masyarakat mana yang memiliki jenis hunian perkotaan dan mana yang pedesaan.

Untuk menampilkan matriks konfusi tersebut, digunakan sintaks berikut

test$pred <- predict(reglog, test, type="response")
test$urban_pred <- ifelse(test$pred > 0.50, "Urban", "Rural") 
test$urban_pred <- as.factor(test$urban_pred) 
(conf.mat<-caret::confusionMatrix(test$urban_pred, test$TypeofPlace, positive="Urban"))
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction Rural Urban
##      Rural   583   258
##      Urban   217   575
##                                           
##                Accuracy : 0.7091          
##                  95% CI : (0.6864, 0.7311)
##     No Information Rate : 0.5101          
##     P-Value [Acc > NIR] : < 2e-16         
##                                           
##                   Kappa : 0.4186          
##                                           
##  Mcnemar's Test P-Value : 0.06646         
##                                           
##             Sensitivity : 0.6903          
##             Specificity : 0.7288          
##          Pos Pred Value : 0.7260          
##          Neg Pred Value : 0.6932          
##              Prevalence : 0.5101          
##          Detection Rate : 0.3521          
##    Detection Prevalence : 0.4850          
##       Balanced Accuracy : 0.7095          
##                                           
##        'Positive' Class : Urban           
## 
broom::tidy(conf.mat)

Berdasarkan tabel tersebut, masyarakat yang diprediksi memiliki jenis hunian pedesaan ada sebanyak 583 yang diprediksi benar dari total 800, sehingga persentase kebenaran data yang diprediksi memiliki jenis hunian pedesaan adalah 72,8%. Sementara untuk masyarakat yang diprediksi memiliki jenis hunian perkotaan ada sebanyak 575 yang diprediksi benar dari total 833, sehingga persentase kebenaran data yang diprediksi memiliki jenis hunian perkotaan adalah 69%. Sehingga data yang diprediksi dengan benar adalah sebanyak 575+583 = 1158 data. Oleh karena itu, nilai akurasi dari model tersebut adalah sebesar 1158/1633 x 100% = 70,9%. Nilai akurasi yanng diperoleh cenderung sudah cukup tinggi.

Selain itu, plot ROC dari model yang diperoleh juga dapat ditampilkan dengan sintaks berikut

plotROC(test$TypeofPlace=="Urban", test$pred)

Kurva ROC (Receiver Operating Characteristic) secara definisi merupakan grafik antara sensitivitas (benar positif) pada sumbu Y dengan 1-spesifisitas pada sumbu X (salah positif). Luas area di bawah kurva ROC (AUC) berkisar dari 0 hingga 1 yang menunjukkan ukuran kemampuan suatu model dalam membedakan kedua kategori. Pada penelitian ini, jika diperoleh nilai AUC semakin besar (mendekati 1) maka kemampuan kurva ROC akan semakin baik. Berikut aturan umum acuan pengukuran area dibawah kurva ROC (Hosmer and Lemeshow 2000):

ROC=0.5: mode yang tidak disarankan

0.7≤ROC<0.8: model yang dianggap dapat diterima

0.8≤ROC<0.9: model yang dianggap bagus

ROC≥0.9: model yang dianggap terkemuka

Karena ROC yang diperoleh 78.25% menunjukkan bahwa model sudah dianggap dapat diterima.

KESIMPULAN

Model yang diperoleh memiliki kemampuan yang cukup baik dalam memprediksi jenis hunian berdasarkan karakteristik masyarakat. Hal ini dikarenakan nilai Akurasi dari model yang diperoleh adalah sebesar 70.9%. Sementara itu, untuk peubah bebas yang tidak berpengaruh signifikan terhadap jenis hunian adalah educationHusbandNo education, educationHusbandPrimary, educationWifeNo education, dan AgeofHusband1stbirth. Sementara untuk peubah selain itu signifikan semua.

SARAN

Kesuksesan pembangunan perumahan dan pemukiman guna memenuhi kebutuhan dasar masyarakat merupakan hal yang sangat penting untuk diupayakan. Permasalahan persaingan untuk mendapatkan pemukiman dapat diatasi dengan pembangunan perumahan dan pemukiman yang tepat dan sesuai dengan kebutuhan dan jumlah masyarakat. Oleh sebab itu, disarankan agar pemerintah lebih meningkatkan pelayanan yang berkaitan dengan program pembangunan perumahan dan pemukiman terutama pada daerah yang terindikasi masih belum dikatakan sukses pada program ini. Pemerintah dapat menggunakan model prediksi jenis hunian untuk mendapatkan gambaran jumlah dan jenis hunian yang dibutuhkan masyarakat sesuai dengan kebutuhannya agar program yang dijalankan lebih tepat sasaran lagi.

DAFTAR PUSTAKA

Eckbo G. 1964. Urban Landscape Design. Mc Graw-Hill Book Co: New York.

Hosmer D W dan Lemeshow S. 2000. Applied Logistic Regression. 2nd ed. New York (US): Wiley Interscience.

Jamaludin AN. 2015. Sosiologi Perkotaan Memahami Masyarakat Kota Dan Problematikanya. CV PUSTAKA SETIA: Bandung.

Marbun, B.N. 1994. Kota Indonesia Masa Depan: Masalah dan Prospek. Erlangga: Jakarta.

Powers DMW. 2011. Evaluation: from precision, recall, and f-factor to ROC, informedness, markedness and correlation. Journal of Machine Learning Technologies. 2229-3981. doi:10.9735/2229-3981.