1 BTVN TUAN 1

1.1 GIải thích các biến dữ liệu

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).

1.2 Quy trình xử lí dữ liệu

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

2 BTVN TUAN 4

2.1 Giới thiệu Data

Ở 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).

2.2 Xử lí dữ liệu

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

2.3 Đồ thị

2.3.1 Phân tích khám phá về về Plass

Đầ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

2.3.2 Phân tích Khám phá về Title

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

2.3.3 Phân tích khám phá về Family

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

2.3.4 Phân tích khám phá về Embarked

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

2.3.5 Các dạng biểu đồ 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)

3 BTVN TUAN 4

3.1 GIải thích các biến dữ liệu

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). ## Quy trình xử lí dữ liệu ### Làm sạch dữ liệu Dưới đây em sẽ tiến hành làm sạch dữ liệu với các function trong package titanic

library(titanic)
library(dplyr)
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

Lọc dữ liệu những khách hàng trên 60t với filter()

filtered_t <- t %>%
  filter(Age > 60)
print(filtered_t)
##    PassengerId Survived Pclass                                      Name    Sex
## 1           34        0      2                     Wheadon, Mr. Edward H   male
## 2           55        0      1            Ostby, Mr. Engelhart Cornelius   male
## 3           97        0      1                 Goldschmidt, Mr. George B   male
## 4          117        0      3                      Connors, Mr. Patrick   male
## 5          171        0      1                 Van der hoef, Mr. Wyckoff   male
## 6          253        0      1                 Stead, Mr. William Thomas   male
## 7          276        1      1         Andrews, Miss. Kornelia Theodosia female
## 8          281        0      3                          Duane, Mr. Frank   male
## 9          327        0      3                 Nysveen, Mr. Johan Hansen   male
## 10         439        0      1                         Fortune, Mr. Mark   male
## 11         457        0      1                 Millet, Mr. Francis Davis   male
## 12         484        1      3                    Turkula, Mrs. (Hedwig) female
## 13         494        0      1                   Artagaveytia, Mr. Ramon   male
## 14         546        0      1              Nicholson, Mr. Arthur Ernest   male
## 15         556        0      1                        Wright, Mr. George   male
## 16         571        1      2                        Harris, Mr. George   male
## 17         626        0      1                     Sutton, Mr. Frederick   male
## 18         631        1      1      Barkworth, Mr. Algernon Henry Wilson   male
## 19         673        0      2               Mitchell, Mr. Henry Michael   male
## 20         746        0      1              Crosby, Capt. Edward Gifford   male
## 21         830        1      1 Stone, Mrs. George Nelson (Martha Evelyn) female
## 22         852        0      3                       Svensson, Mr. Johan   male
##     Age SibSp Parch      Ticket     Fare       Cabin Embarked
## 1  66.0     0     0  C.A. 24579  10.5000                    S
## 2  65.0     0     1      113509  61.9792         B30        C
## 3  71.0     0     0    PC 17754  34.6542          A5        C
## 4  70.5     0     0      370369   7.7500                    Q
## 5  61.0     0     0      111240  33.5000         B19        S
## 6  62.0     0     0      113514  26.5500         C87        S
## 7  63.0     1     0       13502  77.9583          D7        S
## 8  65.0     0     0      336439   7.7500                    Q
## 9  61.0     0     0      345364   6.2375                    S
## 10 64.0     1     4       19950 263.0000 C23 C25 C27        S
## 11 65.0     0     0       13509  26.5500         E38        S
## 12 63.0     0     0        4134   9.5875                    S
## 13 71.0     0     0    PC 17609  49.5042                    C
## 14 64.0     0     0         693  26.0000                    S
## 15 62.0     0     0      113807  26.5500                    S
## 16 62.0     0     0 S.W./PP 752  10.5000                    S
## 17 61.0     0     0       36963  32.3208         D50        S
## 18 80.0     0     0       27042  30.0000         A23        S
## 19 70.0     0     0  C.A. 24580  10.5000                    S
## 20 70.0     1     1   WE/P 5735  71.0000         B22        S
## 21 62.0     0     0      113572  80.0000         B28         
## 22 74.0     0     0      347060   7.7750                    S

