Analisis Regresi Logistik Biner : Pengaruh Kebiasaan Merokok dan Jenis Kelamin tehadap Penyakit Jantung

Elyssa Jocelina

1 Juni 2024


Library:

> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")

1 PENDAHULUAN

1.1 Latar Belakang

Penyakit jantung adalah salah satu penyakit kronis yang menjadi masalah kesehatan masyarakat global. Menurut World Health Organization (WHO), penyakit jantung dan pembuluh darah adalah penyebab kematian nomor satu di dunia. Oleh karena itu, penelitian mengenai faktor-faktor risiko yang berkaitan dengan penyakit jantung menjadi penting untuk membantu mencegah dan mengelola kondisi ini.

Beberapa faktor risiko yang telah diidentifikasi dalam kaitannya dengan penyakit jantung termasuk kebiasaan merokok dan jenis kelamin. Merokok telah lama diakui sebagai salah satu faktor risiko utama untuk penyakit jantung dan pembuluh darah. Selain itu, ada perbedaan dalam prevalensi penyakit jantung antara laki-laki dan perempuan.

Penelitian ini bertujuan untuk mengeksplorasi hubungan antara kebiasaan merokok, jenis kelamin, dan risiko terkena penyakit jantung. Dengan menggunakan analisis regresi logistik biner, penelitian ini akan memodelkan kemungkinan seseorang terkena penyakit jantung berdasarkan status merokoknya dan jenis kelaminnya. Hasil dari penelitian ini dapat memberikan pemahaman yang lebih dalam tentang faktor-faktor yang berkontribusi terhadap risiko penyakit jantung.

2 TINJAUAN PUSTAKA

2.1 Asumsi Non-Multikolinieritas

Pada analisis regresi logistik tidak diperkenankan terdapat kasus multikolinieritas, artinya antar variabel prediktor pada model tidak boleh terdapat korelasi yang signifikan. Untuk mengetahui ada tidaknya kasus multikolinieritas dapat menggunakan nilai nilai VIF (Variance Inflation Factor). \[ VIF_j=\frac{1}{1-R^2_j}\] Asumsi non-multikolinieritas terpenuhi jika nilai VIF < 10.

2.2 Regresi Logistik

Regresi Logistik atau kadang-kadang disebut sebagai logit model adalah analisis yang digunakan untuk melihat hubungan anatara variabel dependen dan independen, dimana variabel dependennya bersifat kategorik. Terdapat dua model dalam analisis regresi logistik, yaitu regresi logistik biner dan regresi logistik multinomial. Regresi logistik biner digunakan apabila variabel dependen dari data bersifat dikotomi. Sedangkan apabila variabel dependen yang digunakan terdiri lebih dari dua kategori, maka model regresi logsitik yang tepat adalah regresi logistik multinomial (Ae,2013).

2.3 Regresi Logistik Biner

Metode regresi logistik biner merupakan metode yang digunakan untuk menggambarkan hubungan satu atau lebih variabel independen terhadap variabel dependen. Variabel dependen yang digunakan berkategori diskrit dengan dua kemungkinan, yaitu sukses dan gagal. Kejadian sukses biasanya dinotasikan dengan Y=1, sedangkan kejadian gagal dinotasikan dengan Y=0 (Hosmer,2000).

Bentuk model regresi logistik adalah \[\pi_i=\frac{exp(\beta_0+\beta_1X_{1i}+\beta_2X_{2i}+...+\beta_pX_{pi})}{1+exp(\beta_0+\beta_1X_{1i}+\beta_2X_{2i}+...+\beta_pX_{pi})}\] di mana: \(\pi(x)\) : peluang terjadinya katergori variabel respons

\(x_{ji}\) : variabel prediktor ke-j p : banyaknya variabel prediktor \(\beta_0\) : intersep $_0, beta_1, beta_p : koefisien regresi untuk setiap variabel prediktor

