1 Pendahuluan

1.1 Latar Belakang Kasus

Dalam industri penerbangan, kepuasan penumpang sangat penting karena tingkat kepuasan penumpang dapat memengaruhi keputusan penumpang untuk menggunakan maskapai lain di masa depan. Maskapai harus memahami faktor-faktor seperti kenyamanan kursi, kualitas layanan, kebersihan kabin, ketepatan waktu penerbangan, dan fasilitas lainnya.

Untuk menganalisis komponen yang memengaruhi kepuasan penumpang, kita perlu menggunakan metode yang dapat menangani kompleksitas data secara efektif. Ini karena data survei kepuasan penumpang sering mengandung banyak variabel yang saling berkorelasi, yang dapat membuat sulit untuk menemukan komponen utama kepuasan penumpang secara langsung.

Oleh karena itu, Principal Component Analysis (PCA) dan Analisis Faktor (FA) menjadi sangat relevan untuk digunakan. Maskapai dapat memberikan layanan terbaik kepada penumpang mereka dengan mengetahui apa yang menentukan kepuasan penumpang.

1.2 Latar Belakang Metode

PCA adalah metode statistik yang digunakan untuk mereduksi dimensi data tanpa kehilangan banyak informasi. PCA bertujuan untuk mengidentifikasi komponen utama yang menjelaskan sebagian besar variasi dalam data. Metode ini sangat berguna ketika menghadapi data dengan banyak variabel, seperti dalam survei kepuasan penumpang. Dengan PCA, kita dapat mengurangi jumlah variabel yang perlu dianalisis lebih lanjut.

Namun, meskipun PCA efektif untuk mereduksi dimensi, ia tidak mampu mengidentifikasi faktor-faktor laten yang mendasari hubungan antara variabel. Di sinilah Factor Analysis (FA) menjadi penting. FA digunakan untuk menemukan struktur tersembunyi dalam data dengan mengelompokkan variabel-variabel yang saling berkorelasi ke dalam faktor-faktor tertentu. Setelah melakukan PCA untuk menentukan jumlah faktor yang optimal, kita bisa menggunakan FA untuk mengidentifikasi faktor-faktor yang memengaruhi kepuasan penumpang secara lebih spesifik.

Gabungan antara PCA dan FA memungkinkan kita untuk mendapatkan gambaran yang lebih jelas mengenai faktor-faktor utama yang mempengaruhi kepuasan penumpang. PCA digunakan untuk mengurangi jumlah faktor yang harus dipertimbangkan, sementara FA membantu dalam mengelompokkan variabel-variabel terkait ke dalam kategori-kategori yang bermakna.

1.3 Rumusan Masalah

Penelitian ini digunakan untuk mengatasi masalah sebagai berikut. - Faktor utama apa saja yang mempengaruhi kepuasan penumpang maskapai? - Berapa jumlah faktor optimal yang mencerminkan variabilitas inti dalam data tersebut? - Bagaimana penerapa metode PCA dan FA dapat mengidentifikasi faktor yang mempengaruhi kepuasan penumpang maskapai?

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah sebagai berikut.

  • Menentukan jumlah faktor yang optimal yang dapat menjelaskan variabilitas utama dalam data kepuasan penumpang maskapai menggunakan PCA.
  • Mengidentifikasi faktor-faktor utama yang mempengaruhi kepuasan penumpang maskapai melalui analisis faktor.
  • Memberikan rekomendasi bagi maskapai penerbangan dalam meningkatkan kualitas layanan berdasarkan temuan dari analisis PCA dan FA.

2 Tinjauan Pustaka

2.1 Principal Component Analysis (PCA)

Principal Component Analysis atau PCA pertama kali diperkenalkan oleh Karl Person lalu selanjutnya dikembangkan oleh Harold Hotelling yang mana tujuannya untuk menyederhanakan variabel yang diamati dengan cara menyusutkan dimensinya. PCA sangat berguna digunakan jika data yang ada memiliki jumlah variabel yang besar dan memiliki korelasi antar variabelnya. Perhitungan dari Principal Component Analysis didasarkan pada perhitungan nilai eigen dan eigen vektor yang menyatakan penyebaran data dari suatu data set.

Tahapan analisis yang dilakukan pada PCA adalah sebagai berikut:

  • Menghitung Matriks Kovarians (S),
  • Mencari nilai eigen dan vektor eigen dari matriks kovarians yang diperoleh,
  • Menentukan Nilai Komponen Utama,
  • Menghitung Bobot Faktor berdasarkan vektor eigen - Menentukan variabel baru/PC dengan mengalikan variabel asli dengan matriks vektor eigen.

Model PCA: \[Z_j = a_{j1}X_1 + a_{j2}X_2 + ... + a_{jp}X_p\]

keterangan:

  • \(Z_j\): Komponen utama ke-\(j\).
  • \(\phi_{ji}\): Koefisien (loading) untuk variabel - - \(x_i\) dalam komponen utama ke-\(j\).
  • \(x_i\): Variabel asli ke-\(i\) (variabel input).

2.1.1 Metode Penentuan Jumlah Faktor Optimal

PCA digunakan untuk mengidentifikasi jumlah komponen utama yang dapat menjelaskan sebagian besar variabilitas dalam data. Beberapa metode yang umum digunakan untuk menentukan jumlah faktor optimal:

  • Kaiser Criterion: Menyaring faktor dengan nilai eigen lebih besar dari 1, yang menunjukkan bahwa faktor tersebut lebih baik daripada variabel asli.
  • Scree Plot: Digunakan untuk melihat titik “elbow” yang menunjukkan penurunan varians secara signifikan. Titik “elbow” adalah titik di mana tambahan komponen atau cluster tidak memberikan peningkatan yang signifikan dalam varians yang dijelaskan. Dengan kata lain, sebelum mencapai titik ini, setiap komponen baru memberikan kontribusi yang lebih besar, tetapi setelahnya, kontribusinya mulai menurun secara signifikan. Oleh karena itu, Faktor yang dipilih adalah jumlah komponen sebelum titik ini.

