Regersi Logistik Multinomial - Analisis Multivariat

Kelompok 9

2023F


Dataset ini berasal dari UCI Machine Learning Repository dan berisi deskripsi 23 spesies jamur berinsang dalam keluarga Agaricus dan Lepiota. Spesies diklasifikasikan sebagai dapat dimakan, beracun, atau tidak diketahui tingkat edibilitasnya. Dataset ini menyoroti bahwa tidak ada aturan sederhana untuk menentukan keamanan konsumsi jamur.

Berikut adalah tautan ke dataset jamur dari UCI Machine Learning Repository:

🔗 https://archive.ics.uci.edu/dataset/73/mushroom

data <- read.csv("C:/Users/ASUS/Downloads/mushroom/agaricus-lepiota.data", header = TRUE, 
sep = ",") 
colnames(data) <- c("class", "cap-shape", "cap-surface", "cap-color", "bruises", 
                    "odor", "gill-attachment", "gill-spacing", "gill-size", 
                    "gill-color", "stalk-shape", "stalk-root", "stalk-surface-above-ring", 
                    "stalk-surface-below-ring", "stalk-color-above-ring", 
                    "stalk-color-below-ring", "veil-type", "veil-color", "ring-number", 
                    "ring-type", "spore-print-color", "population", "habitat")
library(tidyverse)
## Warning: package 'ggplot2' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data$odor <- as.factor(data$odor)
model_data <- data %>%
  select(odor, `cap-shape`, `cap-surface`, `cap-color`) %>%
  na.omit()