Dikarenakan nilai persamaan di atas merupakan persamaan non-linier maka perlu dilakukan transformasi logit, sehingga didapat fungsi logit g(x) sebagai berikut \[g(x) = \ln\left(\frac{\pi(x)}{1 - \pi(x)}\right)=\beta_0+\beta_1X_{1i}+\beta_2X_{2i}+...+\beta_pX_{pi}\] ## Uji Signifikansi Keseluruhan Model Pengujian ini dilakukan untuk menguji secara simultan pengaruh variabel-variabel independen terhadap variabel dependen dengan menghitung nilai statistik uji G.

Hipotesis

\(H_0 :\beta_0=\beta_1=\beta_2=\ ...\ =\beta_j=0\) (seluruh variabel prediktor tidak berpengaruh terhadap variabel respon)

\(H_1 : minimal\ terdapat\ satu\ ꞵ_j\neq\ 0\) (terdapat minimal satu variabel prediktor yang berpengaruh terhadap variabel respon)

Tingkat signifikasi

\(\alpha=5%\)

Statistik Uji

\[G = -2 \log\left( \frac{L_1}{L_p} \right)\]

Keputusan

Tolak \(H_0\) jika G > \(\chi^2_{(p,\alpha)}\) atau p-value < \(\alpha\)(0.05).

2.4 UJi Parsial Parameter Model

Untuk mengetahui pengaruh dari tiap-tiap variabel independen terhadap variabel dependen, dilakukan pengujian secara parsial. Pengujian secara parsial menggunakan Uji Wald.

Hipotesis

\(H_0 : ꞵ_j = 0\) (variabel prediktor ke-k tidak berpengaruh signifikan terhadap variabel respon)

\(H_1 : ꞵ_j\neq\ 0\) (variabel prediktor ke-k berpengaruh signifikan terhadap variabel respon)

Tingkat signifikasi

\(\alpha=5%\)

Statistik Uji

\[W = \frac{\hat{\beta_j}}{SE(\hat{\beta_j})}\ ,\ \ j=1,2,...,p\]

Keputusan

Tolak \(H_0\) jika nilai |W| > \(Z_{\frac{\alpha}{2}}\) atau p-value < \(\alpha\)(0.05).

2.5 Odds Ratio

Interpretasi model merupakan bentuk mendefinisikan unit perubahan variabel tak bebas yang disebabkan oleh variabel bebas serta menentukan hubungan fungsional antara variabel tak bebas dan variabel bebas. Agar memudahkan dalam menginterpretasikan model digunakan nilai odds ratio (Hosmer & Lemeshow, 2000). Nilai Odds Ratio (OR) didapat dengan mengeksponensialkan nilai koefisien β setiap variabel.

2.6 Uji Kelayakan Model

Uji kelayakan model digunakan untuk mengetahui apakah model regresi yang telah didapat bisa merepresentasikan data pengamatan. Kelayakan model pada uji regresi logistik dapat dilihat pada table Hosmer and Lemeshow Test.

2.7 Pseudo R-Square

Pada regresi logistik tidak ada nilai R-Square untuk mengukur besarnya pengaruh simultan beberapa variabel bebas terhadap variabel terikat. Dalam regresi logistik dikenal istilah Pseudo R-Square, yaitu nilai R-Square Semu yang maksudnya sama atau identik dengan R Square pada OLS.

Hipotesis

\(H_0\) : Model layak

\(H_1\) : Model tidak layak

Keputusan

  • Terima \(H_0\) jika nilai Sig. > 0.05, maka dapat disimpulkan bahwa model regresi layak.
  • Tolak \(H_0\) jika nilai Sig. < 0.05, maka dapat disimpulkan bahwa model regresi tidak layak.

3 SOURCE CODE

3.1 Library

> library(readr)
> library(pscl)
> library(car)
> library(generalhoslem)

3.2 Data

> #Mengimport data
> datarl<-read.csv("C:/Users/HP/Downloads/data_penyakit_jantung.csv", sep=";")
> head(datarl)
  HeartDisease   BMI Smoking AlcoholDrinking Stroke PhysicalHealth MentalHealth
1           No 16.60     Yes              No     No              3           30
2           No 20.34      No              No    Yes              0            0
3           No 26.58     Yes              No     No             20           30
4           No 24.21      No              No     No              0            0
5           No 23.71      No              No     No             28            0
6          Yes 28.87     Yes              No     No              6            0
  DiffWalking    Sex AgeCategory  Race Diabetic PhysicalActivity GenHealth