2.1.2 Metode Ekstraksi Faktor dengan PCA

PCA digunakan sebagai langkah pertama dalam ekstraksi faktor untuk mereduksi dimensi data, mengurangi jumlah variabel menjadi komponen yang lebih sedikit namun tetap dapat menjelaskan sebagian besar variabilitas data. komponen utama (principal component) adalah kombinasi linier dari variabel asli yang dapat menjelaskan variabilitas terbesar dalam data, dan PCA digunakan sebagai langkah pertama dalam ekstraksi faktor untuk mengurangi dimensi data dengan mengurangi jumlah variabel menjadi komponen yang lebih sedikit namun tetap dapat menjelaskan sebagian besar variabilitas data.

2.2 Analisis Faktor

Factor Analysis (FA) adalah metode ekstraksi faktor yang digunakan untuk mengidentifikasi faktor laten yang mendasari hubungan antar variabel. Berbeda dengan PCA, yang bertujuan untuk menjelaskan variabilitas data, PFA berfokus pada variabilitas yang dapat dijelaskan oleh faktor-faktor tersembunyi. Proses ini melibatkan identifikasi faktor-faktor yang memiliki pengaruh signifikan terhadap banyak variabel dalam dataset.

Model Analisis Faktor:

\[ x_i = \lambda_{i1} f_1 + \lambda_{i2} f_2 + \dots + \lambda_{ik} f_k + u_i \]

keterangan:

  • \(x_i\): Variabel manifes ke-\(i\) (variabel yang dapat diamati).
  • \(f_j\): Faktor laten ke-\(j\) (variabel yang tidak dapat diamati) yang menjelaskan variabilitas dalam variabel manifes.
  • \(\lambda_{ij}\): Loading atau koefisien antara variabel \(x_i\) dan faktor \(f_j\), menunjukkan kontribusi faktor \(f_j\) terhadap variabel \(x_i\).
  • \(u_i\): Komponen kesalahan atau varians spesifik dari \(x_i\), yang tidak dijelaskan oleh faktor-faktor laten.

2.2.1 Metode Ekstraksi Faktor dengan FA

FA dimulai dengan memeriksa korelasi antar variabel untuk menentukan seberapa baik variabel-variabel tersebut bisa dikelompokkan dalam faktor-faktor. Setelah faktor-faktor teridentifikasi, model akan mengestimasi nilai faktor berdasarkan korelasi antara variabel dan faktor yang ditemukan.

2.2.2 Metode Penentuan Faktor

Penentuan jumlah faktor yang tepat dalam analisis faktor dapat dilakukan menggunakan beberapa pendekatan:

  • Kaiser Criterion (Eigenvalue > 1): Faktor-faktor yang memiliki nilai eigen lebih besar dari 1 akan dipilih, karena faktor tersebut menjelaskan lebih banyak varians daripada variabel tunggal.
  • Scree Test: Plotkan nilai eigen dan lihat titik “elbow”, yaitu tempat di mana penurunan signifikan terjadi. Faktor yang dipilih adalah yang terletak sebelum titik tersebut.
  • Cumulative Variance: Tentukan faktor yang diperlukan untuk mencapai persentase tertentu dari total varians (misalnya, 70-80%).

2.2.3 Rotasi Faktor

Rotasi faktor dilakukan untuk memudahkan interpretasi hasil analisis faktor. Dalam rotasi, faktor yang dihasilkan akan diputar sedemikian rupa sehingga variabel memiliki beban tinggi pada satu faktor dan rendah pada faktor lainnya.

2.3 Evaluasi Data

2.3.1 Bartlett’s Test of Sphericity

Uji Bartlett digunakan untuk menguji hipotesis bahwa matriks korelasi antar variabel adalah matriks identitas (tidak ada korelasi antar variabel). Uji ini penting untuk memastikan bahwa data cocok untuk analisis faktor. Jika hasil uji Bartlett menunjukkan nilai p < 0,05, maka hipotesis nol dapat ditolak, dan kita dapat melanjutkan dengan analisis faktor karena terdapat korelasi yang cukup signifikan antar variabel.

2.3.2 KMO-test

KMO mengukur kecukupan sampel untuk analisis faktor dengan mengevaluasi seberapa besar korelasi antar variabel. Nilai KMO berkisar antara 0 hingga 1. Nilai KMO yang lebih tinggi menunjukkan bahwa data lebih cocok untuk analisis faktor. Interpretasi nilai KMO adalah sebagai berikut:

  • KMO > 0,80: Sangat Baik
  • KMO > 0,70: Baik
  • KMO > 0,60: Memadai
  • KMO < 0,60: Tidak Memadai, dan analisis faktor mungkin tidak cocok.

2.3.3 Measure of Sampling Adequacy (MSA)

MSA adalah ukuran tambahan yang digunakan untuk menilai kecocokan setiap variabel untuk analisis faktor. MSA mengukur sejauh mana korelasi antar variabel mencerminkan faktor laten. MSA diukur untuk setiap variabel dan untuk keseluruhan data. Nilai MSA yang tinggi menunjukkan bahwa variabel tersebut cocok untuk dimasukkan dalam analisis faktor. MSA yang rendah menunjukkan variabel yang mungkin tidak berkontribusi banyak pada faktor yang teridentifikasi.

3 Data

Data yang digunakan dalam penelitian ini adalah data faktor-faktor yang memungkinkan berpengaruh terhadap kepuasan penumpang maskapai yang diambil dari sumber Kaggle dengan judul “Airline Passenger Satisfaction Dataset” terhadap penumpang pesawat. Berikut merupakan variabel-variabel yang digunakan:

