Library:
> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")Analisis regresi merupakan suatu metode yang digunakan untuk mengetahui hubungan dan pemodelan antar variabel. Variabel yang diuji dalam analisis adalah variabel independen dan variabel dependen. Variabel independen adalah variabel yang mempengaruhi variabel dependen, sedangkan variabel dependen adalah variabel yang dipengaruhi oleh variabel independen. Analisis regresi merupakan analisis kuantitatif yang secara luas dapat digunakan pada bidang teknologi, ekonomi, industri dan bidang lainnya.
Regresi logistik biner merupakan salah satu bentuk regresi yang digunakan untuk memodelkan hubungan antara variabel dependen dan variabel independen, dimana variabel dependen merupakan data yang bersifat kategorik biner/dikotomi. Regresi logistik tidak memerlukan asumsi normalitas, homoskedastisitas, dan hanya memiliki sedikit asumsi yang ketat. Pengujian kecocokan model regresi logistik dapat dilakukan dengan beberapa metode seperti uji statistik G dan uji pearson.
Berbagai perangkat lunak telah berkembang pesat sehingga dapat membantu peniliti mengolah data dengan cepat dan akurat. Adapun perangkat lunak yang dapat digunakan seperti R, SPSS, SAS, Phyton, dan lainnya. Sebagai statistikawan kita perlu menguasai penggunaan perengkat lunak tersebut untuk dapat melakukan analisis yang kompleks sehingga dapat menarik kesimpulan yang valid dari data yang ada.
Pemahaman dalam penggunaan syntax Rstudio pada analisis regresi logistik merupakan hal yang penting bagi statistikawan. Pemahaman tersebut dapat membantu dalam menganalisis data pada kasus-kasus tertentu dimana variabel dependennya berskala kategorik biner/dikotomi. Melalui penulisan ini peneliti akan melakukan analisis regresi logistik menggunakan R. Melalui penulisan ini diharapkan dapat menambah wawasan mengenai regresi logistik menggunakan software R.
1.Regresi Logistik Biner
Regresi logistik merupakan salah satu metode analisis data yang digunakan untuk mengetahui hubungan antarvariabel dimana variabel dependen bersifat kategorik. Metode analisis regresi logistik memiliki analisis yang sedikit berbeda dengan regresi linear. Analisis regresi linear menggunakan metode OLS sedangkan regresi logistik menggunakan metode MLE. Adapun model regresi logistik dapat dinotasikan sebagai berikut : \[ π(X)=\frac{exp(β_0+β_1X)}{1+exp(β_0+β_1X)} \]
Uji ini dilakukan untuk mengetahui pengaruh variabel independen secara serentak terhadap variabel dependen.Pengujian ini menggunakan likelihood-ratio test dengan rumus sebagai berikut : \[ G=-2∑O_{ij}ln(O_{ij}E_{ij}) \]
Pengujian ini dilakukan dengan menguji setiap β secara individual untuk melihat variabel independen apa saja yang memberikan pengaruh pada variabel dependen.
Pengujian ini dilakukan untuk mengetahui apakah model regresi logistik yang dihasilkan layak atau tidak. Metode yang dipakai untuk pengujian ini adalah uji Hosmer dan Lemeshow.
Uji Multikolinearitas digunakan untuk menguji apakah terdapat hubungan linear yang kuat antar variabel independen. Multikolinearitas yang tinggi dapat menyebabkan model tidak stabil. Pengujian multikolinearitas menggunakan metode VIF yang dapat dilihat sebagai berikut : \[ VIF=\frac{1}{1-R^2} \]
Odds Ratio adalah besar ukuran asosiasi atau hubungan antara dua variabel. OR menggambarkan peluang terjadinya kejadian tertentu.
Y = Kelulusan Ujian (1=lulus, 0=tidak lulus)
X1 = Lama waktu belajar
X2 = Jenis kelamin (1=Laki-laki, 0=perempuan)
X3 = Nilai ujian
Mengetahui ada tidaknya pengaruh variabel independen secara serentak terhadap variabel dependen
Mengetahui ada tidaknya pengaruh variabel independen secara parsial terhadap variabel dependen
Membentuk model regresi logistik biner
> # Library
> library(readxl)
> library(readr)
> library(generalhoslem)
> library(pscl)
> library(car)> data = read_excel("D:/BACKUP DATA C/Documents/data-komstat.xls")
> str(data)
tibble [50 × 4] (S3: tbl_df/tbl/data.frame)
$ Y : num [1:50] 1 1 1 0 0 1 1 1 1 1 ...
$ X1: num [1:50] 9 9 6 6 6 7 9 6 6 6 ...
$ X2: num [1:50] 1 0 0 0 1 1 0 1 0 1 ...
$ X3: num [1:50] 87 86 78 69 65 78 92 76 75 79 ...
> Y = as.factor(data$Y)
> x1 = data$X1
> x2 = as.factor(data$X2)
> x3 = data$X3
> str(Y)
Factor w/ 2 levels "0","1": 2 2 2 1 1 2 2 2 2 2 ...
>
> data_log<-data.frame(x1,x2,x3,Y)
> data_log
x1 x2 x3 Y
1 9 1 87 1
2 9 0 86 1
3 6 0 78 1
4 6 0 69 0
5 6 1 65 0
6 7 1 78 1
7 9 0 92 1
8 6 1 76 1
9 6 0 75 1
10 6 1 79 1
11 7 0 78 1
12 5 1 67 0
13 6 0 76 1
14 6 0 77 1
15 5 1 69 0
16 8 0 85 1
17 4 1 56 0
18 9 0 84 1
19 5 1 60 0
20 8 0 87 1
21 9 0 89 1
22 7 1 67 0
23 5 1 62 0
24 5 0 89 1
25 6 0 65 0
26 9 1 88 1
27 9 1 90 1
28 7 0 78 1
29 7 1 54 0
30 9 0 87 1
31 2 0 89 1
32 9 1 67 0
33 6 1 63 0
34 6 0 78 1
35 6 0 88 1
36 6 0 85 1
37 9 1 58 0
38 7 0 54 0
39 7 1 78 0
40 8 0 79 1
41 7 0 75 1
42 6 0 76 1
43 6 1 72 1
44 6 1 71 1
45 9 1 77 1
46 8 1 69 0
47 9 0 66 0
48 6 1 77 1
49 9 0 91 1
50 2 0 67 0
> str(data_log)
'data.frame': 50 obs. of 4 variables:
$ x1: num 9 9 6 6 6 7 9 6 6 6 ...
$ x2: Factor w/ 2 levels "0","1": 2 1 1 1 2 2 1 2 1 2 ...
$ x3: num 87 86 78 69 65 78 92 76 75 79 ...
$ Y : Factor w/ 2 levels "0","1": 2 2 2 1 1 2 2 2 2 2 ...> statdesk <- summary(data)
> statdesk
Y X1 X2 X3
Min. :0.00 Min. :2.00 Min. :0.00 Min. :54.00
1st Qu.:0.00 1st Qu.:6.00 1st Qu.:0.00 1st Qu.:67.00
Median :1.00 Median :6.50 Median :0.00 Median :77.00
Mean :0.64 Mean :6.80 Mean :0.46 Mean :75.46
3rd Qu.:1.00 3rd Qu.:8.75 3rd Qu.:1.00 3rd Qu.:85.00
Max. :1.00 Max. :9.00 Max. :1.00 Max. :92.00 > reg <- glm(Y~x1+x2+x3,family=binomial,data=data_log)
> vif_values <- vif(reg)
> vif_values
x1 x2 x3
1.292500 1.099099 1.219065 > reglog<-glm(Y~x1+x2+x3,family=binomial,data=data_log)
> reglog
Call: glm(formula = Y ~ x1 + x2 + x3, family = binomial, data = data_log)
Coefficients:
(Intercept) x1 x21 x3
-41.3037 -0.2123 -0.4759 0.5983
Degrees of Freedom: 49 Total (i.e. Null); 46 Residual
Null Deviance: 65.34
Residual Deviance: 13.53 AIC: 21.53
> summary(reglog)
Call:
glm(formula = Y ~ x1 + x2 + x3, family = binomial, data = data_log)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.62152 -0.07093 0.01233 0.19720 1.42815
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -41.3037 13.8957 -2.972 0.00295 **
x1 -0.2123 0.5556 -0.382 0.70236
x21 -0.4759 1.5611 -0.305 0.76048
x3 0.5983 0.2059 2.906 0.00366 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 65.342 on 49 degrees of freedom
Residual deviance: 13.531 on 46 degrees of freedom
AIC: 21.531
Number of Fisher Scoring iterations: 8> pr2<-pR2(reglog)
fitting null model for pseudo-r2
> pr2
llh llhNull G2 McFadden r2ML r2CU
-6.7657073 -32.6709097 51.8104048 0.7929134 0.6452025 0.8846571
> qchisq(0.95,2)
[1] 5.991465> parsial<-summary(reglog)
> parsial
Call:
glm(formula = Y ~ x1 + x2 + x3, family = binomial, data = data_log)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.62152 -0.07093 0.01233 0.19720 1.42815
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -41.3037 13.8957 -2.972 0.00295 **
x1 -0.2123 0.5556 -0.382 0.70236
x21 -0.4759 1.5611 -0.305 0.76048
x3 0.5983 0.2059 2.906 0.00366 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 65.342 on 49 degrees of freedom
Residual deviance: 13.531 on 46 degrees of freedom
AIC: 21.531
Number of Fisher Scoring iterations: 8> beta<-(coef(reglog))
> beta
(Intercept) x1 x21 x3
-41.3036728 -0.2123070 -0.4759050 0.5983231
>
> OR_beta<-exp(beta)
> OR_beta
(Intercept) x1 x21 x3
1.153567e-18 8.087164e-01 6.213225e-01 1.819066e+00
>
> cbind(beta,OR_beta)
beta OR_beta
(Intercept) -41.3036728 1.153567e-18
x1 -0.2123070 8.087164e-01
x21 -0.4759050 6.213225e-01
x3 0.5983231 1.819066e+00Berdasarkan Data yang digunakan diperoleh hasil :
a). Lama waktu belajar berkisar antara 2 sampai 9 jam
b). 50% waktu belajar berkisar 6.5 jam
c). Rata-rata waktu lama belajar selama 6.8 jam
d). 75% lama waktu belajar berkisar lebih dari 8.75 jam dan 25% kurang dari 8.75 jam
a). Sebanyak 46% mahasiswa merupakan laki-laki
a). Nilai ujian mahasiswa berkisar antara 54 sampai 92
b). Rata-rata nilai ujian mahasiswa adalah sebesar 75.46
c). 50% nilai mahasiswa lebih besar dari 77
Pada uji asumsi ini diperoleh hasil :
> vif_values
x1 x2 x3
1.292500 1.099099 1.219065 Berdasarkan output diatas, nilai VIF masing-masing variabel kerang dari 10, sehingga dapat disimpulkan bahwa tidak terjadi multikolinearitas antar variabel independen.
Berdasarkan output dapat diperoleh model regresi logistik :
\(\hat{Y}\) = -41.3037-0.2123\(X_1\)-0.4759\(X_2\)+0.5983\(X_3\)
Hipotesis
\(H_0\)=\(β_1\)=\(β_2\)=…=\(β_p\)=0
\(H_1\)= Minimal terdapat satu variabel yang berpengaruh terhadap kelulusan ujian
> pr2
llh llhNull G2 McFadden r2ML r2CU
-6.7657073 -32.6709097 51.8104048 0.7929134 0.6452025 0.8846571
> qchisq(0.95,2)
[1] 5.991465Pada output diatas diperoleh nilai \(G^2\) sebesar 51.81 dengan nilai chi-square sebesar 5.99. Berdasarkan hasil tersebut dimana nilai \(G^2\) lebih besar dari nilai chi-square maka dapat diputuskan \(H_0\) ditolak, sehingga dapat disimpulkan bahwa setidaknya ada satu variabel yang berpengaruh terhadap kelulusan ujian.
Hipotesis
\(H_0\)=\(β_j\)=0
\(H_1\)=\(β_j\)≠0
> parsial
Call:
glm(formula = Y ~ x1 + x2 + x3, family = binomial, data = data_log)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.62152 -0.07093 0.01233 0.19720 1.42815
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -41.3037 13.8957 -2.972 0.00295 **
x1 -0.2123 0.5556 -0.382 0.70236
x21 -0.4759 1.5611 -0.305 0.76048
x3 0.5983 0.2059 2.906 0.00366 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 65.342 on 49 degrees of freedom
Residual deviance: 13.531 on 46 degrees of freedom
AIC: 21.531
Number of Fisher Scoring iterations: 8Berdasarkan output diatas diperoleh P-value dari variabel x3 sebesar 0.00366 dimana nilai tersebut lebih kecil alpha 5% sehingga tolak \(H_0\). Dengan taraf nyata 5% dapat disimpilkan bahwa variabel nilai ujian berpengaruh signifikan terhadap kelulusan ujian.
> cbind(beta,OR_beta)
beta OR_beta
(Intercept) -41.3036728 1.153567e-18
x1 -0.2123070 8.087164e-01
x21 -0.4759050 6.213225e-01
x3 0.5983231 1.819066e+00Setiap peningkatan lama jam belajar maka peluang mahasiswa lulus ujian meningkat 1.25 kali.
Perempuan memiliki peluang lulus ujian 1.62 kali lebih tinggi daripada laki-laki.
Setiap peningkatan nilai ujian maka peluang lulus ujian meningkat 1.819 kali
Dari analisis yang dilakukan dapat disimpulkan bahwa pada kasus kelulusan ujian mahasiswa ini hanya dipengaruhi oleh variabel nilai ujian mahasiswa.
Pada kasus ini hanya satu variabel independent yang berpengaruh secara signifikan terhadap variabel dependen. Apabila hasil yang diinginkan adalah ketiga varibel berpengaruh secara signifikan maka perlu memperbaiki data yang ada, seperti menambah jumlah sampel yang akan di analisis.
Apabila dalam analisis data didapatkan hasil asumsi yang tidak terpenuhi maka data tidak dapat dianalisis karena hasilnya akan menjadi bias, untuk itu perlu dilakukan transformasi data agar hasil analisis sesuai dengan keinginan dan tidak bias.
Effendi, A., Wardhani, N. W., Fitriani, R., & Sumarningsih, E. (2020). Analisis Regresi Teori dan Aplikasi Dengan R. Malang: UB Press.
Fernandes, A. A., & Solimun. (2021). Analisis Regresi Dalam Pendekatan Fleksibel. Malang: UB Press.
Ramli, Yuniarti, D., & Goejantoro, R. (2013, May). Retrieved from fmipa.unmul.ac.id: https://fmipa.unmul.ac.id/files/docs/%5B3%5D%20RAMLI.pdf
Safitri, A., Sudarmin, & Nusrang, M. (2019). Retrieved from ojs.unm.ac.id: https://ojs.unm.ac.id/jvariansi/article/download/9354/5407
Situngkir, R. H., & Sembiring, P. (2023, Juni). Retrieved from siakad.univmedan.ac.id: https://siakad.univamedan.ac.id/ojs/index.php/JMPM/article/download/432/384
Yamin, S., Rachmach, L. A., & Kurniawan, H. (2011). Regresi dan Korelasi Dalam Genggaman Anda. Jakarta: Salemba Empat.