PENERAPAN REGRESI LOGISTIK BINER UNTUK MEMPREDIKSI DAN MENGKLASIFIKASI KEPUASAN PENUMPANG MASKAPAI PENERBANGAN

Rahmad Kholid

2023-06-02

1 PENDAHULUAN

1.1 Latar Belakang Kasus

Dataset dari sebuah organisasi maskapai penerbangan (nama perusahaan maskapai penerbangan disembunyikan dikarenakan beberapa alasan) terdiri dari detail pelanggan yang telah terbang bersama maskapai tersebut. Umpan balik pelanggan tentang berbagai konteks dan data penerbangan pelanggan telah dikonsolidasikan.

Tujuan utama dari dataset ini adalah untuk memprediksi apakah pelanggan di masa depan akan puas dengan layanan mereka. Selain itu, maskapai penerbangan juga perlu mengetahui aspek mana dari layanan yang ditawarkan oleh mereka yang harus lebih ditekankan untuk menghasilkan pelanggan yang lebih puas.

Analisis regresi logistik biner merupakan metode statistik yang digunakan untuk memprediksi variabel respons biner (dalam kasus ini “puas” atau “tidak puas”) berdasarkan variabel prediktor yang bersifat kategorik maupun numerik. Oleh karena itu, digunakan analisis regresi logistik biner untuk memprediksi dan mengklasifikasikan kepuasan penumpang maskapai penerbangan.

1.2 Data

Data yang digunakan terdiri dari 1000 baris (observasi) dengan 7 variabel di dalamnya. Variabel-variabel tersebut adalah :

Satu variabel respons :

  • satisfaction : kepuasan penumpang pesawat terhadap pelayanan maskapai penerbangan (“satisfied” atau “dissatisfied”), bersifat kategorik dengan skala data nominal (biner).

Enam variabel prediktor :

  • Gender : Jenis kelamin penumpang (“Male” atau “Female”), bersifat kategorik dengan skala data nominal (biner).

  • Type.of.Travel : Tipe perjalanan penumpang (“Business travel” atau “Personal Travel”), bersifat kategorik dengan skala data nominal (biner).

  • Age : Usia penumpang pesawat (dalam tahun), bersifat numerik dengan skala data interval.

  • Class : Kelas penerbangan penumpangan (“Eco”, “Eco Plus”, atau “Business”), bersifat kategorik dengan skala data ordinal.

  • Flight.Distance : Jarak penerbangan (dalam km), bersifat numerik dengan skala data interval.

  • Departure.Delay.in.Minutes : waktu delay keberangkatan penerbangan (dalam menit), bersifat numerik dengan skala data interval.

Berikut adalah 30 baris pertama dari data yang digunakan :

Gender Type.of.Travel Age Class Flight.Distance Departure.Delay.in.Minutes satisfaction
1 Female Business travel 49 Eco 355 0 satisfied
2 Female Business travel 31 Business 1648 3 satisfied
3 Female Business travel 32 Business 2006 0 dissatisfied
4 Female Business travel 80 Business 3412 13 satisfied
5 Female Business travel 50 Business 1530 0 satisfied
6 Male Business travel 11 Eco 1597 14 dissatisfied
7 Male Business travel 51 Business 265 0 satisfied
8 Male Personal Travel 39 Eco 1263 0 dissatisfied
9 Female Business travel 24 Eco 1756 0 satisfied
10 Male Personal Travel 36 Eco 1904 0 dissatisfied
11 Female Business travel 10 Eco 2132 0 dissatisfied
12 Female Business travel 59 Business 2405 0 satisfied
13 Male Personal Travel 25 Eco 2025 0 dissatisfied
14 Female Personal Travel 42 Eco 595 32 satisfied
15 Female Business travel 23 Business 3323 53 dissatisfied
16 Female Business travel 30 Business 2458 15 dissatisfied
17 Female Business travel 20 Business 1919 79 dissatisfied
18 Female Personal Travel 59 Eco 240 1 dissatisfied
19 Female Business travel 55 Business 1407 0 dissatisfied
20 Male Personal Travel 35 Eco 2045 0 dissatisfied
21 Male Personal Travel 42 Eco Plus 1151 115 dissatisfied
22 Female Personal Travel 34 Eco 2360 0 dissatisfied
23 Male Business travel 21 Eco 2384 0 dissatisfied
24 Male Business travel 48 Eco 2073 0 satisfied
25 Female Business travel 43 Eco 470 34 dissatisfied
26 Male Business travel 24 Eco 1407 0 dissatisfied
27 Female Business travel 52 Business 572 18 satisfied
28 Female Business travel 45 Business 1743 0 satisfied
29 Female Business travel 25 Business 3003 14 satisfied
30 Male Business travel 26 Business 2433 64 dissatisfied