\(X_1\) : Gender (Jenis kelamin penumpang, 1: Laki-Laki, 0: Perempuan)
\(X_2\) : Customer Type (Tipe pelanggan, 1: Pelanggan Loyal, 0: Pelanggan Tidak Loyal)
\(X_3\) : Age (Usia penumpang)
\(X_4\) : Type of Travel (Jenis perjalanan, 1: Perjalanan Pribadi, 0: Perjalanan Bisnis)
\(X_5\) : Class (Kelas penerbangan, 1: Kelas Bisnis, 2: Kelas Ekonomi, 3: Kelas Ekonomi Plus)
\(X_6\) : Flight distance (Jarak penerbangan dalam kilometer)
\(X_7\) : Inflight wifi service (Tingkat kepuasan terhadap layanan wifi di dalam pesawat, 1-5)
\(X_8\) : Departure/Arrival time convenient (Tingkat kepuasan terhadap waktu keberangkatan/ketibaan yang nyaman, 1-5)
\(X_9\) : Ease of Online booking (Tingkat kepuasan terhadap kemudahan pemesanan online, 1-5)
\(X_{10}\) : Gate location (Tingkat kepuasan terhadap lokasi gerbang, 1-5)
\(X_{11}\) : Food and drink (Tingkat kepuasan terhadap makanan dan minuman, 1-5)
\(X_{12}\) : Online boarding (Tingkat kepuasan terhadap proses boarding online, 1-5)
\(X_{13}\) : Seat comfort (Tingkat kepuasan terhadap kenyamanan kursi, 1-5)
\(X_{14}\) : Inflight entertainment (Tingkat kepuasan terhadap hiburan dalam pesawat, 1-5)
\(X_{15}\) : On-board service (Tingkat kepuasan terhadap layanan dalam pesawat, 1-5)
\(X_{16}\) : Leg room service (Tingkat kepuasan terhadap ruang kaki, 1-5)
\(X_{17}\) : Baggage handling (Tingkat kepuasan terhadap penanganan bagasi, 1-5)
\(X_{18}\) : Check-in service (Tingkat kepuasan terhadap layanan check-in, 1-5)
\(X_{19}\) : Inflight service (Tingkat kepuasan terhadap layanan dalam penerbangan, 1-5)
\(X_{20}\) : Cleanliness (Tingkat kepuasan terhadap kebersihan pesawat, 1-5)
\(X_{21}\) : Departure Delay in Minutes (Jumlah menit keterlambatan saat keberangkatan)
\(X_{22}\) : Arrival Delay in Minutes (Jumlah menit keterlambatan saat kedatangan)
\(X_{23}\) : Satisfaction (Tingkat kepuasan penumpang, 1: Puas, 0: Tidak Puas)

Berikut merupakan data yang digunakan dalam penelitian ini:

> Data <- readxl::read_excel("C:/Users/Hp/OneDrive/Documents/Airline Passenger Satisfaction.xlsx")
Error: `path` does not exist: 'C:/Users/Hp/OneDrive/Documents/Airline Passenger Satisfaction.xlsx'
> knitr::kable(Data, caption = "Data Kepuasan Penumpang Maskapai Penerbangan",align="c")
Error in eval(expr, envir, enclos): object 'Data' not found

4 Source Code

> #input data berformat excel
> library(readxl) 
> #analisis faktor
> library(psych) 
> #plot korelasi
> library(corrplot) 
> #Bartlett's dan KMO test
> library(REdaS) 

4.1 Input Data

> library(readxl) 
> Data <- read_excel("C:/Penyimpanan Utama/Download/Airline Passenger Satisfaction.xlsx")
> head(Data) 
# A tibble: 6 × 24
      id Gender `Customer Type`   Age `Type of Travel` Class `Flight Distance`
   <dbl>  <dbl>           <dbl> <dbl>            <dbl> <dbl>             <dbl>
1  70172      1               1    13                1     3               460
2   5047      1               0    25                0     1               235
3 110028      0               1    26                0     1              1142
4  24026      0               1    25                0     1               562
5 119299      1               1    61                0     1               214
6 111157      0               1    26                1     2              1180
# ℹ 17 more variables: `Inflight wifi service` <dbl>,
#   `Departure/Arrival time convenient` <dbl>, `Ease of Online booking` <dbl>,
#   `Gate location` <dbl>, `Food and drink` <dbl>, `Online boarding` <dbl>,
#   `Seat comfort` <dbl>, `Inflight entertainment` <dbl>,
#   `On-board service` <dbl>, `Leg room service` <dbl>,
#   `Baggage handling` <dbl>, `Checkin service` <dbl>,
#   `Inflight service` <dbl>, Cleanliness <dbl>, …
> str(Data) 
tibble [103,904 × 24] (S3: tbl_df/tbl/data.frame)
 $ id                               : num [1:103904] 70172 5047 110028 24026 119299 ...
 $ Gender                           : num [1:103904] 1 1 0 0 1 0 1 0 0 1 ...
 $ Customer Type                    : num [1:103904] 1 0 1 1 1 1 1 1 1 0 ...
 $ Age                              : num [1:103904] 13 25 26 25 61 26 47 52 41 20 ...
 $ Type of Travel                   : num [1:103904] 1 0 0 0 0 1 1 0 0 0 ...
 $ Class                            : num [1:103904] 3 1 1 1 1 2 2 1 1 2 ...
 $ Flight Distance                  : num [1:103904] 460 235 1142 562 214 ...
 $ Inflight wifi service            : num [1:103904] 3 3 2 2 3 3 2 4 1 3 ...
 $ Departure/Arrival time convenient: num [1:103904] 4 2 2 5 3 4 4 3 2 3 ...
 $ Ease of Online booking           : num [1:103904] 3 3 2 5 3 2 2 4 2 3 ...
 $ Gate location                    : num [1:103904] 1 3 2 5 3 1 3 4 2 4 ...
 $ Food and drink                   : num [1:103904] 5 1 5 2 4 1 2 5 4 2 ...
 $ Online boarding                  : num [1:103904] 3 3 5 2 5 2 2 5 3 3 ...
 $ Seat comfort                     : num [1:103904] 5 1 5 2 5 1 2 5 3 3 ...
 $ Inflight entertainment           : num [1:103904] 5 1 5 2 3 1 2 5 1 2 ...
 $ On-board service                 : num [1:103904] 4 1 4 2 3 3 3 5 1 2 ...
 $ Leg room service                 : num [1:103904] 3 5 3 5 4 4 3 5 2 3 ...
 $ Baggage handling                 : num [1:103904] 4 3 4 3 4 4 4 5 1 4 ...
 $ Checkin service                  : num [1:103904] 4 1 4 1 3 4 3 4 4 4 ...
 $ Inflight service                 : num [1:103904] 5 4 4 4 3 4 5 5 1 3 ...
 $ Cleanliness                      : num [1:103904] 5 1 5 2 3 1 2 4 2 2 ...
 $ Departure Delay in Minutes       : num [1:103904] 25 1 0 11 0 0 9 4 0 0 ...
 $ Arrival Delay in Minutes         : num [1:103904] 18 6 0 9 0 0 23 0 0 0 ...
 $ satisfaction                     : num [1:103904] 0 0 1 0 1 0 0 1 0 0 ...

