NHIỆM VỤ TUẦN 1

Tìm một dataset có dữ liệu định tính, dữ liệu định lượng, có trên 5 biến và nhiều hơn 300 quan sát.

1. Giới thiệu

Cơn đau tim thường xảy ra khi dòng máu dẫn đến tim bị tắc nghẽn, thường là do sự tích tụ của chất béo, cholesterol và nhiều chất khác, lâu ngày tạo thành mảng bám trong động mạch. Cho tới khi mảng bám đó có thể vỡ ra và hình thành cục máu đông ngăn chặn dòng máu. Dẫn đến dòng máu bị ngăn lại xảy ra cơn đau thắt tim.

Dữ liệu được lấy từ website https://www.kaggle.com/, bao gồm 11 biến và 303 quan sát. Dữ liệu được thu thập cho người xem thấy được một người bệnh có nhiều khả năng bị tim hơn hay ít hơn.

2. Dữ liệu

Trong đó:

  • ID: Mã của người bệnh

  • Age : Age of the patient : tuổi

  • Sex : Sex of the patient : giới tính

  • cp : Chest Pain type: Các loại đau thắt ngực

    • Value 1: typical angina : đau thắt ngực điển hình

    • Value 2: atypical angina : đau thắt ngực không điển hình

    • Value 3: non-anginal pain : không đau thắt ngực

    • Value 4: asymptomatic : không có triệu chứng

  • trtbps : resting blood pressure (in mm Hg) : Chỉ số huyết áp khi nghỉ ngơi

  • chol : cholestoral in mg/dl fetched via BMI sensor: Cholestoral

  • fbs : (fasting blood sugar >= 120 mg/dl) (1 = true; 0 = false) : Đường huyết

  • rest_ecg : resting electrocardiographic results : Kết quả tâm đồ lúc nghỉ ngơi

    • normal : Bình thường

    • having ST-T wave abnormality (T wave inversions and/or ST elevation or depression of > 0.05 mV) : có sóng ST-T bất thường

    • showing probable or definite left ventricular hypertrophy by Estes’ criteria : Phì đại tâm thất trái

  • thalach : maximum heart rate achieved : Nhịp tim tối đa nhận được

  • exng: exercise induced angina (1 = yes; 0 = no) : Đau thắt ngực khi cố gắng hết sức ( 1 = có; 0= không có)

  • target : 0= less chance of heart attack 1= more chance of heart attack : Mục tiêu ( 0 = ít khả năng bị đau tim hơn; 1 = nhiều khả năng bị đau tim hơn )

library(readxl)
library(DT)
## Warning: package 'DT' was built under R version 4.3.1
dataset <- read_excel("D:/MPNN/data/dataset1.xlsx")
datatable(dataset)
summary(dataset)
##        ID             Age            Sex                 Cp           
##  Min.   :  1.0   Min.   :29.00   Length:303         Length:303        
##  1st Qu.: 76.5   1st Qu.:47.50   Class :character   Class :character  
##  Median :152.0   Median :55.00   Mode  :character   Mode  :character  
##  Mean   :152.0   Mean   :54.37                                        
##  3rd Qu.:227.5   3rd Qu.:61.00                                        
##  Max.   :303.0   Max.   :77.00                                        
##      Trtbps           Chol            Fbs           Restecg         
##  Min.   : 94.0   Min.   :126.0   Min.   :0.0000   Length:303        
##  1st Qu.:120.0   1st Qu.:211.0   1st Qu.:0.0000   Class :character  
##  Median :130.0   Median :240.0   Median :0.0000   Mode  :character  
##  Mean   :131.6   Mean   :246.3   Mean   :0.1485                     
##  3rd Qu.:140.0   3rd Qu.:274.5   3rd Qu.:0.0000                     
##  Max.   :200.0   Max.   :564.0   Max.   :1.0000                     
##     Thalachh         Exang           Target         
##  Min.   : 71.0   Min.   :0.0000   Length:303        
##  1st Qu.:133.5   1st Qu.:0.0000   Class :character  
##  Median :153.0   Median :0.0000   Mode  :character  
##  Mean   :149.6   Mean   :0.3267                     
##  3rd Qu.:166.0   3rd Qu.:1.0000                     
##  Max.   :202.0   Max.   :1.0000

Nhìn vào đồ thị có thể thấy tỷ lệ chênh lệch giữa “ít khả năng bị đau tim hơn” và “nhiều khả năng bị đau tim hơn”. Có thể thấy rằng người bệnh có nhiều khae năng dẫn đến cơn đau tim là nhiều hơn.

NHIỆM VỤ TUẦN 2

Chọn 1 hoặc 2 biến định tính và 1 biến định lượng làm biến phụ thuộc để phân tích, giải thích lý do.

1. Biến định tính

Tôi chọn biến định tính “Target” làm biến phụ thuộc. Đây là những biến mô tả được kết quả thông tin khảo sát và không thể đo lường hay đếm được, được xác định dựa trên các thông tin được khảo sát. Đây cũng là biến chịu nhiều tác động bởi nhiều biến khác như tuổi, huyết áp, nhịp tim, đường huyết.

2. Biến định lượng

Tôi chọn biến định lượng cholestoral là biến phụ thuộc. Đây là biến được đếm và đo lường dựa trên khảo sát của nhiều người, dựa vào đó ta có thể tính toán được tác động của nó lên kết quả khảo sát. Đây là biến phụ thuộc vì nó cũng được tác động bởi biến đường huyết, huyết áp.

NHIỆM VỤ TUẦN 3,4

