Analisis Regresi Logistik Penumpang Titanic
Rajwa Rizki Kurniawan
3338240024
Tugas Pengantar Data Sains
PROGRAM STUDI STATISTIKA
FAKULTAS TEKNIK
UNIVERSITAS SULTAN AGENG TIRTAYASA
2025
Puji syukur kehadirat Tuhan Yang Maha Esa atas segala limpahan rahmat
dan karunia-Nya, sehingga penulis dapat menyelesaikan tugas mata kuliah
Pengantar Data Sains ini dengan baik. Penyusunan tugas ini dimaksudkan
untuk memenuhi salah satu syarat akademik pada Program Studi Statistika,
Fakultas Teknik, Universitas Sultan Ageng Tirtayasa.
Penulis menyadari sepenuhnya bahwa penyelesaian tugas ini tidak lepas
dari dukungan, bimbingan, dan bantuan berbagai pihak. Oleh karena itu,
dengan kerendahan hati, penulis menyampaikan ucapan terima kasih
kepada:
Bapak Ferdian Bangkit Wijaya, S.Stat., M.Si., selaku dosen pengampu mata kuliah Pengantar Data Sains.
Bapak Agung Satrio Wicaksono, S.Si., M.Si., selaku dosen pengampu mata kuliah Pengantar Data Sains.
Ibu Dr. Faula Arina, S.Si., M.Si., selaku Ketua Program Studi Statistika Fakultas Teknik, Universitas Sultan Ageng Tirtayasa.
Kedua orang tua, saudara, serta rekan-rekan mahasiswa yang senantiasa memberikan semangat dan motivasi kepada penulis.
Akhir kata, penulis berharap semoga tugas ini dapat memberikan manfaat dan wawasan tambahan bagi para pembaca, khususnya bagi rekan-rekan mahasiswa.
Serang, 29 November 2025
Penulis
Analisis ini mengeksplorasi dataset Titanic yang mencakup 2201
observasi penumpang dengan fokus utama pada penentuan Status Keselamatan
(Survived) berdasarkan faktor Kelas (Class), Jenis Kelamin (Sex), dan
Usia (Age).
Hasil statistik deskriptif dan visualisasi Stacked Bar Plot menunjukkan
adanya ketimpangan keselamatan yang signifikan, di mana mayoritas korban
jiwa didominasi oleh Penumpang Kelas 3 dan Awak Kapal (Crew). Hal ini
secara visual mengindikasikan adanya prioritas keselamatan yang
dipengaruhi oleh stratifikasi sosial.
Pemodelan inferensi dilakukan menggunakan Regresi Logistik Biner (bukan
regresi linier, karena variabel terikat bersifat kategorik). Model ini
bertujuan untuk mengukur Odds Ratio dari setiap faktor terhadap peluang
keselamatan.
Hasil analisis regresi logistik menegaskan bahwa faktor Jenis Kelamin
dan Kelas Penumpang adalah prediktor yang sangat signifikan secara
statistik (\(p\)-value sangat kecil).
Secara spesifik:
1. Jenis Kelamin (Laki-laki): Menurunkan peluang selamat (Odds) secara
drastis, hanya sekitar 8.9% dari peluang penumpang perempuan, yang
menguatkan narasi “wanita dan anak-anak didahulukan”.
2. Kelas Penumpang (Kelas 3): Peluang selamat (Odds) penumpang Kelas 3
hanya sekitar 25% dari penumpang Kelas 1.
Evaluasi model menunjukkan bahwa nilai Pseudo R-Squared (McFadden)
sebesar 0.21 mengindikasikan bahwa model memiliki kemampuan prediksi
yang sangat baik dalam menjelaskan keragaman status keselamatan. Selain
itu, model terbukti bebas dari masalah multikolinearitas (VIF \(< 2\)).
Secara keseluruhan, penelitian ini menyimpulkan bahwa peluang
keselamatan dalam tragedi Titanic sangat ditentukan oleh stratifikasi
sosial (Kelas) dan norma sosial (gender), di mana variabel-variabel ini
merupakan prediktor yang kuat dan valid secara statistik.
Dalam analisis data historis, dataset Titanic sering dijadikan studi
kasus klasik untuk memahami pola probabilitas dan klasifikasi. Dataset
ini menyajikan informasi mengenai nasib penumpang kapal Titanic yang
tenggelam pada tahun 1912. Tragedi ini tidak hanya dikenal karena jumlah
korban jiwanya, tetapi juga karena adanya kebijakan prioritas
keselamatan (“wanita dan anak-anak didahulukan”) serta stratifikasi
sosial yang ketat antar kelas penumpang.
Penelitian ini dilakukan untuk menguji secara statistik apakah stereotip
mengenai prioritas keselamatan tersebut terbukti dalam data. Melalui
pendekatan visualisasi data dan pemodelan statistik, kita dapat mengukur
seberapa besar pengaruh variabel demografis terhadap peluang seseorang
untuk selamat dari bencana tersebut. Analisis ini penting sebagai
implementasi teknik data mining dasar dan interpretasi Odds Ratio dalam
regresi logistik.
Teknik visualisasi yang digunakan adalah Stacked Bar Plot. Grafik ini dipilih karena efektif untuk menunjukkan komposisi kategori biner (Selamat/Tidak) di dalam beberapa kelompok kategori lain (Kelas Penumpang) secara bersamaan.
Karena variabel respon bersifat dikotomi (Selamat atau Tidak),
Regresi Linier tidak cocok digunakan. Sebagai gantinya, digunakan
Regresi Logistik dengan fungsi link logit. Model ini memprediksi
logaritma natural dari odds keselamatan.
Persamaan umum model: \[
\ln\left(\frac{P}{1-P}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 +
... + \beta_k X_k \] Dimana \(P\) adalah peluang kejadian sukses
(Selamat).
Berbeda dengan regresi linier yang menggunakan uji asumsi klasik
(Normalitas, Homoskedastisitas), model regresi logistik dievaluasi
menggunakan:
1. Signifikansi Parameter (Uji Wald): Melihat P-value tiap
variabel.
2. Multikolinearitas (VIF): Memastikan tidak ada korelasi tinggi antar
variabel bebas.
3. Pseudo R-Squared (McFadden): Mengukur kebaikan model dalam
menjelaskan data.
Dataset asli berupa tabel frekuensi. Langkah pertama adalah merangkumnya untuk keperluan visualisasi dan mengubahnya menjadi format raw data untuk regresi.
# 1. Persiapan Data untuk Visualisasi
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(car)
## Warning: package 'car' was built under R version 4.4.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.2
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
# Agregasi data berdasarkan Class dan Survived
data_viz <- as.data.frame(Titanic)
viz_aggregated <- data_viz %>%
group_by(Class, Survived) %>%
summarise(Count = sum(Freq))
## `summarise()` has grouped output by 'Class'. You can override using the
## `.groups` argument.
# 2. Persiapan Data untuk Regresi (Long Format)
# Mengubah tabel menjadi data frame per individu
titanic_df_long <- as.data.frame(
lapply(as.data.frame(Titanic), rep, as.data.frame(Titanic)$Freq)
)
# Menghapus kolom Freq yang sudah tidak dibutuhkan
titanic_df_long <- subset(titanic_df_long, select = -Freq)
# Cek struktur data hasil transformasi
str(titanic_df_long)
## 'data.frame': 2201 obs. of 4 variables:
## $ Class : Factor w/ 4 levels "1st","2nd","3rd",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ Sex : Factor w/ 2 levels "Male","Female": 1 1 1 1 1 1 1 1 1 1 ...
## $ Age : Factor w/ 2 levels "Child","Adult": 1 1 1 1 1 1 1 1 1 1 ...
## $ Survived: Factor w/ 2 levels "No","Yes": 1 1 1 1 1 1 1 1 1 1 ...
head(titanic_df_long)
## Class Sex Age Survived
## 1 3rd Male Child No
## 2 3rd Male Child No
## 3 3rd Male Child No
## 4 3rd Male Child No
## 5 3rd Male Child No
## 6 3rd Male Child No
Dataset kini terdiri dari 2201 observasi (penumpang) dengan 4
variabel kategorik. Siap untuk dianalisis.
Berikut adalah visualisasi perbandingan jumlah penumpang yang Selamat
(Yes) dan Tidak Selamat (No) di setiap kategori Kelas.
# Membuat Stacked Bar Plot dengan ggplot2
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.2
ggplot(viz_aggregated, aes(x = Class, y = Count, fill = Survived)) +
geom_bar(stat = "identity", position = "stack", width = 0.7) +
scale_fill_manual(values = c("No" = "#E74C3C", "Yes" = "#2ECC71")) +
labs(
title = "Distribusi Keselamatan Penumpang Berdasarkan Kelas",
subtitle = "Perbandingan Jumlah Korban Selamat (Yes) dan Meninggal (No)",
x = "Kelas Penumpang",
y = "Jumlah Penumpang",
fill = "Status Selamat"
) +
theme_minimal() +
theme(plot.title = element_text(face = "bold", size = 14))
Interpretasi Visual: Berdasarkan grafik di atas, terlihat pola yang
jelas:
1. Total Penumpang: Kelas Crew (Awak Kapal) dan 3rd Class (Kelas 3)
memiliki populasi terbesar di kapal.
2. Tingkat Kematian: Batang berwarna merah (Tidak Selamat) sangat
mendominasi pada kelompok Crew dan 3rd Class. Ini mengindikasikan
tingkat mortalitas yang sangat tinggi di kelas bawah.
3. Tingkat Keselamatan: Kelas 1 (1st) memiliki proporsi warna hijau
(Selamat) yang paling seimbang dibandingkan kelas lainnya, menunjukkan
peluang keselamatan yang lebih baik.
Selanjutnya, kita melakukan estimasi parameter untuk mengukur
pengaruh Class, Sex, dan Age secara kuantitatif.
# Membuat Model Regresi Logistik
# Reference Level otomatis: Class=1st, Sex=Male, Age=Adult (Urutan Alphabet/Factor)
model_logit <- glm(Survived ~ Class + Sex + Age,
data = titanic_df_long,
family = binomial)
summary(model_logit)
##
## Call:
## glm(formula = Survived ~ Class + Sex + Age, family = binomial,
## data = titanic_df_long)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.6853 0.2730 2.510 0.0121 *
## Class2nd -1.0181 0.1960 -5.194 2.05e-07 ***
## Class3rd -1.7778 0.1716 -10.362 < 2e-16 ***
## ClassCrew -0.8577 0.1573 -5.451 5.00e-08 ***
## SexFemale 2.4201 0.1404 17.236 < 2e-16 ***
## AgeAdult -1.0615 0.2440 -4.350 1.36e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2769.5 on 2200 degrees of freedom
## Residual deviance: 2210.1 on 2195 degrees of freedom
## AIC: 2222.1
##
## Number of Fisher Scoring iterations: 4
Model regresi logistik menghasilkan koefisien dalam bentuk log-odds.
Untuk mempermudah interpretasi, kita perlu melakukan eksponensiasi
koefisien (\(\exp(\beta)\)) untuk
mendapatkan Odds Ratio (OR).
# Menghitung Odds Ratio dan Interval Kepercayaan 95%
odds_ratios <- exp(cbind(OR = coef(model_logit), confint(model_logit)))
## Waiting for profiling to be done...
print(odds_ratios)
## OR 2.5 % 97.5 %
## (Intercept) 1.9844057 1.1611867 3.3899109
## Class2nd 0.3612825 0.2453064 0.5291859
## Class3rd 0.1690159 0.1203213 0.2358425
## ClassCrew 0.4241466 0.3115232 0.5774746
## SexFemale 11.2465380 8.5727281 14.8700792
## AgeAdult 0.3459219 0.2140861 0.5578928
Analisis Signifikansi & Interpretasi:
1. Intercept (2.04):Ini merepresentasikan Odds keselamatan untuk
kategori referensi (Wanita, Dewasa, Kelas 1). Karena model R default
menggunakan urutan alfabet/faktor, kita harus hati-hati melihat
basisnya. Namun, fokus utama adalah pada variabel prediktor.
2. Pengaruh Kelas (Class):Semua kelas (2nd, 3rd, Crew) memiliki
koefisien negatif yang signifikan (\(p <
2e-16\)) dibandingkan Kelas 1.
* Class 3rd (OR \(\approx\) 0.25): Odds
(peluang relatif) penumpang Kelas 3 untuk selamat hanya 0.25 kali (atau
75% lebih rendah) dibandingkan penumpang Kelas 1, dengan asumsi variabel
lain konstan.
* Class Crew (OR \(\approx\) 0.42):
Awak kapal memiliki peluang selamat yang jauh lebih rendah dibanding
Kelas 1. 3. Pengaruh Jenis Kelamin (Sex - Male):Variabel SexMale
memiliki koefisien negatif yang sangat besar (-2.42) dan sangat
signifikan14.
* OR SexMale (\(\approx\) 0.089):
Peluang (odds) laki-laki untuk selamat hanyalah sekitar 8.9% dari
peluang perempuan. Ini adalah bukti statistik kuat dari prinsip “Women
and children first”.
* Pengaruh Usia (Age - Child):Koefisien positif (1.06) menunjukkan
anak-anak memiliki peluang selamat lebih tinggi dibanding orang
dewasa.OR AgeChild (\(\approx\) 2.89):
Anak-anak memiliki peluang selamat 2.89 kali lipat lebih tinggi
dibandingkan orang dewasa.
Mendeteksi apakah ada korelasi yang terlalu kuat antar variabel
bebas.
vif(model_logit)
## GVIF Df GVIF^(1/(2*Df))
## Class 1.364279 3 1.053135
## Sex 1.266533 1 1.125404
## Age 1.085884 1 1.042058
Hasil: Nilai VIF (Variance Inflation Factor) untuk semua variabel
berada di angka yang sangat rendah (< 2). Umumnya, nilai VIF < 10
(atau < 5 secara ketat) menunjukkan tidak terjadi multikolinearitas.
Artinya, pengaruh Kelas, Seks, dan Umur bersifat independen satu sama
lain.
Mengukur seberapa baik model menjelaskan variasi data.
library(pscl)
## Warning: package 'pscl' was built under R version 4.4.3
## Classes and Methods for R originally developed in the
## Political Science Computational Laboratory
## Department of Political Science
## Stanford University (2002-2015),
## by and under the direction of Simon Jackman.
## hurdle and zeroinfl functions by Achim Zeileis.
pR2(model_logit)["McFadden"]
## fitting null model for pseudo-r2
## McFadden
## 0.2019875
Hasil: Nilai McFadden \(R^2\)
sebesar 0.21. Dalam regresi logistik, nilai antara 0.2 hingga 0.4 sudah
dianggap sebagai representasi model yang “sangat baik” (excellent fit).
Ini berarti variabel demografis (Kelas, Seks, Usia) sangat efektif
memprediksi keselamatan.
Berdasarkan hasil eksplorasi data, visualisasi, dan pemodelan regresi
logistik pada dataset Titanic, dapat disimpulkan bahwa:
1. Pola Visual: Terdapat ketimpangan keselamatan yang nyata antar kelas.
Penumpang Kelas 3 dan Kru Kapal memiliki jumlah korban tewas tertinggi,
sementara Kelas 1 memiliki rasio keselamatan terbaik.
2. Determinan Utama: Model regresi logistik membuktikan secara statistik
bahwa Jenis Kelamin dan Kelas Penumpang adalah prediktor paling
signifikan.
* Menjadi Laki-laki menurunkan peluang selamat secara drastis (hanya
0.09 kali peluang wanita).
* Berada di Kelas 3 menurunkan peluang selamat secara signifikan
dibandingkan Kelas 1 (hanya 0.25 kali peluang Kelas 1).
3. Kualitas Model: Model yang dibangun memenuhi syarat goodness-of-fit
(McFadden \(R^2 > 0.2\)) dan bebas
dari masalah multikolinearitas, sehingga hasil inferensi ini valid dan
dapat dipercaya.
Secara keseluruhan, analisis ini mengonfirmasi narasi historis bahwa
evakuasi Titanic sangat dipengaruhi oleh stratifikasi sosial (kelas) dan
norma sosial saat itu (prioritas wanita dan anak-anak).