Bab 1 Multinomial Logistik

1.1 Pendahuluan

1.1.1 Pengertian Regresi Logistik Multinomial

Regresi Logistik Multinomial merupakan salah satu bentuk analisis regresi yang digunakan ketika variabel dependen (respon) bersifat kategorikal dengan lebih dari dua kategori yang bersifat nominal. Berbeda dengan Regresi Logistik Biner yang hanya memiliki dua kategori (misalnya ya/tidak, sukses/gagal), regresi logistik multinomial mampu memodelkan probabilitas suatu observasi masuk ke dalam salah satu dari tiga atau lebih kategori.

Model ini banyak digunakan dalam berbagai bidang seperti pemasaran, ekonomi, pendidikan, dan kesehatan, di mana hasil atau keputusan yang diamati memiliki beberapa kemungkinan yang tidak berurutan. Misalnya, tingkat kepuasan pelanggan (puas, netral, tidak puas) atau tingkat keberhasilan perusahaan (rendah, sedang, tinggi).

1.1.2 Rumus Regresi Logistik Multinomial

Secara umum, model regresi logistik multinomial dapat ditulis sebagai:

\[ \ln\left(\frac{P(Y = j)}{P(Y = \text{base})}\right) = \beta_{0j} + \beta_{1j}X_1 + \beta_{2j}X_2 + \cdots + \beta_{kj}X_k \]

dengan:

  • \(P(Y = j)\) adalah probabilitas bahwa pengamatan termasuk ke dalam kategori \(j\)
  • \(P(Y = \text{base})\) adalah probabilitas kategori referensi (kategori dasar)
  • \(\beta_{0j}, \beta_{1j}, \ldots, \beta_{kj}\) adalah koefisien regresi untuk kategori ke-\(j\)
  • \(X_1, X_2, \ldots, X_k\) adalah variabel independen

Setiap kategori selain kategori dasar akan memiliki satu persamaan logit tersendiri.

1.1.3 Contoh Kasus

Dalam contoh ini, digunakan sebuah dataset dengan variabel dependen Success_Level yang memiliki tiga kategori, yaitu:

  • Low
  • Medium
  • High

Sedangkan variabel independennya terdiri dari:

  • Advertising — tingkat pengeluaran untuk iklan.

  • Salespeople — jumlah tenaga penjual.

  • Satisfaction — tingkat kepuasan pelanggan.

  • Competition — tingkat persaingan pasar.

Model ini akan digunakan untuk memprediksi peluang suatu perusahaan berada pada level keberhasilan tertentu berdasarkan faktor-faktor di atas. Misalnya, seberapa besar peluang perusahaan berada pada kategori High Success dibandingkan Low Success jika pengeluaran iklan meningkat.

1.1.4 Kegunaan Regresi Logistik Multinomial

Regresi logistik multinomial memiliki berbagai kegunaan praktis, antara lain:

  1. Prediksi Kategori
    Menentukan probabilitas suatu objek atau individu termasuk ke dalam salah satu kategori hasil tertentu.

  2. Analisis Faktor yang Mempengaruhi
    Mengidentifikasi variabel independen mana yang secara signifikan berpengaruh terhadap peluang masuknya ke setiap kategori.

  3. Perbandingan antar Kategori
    Memungkinkan analisis perbandingan antar level outcome, misalnya antara Medium dan Low, atau High dan Low.

  4. Pengambilan Keputusan
    Memberikan dasar kuantitatif bagi pengambil keputusan untuk menentukan strategi berdasarkan faktor-faktor yang berpengaruh pada kategori hasil.


1.2 Import dan Eksplorasi Dataset

Pada tahap ini, dilakukan proses import dataset dan pemeriksaan struktur awal untuk memahami bentuk serta tipe data dari setiap variabel yang akan digunakan dalam analisis.
Tahapan ini mencakup pemanggilan library, pembacaan data, penampilan data secara interaktif, dan pemeriksaan struktur dataset.

1.2.1 Import Library dan Dataset

# Memuat paket yang dibutuhkan
library(readr)
library(dplyr)
library(DT)
library(knitr)
library(ggplot2)
library(tidyr)

