Regresi logistik biner digunakan untuk variabel yang memiliki respon
biner. Pengembangannya digunakan pada model kategorik yang memiliki
respon dua kategorik. Misalkan J menyatakan banyaknya kategori
dari respon Y dan \({π_i,…,π_j
}\) menyatakan peluang respon yang memenuhi \(∑_jπ_{j}=1\). Ada n pengamatan
yang saling bebas dan distribusi peluang untuk setiap keluaran yang
mungkin dari J adalah multinomial. Jika kategori terakhir
(J) merupakan baseline, maka baseline-category
logits adalah:
\(log\)(\(\frac{π_j}{π_J}\) ), \(j=1,…,J-1\)
Baseline-category logit model dengan prediktor x adalah:
\(log\)(\(\frac{π_j}{π_J}\))\(=α_{j}+β_{j} x\) , \(j=1,…,J-1\)
Contoh kasus:
Dari 23 penerbangan pesawat luar angkasa kegagalan
misi Challenger pada tahun 1986, dicatat suhu (F) pada saat penerbangan
dan apakah terjadi thermal distress (TD), yaitu 1 jika terjadi dan 0
jika tidak. Data ditabelkan sebagai berikut.
Packages
library(plotrix)
library(car)
## Loading required package: carData
library(readxl)
Memanggil Ddata dan Membentuk Data Frame
#buatlah terlebih dulu datanya dalam format .xlsx agar mudah diimport ke R
data<-read_excel("F:/Aaku Kuliah Renaldi/Semester 9 - Asprak/ADK/adk7.xlsx")
Y = as.factor(data$TD)
X1 = data$Suhu
X2 = data$`Nomor Penerbangan`
df = data.frame(Y,X1,X2)
str(df)
## 'data.frame': 23 obs. of 3 variables:
## $ Y : Factor w/ 2 levels "0","1": 1 2 1 1 1 1 1 1 2 2 ...
## $ X1: num 66 70 69 68 67 72 73 70 57 63 ...
## $ X2: num 1 2 3 4 5 6 7 8 9 10 ...
Pie Chart Proporsi Pasien
TD = table(df$Y)
TD
##
## 0 1
## 16 7
kat = c("Terjadi = ","Tidak Terjadi = ")
persentase = round(TD/sum(TD)*100)
kat = paste(kat,persentase)
kat = paste(kat,'%',sep ='')
pie3D(TD,labels=kat,col=c('light blue','blue'),
main="Persentase Thermal Distress")
Dari pie chart di atas, dapat diketahui bahwa terdapat 30% penumpang mengalami thermal distress dan sisanya sebanyak 70% tidak mengalami thermal distress.
Analisis Regresi Logistik
model = glm(Y~X1+X2, data = df, family = binomial)
summary(model)
##
## Call:
## glm(formula = Y ~ X1 + X2, family = binomial, data = df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 15.69296 7.99685 1.962 0.0497 *
## X1 -0.25534 0.12040 -2.121 0.0339 *
## X2 0.08940 0.09684 0.923 0.3559
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 28.267 on 22 degrees of freedom
## Residual deviance: 19.378 on 20 degrees of freedom
## AIC: 25.378
##
## Number of Fisher Scoring iterations: 5
Dari output di atas diperoleh bahwa pada koefisien \(X_2\) lebih besar dari \(α=0,05\) artinya terima \(H_0\) (tidak signifikan terhadap model). Sedangkan penduga intersep dan koefisien \(X_1\) lebih kecil dari \(α=0,05\) tolak \(H_0\) artinya berpengaruh signifikan terhadap model.
beta = coef(model)
OR = exp(beta)
SK = exp(confint(model))
## Waiting for profiling to be done...
cbind(beta, OR, SK)
## beta OR 2.5 % 97.5 %
## (Intercept) 15.69296037 6.536813e+06 29.3430952 8.320077e+15
## X1 -0.25534008 7.746530e-01 0.5647024 9.309757e-01
## X2 0.08940307 1.093521e+00 0.9161636 1.364052e+00
vif(model)
## X1 X2
## 1.147945 1.147945