#Câu 2: Vào đêm ngày 13 và rạng sáng ngày 14 tháng 4 năm 1912, con tàu chở khách Titanic
#trong chuyến hải trình đầu tiên đã bị chìm sau khi va phải băng ở Bắc Đại Tây Dương. Như đã
#biết, không phải tất cả hành khách đều sống sót sau thảm họa này. Dựa trên danh sách hành
#khách và các đặc điểm của họ, ta có thể phân tích yếu tố nào ảnh hưởng đến khả năng sống sót
#của hành khách.
#Hãy xem xét mô hình xác suất tuyến tính (Linear Probability Model – LPM) giải thích biến
#survived (sống sót) theo các biến fare (giá vé), age (tuổi), và gender (giới tính).
#------------------------------------------------
#install.packages("titanic")
library(titanic)
data("titanic_train")
str(titanic_train)
## '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" ...
dat <- titanic_train
#------------------------------------------------
# CAU 2:
#(i) Giải thích hệ số ước lượng biến female
# Tạo biến nhị phân Female
dat$Female <- ifelse(dat$Sex == "female", 1, 0)
model_lpm <- lm(Survived ~ Fare + Age + Female, data = dat)
summary(model_lpm)
## 
## Call:
## lm(formula = Survived ~ Fare + Age + Female, data = dat)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.9706 -0.1938 -0.1658  0.2792  0.8733 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.209378   0.037712   5.552 3.99e-08 ***
## Fare         0.001672   0.000294   5.688 1.87e-08 ***
## Age         -0.001617   0.001057  -1.530    0.127    
## Female       0.510971   0.032276  15.831  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4055 on 710 degrees of freedom
##   (177 observations deleted due to missingness)
## Multiple R-squared:  0.322,  Adjusted R-squared:  0.3191 
## F-statistic: 112.4 on 3 and 710 DF,  p-value: < 2.2e-16
print("TRA LOI (i): Nếu là nữ, thì cơ hội sống sót sẽ cải thiện thêm 0.511 lần./Khi giữ nguyên giá vé và tuổi, phụ nữ có xác suất sống sót trung bình cao hơn nam giới 51,1 điểm phần trăm.")
## [1] "TRA LOI (i): Nếu là nữ, thì cơ hội sống sót sẽ cải thiện thêm 0.511 lần./Khi giữ nguyên giá vé và tuổi, phụ nữ có xác suất sống sót trung bình cao hơn nam giới 51,1 điểm phần trăm."
#------------------------------------------------
#(ii) Các giá trị dự đoán (fitted values / predicted probabilities) có thể âm hoặc lớn hơn 1 không?
range(fitted(model_lpm), na.rm = TRUE)
## [1] 0.1027196 1.5206157
print("TRA LOI: Có giá trị fitted lớn hơn 1. Mô hình có thể dự đoán xác suất > 100%. Tương tự, có thể âm, do mô hình tuyến tính phụ thuộc vào các giá trị dự đoán là tổ hợp của giá trị các biến, khi tổ hợp các biến có giá trị âm, thì giá trị dự đoán có giá trị âm")
## [1] "TRA LOI: Có giá trị fitted lớn hơn 1. Mô hình có thể dự đoán xác suất > 100%. Tương tự, có thể âm, do mô hình tuyến tính phụ thuộc vào các giá trị dự đoán là tổ hợp của giá trị các biến, khi tổ hợp các biến có giá trị âm, thì giá trị dự đoán có giá trị âm"