Tugas Multinomial logistic Regression

Foto

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