1          No Female       55-59 White      Yes              Yes Very good
2          No Female 80 or older White       No              Yes Very good
3          No   Male       65-69 White      Yes              Yes      Fair
4          No Female       75-79 White       No               No      Good
5         Yes Female       40-44 White       No              Yes Very good
6         Yes Female       75-79 Black       No               No      Fair
  SleepTime Asthma KidneyDisease SkinCancer
1         5    Yes            No        Yes
2         7     No            No         No
3         8    Yes            No         No
4         6     No            No        Yes
5         8     No            No         No
6        12     No            No         No
> str(datarl)
'data.frame':   319795 obs. of  18 variables:
 $ HeartDisease    : chr  "No" "No" "No" "No" ...
 $ BMI             : num  16.6 20.3 26.6 24.2 23.7 ...
 $ Smoking         : chr  "Yes" "No" "Yes" "No" ...
 $ AlcoholDrinking : chr  "No" "No" "No" "No" ...
 $ Stroke          : chr  "No" "Yes" "No" "No" ...
 $ PhysicalHealth  : num  3 0 20 0 28 6 15 5 0 0 ...
 $ MentalHealth    : num  30 0 30 0 0 0 0 0 0 0 ...
 $ DiffWalking     : chr  "No" "No" "No" "No" ...
 $ Sex             : chr  "Female" "Female" "Male" "Female" ...
 $ AgeCategory     : chr  "55-59" "80 or older" "65-69" "75-79" ...
 $ Race            : chr  "White" "White" "White" "White" ...
 $ Diabetic        : chr  "Yes" "No" "Yes" "No" ...
 $ PhysicalActivity: chr  "Yes" "Yes" "Yes" "No" ...
 $ GenHealth       : chr  "Very good" "Very good" "Fair" "Good" ...
 $ SleepTime       : num  5 7 8 6 8 12 4 9 5 10 ...
 $ Asthma          : chr  "Yes" "No" "Yes" "No" ...
 $ KidneyDisease   : chr  "No" "No" "No" "No" ...
 $ SkinCancer      : chr  "Yes" "No" "No" "Yes" ...
> Y <- as.factor(datarl$HeartDisease)
> X1 <- as.factor(datarl$Smoking)
> X2<- as.factor(datarl$Sex)
> 
> #Membentuk data frame
> data_logistik<-data.frame(X1, X2, Y)
> str(data_logistik)
'data.frame':   319795 obs. of  3 variables:
 $ X1: Factor w/ 2 levels "No","Yes": 2 1 2 1 1 2 1 2 1 1 ...
 $ X2: Factor w/ 2 levels "Female","Male": 1 1 2 1 1 1 1 1 1 2 ...
 $ Y : Factor w/ 2 levels "No","Yes": 1 1 1 1 1 2 1 1 1 1 ...

3.3 Memeriksa Asumsi Non-Multikolinieritas

> reglog<-glm(Y~X1+X2, family=binomial, data=data_logistik)
> car::vif(reglog)
      X1       X2 
1.005231 1.005231 

3.4 Analisis Regresi Logistik Biner

> reglog<-glm(Y~X1+X2, family=binomial, data=data_logistik)
> summary(reglog)

Call:
glm(formula = Y ~ X1 + X2, family = binomial, data = data_logistik)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -2.96363    0.01193 -248.32   <2e-16 ***
X1Yes        0.73262    0.01290   56.80   <2e-16 ***
X2Male       0.44634    0.01293   34.51   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 186906  on 319794  degrees of freedom
Residual deviance: 182052  on 319792  degrees of freedom
AIC: 182058

Number of Fisher Scoring iterations: 5

3.5 Uji Signifikansi Keseluruhan Model

> pR2(reglog)
fitting null model for pseudo-r2
          llh       llhNull            G2      McFadden          r2ML 
-9.102577e+04 -9.345277e+04  4.853993e+03  2.597030e-02  1.506384e-02 
         r2CU 
 3.403565e-02 
