Tugas Multinomial logistic Regression
1. Multinomial Logistic Regression
Apa Itu Multinomial Logistic Regression ?
Multinomial Logistic Regression adalah metode pemodelan statistik yang digunakan untuk memprediksi kategori dari variabel dependen yang memiliki lebih dari dua kelas. Metode ini memperkirakan probabilitas setiap kategori berdasarkan satu atau lebih variabel independen, sehingga memungkinkan kita memahami pengaruh faktor-faktor tertentu terhadap kemungkinan terpilihnya setiap kategori secara komparatif.
Multinomial Logistic Regression dapat ditulis dengan rumus:
\[P(Y=k) = \frac{\exp(X\beta_k)}{\sum_i \exp(X\beta_i)}]\]
2. Langkah langkah
1. Install Library yg diperlukan
- nnet : Digunakan untuk neural networks sederhana dan multinomial logistic regression.
- dplyr : Memudahkan manipulasi dan transformasi data.
- plotly : Membuat grafik interaktif di R.
- tidyverse : Kumpulan paket R untuk data science, termasuk manipulasi data, visualisasi, dan modeling.
- broom : Mengubah hasil model statistik (linear, logistic, multinomial, dll) menjadi data frame rapi sehingga mudah diolah lebih lanjut.
2. Upload Files
Dapat ditulis Dengan fungsi seperti ini: - data <- read.csv(file.choose())
3. Lihat struktur dan beberapa baris awal
Dengan Fungsi:
str(data) head(data)
## 'data.frame': 200 obs. of 6 variables:
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ Advertising : num 12.2 24.7 15.2 27.1 28.5 ...
## $ Salespeople : num 16 34.1 25 22.9 20.1 ...
## $ Satisfaction: num 9.87 2.23 9.15 6.19 4.56 ...
## $ Competition : num 3.14 7.18 3.03 3.87 2.57 ...
## $ Success : int 1 1 1 1 1 1 1 1 1 1 ...
4. Bersihkan data (hapus kolom index jika ada)
Biasanya ada kolom Unnamed atau sejenis, Dapat ditulis dengan fungsi seperti ini: -data <- data %>% select(-contains(“Unnamed”))
5. Ubah kolom target menjadi faktor (kategori)
Dapat ditulis dengan fungsi: data\(Success <- as.factor(data\)Success)
6. Lihat ringkasan data
Dengan Fungsi: - summary(data)
## X Advertising Salespeople Satisfaction
## Min. : 1.00 Min. : 5.016 Min. :10.16 Min. :1.004
## 1st Qu.: 50.75 1st Qu.:11.803 1st Qu.:15.89 1st Qu.:3.462
## Median :100.50 Median :17.052 Median :21.73 Median :5.555
## Mean :100.50 Mean :17.660 Mean :22.23 Mean :5.520
## 3rd Qu.:150.25 3rd Qu.:23.334 3rd Qu.:28.55 3rd Qu.:7.813
## Max. :200.00 Max. :29.857 Max. :34.99 Max. :9.970
## Competition Success
## Min. :1.011 0: 16
## 1st Qu.:3.217 1:184
## Median :5.429
## Mean :5.442
## 3rd Qu.:7.797
## Max. :9.954
7. (Opsional) Lihat korelasi antar variabel numerik
Dengan Fungsi: -cor(data %>% select_if(is.numeric))
## X Advertising Salespeople Satisfaction Competition
## X 1.000000000 -0.0088036438 -0.008840414 0.08273779 -0.0699057385
## Advertising -0.008803644 1.0000000000 -0.052500874 -0.06925880 -0.0009794717
## Salespeople -0.008840414 -0.0525008736 1.000000000 -0.07378403 0.0228875270
## Satisfaction 0.082737788 -0.0692588012 -0.073784031 1.00000000 -0.0167320879
## Competition -0.069905738 -0.0009794717 0.022887527 -0.01673209 1.0000000000
8. Bangun model multinomial
Dengan Fungsi: -model_multi <- multinom( Success ~ Advertising + Salespeople + Satisfaction + Competition, data = data )
## # weights: 6 (5 variable)
## initial value 138.629436
## iter 10 value 31.809738
## iter 20 value 31.808453
## iter 20 value 31.808452
## iter 20 value 31.808452
## final value 31.808452
## converged
9. Tampilkan ringkasan model
Dengan Fungsi: -summary(model_multi)
## Call:
## multinom(formula = Success ~ Advertising + Salespeople + Satisfaction +
## Competition, data = data)
##
## Coefficients:
## Values Std. Err.
## (Intercept) -6.0136184 1.89740017
## Advertising 0.1944823 0.05866654
## Salespeople 0.2832237 0.08020980
## Satisfaction 0.4221797 0.14106338
## Competition -0.2711868 0.14914816
##
## Residual Deviance: 63.6169
## AIC: 73.6169
️10. Hitung nilai z dan p-value
Dengan Fungsi: z <- summary(model_multi)\(coefficients / summary(model_multi)\)standard.errors p <- (1 - pnorm(abs(z), 0, 1)) * 2
11. Gabungkan hasil koefisien dan p-value
Dengan Fungsi: - coef_table <- data.frame( Coefficients = summary(model_multi)$coefficients, p_value = p ) print(coef_table)
## Coefficients p_value
## (Intercept) -6.0136184 0.0015275447
## Advertising 0.1944823 0.0009162799
## Salespeople 0.2832237 0.0004139350
## Satisfaction 0.4221797 0.0027639757
## Competition -0.2711868 0.0690277701
12. Prediksi dan evaluasi model
Dengan Fungsi: - pred_class <- predict(model_multi, newdata = data)
13. Buat confusion matrix
## Actual
## Predicted 0 1
## 0 5 2
## 1 11 182
14. Hitung akurasi
##
## ✅ Model Accuracy: 93.5 %
3. Visualisasi
Multinomial Logistic Regression Plot
Kesimpulan
- Menghitung probabilitas setiap kategori berdasarkan variabel independen.
- Dapat digunakan untuk menganalisis hubungan antara beberapa faktor dengan hasil kategorikal.
- Cocok untuk data non-linear dan kategori tanpa urutan (nominal data).
- Membantu dalam pengambilan keputusan berbasis probabilitas
Referensi
Pullman, A., Chen, M., Zou, D., Hives, B., & Liu, Y. (2018). Researching multiple publics through latent profile analysis: Similarities and differences in science and technology attitudes in China, Japan, South Korea and the United States.