require(tidyverse)
## Loading required package: tidyverse
## Error: package or namespace load failed for 'tidyverse':
## .onAttach failed in attachNamespace() for 'tidyverse', details:
## call: NULL
## error: package or namespace load failed for 'tidyr' in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]):
## namespace 'vctrs' 0.5.1 is already loaded, but >= 0.5.2 is required
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.2.3
library(ggplot2)
library(xlsx)
setwd("C:/Users/HP/Documents/PTDLĐT/")
data <- read.xlsx("data.xlsx", sheetIndex = 1)
Làm thống kê mô tả để phân tích cho ít nhất 5 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.
Tác giả chọn phân tích 6 biến: carido, gender, age, smoke, active, alco
table(data$cardio)
##
## N Y
## 237 263
table(data$cardio)/sum(table(data$cardio))
##
## N Y
## 0.474 0.526
library(ggplot2)
data |> ggplot(aes(x = cardio, y = after_stat(count))) +
geom_bar(fill = 'blue') +geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = 'red', vjust = - .5) +labs(x = 'Người bị bệnh tim', y = 'Số người')
Dựa vào đồ thị và bảng tần số, ta thấy tỷ lệ người đi khám bị bệnh tim chiếm cao hơn là 52,6% gồm 263 người bị bệnh tim trên tổng 500 người đi khám. Trong đó, người đi khám không bị bệnh tim là 237 người và chiếm 47,4% người đi khám.
table(data$gender)
##
## F M
## 322 178
table(data$gender)/sum(table(data$gender))
##
## F M
## 0.644 0.356
library(ggplot2)
data |> ggplot(aes(x = gender, y = after_stat(count))) +
geom_bar(fill = 'blue') +geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = 'red', vjust = - .5) +labs(x = 'Giới tính', y = 'Số người')
Dựa vào đồ thị và bảng tần số, ta thấy tỷ lệ người đi khám là nữ chiếm 64%, cho thấy có 322 bệnh nhân giới tính là nữ trên tổng 500 người đi khám. Trong đó, có 178 bệnh nhân nam đi khám so với tổng số bệnh nhân (chiếm 36% người đi khám)
summary(data$age)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 39.0 49.0 54.0 53.6 59.0 65.0
Trong 500 người đi khám bệnh, bệnh nhân ít tuổi nhất là 39 tuổi và lớn nhất là 65 tuổi. Cho thấy số tuổi trung bình mà bệnh nhân đi khám bệnh tim là khoảng 53 - 54 tuổi.
table(data$age)
##
## 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
## 2 21 3 13 1 19 5 26 6 24 7 40 10 42 7 46 7 38 11 33 15 51 7 30 6 27
## 65
## 3
table(data$age)/sum(table(data$age))
##
## 39 40 41 42 43 44 45 46 47 48 49 50 51
## 0.004 0.042 0.006 0.026 0.002 0.038 0.010 0.052 0.012 0.048 0.014 0.080 0.020
## 52 53 54 55 56 57 58 59 60 61 62 63 64
## 0.084 0.014 0.092 0.014 0.076 0.022 0.066 0.030 0.102 0.014 0.060 0.012 0.054
## 65
## 0.006
data |> ggplot(aes(x = age, y = after_stat(count))) +
geom_bar(fill = 'blue') +geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = 'red', vjust = - .5) +labs(x = 'Độ tuổi', y = 'Số người')
Qua đồ thị, ta thấy bệnh nhân ở độ tuổi 60 đi khám bệnh tim có xác suất cao nhất, là khoảng 10,2%. Ngược lại, tỷ lệ mà bệnh nhân ở độ tuổi 43 đi khám là thấp nhất, chỉ có 0,2%.
table(data$smoke)
##
## N Y
## 453 47
table(data$smoke)/sum(table(data$smoke))
##
## N Y
## 0.906 0.094
data |> ggplot(aes(x = smoke, y = after_stat(count))) +
geom_bar(fill = 'blue') +geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = 'red', vjust = - .5) +labs(x = 'Trình trạng sử dụng thuốc lá', y = 'Số người')
Dựa vào đồ thị và bảng tần số, ta thấy tỷ lệ người không hút thuốc chiếm 91%, cho thấy có 453 người đi khám không hút thuốc lá so với tổng người đi khám. Ngoài ra, số người bệnh nhân sử dụng thuốc là 47 người (chiếm 9% so với tổng người đi khám).
table(data$alco)
##
## N Y
## 479 21
table(data$alco)/sum(table(data$alco))
##
## N Y
## 0.958 0.042
data |> ggplot(aes(x = alco, y = after_stat(count))) +
geom_bar(fill = 'blue') +geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = 'red', vjust = - .5) +labs(x = 'Tình trạng sử dụng rượu bia', y = 'Số người')
Dựa vào đồ thị và bảng tần số, ta thấy tỷ lệ người sử dụng rượu bia chỉ có 4%, cho thấy tổng 500 người đi khám chỉ có 21 người uống rượu. Trong khi đó, có 479 người không sử dụng rượu bia, chiếm tận 96% so với tổng số người đi khám.
table(data$active)
##
## N Y
## 107 393
table(data$active)/sum(table(data$active))
##
## N Y
## 0.214 0.786
data |> ggplot(aes(x = active, y = after_stat(count))) +
geom_bar(fill = 'blue') +geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat ='count', color = 'red', vjust = - .5) +labs(x = 'Trình trạng vận động', y = 'Số người')
Thông qua đồ thị, ta cho thấy tỷ lệ bệnh nhân có vận động là chiếm 79%, cho thấy trong tổng 500 người đi khám thì có 393 người tập thể dục và chỉ có 107 người không vận động, chiếm 21% so với tổng người đi khám.
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đ)
Bài nghiên cứu chọn biến phụ thuộc là biến cardio (Bệnh nhân bị bệnh tim (Y/N)).
Giải thích: Tim mạch là bệnh lý xuất hiện âm thầm nhưng để lại nhiều hậu quả nghiêm trọng đối với tính mạng.Trong những năm trở lại đây, tỷ lệ tử vong do bệnh tim ngày càng tăng trên toàn thế giới. Bài nghiên cứu xác định thông qua 500 hồ sơ bệnh nhân khám ở khoa tim mạch cho thấy các yếu tố nào có khả năng nguyên nhân làm bệnh nhân bị bệnh tim.Từ đó, đưa ra những biện pháp phòng ngừa hợp lí tránh các loại bệnh tim mạch.
Bài nghiên cứu chọn biến phụ thuộc là biến age (số tuổi của bệnh nhân).
Giải thích: Nhằm mục đích là xác định tuổi của bệnh nhân có làm ảnh hưởng đến huyết áp, cholesterol, glu,… hay không. Từ đó, đưa ra những giải pháp tăng cường sức khỏe, cải thiện đời sống phòng ngừa bệnh tim.
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đ)
Bộ dữ liệu được lấy tại trang website Kaggle do Svetlana Ulianova chia sẻ (2019). Dữ liệu được thu nhập từ 500 hồ sơ bệnh nhân ở khoa tim mạch ở bệnh viện tại Mỹ được khám trong khoảng thời gian 3 ngày. Bộ dữ liệu có 12 biến gồm 500 quan sát.
library(xlsx)
setwd("C:/Users/HP/Documents/PTDLĐT/")
data <- read.xlsx("data.xlsx", sheetIndex = 1)
data
str(data)
## 'data.frame': 500 obs. of 12 variables:
## $ age : num 55 52 48 48 60 61 62 48 54 62 ...
## $ gender : chr "F" "F" "M" "F" ...
## $ height : num 156 165 169 156 151 157 178 158 164 169 ...
## $ weight : num 85 64 82 56 67 93 95 71 68 80 ...
## $ aphi : num 140 130 150 100 120 130 130 110 110 120 ...
## $ aplo : num 90 70 100 60 80 80 90 70 60 80 ...
## $ cholesterol: chr "NCC" "NCC" "BT" "BT" ...
## $ gluc : chr "BT" "BT" "BT" "BT" ...
## $ smoke : chr "N" "N" "N" "N" ...
## $ alco : chr "N" "N" "N" "N" ...
## $ active : chr "Y" "N" "Y" "N" ...
## $ cardio : chr "Y" "Y" "Y" "N" ...
Thông qua bảng dữ liệu, dữ liệu nghiên cứu gồm 500 quan sát với 12 biến bao gồm 5 biến định lượng và 7 biến định tính.