2 TINJAUAN PUSTAKA

2.1 Analisis Regresi Logistik Biner

Regresi logistik adalah bagian dari analisis regresi yang digunakan untuk menganalisis variabel dependen yang bersifat kategori dan variabel independen yang bersifat kategori, kontinu, atau gabungan dari keduanya. Model regresi logistik biner digunakan untuk menganalisa hubungan antara satu variabel respon (variabel tak bebas) dan beberapa variabel bebas, dengan variabel responnya berupa data kualitatif dikotomi. Nilai 1 digunakan untuk menyatakan keberadaan sebuah karakteristik, sementara nilai 0 digunakan untuk menyatakan ketidakberadaan sebuah karakteristik (S. Ghozi, 2018).

Model regresi logistik tersebut adalah :

Persamaan (1) memiliki bentuk yang tidak linier, untuk itu agar menjadi linier maka digunakan transformasi log atau biasa disebut transfmormasi logit. Sehingga logit dari \(\pi_{(x_i)}\) adalah :

Untuk mengetahui pengaruh variabel bebas, maka dilakukan uji signifikansi parameter baik secara keseluruhan maupun secara individu. Statistik uji yang digunakan dalam uji keseluruhan adalah uji G atau likelihood ratio test. Sedangkan statistik uji yang digunakan dalam uji parsial adalah statistik uji Wald (Hosmer & Lemeshow, 2000).

2.1.1 Uji Signifikansi Secara Keseluruhan

Uji yang pertama kali dilakukan adalah pengujian peranan parameter di dalam model secara keseluruhan yaitu dengan hipotesis sebagai berikut :

Statistik uji digunakan :

Nilai \(G\) tersebut mengikuti distribusi Chi-square dengan df = \(p\). Jika menggunakan taraf nyata sebesar \(\alpha\), maka kriteria ujinya adalah tolak \(H_0\) jika \(G\geqslant\chi^{2}_{p(\alpha)}\) atau p-value\(\alpha\) , dan terima \(H_0\) dalam hal lain.

2.1.2 Uji Parsial Parameter Model

Pengujian parameter secara parsial (individu) menggunakan uji Wald, hasil pengujian secara parsial yang dapat menunjukkan apakah suatu variabel independen (prediktor) layak untuk masuk ke dalam model atau tidak. Hipotesis yang akan diuji adalah :

Menurut Hosmer dan Lemeshow, statistik uji Wald didefenisikan sebagai berikut :

Dengan \(\hat{\beta_i}\) sebagai penaksir \(\beta_i\) dan \(se(\hat{\beta_i})\) sebagai penaksir galat baku \(\beta_i\). Statistik \(W\)menyebar secara normal baku jika \(H_0\) benar. Keputusan tolak \(H_0\) diambil ketika\(\left | W \right |> Z_{\alpha/2}\).

2.1.3 Uji Kelayakan Model

Uji kecocokan model digunakan untuk mengevaluasi kecocokan model dengan data, nilai observasi yang diperoleh sama atau mendekati dengan yang diharapkan dalam model (Alwi. W, 2018). Adapun model yang digunakan harus memenuhi Goodness of Fit (GoF). Suatu model dikategorikan memenuhi GoF jika terdapat kesesuaian antara data yang dimasukkan dalam model dengan data yang diamati. Dalam regresi logistik, metode yang digunakan untuk menguji kelayakan model dapat diukur dengan nilai chi-square dengan uji Homser and Lemeshow. Pengujian ini dapat dilakukan dengan melihat nilai goodness of fit test yang diukur dengan nilai chi-square pada tingkat signifikan 5%. Keputusan penerimaan hipotesis didasarkan pada pertimbangan sebagai berikut :

\(H_0:\) model yang dihipotesiskan fit dengan data

\(H_1:\) model yang dihipotesiskan tidak fit dengan data

3 SOURCE CODE

3.1 Library yang Dibutuhkan

> library(pscl) #Untuk perhitungan R-Squared dan statistik uji G
> library(generalhoslem) #Untuk uji kelayakan model
> library(car) #Untuk uji asumsi non-multikolinieritas
> library(ggplot2) #Untuk membuat plot kelayakan model
> library(cowplot) #Alat bantu plot

3.2 Menyiapkan Data

Pemanggilan data Airlines.csv menggunakan function read.csv() yang berisikan lokasi file data Airlines.csv disimpan. Kemudian, hasil pemanggilan data tersebut disimpan dalam data frame input. Untuk melihat struktur data frame input, digunakan function str(input).