> qchisq(0.95,1)
[1] 3.841459

3.6 Uji Parsial Parameter Model

> summary(reglog)

Call:
glm(formula = Y ~ X1 + X2, family = binomial, data = data_logistik)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -2.96363    0.01193 -248.32   <2e-16 ***
X1Yes        0.73262    0.01290   56.80   <2e-16 ***
X2Male       0.44634    0.01293   34.51   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 186906  on 319794  degrees of freedom
Residual deviance: 182052  on 319792  degrees of freedom
AIC: 182058

Number of Fisher Scoring iterations: 5

3.7 Odds Ratio (OR)

> beta<-coef(reglog)
> OR_beta<-exp(beta)
> cbind(beta,OR_beta)
                  beta    OR_beta
(Intercept) -2.9636274 0.05163129
X1Yes        0.7326188 2.08052190
X2Male       0.4463391 1.56258129

3.8 Uji Kelayakan Model

> generalhoslem::logitgof(data_logistik$Y, fitted(reglog))

    Hosmer and Lemeshow test (binary model)

data:  data_logistik$Y, fitted(reglog)
X-squared = 10.294, df = 1, p-value = 0.001335

3.9 Pseudo R-Square

> pR2(reglog)
fitting null model for pseudo-r2
          llh       llhNull            G2      McFadden          r2ML 
-9.102577e+04 -9.345277e+04  4.853993e+03  2.597030e-02  1.506384e-02 
         r2CU 
 3.403565e-02 
> pseudo_r_square <- 1 - (reglog$deviance / reglog$null.deviance)
> print(paste("Pseudo R-Square =", pseudo_r_square))
[1] "Pseudo R-Square = 0.0259703012351961"

4 HASIL DAN PEMBAHASAN

4.1 Asumsi Non-Multikolinieritas

\[nilai\ VIF =1.005231\] Nilai VIF < 10, maka maka tidak terdapat multikolinieritas antar variabel prediktor. Asumsi multikolinieritas telah terpenuhi maka dapat dilanjutkan dengan pembentukan model dan pengujian signifikansi parameter.

4.2 Model Regresi Logistik

Koefisien SE Koefisien Z P-Value
Intercept -2.96363 0.01193 -248.32 <2e-16
X1Yes 0.73262 0.01290 56.80 <2e-16
X2Male 0.44634 0.01293 34.51 <2e-16

Model regresi logistik yang terbentuk: \[\pi(x)=\frac{exp(-2.9636+ 0.73262X_1+0.44634X_2)}{1+exp(-2.9636+ 0.73262X_1+0.44634X_2)}\] \[g(x) = \ln\left(\frac{\pi(x)}{1 - \pi(x)}\right) =-2.9636+ 0.73262X_1+0.44634X_2\] ## Uji Signifikansi Keseluruhan Model Setelah model dinyatakan fit, kemudian dilakukan uji apakah secara simultan variabel prediktor berpengaruh terhadap variabel respons.

4.2.1 Hipotesis

\(H_0 : \beta_1 = \beta_2=0\ (seluruh\ variabel\ prediktor\ tidak\ berpengaruh\ terhadap\ variabel\ respons)\\H_1 : \beta_0 \neq\ 0\ (terdapat\ minimal\ satu\ variabel\ prediktor\ yang\ berpengaruh\ terdahap\ variabel\ respons)\)

4.2.2 Statsitik Uji

Derajat Bebas G2 Chi-Square Tabel
1 4853.993 3.841459

4.2.3 Keputusan

Berdasarkan hasil di atas, diperoleh nilai G2 sebesar 4853.993 dengan nilai chi-square tabel sebesar 3.841459. Nilai G2 lebih besar dibandingkan dengan nilai chi-square sehingga dapat diputuskan \(H_0\) ditolak.

4.2.4 Kesimpulan

Dengan taraf nyata 5%, dapat disimpulkan bahwa terdapat minimal satu variabel prediktor yang memengaruhi variabel respons.

4.3 Uji Parsial Parameter Model