Untuk membaca data Airline Passenger Satisfaction dari excel diperlukan syntax library(readxl) supaya dapat memuat pustaka atau paket “readxl”. syntax head(Data) digunakan untuk menampilkan beberapa baris pertama dari data. sedangkan, syntax head(Data) digunakan untuk melihat jumlah variabel data yaitu 24.

4.2 Statistika Deskriptif

> summary(Data)

Fungsi summary() digunakan untuk menghitung statitika deskriptif dengan argumen data yang ingin dihitung (Data). Statistika deskriptif yang dimaksud adalah mean, median, minimum, maksimum, kuartil 1, dan kuartil 2.

4.3 Bartlett’s Test of Sphericity

Hipotesis

$H_0: Tidak terdapat korelasi yang signifikan antar beberapa variabel

H1:H1: Terdapat korelasi yang signifikan antar beberapa variabel

> library(REdaS)
> library(dplyr)
> Data_imputed <- Data %>%
+     mutate(across(everything(), ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))
> bart_spher(Data_imputed)

bart_spher digunakan untuk menguji kesamaan varians (homogenitas varians) antar kelompok dalam data.

4.4 KMO dan MSA

> library(psych)
> KMO<- KMO(Data)

Statistik KMO dapat dihitung dengan fungsi KMO(). Fungsi ini digunakan untuk menghitung Measure of Sampling Adequacy (MSA) menggunakan metode Kaiser-Meyer-Olkin (KMO). Hasil perhitungan MSA akan disimpan dalam variabel bernama KMO, sehingga dapat digunakan untuk mengevaluasi apakah data Anda cocok untuk analisis faktor.

4.5 Matriks Korelasi

> library(corrplot)
> Datacor <-cor(Data_imputed)
> corrplot(Datacor, method = "number")

library(corrplot) digunakan untuk memuat paket “corrplot”.Dalam konteks FA, matriks korelasi digunakan untuk mengukur tingkat korelasi antara variabel-variabel dalam data tersebut. Visualisasi dari matriks korelasi yang telah dihitung dapat digunakan fungsi corrplot dari paket “corrplot”. Parameter method = "number" digunakan untuk menampilkan nilai korelasi sebagai angka di dalam sel matriks korelasi.

4.6 Nilai Eigen

> eigenvalues <- eigen(Datacor)$values
> eigenvalues

eigen() untuk menghitung nilai eigen dari matriks korelasi yang telah dihitung sebelumnya yaitu variabel bernama Datacor lalu disimpan kedalam eigenvalues

4.7 Scree Plot

> scree_plot <- plot(eigenvalues, main = "Scree Plot",
+                   xlab = "Faktor", ylab = "Nilai Eigen",
+                   pch = 20, col = "Blue", type = "o", lwd = 1.5) +
+             axis(1, at = seq(1, 7)) +
+             abline(h = 1, col = "Red", lty = 2, lwd = 1)

Garis berwarna merah digunakan sebagai pembatas untuk memutuskan jumlah faktor yang akan dipertahankan. Faktor-faktor dengan eigenvalues di atas garis berwarna merah akan dipertahankan, sedangkan yang di bawahnya akan diabaikan.

4.8 Ekstraksi Faktor dengan PCA

> r <- Data
> nfactors <- 7 #berasal dari scree plot
> PCA = principal(r, nfactors, rotate = "varimax")
> PCA$communality

4.9 Ekstraksi Faktor dengan FA

> r <- Data
> nfactors <- 7 #berasal dari scree plot
> FA <- fa(r, nfactors, rotate = "varimax", fm = "pa")
> FA

4.10 Visualisasi

> fa.diagram(FA,rsize = 1)

Fungsi fa.diagram() pada R digunakan untuk membuat diagram faktor. Diagram faktor adalah diagram yang menunjukkan hubungan antara variabel-variabel dengan faktor-faktor yang dihasilkan oleh analisis faktor. Dimana fungsi fa.diagram() memiliki dua argumen, yaitu PFA adalah hasil analisis faktor dan rsize ukuran variabel pada diagram.

5 Hasil dan Pembahasan

5.1 Statistika Deskriptif