> #Input data
> input <- read.csv("D:/OneDrive/Documents/R/PRAK_KOMSTAT/Airline.csv")
> str(input)
'data.frame':   1000 obs. of  7 variables:
 $ Gender                    : chr  "Female" "Female" "Female" "Female" ...
 $ Type.of.Travel            : chr  "Business travel" "Business travel" "Business travel" "Business travel" ...
 $ Age                       : int  49 31 32 80 50 11 51 39 24 36 ...
 $ Class                     : chr  "Eco" "Business" "Business" "Business" ...
 $ Flight.Distance           : int  355 1648 2006 3412 1530 1597 265 1263 1756 1904 ...
 $ Departure.Delay.in.Minutes: int  0 3 0 13 0 14 0 0 0 0 ...
 $ satisfaction              : chr  "satisfied" "satisfied" "dissatisfied" "satisfied" ...

Setelah melihat struktur dari data frame input, diketahui terdapat 1000 observasi dengan 7 variabel di dalamnya. Selain itu, penting untuk mengetahui bahwa beberapa variabel terdefinisi dengan tipe data yang salah. Variabel kategorik, seperti Gender, Type.of.Travel, Class, dan satisfaction, seharusnya didefinisikan sebagai faktor. Untuk itu, variabel-variabel tersebut akan didefinisikan ulang dalam tipe data faktor menggunakan function as.factor(). Kemudian, setelah semua variabel didefinisikan dengan benar, maka dapat dibentuk sebuah data frame bernama data menggunakan function data.frame(). Seterusnya di dalam penjelasan, nama-nama vektor, objek, atau data frame dilambangkan dengan tulisan bercetak tebal miring, contoh data.

> kepuasan <- as.factor(input$satisfaction)
> jenis_kelamin <- as.factor(input$Gender)
> tipe_perjalanan <- as.factor(input$Type.of.Travel)
> usia <- input$Age
> kelas <- as.factor(input$Class)
> jarak <- input$Flight.Distance
> waktu_delay <- input$Departure.Delay.in.Minutes
> data <- data.frame(jenis_kelamin,tipe_perjalanan,
+                   usia,kelas,jarak,waktu_delay,
+                   kepuasan)

Untuk memastikan kembali bahwa semua variabel telah didefinisikan dengan benar, maka dapat dilihat struktur data menggunakan function str(data).

> str(data)
'data.frame':   1000 obs. of  7 variables:
 $ jenis_kelamin  : Factor w/ 2 levels "Female","Male": 1 1 1 1 1 2 2 2 1 2 ...
 $ tipe_perjalanan: Factor w/ 2 levels "Business travel",..: 1 1 1 1 1 1 1 2 1 2 ...
 $ usia           : int  49 31 32 80 50 11 51 39 24 36 ...
 $ kelas          : Factor w/ 3 levels "Business","Eco",..: 2 1 1 1 1 2 1 2 2 2 ...
 $ jarak          : int  355 1648 2006 3412 1530 1597 265 1263 1756 1904 ...
 $ waktu_delay    : int  0 3 0 13 0 14 0 0 0 0 ...
 $ kepuasan       : Factor w/ 2 levels "dissatisfied",..: 2 2 1 2 2 1 2 1 2 1 ...

Selanjutnya, untuk memeriksa bahwa tidak terdapat missing values atau data yang bernilai NA dalam data, maka digunakan perintah berikut :

> nrow(data[is.na(data$.),])
[1] 0

Didapat hasil bahwa banyak baris yang mengandung nilai NAdalam data adalah 0. Hal itu berarti bahwa tidak terdapat missing values dalam data. Untuk melihat ringkasan deskriptif terkait variabel-variabel di dalam data, digunakan function summary(data). Dapat pula dilihat 6 baris pertama dari data menggunakan function head(data).

> summary(data)
 jenis_kelamin        tipe_perjalanan      usia            kelas    
 Female:529    Business travel:703    Min.   : 7.00   Business:483  
 Male  :471    Personal Travel:297    1st Qu.:26.00   Eco     :456  
                                      Median :40.00   Eco Plus: 61  
                                      Mean   :39.24                 
                                      3rd Qu.:51.00                 
                                      Max.   :80.00                 
     jarak       waktu_delay             kepuasan  
 Min.   :  55   Min.   :  0.00   dissatisfied:460  
 1st Qu.:1340   1st Qu.:  0.00   satisfied   :540  
 Median :1898   Median :  0.00                     
 Mean   :1960   Mean   : 12.98                     
 3rd Qu.:2480   3rd Qu.: 11.00                     
 Max.   :5369   Max.   :295.00                     
