Library:
> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")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.
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.
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).
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).
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).
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.
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.
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
> #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 ...> 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> 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> 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"\[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.
| 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.
\(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)\)
| Derajat Bebas | G2 | Chi-Square Tabel |
|---|---|---|
| 1 | 4853.993 | 3.841459 |
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.
Dengan taraf nyata 5%, dapat disimpulkan bahwa terdapat minimal satu variabel prediktor yang memengaruhi variabel respons.
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.
\(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)\)
| 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 |
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\).
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.
| beta | OR_beta | |
|---|---|---|
| Intercept | -2.9636274 | 0.05163129 |
| X1Yes | 0.7326188 | 2.08052190 |
| X2Male | 0.4463391 | 1.56258129 |
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.
\[p-value = 0.001335\] P-Value < 0.05, maka tolak \(H_0\), artinya model tidak layak.
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.
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.
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.