> summary(Data)
       id             Gender       Customer Type         Age       
 Min.   :     1   Min.   :0.0000   Min.   :0.0000   Min.   : 7.00  
 1st Qu.: 32534   1st Qu.:0.0000   1st Qu.:1.0000   1st Qu.:27.00  
 Median : 64857   Median :0.0000   Median :1.0000   Median :40.00  
 Mean   : 64924   Mean   :0.4925   Mean   :0.8173   Mean   :39.38  
 3rd Qu.: 97368   3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:51.00  
 Max.   :129880   Max.   :1.0000   Max.   :1.0000   Max.   :85.00  
                                                                   
 Type of Travel       Class       Flight Distance Inflight wifi service
 Min.   :0.0000   Min.   :1.000   Min.   :  31    Min.   :0.00         
 1st Qu.:0.0000   1st Qu.:1.000   1st Qu.: 414    1st Qu.:2.00         
 Median :0.0000   Median :2.000   Median : 843    Median :3.00         
 Mean   :0.3104   Mean   :1.594   Mean   :1189    Mean   :2.73         
 3rd Qu.:1.0000   3rd Qu.:2.000   3rd Qu.:1743    3rd Qu.:4.00         
 Max.   :1.0000   Max.   :3.000   Max.   :4983    Max.   :5.00         
                                                                       
 Departure/Arrival time convenient Ease of Online booking Gate location  
 Min.   :0.00                      Min.   :0.000          Min.   :0.000  
 1st Qu.:2.00                      1st Qu.:2.000          1st Qu.:2.000  
 Median :3.00                      Median :3.000          Median :3.000  
 Mean   :3.06                      Mean   :2.757          Mean   :2.977  
 3rd Qu.:4.00                      3rd Qu.:4.000          3rd Qu.:4.000  
 Max.   :5.00                      Max.   :5.000          Max.   :5.000  
                                                                         
 Food and drink  Online boarding  Seat comfort   Inflight entertainment
 Min.   :0.000   Min.   :0.00    Min.   :0.000   Min.   :0.000         
 1st Qu.:2.000   1st Qu.:2.00    1st Qu.:2.000   1st Qu.:2.000         
 Median :3.000   Median :3.00    Median :4.000   Median :4.000         
 Mean   :3.202   Mean   :3.25    Mean   :3.439   Mean   :3.358         
 3rd Qu.:4.000   3rd Qu.:4.00    3rd Qu.:5.000   3rd Qu.:4.000         
 Max.   :5.000   Max.   :5.00    Max.   :5.000   Max.   :5.000         
                                                                       
 On-board service Leg room service Baggage handling Checkin service
 Min.   :0.000    Min.   :0.000    Min.   :1.000    Min.   :0.000  
 1st Qu.:2.000    1st Qu.:2.000    1st Qu.:3.000    1st Qu.:3.000  
 Median :4.000    Median :4.000    Median :4.000    Median :3.000  
 Mean   :3.382    Mean   :3.351    Mean   :3.632    Mean   :3.304  
 3rd Qu.:4.000    3rd Qu.:4.000    3rd Qu.:5.000    3rd Qu.:4.000  
 Max.   :5.000    Max.   :5.000    Max.   :5.000    Max.   :5.000  
                                                                   
 Inflight service  Cleanliness    Departure Delay in Minutes
 Min.   :0.00     Min.   :0.000   Min.   :   0.00           
 1st Qu.:3.00     1st Qu.:2.000   1st Qu.:   0.00           
 Median :4.00     Median :3.000   Median :   0.00           
 Mean   :3.64     Mean   :3.286   Mean   :  14.82           
 3rd Qu.:5.00     3rd Qu.:4.000   3rd Qu.:  12.00           
 Max.   :5.00     Max.   :5.000   Max.   :1592.00           
                                                            
 Arrival Delay in Minutes  satisfaction   
 Min.   :   0.00          Min.   :0.0000  
 1st Qu.:   0.00          1st Qu.:0.0000  
 Median :   0.00          Median :0.0000  
 Mean   :  15.18          Mean   :0.4333  
 3rd Qu.:  13.00          3rd Qu.:1.0000  
 Max.   :1584.00          Max.   :1.0000  
 NA's   :310                              

Seluruh variabel dapat dijelaskan statistika deskriptifnya, karena memiliki skala nominal. Informasi yang diperoleh dari masing-masing variabel adalah nilai terbesar dan terkecil, kuartil 1, median, rata-rata, serta kuartil 3.

5.2 Bartlett’s Test of Sphericity

Hipotesis

\(H_0:\) matriks korelasi adalah matriks identitas (Tidak terdapat korelasi yang signifikan setidaknya antar beberapa variabel)

\(H_1:\) matriks korelasi bukan matriks identitas (Terdapat korelasi yang signifikan setidaknya antar beberapa variabel)

Statistik Uji

> library(REdaS)
> library(dplyr)
> Data_imputed <- Data %>%
+     mutate(across(everything(), ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))
> bart_spher(Data_imputed)
    Bartlett's Test of Sphericity

Call: bart_spher(x = Data_imputed)

     X2 = 1101832.037
     df = 276
p-value < 2.22e-16

Keputusan p-value (<2.22e-16) < alpha (0.05), maka hipotesis nol ditolak Interpretasi Berdasarkan tingkat kepercayaan 95%, dapat disimpulkan bahwa matriks korelasi bukan merupakan matriks identitas dan korelasi antar variabel signifikan, sehingga data sesuai untuk analisis faktor.

5.3 KMO dan MSA

> library(psych)
> KMO<- KMO(Data)
> KMO
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = Data)
Overall MSA =  0.74
MSA for each item = 
                               id                            Gender 
                             0.58                              0.40 
                    Customer Type                               Age 
                             0.44                              0.67 
                   Type of Travel                             Class 
                             0.58                              0.81 
                  Flight Distance             Inflight wifi service 
                             0.78                              0.73 
Departure/Arrival time convenient            Ease of Online booking 
                             0.72                              0.69 
                    Gate location                    Food and drink 
                             0.70                              0.85 
                  Online boarding                      Seat comfort 
                             0.80                              0.87 
           Inflight entertainment                  On-board service 
                             0.78                              0.85 
                 Leg room service                  Baggage handling 
                             0.91                              0.83 
                  Checkin service                  Inflight service 
                             0.74                              0.79 
                      Cleanliness        Departure Delay in Minutes 
                             0.82                              0.50 
         Arrival Delay in Minutes                      satisfaction 
                             0.50                              0.81 