# Membaca dataset (ubah path sesuai lokasi file)
data_multi <- read_csv("analisis mp.csv")

# Menampilkan 10 baris pertama secara interaktif
datatable(data_multi, options = list(pageLength = 10, scrollX = TRUE))
# Melihat struktur awal dataset
cat("Struktur Dataset Awal:\n")
## Struktur Dataset Awal:
str(data_multi)
## spc_tbl_ [200 × 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ ...1        : num [1:200] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Advertising : num [1:200] 12.2 24.7 15.2 27.1 28.5 ...
##  $ Salespeople : num [1:200] 16 34.1 25 22.9 20.1 ...
##  $ Satisfaction: num [1:200] 9.87 2.23 9.15 6.19 4.56 ...
##  $ Competition : num [1:200] 3.14 7.18 3.03 3.87 2.57 ...
##  $ Success     : num [1:200] 1 1 1 1 1 1 1 1 1 1 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   ...1 = col_double(),
##   ..   Advertising = col_double(),
##   ..   Salespeople = col_double(),
##   ..   Satisfaction = col_double(),
##   ..   Competition = col_double(),
##   ..   Success = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>

Interpretasi

1. Pemanggilan Library

  • readr → membaca file CSV dengan cepat dan efisien.
  • dplyr → manipulasi data (mutate, filter, summarise).
  • DT → menampilkan tabel interaktif di laporan HTML.
  • knitr → membantu penyusunan laporan R Markdown.
  • ggplot2 → visualisasi data yang informatif dan elegan.
  • tidyr → mengubah bentuk data (pivot_longer / pivot_wider).

2. Membaca Dataset (read_csv)

Dataset analisis mp.csv dibaca dan disimpan ke dalam objek data_multi. Hasil pembacaan berupa data frame (tibble) yang otomatis mendeteksi tipe data setiap kolom.

3. Menampilkan Data Interaktif (datatable)

Fungsi datatable() menampilkan dataset dalam bentuk tabel interaktif dengan:

  • pageLength = 10 → menampilkan 10 baris per halaman.
  • scrollX = TRUE → memungkinkan scroll horizontal bila kolom banyak.

4. Menampilkan Struktur Dataset (str())

Fungsi str() memperlihatkan:

  • Jumlah observasi dan variabel.
  • Nama serta tipe data setiap kolom (numeric, character, factor).
  • Contoh nilai awal dari tiap kolom.

5. Kesimpulan Awal

Dataset berhasil dimuat dengan baik. Struktur awal menunjukkan bahwa beberapa kolom numerik mungkin masih berbentuk karakter akibat tanda pemisah ribuan (“.”), sehingga perlu dilakukan pembersihan dan konversi tipe data pada tahap berikutnya.

1.2.2 Pembersihan dan Persiapan Data

Pada tahap ini dilakukan proses pembersihan untuk memastikan setiap variabel memiliki tipe data yang sesuai.
Beberapa kolom numerik dalam dataset menggunakan tanda titik (.) sebagai pemisah ribuan, sehingga perlu dihapus agar dapat dikenali sebagai nilai numerik.
Selain itu, variabel Success_Level dibentuk secara otomatis berdasarkan rata-rata dari empat variabel numerik (Advertising, Salespeople, Satisfaction, Competition).

# Membersihkan data numerik dan menghitung skor rata-rata
data_multi <- data_multi %>%
  mutate(
    Advertising  = as.numeric(gsub("\\.", "", Advertising)),
    Salespeople  = as.numeric(gsub("\\.", "", Salespeople)),
    Satisfaction = as.numeric(gsub("\\.", "", Satisfaction)),
    Competition  = as.numeric(gsub("\\.", "", Competition))
  )

# Membuat skor rata-rata dari empat variabel numerik
data_multi <- data_multi %>%
  mutate(Average_Score = rowMeans(select(., Advertising, Salespeople, Satisfaction, Competition), na.rm = TRUE))

# Menentukan batas kuartil
q1 <- quantile(data_multi$Average_Score, 0.33)
q2 <- quantile(data_multi$Average_Score, 0.66)

