- 1 PENDAHULUAN
- 2 TINJAUAN PUSTAKA
- 3 SOURCE CODE
- 4 HASIL DAN PEMBAHASAN
- 5 KESIMPULAN
- 6 DAFTAR PUSTAKA
> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")1 PENDAHULUAN
1.1 Latar Belakang
Pemahaman mengenai penggunaan syntax di rstudio pada analisis regresi merupakan hal yang penting bagi statistikawan. Khususnya pada kasus-kasus tertentu yang variabel dependennya bukan merupakan data yang berskala rasio maupun interval, melainkan berupa data kualitatif yaitu data yang berskala nominal atau ordinal. Pada variabel dependen yang bersakala nominal dan ordinal memiliki jenis analisis dan perhitungan yang berbeda dengan data kuantitatif. Salah satu jenis analisis regresi yang dapat digunakan pada data kualitatif adalah analisis regresi logistik. Data yang digunakan di dalam laporan ini memiliki jenis data biner pada variabel dependennya, yaitu data yang hanya bernilai antara 0 dan 1. Oleh karena itu, akan digunakan analisis regresi logistik biner pada perhitungan. Penyakit jantung koroner menjadi penyebab kematian utama di Indonesia dan diperkirakan 30% sebagai penyebab kematian di seluruh dunia (Zahrawardhani, dkk, 2013). Oleh karena itu, peneliti ingin melakukan uji pada data penyebab penyakit jantung untuk mengindikasi penyebab apa saja yang dapat mengakibatkan penyakit jantung.
2 TINJAUAN PUSTAKA
2.1 Analisis Regresi
Analisis regresi adalah sebuah metode statistika yang digunakan untuk mempelajari pengaruh antara satu variabel terhadap variabel lainnya. Model regresi linier sederhana adalah model dasar yang menggunakan persamaan yang mencerminkan hubungan linier antara variabel bebas (X) dan variabel terikat (Y). Model ini dinyatakan dalam persamaan (Suyono, 2015):
\[ Y = β0 + β1X + ε \]
di mana: β0 = konstanta; β1 = koefisien regresi yang menunjukkan besarnya peningkatan atau penurunan; ε = galat acak.
2.2 Analisis Regresi Logistik Biner
Regresi Logistik adalah metode statistika yang digunakan untuk menganalisis hubungan antara variabel terikat dengan dua kategori atau lebih dengan satu atau lebih variabel bebas yang dapat berupa kategori atau kontinu (Hosmer dan Lemeshow, 2000). Regresi logistik terbagi menjadi tiga jenis, yaitu regresi logistik biner, regresi logistik multinomial, dan regresi logistik ordinal.
Regresi logistik biner digunakan untuk menganalisis hubungan antara satu variabel respons dengan beberapa variabel prediktor. Variabel respons dalam regresi logistik biner merupakan data kualitatif dikotomi, yaitu bernilai 1 untuk menyatakan keberadaan sebuah karakteristik dan bernilai 0 untuk menyatakan ketidakberadaannya(Sepang, Komalig, dan Hatidja, 2012).
Model regresi logistik biner menggunakan distribusi Bernoulli karena variabel responsnya memiliki dua kategori bernilai 0 dan 1. Model regresi logistik biner dapat dinyatakan dalam bentuk \[ \ f(yi) = \pi i^{yi}(1-\pi i^{1-yi}) \]
Bentuk model regresi logistik dengan satu variabel prediktor adalah:
\[ \pi (x)=\frac{exp(\beta0 + \beta1X1)}{1+exp(\beta0 + \beta1X1)} \]
Untuk mempermudah estimasi parameter regresi, fungsi 𝜋(x) pada persamaan tersebut dapat ditransformasikan menjadi bentuk logit regresi logistik, yaitu:
\[ logit(\pi (x)) = ln\frac {\pi(x)}{1- \pi(x)} \]
3 SOURCE CODE
3.1 Library
> library(readxl)
> library(generalhoslem)
> library(pscl)
> library(car)3.2 Import Data
> data = read_excel('C:/Users/ASUS/OneDrive/Documents/FILE EVI/UNIV/SEMESTER 4/PRAK. KOMSTAT/data tugas.xlsx')
> str(data)
tibble [319,795 × 5] (S3: tbl_df/tbl/data.frame)
$ Heart Disease : num [1:319795] 0 0 0 0 0 1 0 0 0 0 ...
$ Alcohol Drinking: num [1:319795] 0 0 0 0 0 0 0 0 0 0 ...
$ Physical Health : num [1:319795] 3 0 20 0 28 6 15 5 0 0 ...
$ Sex : num [1:319795] 1 1 0 1 1 1 1 1 1 0 ...
$ SleepTime : num [1:319795] 5 7 8 6 8 12 4 9 5 10 ...
> y = as.factor(data$`Heart Disease`)
> x1 = as.factor(data$`Alcohol Drinking`)
> x2 = data$`Physical Health`
> x3 = data$SleepTime
> x4 = as.factor(data$Sex)
> str(y)
Factor w/ 2 levels "0","1": 1 1 1 1 1 2 1 1 1 1 ...3.3 Membentuk Data Frame
> datalog = data.frame(y,x1,x2,x3, x4)
> str(datalog)
'data.frame': 319795 obs. of 5 variables:
$ y : Factor w/ 2 levels "0","1": 1 1 1 1 1 2 1 1 1 1 ...
$ x1: Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
$ x2: num 3 0 20 0 28 6 15 5 0 0 ...
$ x3: num 5 7 8 6 8 12 4 9 5 10 ...
$ x4: Factor w/ 2 levels "0","1": 2 2 1 2 2 2 2 2 2 1 ...3.4 Asumsi Non-multikolinieritas
> datalog_dummy <- data.frame(x1 = as.numeric(x1) - 1, x2, x3, x4 = as.numeric(x4) - 1)
> vif_model1 <- lm(x1 ~ x2+x3+x4, data = datalog_dummy)
> vif_values1 <- car::vif(vif_model1)
> print(vif_values1)
x2 x3 x4
1.005552 1.004118 1.002010 Data dibangkitkan dengan cara simulasi…. Function rnorm
digunakan untuk…. argument yang diisikan dalam function adalah….
Argument ini digunakan untuk…
3.5 Analisis Regresi Logistik
> reglog = glm(y~x1+x2+x3+x4, family = binomial, data = datalog)3.5.1 Uji Signifikansi Keseluruhan Model
> pR2(reglog)
fitting null model for pseudo-r2
llh llhNull G2 McFadden r2ML
-8.877459e+04 -9.345277e+04 9.356358e+03 5.005929e-02 2.883351e-02
r2CU
6.514722e-02
> qchisq(0.95,3)
[1] 7.8147283.5.2 Uji Parsial Parameter Model
> summary(reglog)
Call:
glm(formula = y ~ x1 + x2 + x3 + x4, family = binomial, data = datalog)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.6360623 0.0307182 -85.81 <2e-16 ***
x11 -0.5384706 0.0315007 -17.09 <2e-16 ***
x2 0.0540052 0.0005813 92.90 <2e-16 ***
x3 0.0416507 0.0040853 10.20 <2e-16 ***
x41 -0.5707806 0.0130976 -43.58 <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: 177549 on 319790 degrees of freedom
AIC: 177559
Number of Fisher Scoring iterations: 53.5.3 R square
> pR2(reglog)
fitting null model for pseudo-r2
llh llhNull G2 McFadden r2ML
-8.877459e+04 -9.345277e+04 9.356358e+03 5.005929e-02 2.883351e-02
r2CU
6.514722e-02 3.5.4 Odds Ratio
> beta = (coef(reglog))
> beta
(Intercept) x11 x2 x3 x41
-2.63606234 -0.53847058 0.05400516 0.04165072 -0.57078061
> OR_beta = exp(beta)
> OR_beta
(Intercept) x11 x2 x3 x41
0.07164282 0.58364020 1.05549005 1.04253028 0.56508416
> cbind(beta, OR_beta)
beta OR_beta
(Intercept) -2.63606234 0.07164282
x11 -0.53847058 0.58364020
x2 0.05400516 1.05549005
x3 0.04165072 1.04253028
x41 -0.57078061 0.565084163.5.5 Membentuk Klasifikasi
> yp_hat = fitted(reglog)
> datalog$yp_hat = yp_hat
> class = table(datalog$y, datalog$yp_hat>0.5)
> class
FALSE
0 292422
1 273733.5.6 Uji Kelayakan Model
> logitgof(datalog$y,fitted(reglog))
Hosmer and Lemeshow test (binary model)
data: datalog$y, fitted(reglog)
X-squared = 670.56, df = 7, p-value < 2.2e-164 HASIL DAN PEMBAHASAN
4.1 Asumsi Non-Multikolinieritas
4.1.1 Output VIF :
\[ \ x2 = 1,005552\\ \ x3 = 1,004118\\ \ x4 = 1,002010 \]
4.1.2 Kesimpulan :
\[ \ Semua \ hasil\ VIF\ bernilai\ <10,\ yang\ berarti\ asumsi\ multikolinieritas\ terpenuhi \]
4.2 Uji Signifikansi Keseluruhan Model
4.2.1 Hipotesis :
\[ \ H0 : \beta1 = \beta2 = \beta3 = \beta4 = 0 \\ \ H1 : minimal \ terdapat \ satu \ \beta i \not= 0 \\ ;i = 1,2,3,4 \]
4.2.2 Statisik Uji dan Titik Kritis :
\[ \ G2 = 9356,358 \\X^2 (0.05 , 3) = 7,81 \]
4.2.3 Keputusan :
\[ \ G > X^2 (0.05,3),\ maka\ tolak\ H0 \]
4.2.4 Interpretasi :
Pada taraf uji 0.05, dapat disimpulkan bahwa semua variabel independen yaitu minum alkohol, kesehatan fisik, waktu tidur, dan jenis kelamin secara simultan berpengaruh signifikan terhadap terjadinya penyakit jantung.
4.3 Uji Parsial Parameter Model
4.3.1 Hipotesis :
\[ \ H0 : \beta i = 0 \\ \ H1 : \beta i \not= 0 \\ ;i = 1,2,3,4 \]
4.3.2 Taraf nyata :
\[ \alpha = 0.05 \]
4.3.3 Nilai p :
\[ \ x11 : \ <2e-16\\ x2 : \ <2e-16 \\ x3 : \ <2e-16 \\ x41 : \ <2e-16 \]
4.3.4 Keputusan :
\[ \ p-value < alpha,\ maka\ tolak\ H0 \]
4.3.5 Kesimpulan
Pada taraf uji 0.05, dapat disimpulkan bahwa semua variabel independen yaitu minum alkohol, kesehatan fisik, waktu tidur, dan jenis kelamin secara parsial berpengaruh signifikan terhadap terjadinya penyakit jantung.
4.4 Model Regresi Logistik
\[ \pi (x)=\frac{exp(-2,636 - 0,538X1 + 0,054X2 + 0,042X3 - 0,571X4)}{1+exp(-2,636 - 0,538X1 + 0,054X2 + 0,042X3 - 0,571X4)}\\ logit(\pi (x)) = ln\frac {\pi(x)}{1- \pi(x)} = -2,636 - 0,538X1 + 0,054X2 + 0,042X3 - 0,571X4 \]
4.5 R-square
Nilai McFadden’s R-square dari model adalah 0.1931994, yang berarti model memiliki kecocokan sebesar 19,32%.
4.6 Odds Ratio
4.6.1 Output OR_beta
| beta | OR_beta | |
|---|---|---|
| Intercept | -2.63606234 | 0.07164282 |
| x11 | -0.53847058 | 0.58364020 |
| x2 | 0.05400516 | 1.05549005 |
| x3 | 0.04165072 | 1.04253028 |
| x41 | -0.57078061 | 0.56508416 |
4.6.2 Interpretasi
x11 = 0.58364020 -> Seseorang yang minum alkohol (x1=1) memiliki peluang mengalami penyakit jantung sekitar 0.584 kali (sekitar 41,6% lebih rendah) dibandingkan dengan seseorang yang tidak minum alkohol, dengan tetap menjaga variabel lainnya konstan.
x2 = 1.05549005 -> Setiap peningkatan dalam kesehatan fisik akan meningkatkan peluang mengalami penyakit jantung sekitar 1,055 kali, dengan tetap menjaga variabel lainnya konstan.
x3 = 1.04253028 -> Setiap peningkatan dalam waktu tidur akan meningkatkan peluang mengalami penyakit jantung sekitar 1,042 kali, dengan tetap menjaga variabel lainnya konstan.
x41 = 0.56508416 -> Seorang perempuan (x4=1) memiliki peluang mengalami penyakit jantung sekitar 0.565 kali (sekitar 43,5% lebih rendah) dibandingkan dengan seorang laki-laki, dengan tetap menjaga variabel lainnya konstan.
4.7 Membentuk Klasifikasi
Dengan threshold 0,5 didapatkan :
| FALSE | |
|---|---|
| 0 | 292422 |
| 1 | 27373 |
\[ Total = 292,422 + 27,373 = 319,795\\ Akurasi = 292,422/319,795 = 0,9142 \]
Jadi, tingkat akurasi model sekitar 91,42% berdasarkan tabel kontingensi.
4.8 Uji Kelayakan Model
4.8.1 Hipotesis :
\[ \ H0 :\ Model\ layak \\ \ H1 : \ Model\ tidak\ layak \]
4.8.2 Taraf nyata :
\[ \alpha = 0.05 \]
4.8.3 Nilai p :
\[ \ p-value = <2.23e-16 \]
4.8.4 Keputusan :
\[ \ p-value < alpha,\ maka\ tolak\ H0 \]
4.8.5 Kesimpulan
Pada taraf uji 0.05, dapat disimpulkan bahwa model yang terbentuk adalah model yang terbentuk bukan model yang layak.
5 KESIMPULAN
Kesimpulan yang didapatkan adalah dikarenakan model yang dihasilkan belum layak untuk digunakan, maka hasil uji seperti uji simultan, uji parsial, odds ratio, dan sebagainya yang didapatkan tidak layak atau tidak relevan terhadap data. Sebaiknya jika terjadi kasus ketidakcocokan model, diperlukan evaluasi kritis terhadap analisis dan hasil yang diperoleh. Sehingga perlu untuk mempertimbangkan perbaikan model, pemilihan variabel yang lebih tepat, atau eksplorasi metode statistik yang lebih sesuai dengan data yang ada.
6 DAFTAR PUSTAKA
Hosmer, D.W., dan S. Lemeshow. 2000. Applied Logistic Regression. Edisi ke-2. John Wiley and Sons Inc : Canada.
Sepang, F., H. Komalig, D. Hatidja. 2012. Penerapan Regresi Logistik untuk Menentukan Faktor-Faktor yang Mempengaruhi Pemilihan Jenis Alat Kontrasepsi di Kecamatan Modayag Barat. Universitas Sam Ratulangi Manado. Jurnal MIPA Unsrat Online 1(1):1-5.
Suyono. 2015. Analisis Regresi untuk Penelitian. Deepublish: Yogyakarta.
Zahrawardhani, dkk. 2013. Analisis Faktor Risiko Kejadian Penyakit Jantung Koroner di RSUP Dr Kariadi Semarang. Jurnal Kedokteran Muhammadiyah, 1(2) :13-20.