Tahapan tahapan dalam analisis Regresi Logistic

Langkah pertama

memasukan data dalam R, Dalam penelitian ini, data tersimpan dalam CSV/ Excel. data berjumlah sebanyak 50 row. source untuk memasukan data sebagai berikut:

dataku=read.csv("D:/AANG/KULIAH/MACHINE LEARNING/DATA TUGAS.csv",sep=";",header=TRUE)
names(dataku) <- c("nama","status","pendidikan","kelamin","usia")
dataku
##        nama status pendidikan kelamin usia
## 1     ahmad      0          2       1    1
## 2   fahreza      1          3       1    1
## 3     fadil      1          4       2    1
## 4     jamil      1          4       2    2
## 5    sholeh      0          2       2    2
## 6    raihan      0          2       2    2
## 7     akbar      1          3       1    3
## 8     rizqi      1          2       1    2
## 9     lutfi      1          2       1    3
## 10   saiful      0          1       1    4
## 11    anwar      1          3       1    2
## 12    alfin      1          2       2    2
## 13   salman      0          2       2    2
## 14   haikal      0          2       2    4
## 15      nur      1          1       2    4
## 16   rohman      0          2       1    4
## 17   mahrus      0          1       1    4
## 18     alif      1          4       1    4
## 19 muhammad      1          3       2    2
## 20 mauludin      1          2       2    2
## 21   miftah      0          2       2    2
## 22   jannah      1          3       2    4
## 23 prasetyo      1          3       1    4
## 24     ulil      0          2       1    3
## 25  mahsyar      1          2       2    3
## 26    hosam      0          2       2    3
## 27     mido      1          2       2    2
## 28   afandi      0          1       1    2
## 29   ananda      0          1       1    2
## 30     tian      1          3       1    2
## 31  satriya      1          3       2    3
## 32     yuda      0          2       2    2
## 33   taufik      0          2       1    1
## 34   fauzan      0          1       1    1
## 35    surur      1          2       2    2
## 36    fafli      1          3       1    2
## 37     abim      1          3       2    3
## 38    yusuf      1          3       1    4
## 39   ismail      0          2       1    4
## 40   muhsin      0          3       1    2
## 41    sodig      0          2       1    1
## 42    habib      1          3       1    1
## 43     amin      1          4       2    1
## 44    ridwa      1          4       2    2
## 45     aldi      0          2       2    2
## 46   sahrul      0          2       2    2
## 47     alek      1          3       1    3
## 48    rehan      1          2       1    2
## 49    fariz      1          2       1    3
## 50  mubarok      0          1       1    4

maka akan muncul tampilan seperti diatas.

langkah kedua

melakukan explorasi data dengan melihat variable serta type data dari variable yang digunakan, apakag sudah sesuai atau belum.

str(dataku)
## 'data.frame':    50 obs. of  5 variables:
##  $ nama      : chr  "ahmad" "fahreza" "fadil" "jamil" ...
##  $ status    : int  0 1 1 1 0 0 1 1 1 0 ...
##  $ pendidikan: int  2 3 4 4 2 2 3 2 2 1 ...
##  $ kelamin   : int  1 1 2 2 2 2 1 1 1 1 ...
##  $ usia      : int  1 1 1 2 2 2 3 2 3 4 ...

Dari hasil diatas tampak bahwa tipe variabel (status pekerjaan) masih berupa numerik (interger). Oleh karena itu variabel (status) tersebut perlu diubah menjadi variabel yang berupa kategorik

Langkah ketiga

Mengganti type variable.

dataku$status<-factor(dataku$status)
str(dataku)
## 'data.frame':    50 obs. of  5 variables:
##  $ nama      : chr  "ahmad" "fahreza" "fadil" "jamil" ...
##  $ status    : Factor w/ 2 levels "0","1": 1 2 2 2 1 1 2 2 2 1 ...
##  $ pendidikan: int  2 3 4 4 2 2 3 2 2 1 ...
##  $ kelamin   : int  1 1 2 2 2 2 1 1 1 1 ...
##  $ usia      : int  1 1 1 2 2 2 3 2 3 4 ...