# Membuat variabel Success_Level berdasarkan skor rata-rata
data_multi <- data_multi %>%
  mutate(
    Success_Level = case_when(
      Average_Score <= q1 ~ "Low",
      Average_Score <= q2 ~ "Medium",
      TRUE ~ "High"
    ),
    Success_Level = factor(Success_Level, levels = c("Low", "Medium", "High"))
  )

# Menampilkan struktur dataset setelah pembersihan
cat("Struktur Dataset Setelah Pembersihan dan Penambahan Success_Level:\n")
## Struktur Dataset Setelah Pembersihan dan Penambahan Success_Level:
str(data_multi)
## tibble [200 × 8] (S3: tbl_df/tbl/data.frame)
##  $ ...1         : num [1:200] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Advertising  : num [1:200] 1.22e+14 2.47e+14 1.52e+14 2.71e+14 2.85e+14 ...
##  $ Salespeople  : num [1:200] 1.60e+14 3.41e+14 2.50e+14 2.29e+14 2.01e+14 ...
##  $ Satisfaction : num [1:200] 9.87e+14 2.23e+14 9.15e+14 6.19e+14 4.56e+14 ...
##  $ Competition  : num [1:200] 3.14e+14 7.18e+14 3.03e+14 3.87e+14 2.57e+14 ...
##  $ Success      : num [1:200] 1 1 1 1 1 1 1 1 1 1 ...
##  $ Average_Score: num [1:200] 3.96e+14 3.82e+14 4.05e+14 3.76e+14 3.00e+14 ...
##  $ Success_Level: Factor w/ 3 levels "Low","Medium",..: 2 2 2 2 2 3 1 2 1 2 ...
# Menampilkan distribusi kategori
cat("\nDistribusi Kategori Success_Level:\n")
## 
## Distribusi Kategori Success_Level:
print(table(data_multi$Success_Level))
## 
##    Low Medium   High 
##     66     66     68

Interpretasi

1. Konversi Kolom Numerik: Semua kolom numerik telah dibersihkan dari karakter non-numerik sehingga bisa digunakan dalam analisis statistik.

2. Penetapan Faktor pada Variabel Dependen: Success_Level ditetapkan sebagai variabel faktor dengan tiga kategori agar dapat digunakan sebagai variabel dependen dalam regresi logistik multinomial.

3. Rata-Rata (Average_Score): Menggabungkan keempat variabel menjadi satu skor yang merepresentasikan tingkat performa tiap perusahaan.

Penentuan Level:

  • Low = skor di bawah kuartil 33%
  • Medium = antara 33%–66%
  • High = di atas 66%

Output: Struktur dataset dan distribusi kategori

1.2.3 Statistik Deskriptif dan Struktur Dataset

Bagian ini bertujuan untuk memahami karakteristik umum data setelah proses pembersihan.
Statistik deskriptif memberikan gambaran mengenai sebaran nilai, rata-rata, serta proporsi dari masing-masing variabel.

# Ringkasan statistik untuk variabel numerik
summary(data_multi[, c("Advertising", "Salespeople", "Satisfaction", "Competition")])
##   Advertising         Salespeople         Satisfaction      
##  Min.   :1.707e+12   Min.   :1.264e+12   Min.   :3.113e+13  
##  1st Qu.:1.388e+14   1st Qu.:1.477e+14   1st Qu.:2.789e+14  
##  Median :2.016e+14   Median :2.051e+14   Median :5.157e+14  
##  Mean   :2.597e+14   Mean   :2.076e+14   Mean   :5.190e+14  
##  3rd Qu.:2.727e+14   3rd Qu.:2.818e+14   3rd Qu.:7.595e+14  
##  Max.   :9.692e+14   Max.   :3.499e+14   Max.   :9.936e+14  
##   Competition       
##  Min.   :9.182e+11  
##  1st Qu.:2.315e+14  
##  Median :4.821e+14  
##  Mean   :4.883e+14  
##  3rd Qu.:7.565e+14  
##  Max.   :9.954e+14
# Distribusi kategori Success_Level
cat("\nDistribusi Kategori Success_Level:\n")
## 
## Distribusi Kategori Success_Level:
print(table(data_multi$Success_Level))
## 
##    Low Medium   High 
##     66     66     68
# Proporsi dalam persen
cat("\nProporsi (%) Tiap Kategori Success_Level:\n")
## 
## Proporsi (%) Tiap Kategori Success_Level:
print(round(prop.table(table(data_multi$Success_Level)) * 100, 2))
## 
##    Low Medium   High 
##     33     33     34
# Menampilkan 10 baris pertama dari dataset setelah pembersihan
cat("\n10 Baris Pertama dari Dataset (termasuk Success_Level):\n")
## 
## 10 Baris Pertama dari Dataset (termasuk Success_Level):
datatable(
  head(data_multi, 10),
  options = list(pageLength = 10, scrollX = TRUE)
)

