library(ggplot2)
library(readxl)
library(ggthemes)
library(gridExtra)
Berikut adalah data trenyang telah di import dari file excel:
setwd("C:/test/testR")
titanic <- read_excel("titanic.xlsx")
head(titanic)
## # A tibble: 6 × 8
## Survived Pclass Name Sex Age Siblings/Spouses Abo…¹
## <dbl> <dbl> <chr> <chr> <dbl> <dbl>
## 1 0 3 Mr. Owen Harris Braund male 22 1
## 2 1 1 Mrs. John Bradley (Florenc… fema… 38 1
## 3 1 3 Miss. Laina Heikkinen fema… 26 0
## 4 1 1 Mrs. Jacques Heath (Lily M… fema… 35 1
## 5 0 3 Mr. William Henry Allen male 35 0
## 6 0 3 Mr. James Moran male 27 0
## # ℹ abbreviated name: ¹​`Siblings/Spouses Aboard`
## # ℹ 2 more variables: `Parents/Children Aboard` <dbl>, Fare <dbl>
sex_count <- table(titanic$Sex)
sex_percent <- round(100 * sex_count / sum(sex_count), 1)
sex_data <- data.frame(
Sex = names(sex_count),
Count = as.numeric(sex_count),
Percent = as.numeric(sex_percent)
)
ggplot(sex_data, aes(x = "", y = Count, fill = Sex)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
geom_text(aes(label = paste0(Percent, "%")), position = position_stack(vjust = 0.5)) +
labs(title = "Proporsi Jenis Kelamin", fill = "Jenis Kelamin") +
theme_void()
Deskripsi: - Pie chart ini menunjukkan proporsi penumpang berdasarkan jenis kelamin. Dari chart ini, terlihat bahwa 64.6% penumpang adalah laki-laki, sedangkan 35.4% adalah perempuan. Hal ini menunjukkan bahwa jumlah penumpang laki-laki lebih dominan dibandingkan perempuan.
ggplot(titanic, aes(x = as.factor(Pclass))) +
geom_bar(fill = "skyblue") +
labs(title = "Jumlah Penumpang per Kelas", x = "Kelas", y = "Jumlah") +
theme_minimal()
Deskripsi: - Bar chart ini menunjukkan jumlah penumpang di setiap kelas (Pclass). Kelas 3 (ekonomi) memiliki jumlah penumpang terbanyak, diikuti oleh Kelas 1 (pertama) dan Kelas 2 (menengah).
ggplot(titanic, aes(x = Age)) +
geom_histogram(bins = 20, fill = "blue", alpha = 0.7, color = "black") +
labs(title = "Distribusi Umur", x = "Usia", y = "Frekuensi") +
theme_minimal()
Deskripsi: - Histogram ini menunjukkan distribusi usia penumpang. Sebagian besar penumpang berada dalam rentang usia 20-40 tahun, dengan puncak di sekitar usia 20-30 tahun. Ada juga beberapa penumpang anak-anak (usia di bawah 10 tahun) dan penumpang yang lebih tua (usia di atas 60 tahun).
ggplot(titanic, aes(x = Fare)) +
geom_density(fill = "green", alpha = 0.5) +
labs(title = "Distribusi Tarif Tiket", x = "Tarif", y = "Kepadatan") +
theme_minimal()
Deskripsi: - Density plot ini menunjukkan distribusi tarif tiket yang dibayar oleh penumpang. Sebagian besar penumpang membayar tarif yang relatif rendah, dengan puncak di sekitar tarif 10-20. Namun, ada beberapa penumpang yang membayar tarif sangat tinggi, yang mungkin berasal dari Kelas 1.
ggplot(titanic, aes(x = Sex, y = Age, fill = Sex)) +
geom_boxplot() +
labs(title = "Boxplot Usia Berdasarkan Jenis Kelamin", x = "Jenis Kelamin", y = "Usia") +
theme_minimal()
Deskripsi: - Boxplot ini membandingkan distribusi usia penumpang berdasarkan jenis kelamin. Median usia penumpang laki-laki sedikit lebih tinggi daripada perempuan. Rentang usia penumpang laki-laki lebih luas, dengan beberapa outlier di usia yang lebih tua. Penumpang perempuan cenderung memiliki distribusi usia yang lebih terkonsentrasi di rentang yang lebih muda.
age_summary <- summary(titanic$Age)
age_mean <- mean(titanic$Age, na.rm = TRUE)
age_median <- median(titanic$Age, na.rm = TRUE)
age_mode <- as.numeric(names(sort(table(titanic$Age), decreasing = TRUE)[1]))
age_q1 <- quantile(titanic$Age, 0.25, na.rm = TRUE)
age_q3 <- quantile(titanic$Age, 0.75, na.rm = TRUE)
age_range <- range(titanic$Age, na.rm = TRUE)
age_var <- var(titanic$Age, na.rm = TRUE)
age_sd <- sd(titanic$Age, na.rm = TRUE)
age_stats <- data.frame(
Statistic = c("Mean", "Median", "Mode", "Q1", "Q3", "Range", "Variance", "Standard Deviation"),
Value = c(age_mean, age_median, age_mode, age_q1, age_q3, paste(age_range, collapse = " - "), age_var, age_sd)
)
print(age_stats)
## Statistic Value
## 1 Mean 29.4714430665163
## 2 Median 28
## 3 Mode 22
## 4 Q1 20.25
## 5 Q3 38
## 6 Range 0.42 - 80
## 7 Variance 199.428297012274
## 8 Standard Deviation 14.1219084054626
Interpretasi:
Mean_Age: Rata-rata usia penumpang adalah sekitar 29.7 tahun.
Median_Age: Median usia penumpang adalah 28 tahun, yang menunjukkan bahwa setengah dari penumpang berusia di bawah 28 tahun.
Mode_Age: Modus usia penumpang adalah 24 tahun, yang berarti usia 24 tahun adalah yang paling umum di antara penumpang.
Q1_Age: Kuartil pertama (Q1) adalah 20 tahun, yang berarti 25% penumpang berusia di bawah 20 tahun.
Q3_Age: Kuartil ketiga (Q3) adalah 38 tahun, yang berarti 75% penumpang berusia di bawah 38 tahun.
Range_Age: Rentang usia penumpang adalah dari 0.42 tahun hingga 80 tahun.
Variance_Age: Varians usia penumpang adalah sekitar 199.42, yang menunjukkan tingkat penyebaran usia yang cukup besar dari rata-rata.
SD_Age: Standar deviasi usia penumpang adalah sekitar 14.12 tahun, yang menunjukkan bahwa usia penumpang cukup bervariasi dari rata-rata.