Làm thống kê mô tả cho ít nhất 7 biến (vừa định tính định lượng và có 2 biến đã chọn ở câu 2) nhận xét về kết quả phân tích này.

1. Thống kê biến tuổi (AGE)

summary(dataset$Age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   29.00   47.50   55.00   54.37   61.00   77.00
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.1
hist(dataset$Age, main = "Biểu đồ tần số của độ tuổi (age)",xlab = "Độ tuổi", ylab = "Số bệnh nhân", col = "#E6E6FA")

Số bệnh nhân trong khảo sát tập trung trong độ tuổi từ 50-60 tuổi. Đây là độ tuổi gặp khá nhiều vấn đề về sức khỏe.

2. Thống kê biến giới tính (sex)

table(dataset$Sex)
## 
##   F   M 
##  95 208
table(dataset$Sex)/sum(table(dataset$Sex))
## 
##         F         M 
## 0.3135314 0.6864686
library(ggplot2)
ggplot(dataset,aes(Sex)) + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = '#CD6889', vjust = - .5) + geom_bar(color ="#BCD2EE", fill = "#EEA9B8") + ylab("Số bệnh nhân") +
  xlab("Giới tính (sex)")

Qua đồ thị có thể thấy, tỷ lệ bệnh nhân nữ chiếm 31%, bệnh nhân nam chiếm 69%.

3. Thống kê mô tả biến các loại đau thắt ngực (cp)

# Bảng tuần suất biến cp
table(dataset$Cp)
## 
##     Asymptomatic  Atypical Angina Non-anginal Pain   Typical Angina 
##               23               50               87              143
table(dataset$Cp)/sum(table(dataset$Cp))
## 
##     Asymptomatic  Atypical Angina Non-anginal Pain   Typical Angina 
##       0.07590759       0.16501650       0.28712871       0.47194719
library(ggplot2)
ggplot(dataset,aes(Cp)) + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = '#CD6889', vjust = - .5) + geom_bar(color ="#BCD2EE", fill = "#6495ED") + ylab("Số bệnh nhân") + xlab("Các loại đau thắt ngực")

Qua đồ thị có thể thấy là có khoảng 7,6% bệnh nhân không có triệu chứng; 16,5% bệnh nhân đau thắt ngực không điển hình; 28,7% bệnh nhân không đau thắt ngực; 47,2% bệnh nhân đau thắt ngực điển hình.

Có thể thấy số bệnh nhân bị đau thắt ngực điển hình chiếm gần như phân nữa số bệnh nhân.

4. Thống kê mô tả biến chỉ số huyết áp khi nghỉ ngơi (Trtbps)

summary(dataset$Trtbps)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    94.0   120.0   130.0   131.6   140.0   200.0
library(ggplot2)
hist(dataset$Trtbps, main = "Biểu đồ chỉ số huyết áp khi nghỉ ngơi",xlab = "Chỉ số huyết áp", ylab = "Số người", col = "#CD853F")

Qua biểu đồ có thể thấy chỉ số huyết áp khi nghỉ ngơi phân bố nhiều nhất từu 120-140

5. Thống kê mô tả biến cholestoral

summary(dataset$Chol)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   126.0   211.0   240.0   246.3   274.5   564.0
library(ggplot2)
hist(dataset$Chol, main = "Biểu đồ chỉ số cholestoral",xlab = "Chỉ số cholestoral", ylab = "Số người", col = "#FF8C69")

Qua biểu đồ cho thấy chỉ số Chol nhiều nhất từ 200-300

6. Thống kê mô tả biến đường huyết

table(dataset$Fbs)
## 
##   0   1 
## 258  45
table(dataset$Fbs)/sum(table(dataset$Fbs))
## 
##         0         1 
## 0.8514851 0.1485149
library(ggplot2)
ggplot(dataset,aes(Fbs)) + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = '#CD6889', vjust = - .5) + geom_bar(color ="#BCD2EE", fill = "#6495ED") + ylab("số bệnh nhân") + xlab("Đường huyết (fbs)") 

7. Thống kê mô tả biến kết quả tâm đồ lúc nghỉ ngơi (rest_ecg)

table(dataset$Restecg)
## 
## Left ventricular hypertrophy                       Normal 
##                            4                          147 
##          ST-T wave normality 
##                          152
table(dataset$Restecg)/sum(table(dataset$Restecg))
## 
## Left ventricular hypertrophy                       Normal 
##                   0.01320132                   0.48514851 
##          ST-T wave normality 
##                   0.50165017
library(ggplot2)
ggplot(dataset,aes(Restecg)) + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = '#CD6889', vjust = - .5) + geom_bar(color ="#48D1CC", fill = "#EEE8AA") + ylab("số bệnh nhân") + xlab("kết quả tâm đồ lúc nghỉ ngơi")

Qua đồ thị có thể thấy là

Thống kê mô tả biến Mục tiêu (Target)

table(dataset$Target)
## 
## Less chance of heart attack More chance of heart attack 
##                         138                         165
table(dataset$Target)/sum(table(dataset$Target))
## 
## Less chance of heart attack More chance of heart attack 
##                   0.4554455                   0.5445545
library(ggplot2)
ggplot(dataset,aes(Target)) + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = '#CD6889', vjust = - .5) + geom_bar(color ="white", fill = "#EEE8AA") + ylab("số bệnh nhân") + xlab("Mục tiêu")

Qua đồ thị ta thấy được có khoảng 45,5% số bệnh nhân ít có khả năng đau tim hơn và 54,5% số bệnh nhân có nhiều khả năng bị đau tim