Hasil Kaiser-Meyer-Olkin (KMO) dan Measure of Sampling Adequacy (MSA) menunjukkan Overall MSA sebesar 0.74, yang artinya kecukupan sampel yang cukup baik untuk analisis faktor. Nilai MSA untuk setiap variabel berkisar antara 0.40 hingga 0.91. Variabel dengan nilai MSA di bawah 0.5 (seperti Gender dan Customer Type) kurang sesuai untuk analisis faktor dan mungkin perlu dipertimbangkan untuk dikeluarkan. Variabel lainnya memiliki nilai MSA di atas 0.5, yang menunjukkan bahwa mereka layak untuk dimasukkan dalam analisis.

5.4 Matriks Korelasi

> library(corrplot)
> Datacor <-cor(Data_imputed)
> corrplot(Datacor, method = "number")

5.5 Nilai Eigen

> eigenvalues <- eigen(Datacor)$values
> eigenvalues
 [1] 4.50695413 2.37643038 2.21000974 1.96991394 1.90575630 1.50029643
 [7] 1.05323913 1.02206668 0.96662670 0.89288083 0.82476685 0.69273023
[13] 0.56319873 0.49091830 0.48001967 0.42765971 0.41457716 0.36719492
[19] 0.31416117 0.29813905 0.28183466 0.22642007 0.17558478 0.03862046

Nilai eigen menunjukkan beberapa komponen utama berdasarkan analisis matriks korelasi data. Nilai eigen yang lebih besar dari 1 dianggap signifikan dalam analisis komponen utama (PCA) untuk menjelaskan variabilitas dalam data. Berdasarkan output terdapat 7 nilai eigen yang lebih besar dari 1. 7 Komponen ini adalah yang paling berkontribusi terhadap variabilitas dalam data, dan mungkin cukup untuk merangkum informasi utama yang ada. 7 Komponen ini dapat digunakan untuk mereduksi dimensi data tanpa kehilangan banyak informasi penting.

5.6 Scree Plot

> scree_plot <- plot(eigenvalues, main = "Scree Plot",
+                   xlab = "Faktor", ylab = "Nilai Eigen",
+                   pch = 20, col = "Blue", type = "o", lwd = 1.5) +
+             axis(1, at = seq(1, 7)) +
+             abline(h = 1, col = "Red", lty = 2, lwd = 1)

Berdasarkan hasil scree plot, dapat diambil sebanyak 7 faktor atau komponen utama yang memiliki nilai eigen lebih besar daripada 1.

5.7 Ekstraksi Faktor dengan PCA

> r <- Data
> nfactors <- 7 #berasal dari scree plot
> PCA = principal(r, nfactors, rotate = "varimax")
> PCA$communality
                               id                            Gender 
                       0.67740861                        0.02520957 
                    Customer Type                               Age 
                       0.75007955                        0.43208107 
                   Type of Travel                             Class 
                       0.78624376                        0.63760218 
                  Flight Distance             Inflight wifi service 
                       0.48740234                        0.74011926 
Departure/Arrival time convenient            Ease of Online booking 
                       0.66160175                        0.80508113 
                    Gate location                    Food and drink 
                       0.51145179                        0.72982553 
                  Online boarding                      Seat comfort 
                       0.57598442                        0.73488197 
           Inflight entertainment                  On-board service 
                       0.81204532                        0.62229420 
                 Leg room service                  Baggage handling 
                       0.42132934                        0.68616476 
                  Checkin service                  Inflight service 
                       0.29048249                        0.71502870 
                      Cleanliness        Departure Delay in Minutes 
                       0.80031570                        0.98115815 
         Arrival Delay in Minutes                      satisfaction 
                       0.98165076                        0.66146852 

Principal Component Analysis (PCA) di atas menunjukkan nilai communality untuk setiap variabel. Variabel dengan communality tinggi (mendekati 1) menunjukkan bahwa sebagian besar variasinya dijelaskan oleh faktor-faktor yang dihasilkan. Variabel dengan communality rendah (<0.5) memiliki kontribusi yang lebih rendah terhadap faktor-faktor utama. Ini mungkin menunjukkan bahwa variabel-variabel tersebut kurang terwakili oleh komponen utama dan mungkin kurang relevan untuk dimasukkan dalam model faktor. Secara keseluruhan, dengan mempertimbangkan 7 faktor berdasarkan scree plot, sebagian besar variabel memiliki communality yang cukup tinggi, menunjukkan bahwa mereka cukup terwakili oleh faktor-faktor dalam analisis PCA ini.

5.8 Ekstraksi Faktor dengan FA

