1. Apa saja permasalahan dalam dataset tersebut?

# Membaca dataset
titanic <- read.csv("~/smt 4/pemodelan statistika dan simulasi/Titanic-Dataset.csv", sep=";", stringsAsFactors=FALSE)
# Mengecek missing values
colSums(is.na(titanic))
## PassengerId    Survived      Pclass        Name      Gender         Age 
##           0           0           0           0           0         177 
##       SibSp       Parch      Ticket        Fare       Cabin    Embarked 
##           0           0           0           0           0           0
# Mengecek duplikasi
sum(duplicated(titanic$PassengerId))
## [1] 0
# Mengecek tipe data
sapply(titanic, class)
## PassengerId    Survived      Pclass        Name      Gender         Age 
##   "integer"   "integer"   "integer" "character" "character"   "numeric" 
##       SibSp       Parch      Ticket        Fare       Cabin    Embarked 
##   "integer"   "integer" "character" "character" "character" "character"
# Mengecek nilai unik di kolom kategorikal
table(titanic$Gender)
## 
## female   male 
##    314    577
table(titanic$Embarked)
## 
##       C   Q   S 
##   2 168  77 644
# Ringkasan statistik untuk mendeteksi anomali
summary(titanic)
##   PassengerId       Survived          Pclass          Name          
##  Min.   :  1.0   Min.   :0.0000   Min.   :1.000   Length:891        
##  1st Qu.:223.5   1st Qu.:0.0000   1st Qu.:2.000   Class :character  
##  Median :446.0   Median :0.0000   Median :3.000   Mode  :character  
##  Mean   :446.0   Mean   :0.3838   Mean   :2.309                     
##  3rd Qu.:668.5   3rd Qu.:1.0000   3rd Qu.:3.000                     
##  Max.   :891.0   Max.   :1.0000   Max.   :3.000                     
##                                                                     
##     Gender               Age            SibSp           Parch       
##  Length:891         Min.   : 0.42   Min.   :0.000   Min.   :0.0000  
##  Class :character   1st Qu.:20.12   1st Qu.:0.000   1st Qu.:0.0000  
##  Mode  :character   Median :28.00   Median :0.000   Median :0.0000  
##                     Mean   :29.70   Mean   :0.523   Mean   :0.3816  
##                     3rd Qu.:38.00   3rd Qu.:1.000   3rd Qu.:0.0000  
##                     Max.   :80.00   Max.   :8.000   Max.   :6.0000  
##                     NA's   :177                                     
##     Ticket              Fare              Cabin             Embarked        
##  Length:891         Length:891         Length:891         Length:891        
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
## 

Dataset Titanic memiliki beberapa permasalahan yang perlu diperbaiki sebelum analisis lebih lanjut. Beberapa kolom seperti Age, Cabin, dan Embarked memiliki missing values yang perlu diisi atau ditangani dengan strategi tertentu. Selain itu, terdapat kemungkinan duplikasi data berdasarkan PassengerId, yang harus diverifikasi agar tidak mempengaruhi hasil analisis. Tipe data pada beberapa kolom juga tidak sesuai, seperti Fare yang seharusnya numerik dan Gender yang masih berbentuk teks sehingga perlu dikonversi ke format angka. Distribusi kategori pada kolom Gender dan Embarked juga harus diperiksa untuk memastikan keseimbangannya. Terakhir, potensi adanya anomali dalam data numerik, seperti nilai ekstrem pada Fare dan Age, perlu dianalisis lebih lanjut. Oleh karena itu, preprocessing data sangat diperlukan agar dataset lebih bersih dan siap digunakan dalam analisis atau model prediktif.

2. Teknik preprocessing apa yang paling sesuai untuk menangani permasalahan tersebut?

Diperlukan beberapa teknik preprocessing yang tepat. Missing values pada kolom Age dapat diisi dengan median atau imputasi berdasarkan kelompok Pclass dan Gender, sementara kolom Cabin, yang memiliki banyak data hilang, bisa dihapus atau diubah menjadi fitur biner untuk menunjukkan apakah seorang penumpang memiliki kabin atau tidak. Pada kolom Embarked, nilai yang hilang dapat diisi dengan modus, yaitu nilai yang paling sering muncul. Jika ditemukan data duplikat berdasarkan PassengerId, maka baris yang duplikat harus dihapus agar tidak mempengaruhi analisis. Selain itu, tipe data perlu disesuaikan, seperti mengubah Gender menjadi numerik (male = 0, female = 1) dan memastikan Fare berada dalam format numerik. Untuk menyeimbangkan distribusi kategori, kategori dengan frekuensi yang sangat kecil bisa dikelompokkan ulang atau dilakukan metode sampling agar distribusi lebih seimbang. Anomali dalam data, seperti nilai ekstrem pada Age dan Fare, dapat dideteksi dan ditangani menggunakan metode IQR (Interquartile Range) atau Z-score. Jika dataset akan digunakan dalam model machine learning, normalisasi atau standarisasi pada Age dan Fare juga bisa diterapkan agar skala data lebih seragam. Dengan menerapkan teknik preprocessing ini, dataset akan menjadi lebih bersih dan siap untuk analisis atau pemodelan lebih lanjut.

3. Bagaimana dampak preprocessing terhadap analisis data selanjutnya?

Preprocessing data memiliki dampak yang signifikan terhadap analisis data selanjutnya. Dengan menangani missing values, dataset menjadi lebih lengkap dan mengurangi bias dalam perhitungan statistik atau model prediktif. Menghapus duplikasi data memastikan bahwa setiap entri unik, sehingga tidak ada pengaruh ganda yang dapat menyebabkan hasil analisis menjadi tidak valid. Penyesuaian tipe data, seperti mengubah Gender menjadi numerik dan memastikan Fare berada dalam format yang benar, membuat dataset lebih mudah diolah dalam analisis statistik maupun machine learning. Selain itu, menyeimbangkan distribusi kategori dapat meningkatkan keakuratan model dengan mencegah ketimpangan dalam prediksi. Penanganan anomali pada Age dan Fare membantu mengurangi distorsi dalam hasil analisis, terutama dalam metode berbasis regresi atau clustering. Jika diterapkan dalam machine learning, normalisasi dan standarisasi memungkinkan algoritma bekerja lebih optimal dengan skala data yang seragam. Secara keseluruhan, preprocessing meningkatkan kualitas dataset, membuat analisis lebih akurat, dan memastikan hasil yang lebih dapat diandalkan.