> head(data)
  jenis_kelamin tipe_perjalanan usia    kelas jarak waktu_delay     kepuasan
1        Female Business travel   49      Eco   355           0    satisfied
2        Female Business travel   31 Business  1648           3    satisfied
3        Female Business travel   32 Business  2006           0 dissatisfied
4        Female Business travel   80 Business  3412          13    satisfied
5        Female Business travel   50 Business  1530           0    satisfied
6          Male Business travel   11      Eco  1597          14 dissatisfied

3.3 Model Regresi Logistik Biner

Untuk membuat model regresi logistik biner digunakan function glm(). Argumen yang dimasukkan adalah :

  • data=data, data yang digunakan untuk membuat model adalah data yang telah disimpan sebelumnya.

  • kepuasan~., yaitu formula dari model dimana variabel kepuasanadalah variabel respons dan variabel selainnya dalam data adalah variabel prediktor.

  • family="binomial", model regresi logistik biner menggunakan link function dari keluarga fungsi binomial. Dengan ketentuan ini, R secara khusus akan membentuk model regresi logistik biner.

Model regresi logistik biner tersebut disimpan dalam objek model.

> model <- glm(kepuasan~., family = "binomial", data = data)

3.4 Uji Asumsi Non-Multikolinieritas

Untuk melakukan uji asumsi non-multikolinieritas, dapat digunakan function vif() yang terdapat dalam package car. Argumen yang digunakan adalah objek berupa model regresi logistik biner, dalam hal ini model. Function ini menghitung nilai GVIF (Generalized Variance Inflation Factors) dan Adjusted GVIF \(GVIF^{1/2df}\) dari tiap variabel prediktor dalam model.

> vif(model)

3.5 Uji Signifikansi Keseluruhan Parameter Model

Untuk melakukan uji signifikansi keseluruhan parameter model regresi logistik biner model, digunakan function pR2(model)["G2"] yang tersedia dari package pscl. Perintah ini menghasilkan statistik uji \(G\) yang dapat dibandingkan dengan titik kritisnya \(\chi^{2}_{p(\alpha)}\) dimana \(p\) adalah banyaknya paramater dalam model dan \(\alpha\) adalah taraf signifikansi. Untuk menghitung titik kritis, digunakan function qchisq() dengan argumen p=1-\(\alpha\) , dan df=\(p\).

> pR2(model)["G2"]
> qchisq(p=0.95,df=8)

3.6 Uji Parsial Parameter Model

Untuk melihat hasil ringkasan analisis regresi logistik biner dari objek model, digunakan function summary(model) . Hasil dari perintah ini mengandung nilai estimasi beserta p-value dari Uji Wald (Uji parsial parameter model) untuk tiap parameter yang diduga.

> summary(model)

3.7 Odds Ratio

Untuk menghitung odds ratio dari tiap parameter maka digunakan function cbind(OR=exp(coef(model))) dimana OR untuk \(\beta_i\) dihitung dari \(e^{\beta_i}\).

> OR <- cbind(OR=exp(coef(model)))
> OR 

3.8 Klasifikasi Menggunakan Tabulasi Silang

Untuk melakukan klasifikasi nilai duga kepuasan terhadap nilai aktual respons berdasarkan kategori variabel kepuasan, terlebih dahulu dihitung vektor peluang penumpang puas (prob_kepuasan) berdasarkan model yang telah dibuat menggunakan function fitted(model). Kemudian, dapat dibentuk vektor nilai duga kepuasan (kepuasan_hat) dengan function ifelse() yang berisikan :

  • test=prob_kepuasan>0.5, jika peluang penumpang puas lebih dari 0.5 maka secara default diklasifikasikan sebagai yes dan jika kurang dari 0.5 diklasifikasikan sebagai no.

  • yes="satisfied", jika pernyataan pada poin pertama diklasifikasikan yes maka nilainya akan diganti menjadi “satisfied”.

  • no="dissatisfied", jika pernyataan pada poin pertama diklasifikasikan no maka nilainya akan diganti menjadi “dissatisfied”.

Selanjutnya, dibuat kolom baru pada data bernama kepuasan_hat, yaitu vektor nilai duga kepuasan (kepuasan_hat) dengan function data$kepuasan_hat <- kepuasan_hat. Terakhir, membuat tabulasi silang antara kepuasan dan kepuasan_hat dari data menggunakan function xtabs(~kepuasan+kepuasan_hat, data=data)