untuk mengetahui jumlah data yang bekerja dan yang belum bekerja. data sudah bekerja ditandai angka 0, dan data sudah bekerja ditandai angka 1. yaitu

table(dataku$status)
## 
##  0  1 
## 22 28
prop.table(table(dataku$status))
## 
##    0    1 
## 0.44 0.56

dari 50 data diketahui, yang sudah bekerja sebanyak 28 orang atau sebesar 56%, dan yang belum bekerja sebanyak 22 orang atau sebesar 44%. untuk melihat lebih jelas dalam diagram berikut:

barplot(prop.table(table(dataku$status)),col = rainbow(2),ylim = c(0,0.7),main = "Class Distribution")

Langkah keempat

yaitu membentuk model multinom. Sebelum membentuk model maka terlebih dahulu perlu di isntall beberapa package yang digunakan di dalam R untuk membentuk model multinom.

library(nnet)
## Warning: package 'nnet' was built under R version 4.1.2
library(lattice)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.2
library(caret)
## Warning: package 'caret' was built under R version 4.1.2
library(e1071)
## Warning: package 'e1071' was built under R version 4.1.2

Setelah dilakukan penginstallan maka langkah selanjutnya baru dilakukan analisis regresi logistik multinomial. yaitu membentuk model multinom dengan 3 variable bebas.

model<-multinom(status ~pendidikan+kelamin+usia, data=dataku)
## # weights:  5 (4 variable)
## initial  value 34.657359 
## iter  10 value 22.507395
## final  value 22.506991 
## converged
summary(model)
## Call:
## multinom(formula = status ~ pendidikan + kelamin + usia, data = dataku)
## 
## Coefficients:
##                 Values Std. Err.
## (Intercept) -6.7140850 2.5582420
## pendidikan   2.5483846 0.7773812
## kelamin      0.3052907 0.7420279
## usia         0.3433229 0.4133317
## 
## Residual Deviance: 45.01398 
## AIC: 53.01398

Converged -2log Likelihood menerangkan bahwa tanpa memasukkan variabel independen (intercept only) nilainya 34.657359 Namun dengan memasukkan variabel independen ke model (final) terjadi penurunan nilai menjadi 22.507395. Kesimpulannya adalah minimal ada satu variabel bebas yang berpengaruh terhadap variabel respon atau dengan kata lain model cocok dengan data.

Selanjutnya menghitung nilai z-core (uji wald) dan p-value. untuk mengetahui pengaruh masing-masing variabel bebas terhadap variabel independen maka dapat ditunjukkan melalui nilai p (p-value) dan uji Wald. sebagai berikut:

z<-summary(model)$coefficients/summary(model)$standard.errors
z
## (Intercept)  pendidikan     kelamin        usia 
##  -2.6244917   3.2781658   0.4114275   0.8306231
p<-(1-pnorm(abs(z),0,1))*2
p
## (Intercept)  pendidikan     kelamin        usia 
##  0.00867784  0.00104484  0.68075910  0.40618660

berdasarkan output diatas tampak bahwa untuk variabel pendidikan memiliki pengaruh yang signifikan dalam mendapatkan pekerjaan. sedangkan untuk variabel jenis kelamin(kelamin) dan variable usia tidak memiliki pengaruh yang signifikan

Langkah kelima

yaitu melakukan interpretasi koefisien dengan cara sebagai berikut: interpretasi koefesien dan memunculkan Odds ratio(OR)

(OR=exp(coef(model)))
##  (Intercept)   pendidikan      kelamin         usia 
##  0.001213696 12.786431491  1.357019391  1.409623791

Nilai Odds ratio untuk yang sudah bekerja(Y=1)

Variable pendidikan yaitu : 12.786431491 Artinya semakin tinggi pendidikan yang di dapatkan akan semakin besar peluang untuk mendapatkan pekerjaan. maka peluang perusahaan menerima pegawai bagi yang pendidikannya tinggi sebesar 8.770 kali lebih besar dari pada yang lainnya.