model_data <- model_data %>% mutate_all(as.factor)
library(nnet)
## Warning: package 'nnet' was built under R version 4.4.3
model <- multinom(odor ~ `cap-shape` + `cap-surface` + `cap-color`, data = model_data)
## # weights:  171 (144 variable)
## initial  value 17848.055242 
## iter  10 value 10708.530715
## iter  20 value 9889.269092
## iter  30 value 9169.733824
## iter  40 value 8911.648106
## iter  50 value 8546.516912
## iter  60 value 8419.093881
## iter  70 value 8376.080861
## iter  80 value 8371.512117
## iter  90 value 8371.422031
## final  value 8371.421393 
## converged
summary(model)
## Warning in sqrt(diag(vc)): NaNs produced
## Call:
## multinom(formula = odor ~ `cap-shape` + `cap-surface` + `cap-color`, 
##     data = model_data)
## 
## Coefficients:
##   (Intercept) `cap-shape`c  `cap-shape`f `cap-shape`k `cap-shape`s
## c  -22.264172     5.133819 -2.162393e+00     42.08561    -6.245334
## f    2.534673     2.548992  3.852347e+01     88.69149     8.186890
## l  -10.263996   -35.965182 -2.241372e-06     10.37403   -37.850033
## m  -31.659626     1.883149  8.497227e+00     59.04753    -9.502068
## n   40.586042    99.750680  1.274127e+00     50.72935    25.878557
## p  -72.746357     4.244037  3.506034e+01     24.10233    22.178301
## s  -66.552764     4.520252  3.055688e+01     81.07628    15.092311
## y  -67.466150     4.568008  3.052488e+01     81.04429    14.756997
##    `cap-shape`x `cap-surface`g `cap-surface`s `cap-surface`y `cap-color`c
## c  3.020533e+01     -3.9982395  -1.970473e+00  -3.352233e+01     19.97655
## f  3.754950e+01    -15.0219401  -1.347601e+00  -2.036911e+00    -82.02257
## l -4.339513e-06     -5.7113031  -1.471941e-05  -1.824569e-05     10.42152
## m  7.604037e+00      2.0860159  -1.191320e+01   2.913775e+01     43.50421
## n  3.671250e-01     17.9708112  -2.613020e+00  -3.135542e+00     11.36867
## p  3.402681e+01      0.2608386   3.840196e+01   3.836357e+01    -15.24580
## s  2.966333e+01      6.2257831   3.763658e+01   3.662904e+01     11.20643
## y  2.963134e+01      6.2088028   3.824064e+01   3.723309e+01     11.20509
##   `cap-color`e `cap-color`g `cap-color`n `cap-color`p `cap-color`r `cap-color`u
## c    -5.043554   30.3250772   -34.639748    37.429533   15.3076954   15.3076954
## f    -5.502023   -0.9164937   -37.229925   -77.490778  -37.6826784  -37.6826784
## l    -7.461485    2.8728708    10.264035    -3.496708    5.5779748    5.5779748
## m    24.843362   -7.7796848    -6.699012    -7.741191    0.2008761    0.2008761
## n    -4.602638   -0.8364253   -35.702561     2.888469   -6.0783141   -6.0783141
## p    -3.956429   -4.1649217     1.030422    14.949021    5.4362104    5.4362104
## s    32.791340    1.3202271     1.011280     7.561032   11.7252098   11.7252098
## y    33.132665    0.9988886     1.352605     7.945336   11.8603833   11.8603833
##   `cap-color`w `cap-color`y
## c    -6.094318    -44.18032
## f   -39.224382    -37.47371
## l    10.264016     10.26402
## m   -47.609966    -41.84770
## n   -37.811094    -41.35342
## p     0.331792    -35.34682
## s   -38.815816    -38.20134
## y   -40.959612    -38.31784
## 
## Std. Errors:
##   (Intercept) `cap-shape`c `cap-shape`f `cap-shape`k `cap-shape`s `cap-shape`x
## c  0.10093973          NaN          NaN 1.527756e-14 3.965104e-14   0.10093973
## f  0.15231570          NaN    0.1082259 9.240591e-02          NaN   0.09236499
## l  0.25038891 1.890523e-16    0.2141278 4.064634e-16          NaN   0.16501633
## m  0.07742256 1.689410e-29    0.2592844 2.243377e-01 2.921645e-29   0.25523451
## n  0.25027254 1.270864e-31    0.2151782 1.620625e-01 8.796281e-14   0.18933099
## p  0.04590978 1.522513e-58    0.1046917 1.410267e-27 2.581172e-35   0.09446864
## s  0.05319713 2.773005e-71    0.1098439 8.234885e-02 8.185050e-36   0.09797559
## y  0.05319714 1.080395e-71    0.1098440 8.234887e-02 8.706705e-37   0.09797563
##   `cap-surface`g `cap-surface`s `cap-surface`y `cap-color`c `cap-color`e
## c            NaN   3.067788e-01   4.994285e-13 4.536063e-12          NaN
## f            NaN   2.486531e-01   2.299994e-01 8.282475e-15 1.245973e-01
## l   1.470349e-13   3.206359e-01   3.057061e-01          NaN 7.516078e-18
## m   1.471982e-30   4.722261e-19   7.742256e-02 1.757588e-01 1.885202e-01
## n   1.411587e-10   2.484154e-01   2.346384e-01 1.757588e-01 1.122322e-01
## p   2.351090e-27   9.991586e-02   9.845882e-02 1.086069e-28 5.394135e-16
## s   1.601879e-40   9.407053e-02   8.630405e-02 5.168857e-17 6.238847e-02
## y   4.840583e-42   9.407053e-02   8.630409e-02 3.783285e-17 6.238850e-02
##   `cap-color`g `cap-color`n `cap-color`p `cap-color`r `cap-color`u `cap-color`w
## c 9.231776e-02 2.503288e-13 1.450236e-01 2.418361e-14          NaN 1.412551e-01
## f 1.071045e-01 1.661970e-01 7.429841e-15 9.047253e-15 6.438791e-15 1.695109e-01
## l 3.301372e-19 1.870898e-01          NaN 5.872213e-17 5.091205e-17 1.336737e-01
## m 3.572804e-17 2.188067e-01 4.989252e-19 1.116888e-12 1.116504e-12 2.747600e-19
## n 9.483812e-02 1.508212e-01 1.450236e-01 1.071431e-09 1.071264e-09 1.372479e-01
## p 2.068291e-17 1.193007e-01 5.906677e-12 1.205642e-12 1.205194e-12 1.089649e-01
## s 3.351215e-15 7.956379e-02 1.444695e-14 5.895744e-10 5.894769e-10 4.447381e-17
## y 2.582281e-15 7.956381e-02 1.606253e-14 4.797347e-10 4.796643e-10 3.821213e-18
##   `cap-color`y
## c 4.331820e-15
## f 1.460330e-01
## l 1.181810e-01
## m 1.533338e-16
## n 2.305706e-01
## p 1.614590e-15
## s 4.234417e-17
## y 4.586734e-17
## 
## Residual Deviance: 16742.84 
## AIC: 17030.84

1. Model dimulai dengan nilai log-likelihood awal sekitar 17848.06, lalu mengalami penurunan bertahap hingga mencapai 8371.42, menandakan peningkatan kecocokan model terhadap data

2. Setelah 90 iterasi, model berhasil konvergen, artinya proses optimasi parameter selesai karena perubahan log-likelihood sudah sangat kecil.

3. Ini menunjukkan bahwa model mampu menemukan parameter terbaik dengan baik berdasarkan data input.