Dari pengujian secara simultan diketahui bahwa model adalah signifikan atau tolak yang berarti terdapat minimal satu variabel prediktor yang signifikan.Untuk mengetahui variabel prediktor yang signifikan maka dilakukan uji signifikansi secara parsial.

4.3.1 Hipotesis

\(H_0 : \beta_k = 0\ ,\ k = 1,2\ (variabel\ prediktor\ ke-k\ tidak\ berpengaruh\ signifikan\ terhadap\ variabel\ respons)\\H_1 : \beta_k\neq\ 0\ ,\ k = 1,2\ (variabel\ prediktor\ ke-k\ tidak\ berpengaruh\ signifikan\ terhadap\ variabel\ respons)\)

4.3.2 Statistik Uji

Koefisien SE Koefisien Z P-Value
Intercept -2.96363 0.01193 -248.32 <2e-16
X1Yes 0.73262 0.01290 56.80 <2e-16
X2Male 0.44634 0.01293 34.51 <2e-16

4.3.3 Keputusan

  • Variabel Merokok (\(X_1\)) P-Value (2e-16) < \(\alpha\) (0.05), maka tolak \(H_0\).

  • Variabel Gender (\(X_2\)) P-Value (<2e-16) < \(\alpha\) (0.05), maka tolak \(H_0\).

4.3.4 Kesimpulan

Dengan taraf nyata 5%, dapat disimpulkan bahwa kedua variabel prediktor, yaitu kebiasaan merokok (\(X_1\)) dan Jenis Kelamin (\(X_2\)) secara parsial signifikan memengaruhi terkena tidaknya penyakit jantung.

4.4 Odds Ratio (OR)

4.4.1 Output OR_beta

beta OR_beta
Intercept -2.9636274 0.05163129
X1Yes 0.7326188 2.08052190
X2Male 0.4463391 1.56258129

4.4.2 Interpretasi

  • Kebiasaan Merokok (\(X_1\)) Seseorang yang merokok (X1 = Yes) memiliki peluang mengalami penyakit jantung sekitar 2.0805 kali lebih tinggi dibandingkan dengan seseorang yang tidak merokok.

  • Jenis Kelamin (\(X_2\)) Seseorang pria (X2 = Male) memiliki peluang mengalami penyakit jantung sekitar 1.5626 kali lebih tinggi dibandingkan dengan seseorang wanita.

4.5 Uji Kelayakan Model

\[p-value = 0.001335\] P-Value < 0.05, maka tolak \(H_0\), artinya model tidak layak.

4.6 Pseudo R-Square

Nilai Pseudo R-Square dari model adalah 0.02597 atau 2.597%. Hal ini menunjukkan bahwa kemampuan variabel kebiasaan merokok (\(X_1\)) dan Jenis Kelamin (\(X_2\)) secara simultan dalam menjelaskan variabel terkena penyakit jantung atau tidak (Y) adalah sebesar 2.597%, sedangkan sisanya sebesar 97.403% dijelaskan oleh faktor lain di luar model.

5 KESIMPULAN

Variabel kebiasaan merokok (\(X_1\)) dan Jenis Kelamin (\(X_2\)) berpengaruh baik secara simultan maupun parsial terhadap terkena atau tidaknya penyakit jantung pada seseorang. Namun, kedua variabel ini secara simultan kurang menjelaskan variabel respons dengan baik, di mana hal ini terlihat dari nilai Pseudo R-Squre yang bernilai sangat kecil, yaitu 2.597%. Hal ini juga yang mungkin menjadi alasan kenapa model tidak layak digunakan. Sebaiknya penelitian berikutnya dapat menambahkan variabel-variabel lain yang lebih relevan agar dapat terbentuk model yang layak dan baik.

6 DAFTAR PUSTAKA

Sumber data: https://www.kaggle.com/datasets/kamilpytlak/personal-key-indicators-of-heart-disease

Ae, P. H. (2013). An Introduction to Logistic Regression : From Basic Concepts to Interpretation with Particular Attention to Nursing Domain. Journal of Korean Academy of Nursing, 43(2), 154–164.

Hosmer, D. W. & S. L. (2000). Applied Logistic Regression Second Edition. New York: John Wiley and Sons.