> r <- Data
> nfactors <- 7 #berasal dari scree plot
> FA <- fa(r, nfactors, rotate = "varimax", fm = "pa")
> FA
Factor Analysis using method =  pa
Call: fa(r = r, nfactors = nfactors, rotate = "varimax", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
                                    PA1   PA4   PA3   PA5   PA2   PA7   PA6
id                                 0.00  0.08 -0.03  0.08  0.00 -0.03  0.05
Gender                            -0.01  0.04  0.00  0.00  0.02 -0.03  0.01
Customer Type                      0.07  0.05  0.00 -0.03  0.07 -0.02  0.74
Age                                0.06 -0.01 -0.01  0.13 -0.01  0.08  0.33
Type of Travel                    -0.07  0.02 -0.01 -0.77  0.07 -0.19  0.36
Class                             -0.07 -0.19  0.00 -0.69  0.02 -0.04 -0.11
Flight Distance                    0.05  0.09  0.01  0.49  0.03 -0.02  0.27
Inflight wifi service              0.11  0.12 -0.01 -0.01  0.51  0.67 -0.06
Departure/Arrival time convenient -0.01  0.10  0.00 -0.18  0.66  0.02  0.21
Ease of Online booking            -0.03  0.02  0.00  0.10  0.68  0.54 -0.03
Gate location                      0.01 -0.03  0.00  0.06  0.68 -0.01 -0.07
Food and drink                     0.78 -0.01 -0.02  0.01  0.02  0.04  0.00
Online boarding                    0.28  0.09 -0.01  0.27  0.04  0.64  0.29
Seat comfort                       0.75  0.06 -0.01  0.16 -0.02  0.12  0.19
Inflight entertainment             0.77  0.44 -0.01  0.09  0.01  0.06 -0.01
On-board service                   0.09  0.69 -0.02  0.09 -0.01  0.06  0.04
Leg room service                   0.06  0.48  0.03  0.16  0.02  0.10  0.01
Baggage handling                   0.05  0.76  0.01  0.02  0.03  0.01 -0.09
Checkin service                    0.12  0.29 -0.01  0.06 -0.02  0.08  0.12
Inflight service                   0.05  0.80 -0.04  0.01  0.03 -0.01 -0.09
Cleanliness                        0.85  0.07  0.00  0.05 -0.01  0.07  0.06
Departure Delay in Minutes        -0.02 -0.02  0.98 -0.01  0.00 -0.01  0.00
Arrival Delay in Minutes          -0.02 -0.02  0.98 -0.01  0.00 -0.01 -0.01
satisfaction                       0.25  0.32 -0.03  0.50 -0.04  0.35  0.17
                                      h2    u2 com
id                                0.0174 0.983 3.1
Gender                            0.0035 0.996 2.6
Customer Type                     0.5638 0.436 1.1
Age                               0.1362 0.864 1.5
Type of Travel                    0.7775 0.222 1.6
Class                             0.5392 0.461 1.2
Flight Distance                   0.3239 0.676 1.7
Inflight wifi service             0.7310 0.269 2.0
Departure/Arrival time convenient 0.5302 0.470 1.4
Ease of Online booking            0.7701 0.230 2.0
Gate location                     0.4771 0.523 1.0
Food and drink                    0.6060 0.394 1.0
Online boarding                   0.6556 0.344 2.3
Seat comfort                      0.6380 0.362 1.3
Inflight entertainment            0.7974 0.203 1.6
On-board service                  0.5031 0.497 1.1
Leg room service                  0.2681 0.732 1.4
Baggage handling                  0.5936 0.406 1.0
Checkin service                   0.1243 0.876 2.0
Inflight service                  0.6532 0.347 1.0
Cleanliness                       0.7463 0.254 1.0
Departure Delay in Minutes        0.9617 0.038 1.0
Arrival Delay in Minutes          0.9694 0.031 1.0
satisfaction                      0.5799 0.420 3.5

                       PA1  PA4  PA3  PA5  PA2  PA7  PA6
SS loadings           2.69 2.41 1.93 1.79 1.65 1.37 1.12
Proportion Var        0.11 0.10 0.08 0.07 0.07 0.06 0.05
Cumulative Var        0.11 0.21 0.29 0.37 0.44 0.49 0.54
Proportion Explained  0.21 0.19 0.15 0.14 0.13 0.11 0.09
Cumulative Proportion 0.21 0.39 0.54 0.68 0.81 0.91 1.00

Mean item complexity =  1.6
Test of the hypothesis that 7 factors are sufficient.

df null model =  276  with the objective function =  10.72 with Chi Square =  1113930
df of  the model are 129  and the objective function was  0.45 

The root mean square of the residuals (RMSR) is  0.02 
The df corrected root mean square of the residuals is  0.03 

The harmonic n.obs is  103879 with the empirical chi square  21337.29  with prob <  0 
The total n.obs was  103904  with Likelihood Chi Square =  46697.51  with prob <  0 

Tucker Lewis Index of factoring reliability =  0.911
RMSEA index =  0.059  and the 90 % confidence intervals are  0.058 0.059
BIC =  45207.4
Fit based upon off diagonal values = 0.99
Measures of factor score adequacy             
                                                   PA1  PA4  PA3  PA5  PA2  PA7
Correlation of (regression) scores with factors   0.94 0.92 0.99 0.89 0.87 0.85
Multiple R square of scores with factors          0.88 0.84 0.98 0.80 0.76 0.71
Minimum correlation of possible factor scores     0.77 0.68 0.97 0.60 0.52 0.43
                                                   PA6
Correlation of (regression) scores with factors   0.85
Multiple R square of scores with factors          0.72
Minimum correlation of possible factor scores     0.44

Output PFA menunjukkan setiap variabel memiliki nilai < 1, sehingga metode ekstraksi faktor PFA sudah tepat. Sehingga dapat dibentuk persamaan sebagai berikut. \(X_1 = - 0.03F_3 + 0.08 F_4 + 0.08 F_5+0.05F_6-0.03F_7 + u_1\)
\(X_2 = -0.01F_1+0.02F_2+0.04F_4+0.01F_5-0.03F_7+u_2\)
\(....\)
\(X_23 = -0.02 F_1 +0.98F_3-0.02F_4-0.01F_5-0.01F_6+0.35F_7+u_23\)
\(X_24 = 0.25F_1 -0.04F_2 - 0.03F_3+0.32F_4+0.50F_5+0.17F_6+0.35F_7+u_24\)

5.9 Interpretasi

> fa.diagram(FA,rsize = 1)

Diagram analisis faktor di atas menunjukkan bagaimana masing-masing variabel dihubungkan dengan faktor-faktor utama yang telah diekstraksi, yaitu PA1 hingga PA7. Berikut adalah interpretasi singkat berdasarkan diagram:

PA1: Faktor ini memiliki loading tinggi dengan variabel seperti Cleanliness, Food and drink, Inflight entertainment, Seat comfort, dan Inflight service (semua di sekitar 0.8 atau lebih), menunjukkan bahwa PA1 dapat diinterpretasikan sebagai faktor yang terkait dengan kualitas layanan penerbangan dan kenyamanan.

PA4: Faktor ini berhubungan dengan variabel seperti Baggage handling, On-board service, dan Leg room service, menunjukkan fokus pada faktor pelayanan bagasi dan kenyamanan fisik.

PA3: Hanya variabel Checkin service yang terhubung kuat ke PA3, yang menunjukkan bahwa faktor ini mungkin berhubungan dengan kualitas layanan check-in.

PA5: Faktor ini memiliki loading tinggi dengan Arrival Delay in Minutes dan Departure Delay in Minutes, sehingga dapat diartikan sebagai faktor yang terkait dengan ketepatan waktu penerbangan.

PA2: Faktor ini memiliki keterkaitan dengan variabel seperti Class, satisfaction, dan Flight Distance, yang mungkin berkaitan dengan faktor kepuasan dan pengalaman terbang berdasarkan kelas layanan dan jarak penerbangan.

PA7: Faktor ini terhubung dengan variabel seperti Gate location, Ease of Online booking, dan Departure/Arrival time convenient, menunjukkan faktor terkait aksesibilitas dan kenyamanan pemesanan.

PA6: Faktor ini berhubungan dengan variabel seperti Online boarding dan Customer Type, yang menunjukkan keterkaitan dengan proses pemesanan dan jenis pelanggan.

Secara keseluruhan, diagram ini membantu mengidentifikasi hubungan antar variabel yang lebih kompleks dan membantu mengelompokkan variabel-variabel yang memiliki karakteristik serupa ke dalam faktor-faktor utama yang mewakili struktur data.

6 Penutup

6.1 Kesimpulan

Berdasarkan hasil analisis faktor, terdapat tujuh faktor utama yang secara signifikan mewakili variabel-variabel dalam dataset. Setiap faktor memiliki hubungan kuat dengan kelompok variabel tertentu, yang memungkinkan interpretasi sebagai kategori atau dimensi yang relevan dalam konteks layanan penerbangan. Misalnya, faktor-faktor seperti kualitas layanan dan kenyamanan (PA1), ketepatan waktu (PA5), dan aksesibilitas pemesanan (PA7) muncul sebagai dimensi penting. Faktor-faktor ini menunjukkan area utama yang memengaruhi pengalaman pelanggan, mulai dari kenyamanan dan kualitas layanan hingga ketepatan waktu dan kemudahan akses.

Beberapa variabel, seperti Gender dan Checkin service, memiliki kontribusi rendah terhadap faktor-faktor utama, menunjukkan bahwa variabel-variabel ini mungkin kurang relevan untuk model atau memiliki hubungan yang lemah dengan faktor-faktor signifikan yang dihasilkan.

Dari hasil PCA dan FA pada data Kepuasan Penumpang Maskapai, maka dapat dilakukan perbaikan dan perubahan kebijakan, sebagai berikut:

  • Perbaikan Kualitas Layanan: Berdasarkan faktor terkait kenyamanan dan kualitas layanan (PA1), maskapai dapat fokus pada peningkatan aspek-aspek seperti hiburan dalam penerbangan, kenyamanan tempat duduk, dan layanan makanan. Ini dapat meningkatkan kepuasan pelanggan secara keseluruhan.

  • Peningkatan Ketepatan Waktu: Faktor terkait ketepatan waktu (PA5) menunjukkan bahwa keterlambatan keberangkatan dan kedatangan adalah dimensi penting yang memengaruhi pengalaman pelanggan. Maskapai sebaiknya fokus pada manajemen waktu yang lebih baik dan strategi untuk mengurangi keterlambatan.

  • Memudahkan Proses Pemesanan dan Boarding: Faktor aksesibilitas (PA7) menunjukkan pentingnya kenyamanan dalam pemesanan online dan boarding. Maskapai dapat mempertimbangkan untuk meningkatkan kemudahan dalam proses pemesanan dan memastikan informasi mengenai lokasi gerbang dan waktu keberangkatan tersedia secara mudah.

  • Segmentasi Pelanggan yang Lebih Baik: Mengingat adanya faktor yang terkait dengan jenis pelanggan dan preferensi boarding (PA6), maskapai dapat melakukan segmentasi pelanggan yang lebih terarah dan menyesuaikan layanan dengan kebutuhan segmen tertentu, seperti pelanggan bisnis atau rekreasi.

  • Evaluasi Variabel yang Kurang Relevan: Variabel yang memiliki kontribusi rendah, seperti Gender dan Checkin service, mungkin dapat dievaluasi kembali untuk menentukan apakah mereka perlu tetap dimasukkan dalam survei. Penghapusan variabel yang tidak signifikan dapat menyederhanakan analisis di masa depan.

Dengan menerapkan hal ini, maskapai dapat lebih memahami kebutuhan dan preferensi pelanggan serta meningkatkan pengalaman terbang mereka secara keseluruhan.

6.2 Saran

Saran bagi penelitian:

  • Sampel yang digunakan terlalu besar sehingga alangkah baiknya variabel yang digunakan lebih di ringkas lagi supaya menghasilkan komponen utama yang jauh lebih sedikit

  • Terdapat missing value yang perlu dilakukan perbaikan sehingga analisis perlu dilakukan lebih hati-hati

7 Daftar Pustaka

Nugroho, Sigit. (2008). Statistika Multivariat Terapan. Bengkulu: UNIB Press.

Hair, J. F., Black, W. C., Babin, B. J., & Anderson, R. E. (2010). Multivariate Data Analysis: A Global Perspective (7th ed.). Pearson Education.

Jolliffe, I. T. (2002). Principal Component Analysis (2nd ed.). Springer Series in Statistics.

sumber data: https://www.kaggle.com/datasets/teejmahal20/airline-passenger-satisfaction?resource=download