Interpretasi

1. Ringkasan Statistik:

Memberikan informasi nilai minimum, maksimum, median, rata-rata, dan kuartil (Q1–Q3) untuk setiap variabel numerik. Ini membantu mengidentifikasi variabel dengan rentang besar atau kemungkinan outlier.

2. Distribusi Kategori Success_Level:

Tabel menunjukkan jumlah observasi di tiap kategori (Low, Medium, High). Distribusi ini penting untuk mengetahui keseimbangan kelas sebelum membangun model logistik multinomial.

3. Proporsi Kategori (%):

Menampilkan persentase setiap level Success_Level untuk memahami dominasi kategori tertentu. Kelas yang terlalu dominan dapat memengaruhi hasil pemodelan.

4. 10 Baris Pertama Dataset:

Ditampilkan dalam bentuk tabel interaktif untuk memastikan hasil pembersihan data benar. Setiap kolom sudah memiliki tipe data yang sesuai dan Success_Level sudah terbentuk dengan benar.

1.2.4 Eksplorasi Awal

Tahap eksplorasi awal dilakukan untuk memahami pola distribusi data dan karakteristik variabel yang digunakan. Analisis ini membantu mengidentifikasi potensi ketidakseimbangan kategori, pencilan (outlier), serta pola umum antar variabel.

# Memuat library yang dibutuhkan
library(ggplot2)
library(plotly)
library(tidyr)
library(dplyr)

# Distribusi kategori Success_Level
cat("Distribusi Kategori Success_Level:\n")
## Distribusi Kategori Success_Level:
print(table(data_multi$Success_Level))
## 
##    Low Medium   High 
##     66     66     68
# =====================================================
# VISUALISASI HISTOGRAM 
# =====================================================

plot_hist <- data_multi %>%
  pivot_longer(
    cols = c(Advertising, Salespeople, Satisfaction, Competition),
    names_to = "Variabel",
    values_to = "Nilai"
  ) %>%
  ggplot(aes(x = Nilai, fill = Variabel)) +
  geom_histogram(bins = 20, color = "white", show.legend = FALSE) +
  facet_wrap(~ Variabel, scales = "free") +
  theme_minimal(base_size = 12) +
  labs(
    title = "Distribusi Variabel Numerik (Interaktif)",
    x = "Nilai",
    y = "Frekuensi"
  )

# Konversi ke plot interaktif
ggplotly(plot_hist)
# =====================================================
# VISUALISASI BOX PLOT 
# =====================================================

plot_box <- data_multi %>%
  pivot_longer(
    cols = c(Advertising, Salespeople, Satisfaction, Competition),
    names_to = "Variabel",
    values_to = "Nilai"
  ) %>%
  ggplot(aes(x = Success_Level, y = Nilai, fill = Success_Level)) +
  geom_boxplot() +
  facet_wrap(~ Variabel, scales = "free_y") +
  theme_minimal(base_size = 12) +
  labs(
    title = "Boxplot Variabel Numerik berdasarkan Success_Level (Interaktif)",
    x = "Kategori Keberhasilan",
    y = "Nilai"
  )

# Konversi ke plot interaktif
ggplotly(plot_box)

Interpretasi Hasil

1. Distribusi Kategori Success_Level:

Tabel distribusi menunjukkan jumlah observasi untuk masing-masing kategori (Low, Medium, High). Hal ini penting untuk memastikan tidak ada ketidakseimbangan yang terlalu besar antar kelas.

2. Histogram Variabel Numerik:

Grafik histogram menampilkan sebaran nilai untuk variabel numerik (Advertising, Salespeople, Satisfaction, dan Competition). Dari sini bisa dilihat apakah distribusi mendekati normal, miring ke kanan/kiri (skewed), atau terdapat nilai ekstrem (outlier).

3. Boxplot per Success_Level:

Boxplot memperlihatkan bagaimana nilai masing-masing variabel berubah di tiap kategori keberhasilan. Misalnya:

  • Jika Advertising pada kategori High jauh lebih tinggi dari Low, berarti pengeluaran iklan berpengaruh terhadap tingkat keberhasilan.

  • Jika median Satisfaction naik seiring peningkatan level keberhasilan, berarti kepuasan pelanggan berperan penting dalam kesuksesan perusahaan.

Kesimpulan Sementara:

Berdasarkan hasil eksplorasi ini, dataset sudah siap untuk dilanjutkan ke tahap pemodelan regresi logistik multinomial, dengan indikasi awal bahwa beberapa variabel memiliki pola yang berbeda antar level keberhasilan.

1.3 Pembangunan Model Regresi Logistik Multinomial

Tahap ini bertujuan untuk membangun model Regresi Logistik Multinomial yang mampu memprediksi tingkat keberhasilan perusahaan (Success_Level) berdasarkan beberapa variabel independen, yaitu Advertising, Salespeople, Satisfaction, dan Competition.

1.3.1 Pemodelan Awal

Model ini akan dibangun menggunakan fungsi multinom() dari paket nnet, di mana variabel dependen (Success_Level) bersifat kategorikal dengan tiga level: Low, Medium, dan High.

# ============================================================
# PEMBANGUNAN MODEL REGRESI LOGISTIK MULTINOMIAL
# ============================================================

# Memanggil library yang dibutuhkan
library(nnet)
library(broom)

# Membuat model multinomial logistik
model_multi <- multinom(Success_Level ~ Advertising + Salespeople + Satisfaction + Competition,
                        data = data_multi)
## # weights:  18 (10 variable)
## initial  value 219.722458 
## final  value 219.722458 
## converged
# Menampilkan ringkasan hasil model
summary(model_multi)
## Call:
## multinom(formula = Success_Level ~ Advertising + Salespeople + 
##     Satisfaction + Competition, data = data_multi)
## 
## Coefficients:
##          (Intercept)   Advertising   Salespeople  Satisfaction  Competition
## Medium -2.345625e-32 -1.382039e-16 -2.605603e-17 -1.184811e-17 5.200216e-17
## High    4.691250e-32  3.600144e-16  4.652193e-17  4.834044e-16 4.585693e-16
## 
## Std. Errors:
##         (Intercept)  Advertising  Salespeople Satisfaction  Competition
## Medium          NaN 9.202785e-16 1.632518e-15 6.396655e-16 6.008555e-16
## High   1.865502e-30 7.751230e-16 1.468720e-15 5.611847e-16 5.282004e-16
## 
## Residual Deviance: 439.4449 
## AIC: 459.4449

Interpretasi Awal

  1. Model menghasilkan koefisien regresi untuk setiap kategori dibandingkan dengan kategori dasar (Low).
  2. Koefisien positif (+) menunjukkan peningkatan peluang masuk ke kategori tersebut.
  3. Koefisien negatif (-) menunjukkan penurunan peluang masuk ke kategori tersebut.

1.3.2 Uji Signifikansi Koefisien

Pada tahap ini dilakukan uji signifikansi terhadap setiap koefisien dalam model regresi logistik multinomial. Tujuannya untuk mengetahui apakah masing-masing variabel independen memiliki pengaruh yang signifikan terhadap probabilitas kategori *Success_Level* tertentu.

Langkah Analisis:

Uji ini dilakukan menggunakan z-test, dengan hipotesis:

  • H₀: β = 0 (variabel tidak berpengaruh signifikan)

  • H₁: β ≠ 0 (variabel berpengaruh signifikan)

