Notes Theme, silakan gunakan salah satu theme berikut: - cayman (package prettydoc) - architect (package prettydoc) - united (default di RMarkdown)
Library:
> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")
Kumpulan data ini berasal dari Institut Nasional Diabetes dan Penyakit Pencernaan dan Ginjal. Tujuan dari kumpulan data ini adalah untuk memprediksi secara diagnostik apakah seorang pasien menderita diabetes atau tidak, berdasarkan pengukuran diagnostik tertentu yang disertakan dalam kumpulan data tersebut. Beberapa kendala ditempatkan pada pemilihan contoh-contoh ini dari database yang lebih besar. Secara khusus, semua pasien di sini adalah wanita berusia minimal 21 tahun keturunan Pima Indians.
Kumpulan data terdiri dari beberapa variabel prediktor medis dan satu variabel target, Hasil. Variabel prediktor meliputi jumlah Pregnancies (kehamilan), Glucose (Glukosa), Blood Pressure (Tekanan darah), Skin Thickness (Kekebalan tubuh), Insulin (Kadar insulin), Diabetes Pedigree Function (Fungsi Silsilah Diabetes), Age (usia).
Tujuan Utama:
Analisis Diskriminan memiliki dua tujuan utama:
Deskripsi (Description): Menentukan variabel independen mana yang paling berkontribusi dalam membedakan kelompok-kelompok yang sudah ada. Hasilnya adalah pembentukan Fungsi Diskriminan (Discriminant Function).
Prediksi/Klasifikasi (Prediction/Classification): Membangun aturan klasifikasi untuk memprediksi keanggotaan kelompok dari observasi atau kasus baru yang belum diklasifikasikan.
Persamaan fungsi Diskriminan dalam bentuk regresi multivariat:
Dk= 0+ 1 X1+ 2 X2+….+ p Xp
Di mana :
Dk: Skor diskriminan untuk kelompok k
p: Koefisien bobot diskriminan
Xp: Variabel prediktor (independen)
Fungsi ini memaksimalkan perbandingan varians antar-kelompok relatif terhadap varians di dalam kelompok, sehingga mampu menghasilkan pemisahan kelompok yang paling baik.
Dua jenis Analisis Diskriminan
Analisis Diskriminan Linier (LDA) : Dua kelompok
Analisis Diskriminan Berganda (MDA) : Tiga kelompok atau lebih
Digunakan :
Analisis Diskriminan sangat populer dan sering digunakan dalam berbagai ilmu yang melibatkan klasifikasi berdasarkan kriteria kuantitatif.
Ekonomi & Bisnis: Klasifikasi perusahaan menjadi bangkrut atau tidak bangkrut (Model Altman Z-Score adalah contoh penggunaan LDA), segmentasi pasar berdasarkan variabel demografi dan perilaku.
Kedokteran: Mendiagnosis pasien ke dalam kelompok risiko tinggi atau rendah berdasarkan hasil tes medis.
Ilmu Sosial: Membedakan perilaku konsumen berdasarkan variabel psikografis.
Pendidikan: Memprediksi keberhasilan siswa (lulus/gagal) berdasarkan nilai ujian masuk dan variabel latar belakang.
Data ini di dapatkan di web kaggle, digunakan untuk menentukan prediksi secara diagnostik apakah seorang pasien menderita diabetes atau tidak
| Pregnancies | Glucose | BloodPressure | SkinThickness | Age | Outcome |
| 6 | 148 | 72 | 35 | 50 | 1 |
| 1 | 85 | 66 | 29 | 31 | 0 |
| 8 | 183 | 64 | 0 | 32 | 1 |
| 1 | 89 | 66 | 23 | 21 | 0 |
| 0 | 137 | 40 | 35 | 33 | 1 |
| 5 | 116 | 74 | 0 | 30 | 0 |
| 3 | 78 | 50 | 32 | 26 | 1 |
| 10 | 115 | 0 | 0 | 29 | 0 |
| 2 | 197 | 70 | 45 | 53 | 1 |
| 8 | 125 | 96 | 0 | 54 | 1 |
| 4 | 110 | 92 | 0 | 30 | 0 |
| 10 | 168 | 74 | 0 | 34 | 1 |
| 10 | 139 | 80 | 0 | 57 | 0 |
| 1 | 189 | 60 | 23 | 59 | 1 |
| 5 | 166 | 72 | 19 | 51 | 1 |
| 7 | 100 | 0 | 0 | 32 | 1 |
| 0 | 118 | 84 | 47 | 31 | 1 |
| 7 | 107 | 74 | 0 | 31 | 1 |
| 1 | 103 | 30 | 38 | 33 | 0 |
| 1 | 115 | 70 | 30 | 32 | 1 |
| 3 | 126 | 88 | 41 | 27 | 0 |
| 8 | 99 | 84 | 0 | 50 | 0 |
| 7 | 196 | 90 | 0 | 41 | 1 |
| 9 | 119 | 80 | 35 | 29 | 1 |
| 11 | 143 | 94 | 33 | 51 | 1 |
| 10 | 125 | 70 | 26 | 41 | 1 |
| 7 | 147 | 76 | 0 | 43 | 1 |
| 1 | 97 | 66 | 15 | 22 | 0 |
| 13 | 145 | 82 | 19 | 57 | 0 |
| 5 | 117 | 92 | 0 | 38 | 0 |
| 5 | 109 | 75 | 26 | 60 | 0 |
| 3 | 158 | 76 | 36 | 28 | 1 |
| 3 | 88 | 58 | 11 | 22 | 0 |
| 6 | 92 | 92 | 0 | 28 | 0 |
| 10 | 122 | 78 | 31 | 45 | 0 |
| 4 | 103 | 60 | 33 | 33 | 0 |
| 11 | 138 | 76 | 0 | 35 | 0 |
| 9 | 102 | 76 | 37 | 46 | 1 |
| 2 | 90 | 68 | 42 | 27 | 1 |
| 4 | 111 | 72 | 47 | 56 | 1 |
| 3 | 180 | 64 | 25 | 26 | 0 |
| 7 | 133 | 84 | 0 | 37 | 0 |
| 7 | 106 | 92 | 18 | 48 | 0 |
| 9 | 171 | 110 | 24 | 54 | 1 |
| 7 | 159 | 64 | 0 | 40 | 0 |
| 0 | 180 | 66 | 39 | 25 | 1 |
| 1 | 146 | 56 | 0 | 29 | 0 |
| 2 | 71 | 70 | 27 | 22 | 0 |
| 7 | 103 | 66 | 32 | 31 | 1 |
| 7 | 105 | 0 | 0 | 24 | 0 |
Uji deterministik dalam diagnosis diabetes bertujuan memberikan keputusan yang pasti dan konsisten mengenai apakah seorang pasien menderita diabetes atau tidak. Dalam pendekatan ini, diagnosis dibuat berdasarkan aturan atau ambang batas yang telah ditetapkan. Jika nilai pemeriksaan pasien melewati ambang batas tertentu, maka pasien diklasifikasikan sebagai penderita diabetes; jika tidak, maka dianggap tidak diabetes. Pendekatan deterministik ini menghilangkan unsur probabilitas dan menghasilkan keputusan yang objektif, mudah direplikasi, serta membantu tenaga kesehatan menegakkan diagnosis secara cepat dan tepat.
> library(MVN)
> library(biotools)
> library(MASS)
> library(candisc)
> library(readxl)
> library(rgl)
> data_lengkap <- read.csv("C:/Users/Lenovo/Downloads/diabetes.csv")
> View(data_lengkap)
> var_respon <- data_lengkap[6]
> datacek<- data_lengkap
> numerik_vars <- c("Pregnancies", "Glucose", "BloodPressure", "SkinThickness", "Age")
> hasildata<-mvn(datacek[numerik_vars], multivariate_outlier_method = "adj", show_new_data = TRUE, mvn_test = "mardia")
> dataterbaru <- hasildata$new_data
> View(dataterbaru)
> dataterbaru <- as.data.frame(dataterbaru)
>
> #memasukkan data yang tidak hilanh
> data_boostrap <- mvn(dataterbaru, mvn_test = 'mardia', alpha = 0.05, bootstrap = TRUE)
> data_analisis <- data_boostrap$data
> akhir <- data.frame(data_analisis, Outcome = var_respon[c(1:7, 10:13, 15, 18:20,
+ 22, 24:31, 33:40, 42:43, 45, 47:49),])
> akhir$Outcome
[1] 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1
> akhir
Pregnancies Glucose BloodPressure SkinThickness Age Outcome
1 6 148 72 35 50 1
2 1 85 66 29 31 0
3 8 183 64 0 32 1
4 1 89 66 23 21 0
5 0 137 40 35 33 1
6 5 116 74 0 30 0
7 3 78 50 32 26 1
10 8 125 96 0 54 1
11 4 110 92 0 30 0
12 10 168 74 0 34 1
13 10 139 80 0 57 0
15 5 166 72 19 51 1
18 7 107 74 0 31 1
19 1 103 30 38 33 0
20 1 115 70 30 32 1
22 8 99 84 0 50 0
24 9 119 80 35 29 1
25 11 143 94 33 51 1
26 10 125 70 26 41 1
27 7 147 76 0 43 1
28 1 97 66 15 22 0
29 13 145 82 19 57 0
30 5 117 92 0 38 0
31 5 109 75 26 60 0
33 3 88 58 11 22 0
34 6 92 92 0 28 0
35 10 122 78 31 45 0
36 4 103 60 33 33 0
37 11 138 76 0 35 0
38 9 102 76 37 46 1
39 2 90 68 42 27 1
40 4 111 72 47 56 1
42 7 133 84 0 37 0
43 7 106 92 18 48 0
45 7 159 64 0 40 0
47 1 146 56 0 29 0
48 2 71 70 27 22 0
49 7 103 66 32 31 1
> var_respon
Outcome
1 1
2 0
3 1
4 0
5 1
6 0
7 1
8 0
9 1
10 1
11 0
12 1
13 0
14 1
15 1
16 1
17 1
18 1
19 0
20 1
21 0
22 0
23 1
24 1
25 1
26 1
27 1
28 0
29 0
30 0
31 0
32 1
33 0
34 0
35 0
36 0
37 0
38 1
39 1
40 1
41 0
42 0
43 0
44 1
45 0
46 1
47 0
48 0
49 1
50 0
> #UJI ASUMSI HOMOGENITAS RAGAM
> uji_bart <- function(x){
+ method <- "Bartlett's test of sphericity"
+ data.name <- deparse(substitute(x))
+ x <- subset(x, complete.cases(x))
+ n <- nrow(x)
+ p <- ncol(x)
+ chisq <- (1-n+(2*p+5)/6)*log(det(cor(x)))
+ df <- p*(p-1)/2
+ p.value <- pchisq(chisq, df, lower.tail=FALSE)
+ names(chisq) <- "Khi-squared"
+ names(df) <- "df"
+ return(structure(list(statistic=chisq, parameter=df, p.value=p.value,
+ method=method, data.name=data.name), class="htest"))}
> uji_bart(dataterbaru)
Bartlett's test of sphericity
data: dataterbaru
Khi-squared = 57.957, df = 10, p-value = 8.809e-09
> X<-as.matrix(dataterbaru[, 1:5])
> X.manova<-manova(X ~ akhir$Outcome, data=akhir)
> X.wilks<-summary(X.manova, test="Wilks")
> cc<-candisc(X.manova)
> modellda<-lda(akhir$Outcome~., data = akhir )
>
> pred_LDA1<- predict(modellda,as.vector(akhir))
> table(actual=akhir$Outcome, predicted=pred_LDA1$class)
predicted
actual 0 1
0 18 3
1 4 13
> uji_bart(dataterbaru)
Bartlett's test of sphericity
data: dataterbaru
Khi-squared = 57.957, df = 10, p-value = 8.809e-09
\[ \alpha,\beta,\gamma,\mu,\sigma,\phi,\theta,\epsilon,\varepsilon, \Gamma, \Sigma,\Phi,\Theta \]
> uji_bart(dataterbaru)
Bartlett's test of sphericity
data: dataterbaru
Khi-squared = 57.957, df = 10, p-value = 8.809e-09
> modellda<-lda(akhir$Outcome~., data = akhir )
> X<-as.matrix(dataterbaru[, 1:5])
> data_boostrap <- mvn(dataterbaru, mvn_test = 'mardia', alpha = 0.05, bootstrap = TRUE)
> data_analisis <- data_boostrap$data
> akhir <- data.frame(data_analisis, Outcome = var_respon[c(1:7, 10:13, 15, 18:20,
+ 22, 24:31, 33:40, 42:43, 45, 47:49),])
> akhir$Outcome
[1] 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1
> akhir
Pregnancies Glucose BloodPressure SkinThickness Age Outcome
1 6 148 72 35 50 1
2 1 85 66 29 31 0
3 8 183 64 0 32 1
4 1 89 66 23 21 0
5 0 137 40 35 33 1
6 5 116 74 0 30 0
7 3 78 50 32 26 1
10 8 125 96 0 54 1
11 4 110 92 0 30 0
12 10 168 74 0 34 1
13 10 139 80 0 57 0
15 5 166 72 19 51 1
18 7 107 74 0 31 1
19 1 103 30 38 33 0
20 1 115 70 30 32 1
22 8 99 84 0 50 0
24 9 119 80 35 29 1
25 11 143 94 33 51 1
26 10 125 70 26 41 1
27 7 147 76 0 43 1
28 1 97 66 15 22 0
29 13 145 82 19 57 0
30 5 117 92 0 38 0
31 5 109 75 26 60 0
33 3 88 58 11 22 0
34 6 92 92 0 28 0
35 10 122 78 31 45 0
36 4 103 60 33 33 0
37 11 138 76 0 35 0
38 9 102 76 37 46 1
39 2 90 68 42 27 1
40 4 111 72 47 56 1
42 7 133 84 0 37 0
43 7 106 92 18 48 0
45 7 159 64 0 40 0
47 1 146 56 0 29 0
48 2 71 70 27 22 0
49 7 103 66 32 31 1
> var_respon
Outcome
1 1
2 0
3 1
4 0
5 1
6 0
7 1
8 0
9 1
10 1
11 0
12 1
13 0
14 1
15 1
16 1
17 1
18 1
19 0
20 1
21 0
22 0
23 1
24 1
25 1
26 1
27 1
28 0
29 0
30 0
31 0
32 1
33 0
34 0
35 0
36 0
37 0
38 1
39 1
40 1
41 0
42 0
43 0
44 1
45 0
46 1
47 0
48 0
49 1
50 0
Berdasarkan hasil analisis, dapat disimpulkan bahwa Analisis Diskriminan Linier (LDA) berhasil digunakan untuk memprediksi secara diagnostik apakah pasien wanita keturunan Pima Indians menderita diabetes atau tidak berdasarkan variabel medis yang tersedia. Pengujian awal mengonfirmasi bahwa data variabel prediktor berkorelasi dan cocok untuk analisis, sebagaimana ditunjukkan oleh hasil Uji Bartlett’s test of sphericity yang signifikan P-Value = 8.809e-09. Hasil MANOVA (Uji Wilks’ Lambda) menunjukkan adanya perbedaan rata-rata vektor variabel prediktor yang signifikan secara statistik antara kelompok Outcome (diabetes vs. non-diabetes) Pr>F = 0.01576. Variabel yang paling berkontribusi dalam membedakan kedua kelompok adalah SkinThickness dan Glucose, di mana kelompok pasien dengan diabetes memiliki rata-rata yang lebih tinggi pada kedua variabel ini. Fungsi Diskriminan Linier yang dihasilkan memiliki kinerja klasifikasi yang kuat, mampu mengklasifikasikan observasi dengan tingkat akurasi sebesar 81.6%.