> prob_kepuasan <- fitted(model)
> kepuasan_hat <- ifelse(test=prob_kepuasan>0.5,
+                         yes="satisfied",
+                         no="dissatisfied")
> data$kepuasan_hat <- kepuasan_hat
> xtabs(~kepuasan+kepuasan_hat, data = data)

3.9 Plot Kelayakan Model

Untuk membuat plot kelayakan model, terlebih dahulu dibentuk data frame predicted data dengan prob_kepuasan dan kepuasan sebagai kolom-kolomnya menggunakan function data.frame(prob_kepuasan=model$fitted.values, kepuasan=data$kepuasan). Kemudian, mengurutkan nilai prob_kepuasan dalam predicted_data dari nilai terkecil hingga terbesar menggunakan function predicted_data = predicted_data[order(predicted_data$prob_kepuasan,decreasing = F),] dan memberi label peringkat atau urutan dengan membuat kolom baru bernama rank, predicted_data$rank = 1:nrow(predicted_data) .

> predicted_data <- data.frame(
+                   prob_kepuasan=model$fitted.values,
+                   kepuasan=data$kepuasan)
> predicted_data <- predicted_data[
+   order(predicted_data$prob_kepuasan, decreasing = F),]
> predicted_data$rank <- 1:nrow(predicted_data)

Setelah itu, dapat dibuat plot kelayakan model menggunakan function ggplot dan geom_point dari package ggplot2 dengan perintah sebagai berikut :

> ggplot(data=predicted_data, aes(x=rank, y=prob_kepuasan))+
+ geom_point(aes(color=kepuasan), alpha=1, shape=4, stroke=2)+
+ xlab("Indeks Observasi")+
+ ylab("Peluang Penumpang Pesawat Puas")

3.10 Uji Kelayakan Model

Untuk melakukan uji kelayakan model dengan uji Hosmer-Lemeshow, digunakan function logitgof(data$kepuasan,fitted(model)) dengan parameter function data$kepuasan sebagai vektor dari nilai obeservasi kepuasan dan fitted(model) sebagai vektor nilai duga kepuasan berdasarkan model.

> logitgof(data$kepuasan,fitted(model))

3.11 R-Squared

R-Squared yang umum digunakan dan mudah untuk dihitung dalam regresi logistik biner adalah McFadden R-Squared. Untuk menghitung McFadden R-Squared dari model digunakan function pR2(model)["McFadden"]. Hasil yang sama persis dengan perhitungan \(1-\frac{Residual\ deviance}{Null\ deviance}\) menggunakan function 1-(model$deviance/model$null.deviance).

> pR2(model)["McFadden"]
> 1-(model$deviance/model$null.deviance)

4 HASIL DAN PEMBAHASAN

4.1 Statistika Deskriptif

 jenis_kelamin        tipe_perjalanan      usia            kelas    
 Female:529    Business travel:703    Min.   : 7.00   Business:483  
 Male  :471    Personal Travel:297    1st Qu.:26.00   Eco     :456  
                                      Median :40.00   Eco Plus: 61  
                                      Mean   :39.24                 
                                      3rd Qu.:51.00                 
                                      Max.   :80.00                 
     jarak       waktu_delay             kepuasan  
 Min.   :  55   Min.   :  0.00   dissatisfied:460  
 1st Qu.:1340   1st Qu.:  0.00   satisfied   :540  
 Median :1898   Median :  0.00                     
 Mean   :1960   Mean   : 12.98                     
 3rd Qu.:2480   3rd Qu.: 11.00                     
 Max.   :5369   Max.   :295.00                     

Dari ringkasan data dapat diketahui bahwa dari 1000 penumpang yang diobservasi terdapat :

  • 529 penumpang berjenis kelamin Female atau Perempuan dan 471 lainnya adalah Male atau Laki-laki.

  • 703 penumpang dengan tipe perjalanan Business travel atau perjalanan bisnis dan 297 lainnya dengan tipe perjalanan Personal Travel atau perjalanan pribadi.

  • Usia terendah penumpang adalah 7 tahun dan tertinggi 80 tahun. Sebagian besar penumpang memiliki usia di kisaran 39-40 tahun.

  • 483 penumpang berasal dari kelas Business, 456 dari kelas Eco, dan 61 dari kelas Eco Plus.

  • Jarak minimal yang ditempuh penumpang adalah 55 km dan maksimal 5369 km. Sebagian besar penumpang melakukan penerbangan dengan jarak 1960 km.

  • Waktu delay keberangkatan paling singkat adalah 0 menit dan paling lama 295 menit. Sebagian besar penumpang mengalami waktu delay keberangkatan selama 12.98 menit.

  • 460 penumpang merasa dissatisfied atau tidak puas dan 540 sisanya merasa satisfied atau puas dengan pelayanan maskapai penerbangan.