Berdasarkan hasil output model regresi logistik multinomial, model berhasil melakukan konvergensi dengan residual deviance sebesar 16.742,84 dan AIC sebesar 17.030,84, yang menunjukkan bahwa model dapat menyesuaikan data dengan cukup baik meskipun nilai deviance yang relatif tinggi menandakan bahwa masih terdapat kesalahan prediksi yang signifikan. Koefisien yang ekstrem pada beberapa kategori variabel, seperti cap-shape tipe k dan f, serta cap-color tipe p, c, dan w, menunjukkan bahwa fitur-fitur tersebut memiliki pengaruh yang sangat besar terhadap perubahan probabilitas klasifikasi variabel target odor, meskipun hal ini juga dapat menandakan potensi overfitting atau adanya multikolinearitas antar fitur. Beberapa nilai standard error yang mendekati nol bahkan NaN juga memperkuat kemungkinan adanya perfect separation atau redundansi dalam fitur, yang bisa mempengaruhi kestabilan prediksi dan interpretasi model. Pola distribusi koefisien juga menunjukkan bahwa beberapa kelas seperti odor = n dan odor = l memiliki karakteristik yang sangat berbeda dibandingkan kelas lainnya, yang mungkin merefleksikan keunikan atau ketidakseimbangan jumlah data pada masing-masing kelas. Proses iterasi model tampak berjalan stabil dengan penurunan nilai deviance yang konsisten, yang merupakan indikasi bahwa algoritma optimasi bekerja dengan baik. Namun, untuk meningkatkan performa dan generalisasi model, disarankan dilakukan regularisasi atau reduksi kompleksitas fitur melalui teknik feature engineering, mengingat model sangat sensitif terhadap banyaknya kategori dari fitur bertipe nominal yang telah diubah menjadi bentuk one-hot encoding. Dengan demikian, meskipun model mampu mengenali pola-pola penting dalam data, tetap diperlukan evaluasi lanjutan untuk mengurangi potensi kesalahan dan meningkatkan akurasi prediksi secara menyeluruh.

library(nnet)
z <- summary(model)$coefficients / summary(model)$standard.errors
## Warning in sqrt(diag(vc)): NaNs produced
## Warning in sqrt(diag(vc)): NaNs produced
p <- (1 - pnorm(abs(z), 0, 1)) * 2
p
##   (Intercept) `cap-shape`c `cap-shape`f `cap-shape`k `cap-shape`s `cap-shape`x
## c           0          NaN          NaN            0            0   0.00000000
## f           0          NaN 0.000000e+00            0          NaN   0.00000000
## l           0            0 9.999916e-01            0          NaN   0.99997902
## m           0            0 0.000000e+00            0            0   0.00000000
## n           0            0 3.194786e-09            0            0   0.05249349
## p           0            0 0.000000e+00            0            0   0.00000000
## s           0            0 0.000000e+00            0            0   0.00000000
## y           0            0 0.000000e+00            0            0   0.00000000
##   `cap-surface`g `cap-surface`s `cap-surface`y `cap-color`c `cap-color`e
## c            NaN   1.335201e-10      0.0000000            0          NaN
## f            NaN   5.973165e-08      0.0000000            0            0
## l              0   9.999634e-01      0.9999524          NaN            0
## m              0   0.000000e+00      0.0000000            0            0
## n              0   0.000000e+00      0.0000000            0            0
## p              0   0.000000e+00      0.0000000            0            0
## s              0   0.000000e+00      0.0000000            0            0
## y              0   0.000000e+00      0.0000000            0            0
##   `cap-color`g `cap-color`n `cap-color`p `cap-color`r `cap-color`u `cap-color`w
## c            0            0            0            0          NaN  0.000000000
## f            0            0            0            0            0  0.000000000
## l            0            0          NaN            0            0  0.000000000
## m            0            0            0            0            0  0.000000000
## n            0            0            0            0            0  0.000000000
## p            0            0            0            0            0  0.002327247
## s            0            0            0            0            0  0.000000000
## y            0            0            0            0            0  0.000000000
##   `cap-color`y
## c            0
## f            0
## l            0
## m            0
## n            0
## p            0
## s            0
## y            0

Berdasarkan hasil probabilitas prediksi model untuk variabel target odor, dapat dilihat bahwa model memberikan nilai probabilitas yang sangat tinggi (mendekati 1) pada fitur tertentu dan nol pada sebagian besar lainnya, seperti pada kelas odor = l terhadap kombinasi cap-shape = f, cap-surface = s, dan cap-color = y, yang menunjukkan adanya pola yang sangat kuat dan spesifik di antara fitur-fitur tersebut terhadap kelas target tertentu. Namun, fenomena ini juga menunjukkan kemungkinan terjadinya overfitting atau perfect separation, ditandai dengan banyaknya nilai NaN atau probabilitas 0 dan 1 ekstrem yang muncul, serta nilai koefisien dan standard error yang tidak terdefinisi pada model sebelumnya. Ketidakseimbangan distribusi probabilitas ini mengindikasikan bahwa model terlalu yakin terhadap beberapa prediksi dan tidak fleksibel terhadap variasi data lain, yang pada akhirnya dapat mengurangi kemampuan generalisasi model saat dihadapkan pada data baru.