Bộ dữ liệu “Titanic_train” cung cấp thông tin về hành khách trên chuyến tàu Titanic, bao gồm các thuộc tính như kết quả sống sót, hạng vé, giới tính, tuổi, số lượng người thân đi cùng, giá vé và thông tin về cabin và cảng lên tàu. Đây là một bộ dữ liệu phổ biến để thực hiện các tác vụ học máy như phân loại, hồi quy và khám phá thông tin.
Bộ dữ liệu “Titanic_train” trong gói titanic của R chứa
thông tin về các hành khách trên chuyến tàu Titanic. Dưới đây là mô tả
chi tiết về các biến trong bộ dữ liệu “Titanic_train”:
PassengerId: Mã số duy nhất định danh mỗi hành khách
trên chuyến tàu Titanic.
Survived: Biến đầu ra (kết quả sống sót) cho biết
liệu hành khách đã sống sót hay không. Giá trị 0 đại diện cho không sống
sót và giá trị 1 đại diện cho sống sót.
Pclass: Biến định danh hạng vé của hành khách trên
chuyến tàu. Có ba hạng vé: hạng 1 (giới thượng lưu), hạng 2 (giới trung
lưu), và hạng 3 (giới lao động).
Name: Tên của hành khách.
Sex: Giới tính của hành khách. Có hai giá trị:
“male” (nam) và “female” (nữ).
Age: Tuổi của hành khách. Lưu ý rằng một số giá trị
có thể bị thiếu (NA).
SibSp: Số lượng anh/chị/em ruột hoặc vợ/chồng đi
cùng trên chuyến tàu.
Parch: Số lượng cha/mẹ hoặc con cái đi cùng trên
chuyến tàu.
Ticket: Số vé của hành khách.
Fare: Giá vé mà hành khách đã trả.
Cabin: Số hiệu phòng cabin của hành khách. Một số
giá trị có thể bị thiếu (NA).
Embarked: Cảng mà hành khách lên tàu. Có ba cảng:
“C” (Cherbourg), “Q” (Queenstown), và “S” (Southampton). Một số giá trị
có thể bị thiếu (NA).
Trước tiên muốn lấy dữ liệu titanic_train thì tôi cần phải gọi gói phackage titanic Sau đó ta sử dụng lệnh dât để lấy dữ liệu từ package trên
library(titanic)
## Warning: package 'titanic' was built under R version 4.3.1
data(titanic_train)
Kế tiếp tôi tiếp tục thực hiện đặt tên cho dữ liệu và các biến trong dữ liệu bằng các câu lên gán và name. Cuối cùng tôi thực hiền các câu lệnh, hàm thống kê, phân tích dữ liệu, lập bảng tần số và tính toán kèm nhận xét thông qua số liệu
# gán tập dữ liệu
t <- titanic_train
str(t)
## 'data.frame': 891 obs. of 12 variables:
## $ PassengerId: int 1 2 3 4 5 6 7 8 9 10 ...
## $ Survived : int 0 1 1 1 0 0 0 0 1 1 ...
## $ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
## $ Name : chr "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
## $ Sex : chr "male" "female" "female" "female" ...
## $ Age : num 22 38 26 35 35 NA 54 2 27 14 ...
## $ SibSp : int 1 1 0 1 0 0 0 3 0 1 ...
## $ Parch : int 0 0 0 0 0 0 0 1 2 0 ...
## $ Ticket : chr "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
## $ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
## $ Cabin : chr "" "C85" "" "C123" ...
## $ Embarked : chr "S" "C" "S" "S" ...
# đặt tên các biến trong tập t
names(t) <-c('Pas','Su','Pc','N','Se','A','Si','Par','T','F','C','E')
#Lấy 6 dữ liệu trong tập t
head(t)
## Pas Su Pc N Se A Si
## 1 1 0 3 Braund, Mr. Owen Harris male 22 1
## 2 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1
## 3 3 1 3 Heikkinen, Miss. Laina female 26 0
## 4 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1
## 5 5 0 3 Allen, Mr. William Henry male 35 0
## 6 6 0 3 Moran, Mr. James male NA 0
## Par T F C E
## 1 0 A/5 21171 7.2500 S
## 2 0 PC 17599 71.2833 C85 C
## 3 0 STON/O2. 3101282 7.9250 S
## 4 0 113803 53.1000 C123 S
## 5 0 373450 8.0500 S
## 6 0 330877 8.4583 Q
#Gán biến F vào Far
Far <- t$F
#Lọc dữ liệu giá vé mà khách trả nhiều hơn 30.000 đô la và ít hơn 40.000 đô la
Far30_40 <- Far[Far>30 & Far<40]
Far30_40
## [1] 30.0708 31.2750 35.5000 31.3875 39.6875 35.5000 34.3750 34.6542 31.2750
## [10] 30.0708 36.7500 34.3750 39.6875 33.5000 30.6958 31.3875 39.0000 31.0000
## [19] 31.3875 31.3875 39.6875 31.0000 30.5000 35.5000 35.0000 32.5000 34.3750
## [28] 30.5000 38.5000 30.5000 34.0208 31.2750 31.2750 36.7500 39.6000 33.0000
## [37] 30.5000 31.2750 39.0000 32.3208 30.5000 39.6875 35.5000 39.0000 39.0000
## [46] 39.6875 33.0000 34.3750 39.6000 30.6958 31.2750 37.0042 39.6875 37.0042
## [55] 31.0000 33.0000 31.2750 39.4000
Nhận xét: Sau khi lọc dữ liệu ta thấy được có 14/891 vé có giá trị từ 30.000 đô tới 40.000 đô
#Tổng chi phí của 14 giá vé
sum(Far)
## [1] 28693.95
#Gán biến A vào AgE
Age <- t$A
# Lọc dữ liệu những người trên 40 tuổi có giá vé hơn 50.000 đô la
Age40Far50 <- t[t$A>40&t$F>50,]
Age40Far50
## Pas Su Pc N Se A
## 7 7 0 1 McCarthy, Mr. Timothy J male 54
## NA NA NA NA <NA> <NA> NA
## 36 36 0 1 Holverson, Mr. Alexander Oskar male 42
## 53 53 1 1 Harper, Mrs. Henry Sleeper (Myna Haxtun) female 49
## 55 55 0 1 Ostby, Mr. Engelhart Cornelius male 65
## 63 63 0 1 Harris, Mr. Henry Birkhardt male 45
## 93 93 0 1 Chaffee, Mr. Herbert Fuller male 46
## 111 111 0 1 Porter, Mr. Walter Chamberlain male 47
## 125 125 0 1 White, Mr. Percival Wayland male 54
## 156 156 0 1 Williams, Mr. Charles Duane male 51
## NA.1 NA NA NA <NA> <NA> NA
## NA.2 NA NA NA <NA> <NA> NA
## NA.3 NA NA NA <NA> <NA> NA
## 196 196 1 1 Lurette, Miss. Elise female 58
## NA.4 NA NA NA <NA> <NA> NA
## 246 246 0 1 Minahan, Dr. William Edward male 44
## NA.5 NA NA NA <NA> <NA> NA
## 263 263 0 1 Taussig, Mr. Emil male 52
## 269 269 1 1 Graham, Mrs. William Thompson (Edith Junkins) female 58
## 276 276 1 1 Andrews, Miss. Kornelia Theodosia female 63
## 300 300 1 1 Baxter, Mrs. James (Helene DeLaudeniere Chaput) female 50
## NA.6 NA NA NA <NA> <NA> NA
## NA.7 NA NA NA <NA> <NA> NA
## NA.8 NA NA NA <NA> <NA> NA
## 338 338 1 1 Burns, Miss. Elizabeth Margaret female 41
## 367 367 1 1 Warren, Mrs. Frank Manley (Anna Sophia Atkinson) female 60
## NA.9 NA NA NA <NA> <NA> NA
## 381 381 1 1 Bidois, Miss. Rosalie female 42
## 435 435 0 1 Silvey, Mr. William Baird male 50
## 439 439 0 1 Fortune, Mr. Mark male 64
## 454 454 1 1 Goldenberg, Mr. Samuel L male 49
## NA.10 NA NA NA <NA> <NA> NA
## NA.11 NA NA NA <NA> <NA> NA
## 497 497 1 1 Eustis, Miss. Elizabeth Mussey female 54
## 514 514 1 1 Rothschild, Mrs. Martin (Elizabeth L. Barrett) female 54
## 524 524 1 1 Hippach, Mrs. Louis Albert (Ida Sophia Fischer) female 44
## NA.12 NA NA NA <NA> <NA> NA
## 545 545 0 1 Douglas, Mr. Walter Donald male 50
## NA.13 NA NA NA <NA> <NA> NA
## 572 572 1 1 Appleton, Mrs. Edward Dale (Charlotte Lamson) female 53
## 588 588 1 1 Frolicher-Stehli, Mr. Maxmillian male 60
## 592 592 1 1 Stephenson, Mrs. Walter Bertram (Martha Eustis) female 52
## 600 600 1 1 Duff Gordon, Sir. Cosmo Edmund ("Mr Morgan") male 49
## 622 622 1 1 Kimball, Mr. Edwin Nelson Jr male 42
## NA.14 NA NA NA <NA> <NA> NA
## 646 646 1 1 Harper, Mr. Henry Sleeper male 48
## 660 660 0 1 Newell, Mr. Arthur Webster male 58
## 661 661 1 1 Frauenthal, Dr. Henry William male 50
## NA.15 NA NA NA <NA> <NA> NA
## NA.16 NA NA NA <NA> <NA> NA
## 699 699 0 1 Thayer, Mr. John Borland male 49
## 713 713 1 1 Taylor, Mr. Elmer Zebley male 48
## 746 746 0 1 Crosby, Capt. Edward Gifford male 70
## 755 755 1 2 Herman, Mrs. Samuel (Jane Laver) female 48
## 766 766 1 1 Hogeboom, Mrs. John C (Anna Andrews) female 51
## 780 780 1 1 Robert, Mrs. Edward Scott (Elisabeth Walton McMillan) female 43
## 790 790 0 1 Guggenheim, Mr. Benjamin male 46
## NA.17 NA NA NA <NA> <NA> NA
## 821 821 1 1 Hays, Mrs. Charles Melville (Clara Jennings Gregg) female 52
## NA.18 NA NA NA <NA> <NA> NA
## 830 830 1 1 Stone, Mrs. George Nelson (Martha Evelyn) female 62
## NA.19 NA NA NA <NA> <NA> NA
## NA.20 NA NA NA <NA> <NA> NA
## 857 857 1 1 Wick, Mrs. George Dennick (Mary Hitchcock) female 45
## NA.21 NA NA NA <NA> <NA> NA
## 872 872 1 1 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47
## 880 880 1 1 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56
## Si Par T F C E
## 7 0 0 17463 51.8625 E46 S
## NA NA NA <NA> NA <NA> <NA>
## 36 1 0 113789 52.0000 S
## 53 1 0 PC 17572 76.7292 D33 C
## 55 0 1 113509 61.9792 B30 C
## 63 1 0 36973 83.4750 C83 S
## 93 1 0 W.E.P. 5734 61.1750 E31 S
## 111 0 0 110465 52.0000 C110 S
## 125 0 1 35281 77.2875 D26 S
## 156 0 1 PC 17597 61.3792 C
## NA.1 NA NA <NA> NA <NA> <NA>
## NA.2 NA NA <NA> NA <NA> <NA>
## NA.3 NA NA <NA> NA <NA> <NA>
## 196 0 0 PC 17569 146.5208 B80 C
## NA.4 NA NA <NA> NA <NA> <NA>
## 246 2 0 19928 90.0000 C78 Q
## NA.5 NA NA <NA> NA <NA> <NA>
## 263 1 1 110413 79.6500 E67 S
## 269 0 1 PC 17582 153.4625 C125 S
## 276 1 0 13502 77.9583 D7 S
## 300 0 1 PC 17558 247.5208 B58 B60 C
## NA.6 NA NA <NA> NA <NA> <NA>
## NA.7 NA NA <NA> NA <NA> <NA>
## NA.8 NA NA <NA> NA <NA> <NA>
## 338 0 0 16966 134.5000 E40 C
## 367 1 0 110813 75.2500 D37 C
## NA.9 NA NA <NA> NA <NA> <NA>
## 381 0 0 PC 17757 227.5250 C
## 435 1 0 13507 55.9000 E44 S
## 439 1 4 19950 263.0000 C23 C25 C27 S
## 454 1 0 17453 89.1042 C92 C
## NA.10 NA NA <NA> NA <NA> <NA>
## NA.11 NA NA <NA> NA <NA> <NA>
## 497 1 0 36947 78.2667 D20 C
## 514 1 0 PC 17603 59.4000 C
## 524 0 1 111361 57.9792 B18 C
## NA.12 NA NA <NA> NA <NA> <NA>
## 545 1 0 PC 17761 106.4250 C86 C
## NA.13 NA NA <NA> NA <NA> <NA>
## 572 2 0 11769 51.4792 C101 S
## 588 1 1 13567 79.2000 B41 C
## 592 1 0 36947 78.2667 D20 C
## 600 1 0 PC 17485 56.9292 A20 C
## 622 1 0 11753 52.5542 D19 S
## NA.14 NA NA <NA> NA <NA> <NA>
## 646 1 0 PC 17572 76.7292 D33 C
## 660 0 2 35273 113.2750 D48 C
## 661 2 0 PC 17611 133.6500 S
## NA.15 NA NA <NA> NA <NA> <NA>
## NA.16 NA NA <NA> NA <NA> <NA>
## 699 1 1 17421 110.8833 C68 C
## 713 1 0 19996 52.0000 C126 S
## 746 1 1 WE/P 5735 71.0000 B22 S
## 755 1 2 220845 65.0000 S
## 766 1 0 13502 77.9583 D11 S
## 780 0 1 24160 211.3375 B3 S
## 790 0 0 PC 17593 79.2000 B82 B84 C
## NA.17 NA NA <NA> NA <NA> <NA>
## 821 1 1 12749 93.5000 B69 S
## NA.18 NA NA <NA> NA <NA> <NA>
## 830 0 0 113572 80.0000 B28
## NA.19 NA NA <NA> NA <NA> <NA>
## NA.20 NA NA <NA> NA <NA> <NA>
## 857 1 1 36928 164.8667 S
## NA.21 NA NA <NA> NA <NA> <NA>
## 872 1 1 11751 52.5542 D35 S
## 880 0 1 11767 83.1583 C50 C
Nhận xét: Sau khi lọc dữ liệu ta thấy có 8 người trên 40 tuổi có giá vé hơn 50.000 đô la Kế tiếp tôi sẽ thống kê số người còn sống và không còn sống sót
t1 <- table(cut(t$Su,2))
prop.table(t1)
##
## (-0.001,0.5] (0.5,1]
## 0.6161616 0.3838384
Nhận xét : vậy số người còn sống là 342 chiếm 38% người và số người không sống sót là 549 người chiếm 62%
Tiếp theo tôi sẽ thống kê những nguoi có bao nhiêu cha mẹ hoặc anh chị em tham gia cùng chung chuyến tàu titanic
#Số người có anh chị em hoặc vợ chồng
table(t$Si)
##
## 0 1 2 3 4 5 8
## 608 209 28 16 18 5 7
#số người có cha mẹ
table(t$Par)
##
## 0 1 2 3 4 5 6
## 678 118 80 5 4 5 1
Tương tự ta có thể khảo sát tuổi của người tham gia chuyến tàu có bao nhiêu male(nam) bao nhiêu female(nữ)
table(cut(t$A,breaks = c(-0.1,20,40,80,100)),t$Se)
##
## female male
## (-0.1,20] 77 102
## (20,40] 136 249
## (40,80] 48 102
## (80,100] 0 0
Ở tuần 4 em sẽ sử dụng dữ liệu data “Titanic_train” giống như ở tuần
1
Bộ dữ liệu “Titanic_train” cung cấp thông tin về hành khách trên chuyến
tàu Titanic, bao gồm các thuộc tính như kết quả sống sót, hạng vé, giới
tính, tuổi, số lượng người thân đi cùng, giá vé và thông tin về cabin và
cảng lên tàu. Đây là một bộ dữ liệu phổ biến để thực hiện các tác vụ học
máy như phân loại, hồi quy và khám phá thông tin. -
PassengerId: Mã số duy nhất định danh mỗi hành khách trên
chuyến tàu Titanic.
Survived: Biến đầu ra (kết quả sống sót) cho biết
liệu hành khách đã sống sót hay không. Giá trị 0 đại diện cho không sống
sót và giá trị 1 đại diện cho sống sót.
Pclass: Biến định danh hạng vé của hành khách trên
chuyến tàu. Có ba hạng vé: hạng 1 (giới thượng lưu), hạng 2 (giới trung
lưu), và hạng 3 (giới lao động).
Name: Tên của hành khách.
Sex: Giới tính của hành khách. Có hai giá trị:
“male” (nam) và “female” (nữ).
Age: Tuổi của hành khách. Lưu ý rằng một số giá trị
có thể bị thiếu (NA).
SibSp: Số lượng anh/chị/em ruột hoặc vợ/chồng đi
cùng trên chuyến tàu.
Parch: Số lượng cha/mẹ hoặc con cái đi cùng trên
chuyến tàu.
Ticket: Số vé của hành khách.
Fare: Giá vé mà hành khách đã trả.
Cabin: Số hiệu phòng cabin của hành khách. Một số
giá trị có thể bị thiếu (NA).
Embarked: Cảng mà hành khách lên tàu. Có ba cảng:
“C” (Cherbourg), “Q” (Queenstown), và “S” (Southampton). Một số giá trị
có thể bị thiếu (NA).
library(titanic)
data(titanic_train)
t <- titanic_train
str(t)
## 'data.frame': 891 obs. of 12 variables:
## $ PassengerId: int 1 2 3 4 5 6 7 8 9 10 ...
## $ Survived : int 0 1 1 1 0 0 0 0 1 1 ...
## $ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
## $ Name : chr "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
## $ Sex : chr "male" "female" "female" "female" ...
## $ Age : num 22 38 26 35 35 NA 54 2 27 14 ...
## $ SibSp : int 1 1 0 1 0 0 0 3 0 1 ...
## $ Parch : int 0 0 0 0 0 0 0 1 2 0 ...
## $ Ticket : chr "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
## $ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
## $ Cabin : chr "" "C85" "" "C123" ...
## $ Embarked : chr "S" "C" "S" "S" ...
library(rpart) #xây dựng cây quyết định
Đầu tiên tôi sẽ cài Đặt và nhập các gói phần mềm vào môi trường làm việc
library("ggplot2")
## Warning: package 'ggplot2' was built under R version 4.3.1
library("dplyr")
## Warning: package 'dplyr' was built under R version 4.3.1
##
## 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
Phân tích Khám phá trên Pclass Trước tiên tối sẽ phân tích Pclass bằng biểu đồ hình tròn để hiển thị tỷ lệ phần trăm của từng hạng ghế
# Tính tổng số lượng hành khách theo Pclass
pclass_counts <- t %>%
group_by(Pclass) %>%
summarise(count = n())
# Biểu đồ vòng
ggplot(pclass_counts, aes(x = "", y = count, fill = factor(Pclass))) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
labs(x = NULL, y = NULL, fill = "Pclass") +
theme_minimal() +
theme(axis.line = element_blank(),
panel.grid = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
*Từ biểu đồ, ta có thể thấy rằng tỷ lệ hàng khách ngồi ghế hạng 3 nhiều nhất sau đó đến hàng khách hạng 2 và tới hạng 1
Có giả thuyết cho rằng, Tỷ lệ sống sót của người giàu tốt hơn nhiều so với người nghèo, Có sự khác biệt nào trong Titanic không? Ta sẽ phân tích điều đó bằng biểu đồ dạng cột
#Trực quan hóa Pclass - là đại diện tốt nhất cho Giàu và Nghèo
ggplot(t, aes(x = Pclass, y = Fare, color = Pclass)) +
geom_point(alpha = 0.7, size = 3) +
labs(x = "Pclass", y = "Fare", color = "Pclass") +
ggtitle("Scatter Plot of Pclass and Fare") +
theme_minimal()
*Từ biểu đồ, ta có thể thấy rằng tỷ lệ sống sót của hành khách Pclass 1 cao hơn so với Pclass 2 và Pclass 3, trong khi tỷ lệ sống sót của hành khách Pclass 3 thấp nhất. =>> Không nghi ngờ gì Người giàu có tỷ lệ sống tốt hơn người nghèo
Tiếp theo ta sẽ phân tích Trực quan mối quan hệ 3 chiều của Sex, Pclass và Surved bằng biểu đồ dạng cột
ggplot(t[1:891,], aes(x = Sex, fill = factor(Survived))) +
geom_bar() +
facet_wrap(~Pclass) +
ggtitle("3D view of sex, pclass, and survival") +
xlab("Sex") +
ylab("Total Count") +
labs(fill = "Survived")
*Trong tất cả các khoang, tỷ lệ sống sót của nữ tốt hơn nam
Title là một thông tin quan trọng và có thể cho thấy sự khác biệt về địa vị xã hội, trình độ học vấn và giới tính của hành khách. Quá trình phân tích này có thể bao gồm việc tạo các biến mới dựa trên tiêu đề, như Mr, Mrs, Miss, Master, hoặc Rev, để sử dụng trong việc dự đoán khả năng sống sót của hành khách trong thảm họa Titanic.
head(t$Name)
## [1] "Braund, Mr. Owen Harris"
## [2] "Cumings, Mrs. John Bradley (Florence Briggs Thayer)"
## [3] "Heikkinen, Miss. Laina"
## [4] "Futrelle, Mrs. Jacques Heath (Lily May Peel)"
## [5] "Allen, Mr. William Henry"
## [6] "Moran, Mr. James"
#Trích xuất Title và kiểm tra xem chúng ta có khả năng dự đoán trong đó không
names <- t$Name
title <- gsub("^.*, (.*?)\\..*$", "\\1", names)
#gsub() để trích xuất tiêu đề từ tên bằng cách loại bỏ tất cả các ký tự trước dấu phẩy đầu tiên và sau dấu chấm trước dấu chấm cuối cùng
#gsub() giúp lấy ra danh xưng
t$title <- title
#Đếm số lượng mỗi giá trị độc nhất
table(title)
## title
## Capt Col Don Dr Jonkheer Lady
## 1 2 1 7 1 1
## Major Master Miss Mlle Mme Mr
## 2 40 182 2 1 517
## Mrs Ms Rev Sir the Countess
## 125 1 6 1 1
Ta nhận thấy số lượng MISS, Mrs, Master và Mr đang chiếm đa hơn so với còn lại
Ngoài ra ta có thể biết thêm về các danh xưng khác như :
“Capt” là viết tắt của “Captain” và thường được sử dụng để chỉ định một người đã được thăng cấp làm đại úy trong quân đội.
“Col” là viết tắt của “Colonel” và thường được sử dụng để chỉ định một người đã được thăng cấp làm trung tướng trong quân đội.
“Major” là một chức vụ cao cấp trong quân đội, đại diện cho một người được thăng cấp lên từ chức vụ đại úy.
“Dr” là viết tắt của “Doctor” và thường được sử dụng để chỉ định một người đã tốt nghiệp đại học và có bằng tiến sĩ.
“Rev” là viết tắt của “Reverend” và thường được sử dụng để chỉ định một giáo sĩ, nhất là khi nói đến các nhà truyền giáo.
“Don” thường được sử dụng để chỉ định một người đàn ông người Tây Ban Nha hoặc Latinh.
“Sir” thường được sử dụng để chỉ định một người đàn ông có danh hiệu + “The Countess” là một danh xưng cho một người phụ nữ giữa các tước phong cao hơn tiểu tước nhưng thấp hơn công tước.
“Jonkheer” là một danh xưng tiếng Hà Lan cho một người quý tộc đứng giữa những người có danh hiệu và những người không có danh hiệu.
“Mle” được sử dụng để chỉ nữ giới và tương đương với “Miss” trong tiếng Anh
“Ms” là một cách để chỉ nữ giới mà không phân biệt trạng thái hôn nhân
“Mme” được sử dụng để chỉ chị (Mrs) trong tiếng Pháp
“Lady” được sử dụng để chỉ phụ nữ có danh hiệu quý tộc
“Dona” được sử dụng để chỉ phụ nữ có nguồn gốc Tây Ban Nha hoặc Bồ Đào Nha có tư cách quý tộc
#Đổi danh xưng (title) của hành khách trên tàu Titanic để thống nhất thành các danh xưng chuẩn hơn.
t$title[t$title == 'Mlle'] <- 'Miss'
t$title[t$title == 'Ms'] <- 'Miss'
t$title[t$title == 'Mme'] <- 'Mrs'
t$title[t$title == 'Lady'] <- 'Miss'
t$title[t$title == 'Dona'] <- 'Miss'
## Tuy nhiên, việc kết hợp feauter bên dưới vào biến ban đầu có thể làm mất đi một số khả năng dự đoán vì họ đều là quân nhân, bác sĩ và dân tộc quý tộc
t$title[t$title == 'Capt'] <- 'Officer'
t$title[t$title == 'Col'] <- 'Officer'
t$title[t$title == 'Major'] <- 'Officer'
t$title[t$title == 'Dr'] <- 'Officer'
t$title[t$title == 'Rev'] <- 'Officer'
t$title[t$title == 'Don'] <- 'Officer'
t$title[t$title == 'Sir'] <- 'Officer'
t$title[t$title == 'the Countess'] <- 'Officer'
t$title[t$title == 'Jonkheer'] <- 'Officer'
#Kiểm tra xem ai trong số Mr, Master, Miss có tỷ lệ sống sót cao hơn
ggplot(t[1:891,],aes(x = title,fill=factor(Survived))) +
geom_bar() +
ggtitle("Title V/S Survival rate")+
xlab("Title") +
ylab("Total Count") +
labs(fill = "Survived")
*Trong titanic Miss là có cơ hội sống sót cao nhất, tiếp theo sau là Mrs
và Mr. Master và Oficer có cơ hội sống thấp hơn cả, đặc biệt là Officer
khi cơ hội sống sót là thấp nhất và rất nhỏ.
#Mối quan hệ 3 chiều của Titile, Pclass và Survival
ggplot(t[1:891,], aes(x = title, fill = factor(Survived))) +
geom_bar() +
facet_wrap(~Pclass) +
ggtitle("3-way relationship of Title, Pclass, and Survival") +
xlab("Title") +
ylab("Total Count") +
labs(fill = "Survived")
Nhận xét :Miss ở cả 3 hạng 1,3 đều có tỷ lệ sống sót cao nhất Vì Tiêu đề chủ yếu phụ thuộc vào Độ tuổi (ngoại trừ một số trường hợp), tôi sẽ sử dụng tiêu đề thay cho độ tuổi có 263 quan sát bị thiếu
Ta sẽ phần tích tỷ lệ sống sót theo quy mô Gia đình bằng biểu đồ dạng cột
#Tạo kích thước Gia đình bằng Sibsp và Parch
t$FamilySize <- t$SibSp + t$Parch + 1
#Một mình (độc thân)
t$FamilySized[t$FamilySize == 1] <- 'Single'
#Gia đình nhỏ
t$FamilySized[t$FamilySize < 5 & t$FamilySize >= 2] <- 'Small'
#Đại gia đình
t$FamilySized[t$FamilySize >= 5] <- 'Big'
#Chuyển sang dạng factor
t$FamilySized=as.factor(t$FamilySized)
#Trực quan hóa Tỷ lệ sống sót theo quy mô Gia đình
ggplot(t[1:891,],aes(x = FamilySized,fill=factor(Survived))) +
geom_bar() +
ggtitle("Family Size V/S Survival Rate") +
xlab("FamilySize") +
ylab("Total Count") +
labs(fill = "Survived")
*Trên Titanic “Đại gia đình” có tỷ lệ sống sót thấp nhất sau đó là “Gia đình nhỏ hơn” và nhưng người chỉ lên tàu một mình Vậy vì sao Đại gia đình có sự cố?
#Vì sao Đại gia đình có sự cố?
ggplot(t[1:891,], aes(x = FamilySized, fill = factor(Survived))) +
geom_bar() +
facet_wrap(~title) +
ggtitle("3D View of Fmily Size, Title and Survival rate") +
xlab("family.size") +
ylab("Total Count") +
ylim(0,300) +
labs(fill = "Survived")
## Warning: Removed 1 rows containing missing values (`geom_bar()`).
*Nhận xét Master trong Đại gia đình, tỷ lệ sống sót của bạn là hoàn toàn bằng không mặc dù tỷ lệ sống sót chung của chủ nhân là rất tốt
Mối liên hệ nào giữa Tỷ lệ sống sót và nơi lên tàu ,ta sẽ phân tích điều đó trên biểu đồ dạng sactter
ggplot(t, aes(x = Embarked, y = Survived, color = Embarked)) +
geom_jitter() +
labs(x = "Embarked", y = "Survived", color = "Embarked") +
theme_minimal()
*Trong biểu đồ trên ta dễ dàng nhận thấy, càng hành khách xuất phát từ Southamton có tỷ lệ sống sót cao hơn, tiếp theo sau là Cherbourg, và tỷ lệ thấp nhất là Queenstown.
Chia tiếp biểu đồ theo Pclass bằng biểu đồ dạng cột
ggplot(t[1:891,], aes(x = Embarked, fill = factor(Survived))) +
geom_bar() +
facet_wrap(~Pclass) +
ggtitle("Pclass vs Embarked vs survival") +
xlab("Embarked") +
ylab("Total Count") +
labs(fill = "Survived")
*Hành khách xuất phát từ Southamton ở tất cả các khoang đều có tỷ lệ sống sót cao hơn so với các hành khách xuất phát từ nơi khác
PHân phối Nhị thức
set.seed(19)
x<- rbinom(100, 20, 0.5)
hist(x,xlim=c(0,20))
#phân phối mũ
x <- rpois(100, lambda=15)
hist(x)
#hai phân phối chuẩn
x=rnorm(1000,12,1)
y=rnorm(1000,12,1)
qqplot(x,y)
x=runif(1000,12,111)
y=rnorm(1000,12,1)
qqplot(x,y)
qqnorm(x)
qqnorm(y)