4.2 Uji Asumsi Non-Multikolinieritas

                    GVIF Df GVIF^(1/(2*Df))
jenis_kelamin   1.021440  1        1.010663
tipe_perjalanan 1.404006  1        1.184908
usia            1.124219  1        1.060292
kelas           1.491709  2        1.105149
jarak           1.157821  1        1.076021
waktu_delay     1.025709  1        1.012773

Uji ini dilakukan untuk melihat adanya korelasi atau hubungan antar dua variabel prediktor dalam model. Nilai Adjusted GVIF (\(GVIF^{1/2df}\)) yang lebih besar dari 10 mengindikasikan adanya masalah multikolinieritas antar variabel prediktor dalam model. Dari hasil Adjusted GVIF pada tiap variabel prediktor dalam model, semua nilai Adjusted GVIF bernilai <10. Sehingga, dapat disimpulkan bahwa asumsi non-multikolinieritas antar variabel prediktor dalam model terpenuhi.

4.3 Analisis Regresi Logistik Biner

4.3.1 Uji Signifikansi Keseluruhan Parameter Model

4.3.1.1 Hipotesis

Digunakan uji Ratio-Likelihood untuk menguji signifikansi keseluruhan parameter model dengan hipotesis :

\(H_0 : \beta_1=\beta_2=...=\beta_7=0\) (Tidak ada variabel prediktor yang berpengaruh terhadap variabel respons)

\(H_1:\) Paling tidak terdapat satu \(\beta_j\neq0,j=1,2,...,7\) (Minimal ada satu variabel prediktor yang berpengaruh terhadap variabel respons)

4.3.1.2 Taraf Signifikansi

\(\alpha=0.05\)

4.3.1.3 Hasil

fitting null model for pseudo-r2
      G2 
144.8934 
[1] 14.06714

Diperoleh statistik uji \(G=144.8934\) dan titik kritis \(\chi^{2}_{7(0.05)}=14.06714\) .

4.3.1.4 Keputusan

Karena \(G>\chi^{2}_{7(0.05)}\) maka tolak \(H_0\).

4.3.1.5 Kesimpulan

Dengan taraf nyata 5%, dapat disimpulkan bahwa model signifikan atau terdapat minimal satu variabel prediktor yang berpengaruh terhadap kepuasan penumpang maskapai penerbangan.

4.3.2 Uji Parsial Parameter Model

4.3.2.1 Hipotesis

Digunakan uji Wald untuk menguji signifikansi parameter model secara parsial dengan hipotesis :

\(H_0:\beta_j=0,j=1,2,...,7\)

\(H_1:\beta_j\neq0,j=1,2,...,7\)

4.3.2.2 Taraf Signifikansi

\(\alpha=0.05\)

4.3.2.3 Hasil


Call:
glm(formula = kepuasan ~ ., family = "binomial", data = data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.9726  -1.0134   0.6603   1.0126   1.8494  

Coefficients:
                                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)                     9.303e-01  3.073e-01   3.027  0.00247 ** 
jenis_kelaminMale              -8.934e-01  1.382e-01  -6.465 1.01e-10 ***
tipe_perjalananPersonal Travel  1.050e-01  1.748e-01   0.601  0.54811    
usia                            1.104e-02  4.826e-03   2.289  0.02210 *  
kelasEco                       -1.159e+00  1.716e-01  -6.754 1.44e-11 ***
kelasEco Plus                  -1.463e+00  3.087e-01  -4.739 2.15e-06 ***
jarak                          -3.615e-05  7.393e-05  -0.489  0.62485    
waktu_delay                    -7.900e-03  2.403e-03  -3.288  0.00101 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1379.9  on 999  degrees of freedom
Residual deviance: 1235.0  on 992  degrees of freedom
AIC: 1251

Number of Fisher Scoring iterations: 4

Diperoleh p-value untuk tiap parameter adalah sebagai berikut :

  1. jenis_kelaminMale sebesar \(1.01\times10^{-10}<\alpha\)
  2. tipe_perjalananPersonal Travel sebesar \(0.54811>\alpha\)
  3. usia sebesar \(0.02210<\alpha\)
  4. kelasEco sebesar \(1.44\times10^{-11}<\alpha\)
  5. kelasEco Plus sebesar \(2.15\times10^{-6}<\alpha\)
  6. jarak sebesar \(0.62485>\alpha\)
  7. waktu_delay sebesar \(0.00101<\alpha\)