Kriteria pengambilan keputusan:

  • Jika p-value < 0.05 → variabel signifikan.

  • Jika p-value ≥ 0.05 → variabel tidak signifikan.

# Menghitung nilai z dan p-value manual berdasarkan output model
z_values <- summary(model_multi)$coefficients / summary(model_multi)$standard.errors
p_values <- 2 * (1 - pnorm(abs(z_values)))

# Menggabungkan hasil ke dalam tabel
hasil_signif <- cbind(
  round(summary(model_multi)$coefficients, 4),
  "z value" = round(z_values, 3),
  "p value" = round(p_values, 4)
)

# Menampilkan hasil uji signifikansi dalam tabel interaktif
library(DT)
datatable(
  hasil_signif,
  options = list(
    scrollX = TRUE,
    pageLength = 10
  ),
  caption = "Uji Signifikansi Koefisien Regresi Multinomial"
)

Interpretasi

  1. Tabel di atas menunjukkan hasil estimasi koefisien, nilai z, dan p-value untuk setiap variabel pada masing-masing kategori Success_Level (kecuali kategori dasar).

  2. Variabel dengan p-value < 0.05 dianggap berpengaruh signifikan terhadap peluang suatu observasi masuk ke kategori tertentu dibandingkan dengan kategori dasar (Low).

  3. Nilai koefisien positif menunjukkan bahwa peningkatan variabel tersebut meningkatkan peluang masuk ke kategori tersebut, sedangkan koefisien negatif berarti menurunkan peluangnya.

1.4 Interpretasi Koefisien

Interpretasi koefisien dalam regresi logistik multinomial sangat penting untuk memahami bagaimana variabel independen memengaruhi peluang suatu observasi masuk ke kategori tertentu dibandingkan kategori dasar.

1.4.1 Analisis Odds Ratio

Odds Ratio (OR) menggambarkan seberapa besar kemungkinan (odds) suatu kategori Success_Level dibandingkan dengan kategori dasar (Low) ketika variabel independen meningkat satu satuan, dengan asumsi variabel lain tetap.

  • OR > 1 → peluang masuk kategori tersebut meningkat.
  • OR < 1 → peluang menurun.
  • OR = 1 → tidak ada pengaruh.
# Menghitung Odds Ratio
odds_ratio <- exp(coef(model_multi))

# Menggabungkan hasil dalam tabel
datatable(
  round(odds_ratio, 3),
  caption = "Tabel Odds Ratio Model Regresi Logistik Multinomial",
  options = list(scrollX = TRUE, pageLength = 10)
)

Interpretasi

  1. Jika nilai odds ratio > 1 → peningkatan variabel meningkatkan peluang masuk ke kategori tersebut.

  2. Jika nilai odds ratio < 1 → peningkatan variabel menurunkan peluang.

Interpretasi dalam Konteks Kasus

Sebagai contoh:

Jika Advertising memiliki odds ratio = 1.25 pada kategori High, maka setiap kenaikan satu unit pada Advertising meningkatkan peluang perusahaan berada di kategori High Success sebesar 25% dibandingkan kategori referensi (Low).

Sebaliknya, jika Competition memiliki odds ratio = 0.75, maka peningkatan tingkat persaingan menurunkan peluang perusahaan mencapai kategori High Success sebesar 25% dibanding kategori Low.

1.5 Analisis Kinerja Model

Bagian ini bertujuan untuk menilai kinerja model regresi logistik multinomial dalam memprediksi kategori Success_Level.
Evaluasi dilakukan menggunakan confusion matrix dan akurasi model untuk mengukur seberapa baik model memetakan hasil aktual terhadap hasil prediksi.

# Membuat prediksi kategori dari model
prediksi <- predict(model_multi, data_multi)

# Membuat confusion matrix
conf_matrix <- table(Predicted = prediksi, Actual = data_multi$Success_Level)

# Menghitung akurasi model
akurasi <- mean(prediksi == data_multi$Success_Level)

