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.
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.
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.
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.
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.
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.
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.
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.
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%.
# 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.
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
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
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)")
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à
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