- 1 PENDAHULUAN
- 2 TINJAUAN PUSTAKA
- 3 SOURCE CODE
- 3.1 Library yang Dibutuhkan
- 3.2 Menyiapkan Data
- 3.3 Model Regresi Logistik Biner
- 3.4 Uji Asumsi Non-Multikolinieritas
- 3.5 Uji Signifikansi Keseluruhan Parameter Model
- 3.6 Uji Parsial Parameter Model
- 3.7 Odds Ratio
- 3.8 Klasifikasi Menggunakan Tabulasi Silang
- 3.9 Plot Kelayakan Model
- 3.10 Uji Kelayakan Model
- 3.11 R-Squared
- 4 HASIL DAN PEMBAHASAN
- 5 KESIMPULAN
- 6 DAFTAR PUSTAKA
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 plot3.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] 0Didapat 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 dissatisfied3.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 sebagaiyesdan jika kurang dari 0.5 diklasifikasikan sebagaino.yes="satisfied", jika pernyataan pada poin pertama diklasifikasikanyesmaka nilainya akan diganti menjadi “satisfied”.no="dissatisfied", jika pernyataan pada poin pertama diklasifikasikannomaka 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 :
- jenis_kelaminMale sebesar \(1.01\times10^{-10}<\alpha\)
- tipe_perjalananPersonal Travel sebesar \(0.54811>\alpha\)
- usia sebesar \(0.02210<\alpha\)
- kelasEco sebesar \(1.44\times10^{-11}<\alpha\)
- kelasEco Plus sebesar \(2.15\times10^{-6}<\alpha\)
- jarak sebesar \(0.62485>\alpha\)
- 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