Lọc dữ liệu những khách hàng có vé hạng 1 trên 60 tuổi

filtered_t <- t %>%
  filter(Pclass == 1 & Age > 60)
print(filtered_t)
##    PassengerId Survived Pclass                                      Name    Sex
## 1           55        0      1            Ostby, Mr. Engelhart Cornelius   male
## 2           97        0      1                 Goldschmidt, Mr. George B   male
## 3          171        0      1                 Van der hoef, Mr. Wyckoff   male
## 4          253        0      1                 Stead, Mr. William Thomas   male
## 5          276        1      1         Andrews, Miss. Kornelia Theodosia female
## 6          439        0      1                         Fortune, Mr. Mark   male
## 7          457        0      1                 Millet, Mr. Francis Davis   male
## 8          494        0      1                   Artagaveytia, Mr. Ramon   male
## 9          546        0      1              Nicholson, Mr. Arthur Ernest   male
## 10         556        0      1                        Wright, Mr. George   male
## 11         626        0      1                     Sutton, Mr. Frederick   male
## 12         631        1      1      Barkworth, Mr. Algernon Henry Wilson   male
## 13         746        0      1              Crosby, Capt. Edward Gifford   male
## 14         830        1      1 Stone, Mrs. George Nelson (Martha Evelyn) female
##    Age SibSp Parch    Ticket     Fare       Cabin Embarked
## 1   65     0     1    113509  61.9792         B30        C
## 2   71     0     0  PC 17754  34.6542          A5        C
## 3   61     0     0    111240  33.5000         B19        S
## 4   62     0     0    113514  26.5500         C87        S
## 5   63     1     0     13502  77.9583          D7        S
## 6   64     1     4     19950 263.0000 C23 C25 C27        S
## 7   65     0     0     13509  26.5500         E38        S
## 8   71     0     0  PC 17609  49.5042                    C
## 9   64     0     0       693  26.0000                    S
## 10  62     0     0    113807  26.5500                    S
## 11  61     0     0     36963  32.3208         D50        S
## 12  80     0     0     27042  30.0000         A23        S
## 13  70     1     1 WE/P 5735  71.0000         B22        S
## 14  62     0     0    113572  80.0000         B28

Lọc dữ liệu những khách hàng có vé hạng 1 trên 60 tuổi con đang sống sót

filtered_t <- t %>%
  filter(Pclass == 1, Age > 60, Survived == 1)
print(filtered_t)
##   PassengerId Survived Pclass                                      Name    Sex
## 1         276        1      1         Andrews, Miss. Kornelia Theodosia female
## 2         631        1      1      Barkworth, Mr. Algernon Henry Wilson   male
## 3         830        1      1 Stone, Mrs. George Nelson (Martha Evelyn) female
##   Age SibSp Parch Ticket    Fare Cabin Embarked
## 1  63     1     0  13502 77.9583    D7        S
## 2  80     0     0  27042 30.0000   A23        S
## 3  62     0     0 113572 80.0000   B28

Lọc dữ liệu những khách hàng có vé hạng 1 trên 60 tuổi còn đang sống sót có người thân ở trên tàu

filtered_t <- t %>%
  filter(Pclass == 1, Age > 60, Survived == 1,SibSp == 1 )
print(filtered_t)
##   PassengerId Survived Pclass                              Name    Sex Age
## 1         276        1      1 Andrews, Miss. Kornelia Theodosia female  63
##   SibSp Parch Ticket    Fare Cabin Embarked
## 1     1     0  13502 77.9583    D7        S

Kết Luận : Khách hàng có vé hạng 1 trên 60 tuổi còn đang sống sót có người thân ở trên tàu tên là :“Andrews, Miss. Kornelia Theodosia” có mã số 276

3.2