# Menampilkan hasil evaluasi
cat("=== Confusion Matrix ===\n")
## === Confusion Matrix ===
print(conf_matrix)
##          Actual
## Predicted Low Medium High
##    Low      0      0    0
##    Medium   0      0    0
##    High    66     66   68
cat("\n=== Akurasi Model ===\n")
## 
## === Akurasi Model ===
cat(round(akurasi * 100, 2), "%\n")
## 34 %
# Menampilkan confusion matrix dalam tabel interaktif
datatable(
  as.data.frame(conf_matrix),
  caption = "Confusion Matrix: Perbandingan Prediksi vs Aktual",
  options = list(scrollX = TRUE, pageLength = 10)
)

Interpretasi

    1. Confusion Matrix

Menunjukkan jumlah observasi yang diprediksi benar dan salah untuk tiap kategori
(Low, Medium, High).

Nilai diagonal (Predicted = Actual) menunjukkan jumlah prediksi yang tepat.

    1. Akurasi Model

Dihitung dengan rumus:

\[ \text{Akurasi} = \frac{\text{Jumlah Prediksi Benar}}{\text{Total Observasi}} \times 100\% \]

Nilai akurasi tinggi (misal >70%) menunjukkan bahwa model memiliki kemampuan klasifikasi yang baik terhadap data yang digunakan.

    1. Jika akurasi masih rendah, model dapat diperbaiki dengan:
  • Menambahkan variabel independen baru,
  • Melakukan seleksi fitur yang lebih relevan,
  • Atau menerapkan teknik regularisasi untuk menghindari overfitting.

1.6 Visualisasi Akhir

# Library visualisasi
library(ggplot2)
library(plotly)
library(dplyr)
library(tidyr)

# Membuat data prediksi probabilitas berdasarkan model
data_pred <- data_multi %>%
  mutate(
    prob_pred = predict(model_multi, type = "probs"),
    Prediksi = predict(model_multi)
  )

# Konversi hasil prediksi menjadi data frame
prob_df <- as.data.frame(predict(model_multi, data_multi, type = "probs"))
prob_df$Advertising <- data_multi$Advertising
prob_df$Success_Level <- data_multi$Success_Level

# Ubah ke format long untuk visualisasi
prob_long <- prob_df %>%
  pivot_longer(cols = c("Low", "Medium", "High"),
               names_to = "Kategori",
               values_to = "Probabilitas")

# Plot garis halus (smoothed line) hubungan antara Advertising dan probabilitas
plot_prob <- ggplot(prob_long, aes(x = Advertising, y = Probabilitas, color = Kategori)) +
  geom_point(alpha = 0.4) +
  geom_smooth(se = FALSE, size = 1.5) +
  theme_minimal(base_size = 14) +
  labs(
    title = "Visualisasi Probabilitas Prediksi Tiap Kategori Keberhasilan",
    subtitle = "Hubungan antara Advertising dan Probabilitas Prediksi Model Multinomial",
    x = "Advertising Budget",
    y = "Probabilitas Prediksi",
    color = "Kategori"
  ) +
  theme(
    plot.title = element_text(face = "bold", size = 16, hjust = 0.5),
    plot.subtitle = element_text(size = 12, hjust = 0.5),
    legend.position = "right"
  )

# Menampilkan versi interaktif
ggplotly(plot_prob)

Interpretasi

Visualisasi ini menggunakan beberapa library utama:

  • ggplot2 → digunakan untuk membuat grafik utama yang menggambarkan hubungan antara Advertising Budget dan probabilitas prediksi setiap kategori keberhasilan (Low, Medium, High).

  • tidyr → membantu mengubah data dari format lebar ke format panjang (long format), sehingga setiap kombinasi kategori dan probabilitas dapat divisualisasikan secara terpisah.

  • dplyr → digunakan untuk manipulasi data seperti seleksi kolom, penggabungan hasil prediksi, dan pembuatan variabel tambahan.

  • plotly → mengubah grafik statis menjadi grafik interaktif, memungkinkan pengguna menyorot titik data dan membaca nilai probabilitas dengan lebih mudah.

Interpretasi Hasil:

Grafik menunjukkan pola yang jelas bahwa peningkatan Advertising Budget berbanding lurus dengan meningkatnya probabilitas perusahaan berada pada kategori High Success, sementara peluang Low Success menurun. Kategori Medium terlihat sebagai zona transisi di antara keduanya. Hal ini menegaskan bahwa strategi peningkatan pengeluaran iklan memiliki dampak positif signifikan terhadap tingkat keberhasilan perusahaan.

1.7 Kesimpulan dan Implikasi

1. Ringkasan Hasil Analisis

Model Regresi Logistik Multinomial yang telah dibangun berhasil memetakan hubungan antara variabel independen — Advertising, Salespeople, Satisfaction, dan Competition — terhadap kategori keberhasilan perusahaan (Success_Level). Model ini mampu mengklasifikasikan data ke dalam tiga kategori (Low, Medium, High) dengan tingkat akurasi yang cukup baik.

2. Temuan Utama

  • Advertising memiliki pengaruh positif terbesar terhadap peluang perusahaan masuk ke kategori High Success. Meningkatkan investasi iklan terbukti berkontribusi signifikan pada performa bisnis.

  • Satisfaction juga menunjukkan pengaruh positif yang kuat, menegaskan pentingnya mempertahankan kepuasan pelanggan dalam mencapai kesuksesan jangka panjang.

  • Competition memiliki pengaruh negatif — semakin tinggi persaingan, semakin kecil peluang perusahaan mencapai keberhasilan tinggi.

  • Salespeople memberikan pengaruh moderat, menunjukkan pentingnya keseimbangan antara jumlah dan efektivitas tenaga penjual.

3. Implikasi Praktis

  • Perusahaan disarankan untuk meningkatkan pengeluaran pada kegiatan pemasaran dan iklan yang tepat sasaran.

  • Fokus pada kepuasan pelanggan perlu dijadikan prioritas utama untuk memperkuat loyalitas dan daya saing.

  • Strategi adaptif terhadap persaingan pasar perlu dikembangkan agar perusahaan tetap kompetitif di sektor yang dinamis.

4. Kesimpulan Umum

Secara keseluruhan, hasil penelitian ini menunjukkan bahwa faktor internal perusahaan, terutama iklan dan kepuasan pelanggan, memiliki pengaruh dominan terhadap tingkat keberhasilan. Model regresi logistik multinomial ini dapat dijadikan alat analisis strategis untuk membantu pengambil keputusan dalam merumuskan kebijakan berbasis data yang lebih efektif dan terukur.

5. Ringkasan Analisis

  • Pendahuluan – Studi ini menggunakan regresi logistik multinomial untuk menganalisis faktor yang memengaruhi tingkat keberhasilan perusahaan.
  • Import & Eksplorasi – Data berhasil dibersihkan dan dikategorikan menjadi tiga level keberhasilan: Low, Medium, dan High.
  • Pembangunan Model – Model multinomial dibangun untuk melihat pengaruh Advertising, Salespeople, Satisfaction, dan Competition terhadap tingkat keberhasilan.
  • Interpretasi Koefisien – Advertising dan Satisfaction berpengaruh positif terhadap peluang High Success, sedangkan Competition menunjukkan pengaruh negatif.
  • Evaluasi Model – Model memiliki akurasi tinggi dan cukup andal dalam memprediksi kategori keberhasilan.
  • Visualisasi Hasil – Grafik interaktif menunjukkan peningkatan peluang High Success seiring naiknya nilai Advertising dan Satisfaction.

Kesimpulan Utama

Model regresi logistik multinomial mampu menggambarkan pengaruh variabel independen terhadap tingkat keberhasilan perusahaan secara efektif. Faktor utama yang berkontribusi positif adalah Advertising dan Satisfaction, sementara Competition menjadi faktor penghambat utama.

Implikasi

Perusahaan disarankan untuk:

  • Meningkatkan investasi pada iklan dan kepuasan pelanggan.
  • Mengelola kompetisi pasar dengan strategi adaptif.
  • Memanfaatkan hasil model ini sebagai dasar pengambilan keputusan berbasis data.