4.3.2.4 Keputusan

Tolak \(H_0\) untuk semua variabel prediktor, kecuali variabel tipe_perjalananPersonal Travel dan jarak

4.3.2.5 Kesimpulan

Dengan taraf nyata 5%, dapat disimpulkan bahwa variabel tipe_perjalananPersonal Travel dan jarak tidak berpengaruh signifikan terhadap kepuasan penumpang maskapai penerbangan. Sedangkan variabel jenis_kelaminMale, usia, kelasEco, kelasEco Plus, dan waktu_delay berpengaruh signifikan terhadap kepuasan penumpang maskapai.

4.3.3 Interpretasi Model

Berdasarkan nilai estimate pada output uji parsial, model penduga regresi logistik biner yang terbentuk adalah :\[ log(odds)=ln(\frac{\pi(x)}{1-\pi(x)}) =(9.303\times10^{-1})\\ +(-8.934\times10^{-1}\times jenis\_kelaminMale)\\ +(1.050\times10^{-1}\times tipe\_perjalananPersonal Travel)\\ +(1.104\times10^{-2}\times usia)\\ +(-1.159\times kelasEco)\\ +(-1.463\times kelasEco Plus)\\ +(-3.615\times10^{-5}\times jarak)\\ +(-7.900\times10^{-3}\times waktu\_delay) \]

Jika nilai salah satu variabel prediktor naik 1 satuan dengan nilai variabel prediktor lainnya konstan maka \(log(odds)\) akan naik sebesar koefisien variabel tersebut (jika koefisien (+)) atau turun sebesar koefisien variabel tersebut (jika koefisien (-)).

\[ \pi(x)=\frac{e^{log(odds)}}{1+e^{log(odds)}} \]

\(\pi(x)\) adalah peluang penumpang puas dengan pelayanan maskapai penerbangan dengan \(x\) sebagai vektor berisikan nilai pada tiap variabel prediktor.

4.3.4 Interpretasi Odds Ratio

                                      OR
(Intercept)                    2.5352551
jenis_kelaminMale              0.4092702
tipe_perjalananPersonal Travel 1.1106827
usia                           1.0111050
kelasEco                       0.3137336
kelasEco Plus                  0.2316042
jarak                          0.9999639
waktu_delay                    0.9921315
  • jenis_kelaminMale
    Penumpang laki-laki memiliki kecenderungan untuk puas terhadap pelayanan maskapai penerbangan sebesar \(0.4092702\) kali daripada penumpang perempuan.

  • tipe_perjalananPersonal Travel

    Penumpang dengan tipe perjalanan pribadi memiliki kecenderungan untuk puas terhadap pelayanan maskapai penerbangan sebesar \(1.1106827\) kali daripada penumpang dengan tipe perjalanan bisnis.

  • usia

    Jika usia bertambah 1 tahun maka kecenderungan penumpang untuk puas terhadap pelayanan maskapai penerbangan meningkat\(1.0111050\) kali lipat. Artinya, semakin tua usia penumpang maka kecenderungan untuk puas juga meningkat.

  • kelasEco

    Penumpang dengan kelas penerbangan Eco memiliki kecenderungan untuk puas terhadap pelayanan maskapai penerbangan sebesar \(0.3137336\) kali daripada penumpang dengan kelas penerbangan Eco Plus dan Business.

  • kelasEco Plus

    Penumpang dengan kelas penerbangan Eco Plus memiliki kecenderungan untuk puas terhadap pelayanan maskapai penerbangan sebesar \(0.2316042\) kali daripada penumpang dengan kelas penerbangan Eco dan Business.

  • jarak

    Jika jarak penerbangan bertambah 1 km maka kecenderungan penumpang untuk puas terhadap pelayanan maskapai penerbangan menurun \(0.9999639\) kali lipat. Artinya, semakin jauh jarak penerbangan maka kecenderungan untuk puas akan menurun.

  • waktu_delay

    Jika waktu delay keberangkatan bertambah 1 menit maka kecenderungan penumpang untuk puas terhadap pelayanan maskapai penerbangan menurun \(0.9921315\) kali lipat. Artinya, semakin lama waktu delay keberangkatan maka kecenderungan untuk puas akan menurun.

4.3.5 Akurasi Klasifikasi Model

              kepuasan_hat
kepuasan       dissatisfied satisfied
  dissatisfied          275       185
  satisfied             132       408
  • Dari 460 observasi penumpang tidak puas, terdapat 275 yang diklasifikasikan dengan benar.

  • Dari 540 observasi penumpang puas, terdapat 408 yang diklasifikasikan dengan benar.

  • Tingkat akurasi klasifikasi model adalah sebesar \(\frac{275+408}{1000}\times100\%=68.3\%\)

4.3.6 Interpretasi Plot Kelayakan Model

Dari plot diatas, dapat diamati bahwa penumpang yang diobservasi puas terhadap pelayanan maskapai penerbangan (berwarna biru) cenderung memiliki peluang untuk puas yang cukup tinggi (secara relatif >0.5), sedangkan penumpang yang diobservasi tidak puas (berwarna merah) cenderung memiliki peluang untuk puas yang rendah. Secara intuitif, hal ini benar dan mengindikasikan bahwa model yang digunakan cukup baik dalam menduga peluang penumpang pesawat akan puas atau dapat dikatakan model layak. Akan tetapi, kesimpulan ini bisa saja salah karena sifatnya yang subjektif (tanpa pengujian hipotesis).

4.3.7 Uji Kelayakan Model

4.3.7.1 Hipotesis

Untuk menguji kelayakan model digunakan uji Hosmer-Lemeshow dengan hipotesis :

\(H_0:\) Model yang dihipotesiskan fit dengan data (model layak)

\(H_1:\) Model yang dihipotesiskan tidak fit dengan data (model tidak layak)

4.3.7.2 Taraf Signifikansi

\(\alpha=0.05\)

4.3.7.3 Hasil


    Hosmer and Lemeshow test (binary model)

data:  data$kepuasan, fitted(model)
X-squared = 42.945, df = 8, p-value = 8.997e-07

Diperoleh p-value dari uji Hosmer-Lemeshow sebesar \(8.997\times10^{-7}<\alpha\).

4.3.7.4 Keputusan

Tolak \(H_0\).

4.3.7.5 Kesimpulan

Dengan taraf nyata 5%, dapat disimpulkan bahwa model tidak layak.

4.3.8 R-Squared

fitting null model for pseudo-r2
 McFadden 
0.1050038 
[1] 0.1050038

Dalam regresi logistik biner, koefisien determinasi atau R-Squared yang paling mendekati konsepnya dengan R-Squared di regresi linier adalah McFadden R-Squared. Didapat hasil \(R^{2}=0.1050038\). Hasil yang sama juga diperoleh dari perhitungan \(1-\frac{Residual\ deviance}{Null\ deviance}\). Sehingga dapat diinterpretasikan bahwa variabel-variabel prediktor dalam model mampu menjelaskan \(10.5\%\) kecenderungan penumpang pesawat akan puas atau tidak terhadap pelayanan maskapai penerbangan, sedangkan \(89.5\%\) sisanya berasal dari variabel lain dalam model.

5 KESIMPULAN

Model regresi logistik biner yang dibangun dari 6 variabel prediktor dan 1 variabel respons dengan 1000 observasi memiliki parameter yang signifikan secara keseluruhan dalam memprediksi kepuasan penumpang pesawat. Adapun beberapa parameter yang berpengaruh signifikan secara parsial, yaitu variabel jenis_kelaminMale, usia, kelasEco, kelasEco Plus, dan waktu_delay berpengaruh. Meskipun hasil uji kelayakan model menyatakan bahwa model tidak layak, variabel-variabel ini tetap dapat menjadi aspek penekanan bagi maskapai penerbangan dalam memberikan layanan kepada penumpang mengingat tingkat akurasi klasifikasi model yang cukup tinggi, yaitu \(68.3\%\) .

6 DAFTAR PUSTAKA

Source of dataset : https://www.kaggle.com/datasets/sjleshrac/airlines-customer-satisfaction

S. Ghozi, R. Ramli, and A. Setyani, “ANALISIS KEPUTUSAN NASABAH DALAM MEMILIH JENIS BANK: PENERAPAN MODEL REGRESI LOGISTIK BINER (STUDI KASUS PADA BANK BRI CABANG BALIKPAPAN),” MEDIA STATISTIKA, vol. 11, no. 1, pp. 17-26, Sep. 2018. https://doi.org/10.14710/medstat.11.1.17-26

Alwi, W., Ermawati, E., & Husain, S. (2018). ANALISIS REGRESI LOGISTIK BINER UNTUK MEMPREDIKSI KEPUASAN PENGUNJUNG PADA RUMAH SAKIT UMUM DAERAH MAJENE. Jurnal Matematika Dan Statistika Serta Aplikasinya , 6(1), 20. https://doi.org/10.24252/msa.v6i1.4783