d <- read.csv("C:/Users/PC/OneDrive/Máy tính/TMT/Thực Hành.csv")
Bộ dữ liệu gồm 1.000 quan sát, mỗi quan sát tương ứng với một sinh viên, ghi nhận toàn diện các khía cạnh trong thói quen sinh hoạt hàng ngày gắn liền với quá trình học tập. Các biến được thu thập bao gồm thời gian học mỗi ngày, thời lượng ngủ, mức độ sử dụng mạng xã hội, chất lượng chế độ ăn uống, tần suất vận động thể chất, mức độ căng thẳng, và đánh giá sức khỏe tinh thần. Ngoài ra, dữ liệu còn bao gồm thông tin cá nhân cơ bản như giới tính và năm học. Biến kết quả là điểm thi cuối kỳ, được sử dụng để phản ánh hiệu suất học tập của từng sinh viên. Dữ liệu có cấu trúc rõ ràng, đầy đủ, không chứa giá trị thiếu và phù hợp cho các phân tích định lượng chuyên sâu.
Bộ dữ liệu Thực hành chứa tổng cộng 1000 bản ghi với 16 biến đặc trưng.
str(d)
## 'data.frame': 1000 obs. of 16 variables:
## $ student_id : chr "S1000" "S1001" "S1002" "S1003" ...
## $ age : int 23 20 21 23 19 24 21 21 23 18 ...
## $ gender : chr "Female" "Male" "Female" "Female" ...
## $ study_hours_per_day : num 0 6.9 1.4 1 5 7.2 5.6 4.3 4.4 4.8 ...
## $ social_media_hours : num 1.2 2.8 3.1 3.9 4.4 1.3 1.5 1 2.2 3.1 ...
## $ netflix_hours : num 1.1 2.3 1.3 1 0.5 0 1.4 2 1.7 1.3 ...
## $ part_time_job : chr "No" "No" "No" "No" ...
## $ attendance_percentage : num 85 97.3 94.8 71 90.9 82.9 85.8 77.7 100 95.4 ...
## $ sleep_hours : num 8 4.6 8 9.2 4.9 7.4 6.5 4.6 7.1 7.5 ...
## $ diet_quality : chr "Fair" "Good" "Good" "Fair" ...
## $ exercise_frequency : int 6 6 1 4 3 1 2 0 3 5 ...
## $ parental_education_level : chr "Master" "High School" "High School" "Master" ...
## $ internet_quality : chr "Average" "Average" "Fair" "Good" ...
## $ mental_health_rating : int 8 8 1 1 1 4 4 8 1 10 ...
## $ extracurricular_participation: chr "Yes" "No" "No" "Yes" ...
## $ exam_score : num 56.2 100 34.3 26.8 66.4 100 89.8 72.6 78.9 100 ...
Các biến trong bộ dữ liệu bao gồm:
student_id: mã sinh viên, dạng chuỗi ký tự (mỗi sinh viên có một mã duy nhất).
age: tuổi sinh viên, kiểu số nguyên.
gender: giới tính, lưu dưới dạng ký tự (“Male”, “Female”).
study_hours_per_day: số giờ học mỗi ngày, kiểu số thực.
social_media_hours: thời gian sử dụng mạng xã hội trung bình mỗi ngày, kiểu số thực.
netflix_hours: số giờ xem Netflix hoặc các nền tảng tương tự mỗi ngày, kiểu số thực.
part_time_job: sinh viên có đi làm thêm không, kiểu ký tự (“Yes” hoặc “No”).
attendance_percentage: tỷ lệ chuyên cần đến lớp (tính theo %), kiểu số thực.
sleep_hours: số giờ ngủ trung bình mỗi ngày, kiểu số thực.
diet_quality: chất lượng chế độ ăn uống, kiểu ký tự (“Good”, “Fair”).
exercise_frequency: tần suất tập thể dục mỗi tuần, kiểu số nguyên.
parental_education_level: trình độ học vấn cao nhất của phụ huynh, kiểu ký tự (“None”, “High School”, “Bachelor”, “Master”).
internet_quality: chất lượng kết nối Internet tại nơi ở, kiểu ký tự (“Average”, “Good”).
mental_health_rating: đánh giá sức khỏe tâm thần theo thang điểm (ví dụ: từ 1 đến 10), kiểu số nguyên.
extracurricular_participation: sinh viên có tham gia hoạt động ngoại khóa không, kiểu ký tự (“Yes” hoặc “No”).
exam_score: điểm bài thi cuối kỳ, kiểu số thực.
dldt <- c("gender", "part_time_job", "diet_quality", "parental_education_level", "internet_quality","extracurricular_participation")
dt <- d[, dldt]
head(dt)
## gender part_time_job diet_quality parental_education_level internet_quality
## 1 Female No Fair Master Average
## 2 Male No Good High School Average
## 3 Female No Good High School Fair
## 4 Female No Fair Master Good
## 5 Female No Fair Master Good
## 6 Male No Fair Master Average
## extracurricular_participation
## 1 Yes
## 2 No
## 3 No
## 4 Yes
## 5 No
## 6 No
tail(dt)
## gender part_time_job diet_quality parental_education_level
## 995 Female No Good High School
## 996 Female No Fair High School
## 997 Female Yes Fair High School
## 998 Male No Good Bachelor
## 999 Male Yes Fair Bachelor
## 1000 Female No Good Bachelor
## internet_quality extracurricular_participation
## 995 Average No
## 996 Good Yes
## 997 Average Yes
## 998 Good Yes
## 999 Average No
## 1000 Average No
any(is.na(dt))
## [1] FALSE
Kết quả thu được sau khi kiểm tra “False” ta có thể nói không có giá trị Na trong dữ liệu.
# Kiểm tra kiểu dữ liệu của từng biến trong dldt
sapply(dt, class)
## gender part_time_job
## "character" "character"
## diet_quality parental_education_level
## "character" "character"
## internet_quality extracurricular_participation
## "character" "character"
Kết quả kiểm tra kiểu dữ liệu ban đầu cho thấy các biến gender, part_time_job, diet_quality, parental_education_level, internet_quality và extracurricular_participation đều đang ở kiểu “character”, tức là chuỗi ký tự. Đây là dấu hiệu cho thấy dữ liệu chưa được xử lý đúng kiểu, đặc biệt khi các biến này đều mang tính phân loại.
Cụ thể, gender là biến định tính nên cần được chuyển sang kiểu factor để phục vụ cho phân tích thống kê theo nhóm giới tính. Các biến nhị phân như part_time_job và extracurricular_participation cũng nên chuyển thành factor với hai mức “Yes” và “No”. Đối với các biến có thứ tự như diet_quality, internet_quality và parental_education_level, việc chuyển sang kiểu ordered factor là cần thiết nhằm thể hiện đúng bản chất của dữ liệu và cho phép áp dụng các phương pháp phân tích thứ bậc.
Nếu các biến phân loại này vẫn giữ ở dạng chuỗi ký tự, quá trình phân tích sau này sẽ gặp nhiều hạn chế, đặc biệt trong việc trực quan hóa, tính toán tần suất, hoặc xây dựng mô hình học máy. Do đó, việc chuyển đổi đúng kiểu dữ liệu là một bước tiền xử lý quan trọng, góp phần đảm bảo tính chính xác và hiệu quả của toàn bộ quy trình phân tích.
dt <- data.frame(lapply(dt, as.factor))
Bảng tần suất
#Lập bảng tần suất của biến Gender
table(dt$gender)/sum(nrow(dt))
##
## Female Male
## 0.522 0.478
Bảng tần số
#Lập bảng tần số biến Gender
table(dt$gender)
##
## Female Male
## 522 478
Biểu đồ
# Vẽ biểu đồ tròn
pie(table(dt$gender) ,
main = "Tỷ lệ giới tính",
labels = paste0(names(table(dt$gender)),
" (", round(table(dt$gender)/sum(nrow(dt)) *100, 1), "%)"),
col = c("blue", "red"))
Biểu đồ trên phản ánh cơ cấu giới tính của sinh viên trong tập dữ liệu khảo sát. Kết quả cho thấy:
Sinh viên nữ (Female) chiếm tỷ lệ 52.2%
Sinh viên nam (Male) chiếm 47.8%
Tỷ lệ chênh lệch giữa hai nhóm không quá lớn, tuy nhiên có thể thấy nữ giới chiếm ưu thế nhẹ trong tổng thể mẫu. Điều này phần nào phản ánh sự hiện diện ngày càng đông đảo của nữ sinh trong môi trường giáo dục.
Bảng tần suất
#Lập bảng tần suất của biến part_time_job
table(dt$part_time_job)/sum(nrow(dt))
##
## No Yes
## 0.785 0.215
Bảng tần số
#Lập bảng tần số biến part_time_job
table(dt$part_time_job)
##
## No Yes
## 785 215
Vậy trong data này có 78.5% sinh viên không đi làm thêm và 21.5% sinh viên đi làm thêm
Biểu đồ
# Vẽ biểu đồ tròn
pie(table(dt$part_time_job) ,
main = "Sinh viên có việc làm partime",
labels = paste0(names(table(dt$part_time_job)),
" (", round(table(dt$part_time_job)/sum(nrow(dt)) *100, 1), "%)"),
col = c("lightgreen", "lightcoral"))
Biểu đồ tròn thể hiện tỷ lệ sinh viên có việc làm part-time. Theo biểu đồ, phần lớn sinh viên không có việc làm part-time, chiếm tỷ lệ 78.5%. Trong khi đó, chỉ có 21.5% sinh viên đang làm thêm ngoài giờ học. Sự chênh lệch đáng kể này cho thấy đa số sinh viên vẫn ưu tiên việc học hơn là đi làm thêm, hoặc có thể gặp khó khăn trong việc tìm việc làm phù hợp với lịch học.
Bảng tần suất
#Lập bảng tần suất của biến diet_quality
table(dt$diet_quality)/sum(nrow(dt))
##
## Fair Good
## 0.583 0.417
Bảng tần số
#Lập bảng tần số biến diet_quality
table(dt$diet_quality)
##
## Fair Good
## 583 417
Biểu đồ
library(ggplot2)
# Tạo bảng tần số để vẽ nhãn
freq_table <- as.data.frame(table(dt$diet_quality))
colnames(freq_table) <- c("diet_quality", "frequency")
# Vẽ biểu đồ
ggplot(freq_table, aes(x = diet_quality, y = frequency, fill = diet_quality)) +
geom_bar(stat = "identity", color = "black") +
geom_text(aes(label = frequency), vjust = -0.3, size = 4) + # Nhãn ghi chú
scale_fill_manual(values = c("Fair" = "#FFD700", "Good" = "#32CD32")) +
labs(title = "Biểu đồ tần chất lượng chế độ ăn uống của sinh viên",
x = "Chất lượng chế độ ăn uống",
y = "Tần số") +
theme_minimal() +
theme(legend.position = "none")
Biểu đồ trên thể hiện tần suất đánh giá chất lượng chế độ ăn uống của sinh viên theo hai mức độ: Fair (Khá), Good (Tốt).
Mức Fair chiếm tỷ lệ cao nhất với 583 sinh viên, cho thấy phần lớn sinh viên cho rằng chế độ ăn của họ ở mức tạm ổn nhưng chưa thực sự tốt.
Mức Good có 417 sinh viên đánh giá phản ánh một nhóm đáng kể sinh viên có chế độ ăn uống tương đối tốt.
Từ kết quả này, có thể thấy rằng đa số sinh viên chưa có chế độ ăn uống đạt chất lượng. Điều này đặt ra yêu cầu cần nâng cao nhận thức dinh dưỡng trong sinh viên, đồng thời có thể cân nhắc các giải pháp hỗ trợ bữa ăn hợp lý tại trường học nhằm cải thiện sức khỏe và hiệu quả học tập.
Bảng tần suất
#Lập bảng tần suất của biến parental_education_level
table(dt$parental_education_level)/sum(nrow(dt))
##
## Bachelor High School Master None
## 0.350 0.392 0.167 0.091
Bảng tần số
#Lập bảng tần số biến parental_education_level
table(dt$parental_education_level)
##
## Bachelor High School Master None
## 350 392 167 91
Biểu đồ
library(ggplot2)
# Tạo bảng tần số
freq_table <- as.data.frame(table(dt$parental_education_level))
colnames(freq_table) <- c("parental_education_level", "frequency")
# Vẽ biểu đồ
ggplot(freq_table, aes(x = parental_education_level, y = frequency, fill = parental_education_level)) +
geom_bar(stat = "identity", color = "black") +
geom_text(aes(label = frequency), vjust = -0.3, size = 4) +
scale_fill_manual(values = c("None" = "#FF9999",
"High School" = "#99CCFF",
"Bachelor" = "#66C2A5",
"Master" = "#FFD700")) +
labs(title = "Biểu đồ thể hiện học vấn của Phụ Huynh",
x = "Trình độ học vấn của cha mẹ",
y = "Tần số") +
theme_minimal() +
theme(legend.position = "none")
Biểu đồ cho thấy sự phân bố trình độ học vấn của phụ huynh trong bộ dữ
liệu khảo sát. Trong đó, phần lớn phụ huynh có trình độ học vấn từ bậc
trung học phổ thông trở lên. Cụ thể, nhóm có trình độ trung học phổ
thông chiếm tỷ lệ cao nhất với 392 người, theo sau là nhóm cử nhân với
350 người. Số lượng phụ huynh có trình độ thạc sĩ thấp hơn đáng kể, chỉ
167 người, trong khi nhóm không có trình độ học vấn chiếm tỷ lệ thấp
nhất với 91 người. Sự chênh lệch này cho thấy nền tảng học vấn của phụ
huynh phần lớn ở mức trung bình đến khá,
Bảng tần suất
#Lập bảng tần suất của biến internet_quality
table(dt$internet_quality)/sum(nrow(dt))
##
## Average Fair Good
## 0.391 0.127 0.482
Bảng tần số
#Lập bảng tần số biến internet_quality
table(dt$internet_quality)
##
## Average Fair Good
## 391 127 482
Biểu đồ
# Tạo bảng tần số để trực quan hóa
freq_table <- as.data.frame(table(dt$internet_quality))
colnames(freq_table) <- c("internet_quality", "frequency")
# Vẽ biểu đồ cột
ggplot(freq_table, aes(x = internet_quality, y = frequency, fill = internet_quality)) +
geom_bar(stat = "identity", color = "black") +
geom_text(aes(label = frequency), vjust = -0.3, size = 4) +
scale_fill_manual(values = c("Poor" = "#FF9999",
"Average" = "#FFD700",
"Good" = "#66C2A5")) +
labs(title = "Biểu đồ chất lượng kết nối Internet",
x = "Chất lượng Internet",
y = "Tần số") +
theme_minimal() +
theme(legend.position = "none")
Biểu đồ cho thấy đa số sinh viên được khảo sát có chất lượng kết nối Internet ở mức Good (tốt), chiếm 447 người, tiếp theo là mức Average (trung bình) với 391 người. Nhóm có chất lượng kết nối Poor (kém) chỉ có 162 người.
Điều này cho thấy phần lớn sinh viên được khảo sát có điều kiện học tập trực tuyến tương đối thuận lợi nhờ vào kết nối Internet ổn định. Tuy nhiên, vẫn còn một bộ phận không nhỏ (khoảng 16.7%) gặp khó khăn do kết nối kém, điều này có thể ảnh hưởng tiêu cực đến hiệu quả học tập và cần được xem xét để có giải pháp hỗ trợ phù hợp.
Bảng tần suất
#Lập bảng tần suất của biến extracurricular_participation
table(dt$extracurricular_participation)/sum(nrow(dt))
##
## No Yes
## 0.682 0.318
Bảng tần số
#Lập bảng tần số biến extracurricular_participation
table(dt$extracurricular_participation)
##
## No Yes
## 682 318
Biểu đồ
# Vẽ biểu đồ tròn
pie(table(dt$extracurricular_participation) ,
main = "Sinh viên tham gia hoạt động ngoại khóa",
labels = paste0(names(table(dt$extracurricular_participation)),
" (", round(table(dt$extracurricular_participation)/sum(nrow(dt)) *100, 1), "%)"),
col = c("lightgreen", "lightcoral"))
Biểu đồ tròn thể hiện rằng chỉ có 31.8% sinh viên tham gia các hoạt động ngoại khóa, trong khi đó 68.2% không tham gia. Tỷ lệ sinh viên không tham gia khá cao, phản ánh thực trạng rằng phần lớn sinh viên chưa chủ động hoặc chưa có điều kiện tham gia các hoạt động bên ngoài lớp học. Điều này có thể xuất phát từ áp lực học tập, thiếu thông tin, hoặc thiếu động lực. Việc khuyến khích sinh viên tham gia nhiều hơn vào các hoạt động ngoại khóa là cần thiết vì đây là yếu tố quan trọng giúp rèn luyện kỹ năng mềm, xây dựng mối quan hệ xã hội và phát triển toàn diện.
Ước lượng khoảng tin cậy
# Số người nữ (gender = "Female") và tổng số quan sát
n_female <- sum(dt$gender == "Female")
n_total <- nrow(dt)
# Tính khoảng tin cậy 95% và kiểm định giả thuyết với tỷ lệ kỳ vọng p = 0.5
test_female <- prop.test(n_female, n_total, p = 0.5, correct = FALSE)
test_female
##
## 1-sample proportions test without continuity correction
##
## data: n_female out of n_total, null probability 0.5
## X-squared = 1.936, df = 1, p-value = 0.1641
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.4910153 0.5528164
## sample estimates:
## p
## 0.522
Tỷ lệ nữ trong dữ liệu là 0.522.
Khoảng tin cậy 95% cho tỷ lệ này là từ 0.491 đến 0.5528.
Kiểm định giả thuyết
Giả thuyết đặt ra như sau:
H₀: p = 0.5 (Tỷ lệ nữ là sinh viên gender là 50%)
H₁: p ≠ 0.5 (Tỷ lệ nữ là sinh viên gender khác 50%)
Kết quả kiểm định giả thuyết cho thấy p-value = 0.2295, lớn hơn mức ý nghĩa thông thường α = 0.05. Do đó, chúng ta không bác bỏ giả thuyết không (H₀), tức là chưa có đủ bằng chứng thống kê để khẳng định rằng tỷ lệ nữ trong tổng thể khác 50%.
Khoảng tin cậy 95% cho tỷ lệ nữ là từ 49.1% đến 55.3%, trong đó có chứa giá trị 50%. Điều này càng củng cố kết luận rằng sự khác biệt giữa tỷ lệ nữ trong mẫu (52.2%) và mức giả định 50% không đủ ý nghĩa thống kê — nhiều khả năng đây chỉ là kết quả của sự biến động ngẫu nhiên trong quá trình chọn mẫu.
Tóm lại: mặc dù tỷ lệ nữ quan sát được trong mẫu là 52.2%, nhưng với p-value lớn và khoảng tin cậy bao gồm 50%, chúng ta không thể kết luận rằng tỷ lệ nữ trong tổng thể khác biệt một cách có ý nghĩa thống kê so với 50%.
Ước lượng khoảng tin cậy
# Số người nữ (gender = "Female") và tổng số quan sát
n_yes <- sum(dt$part_time_job == "Yes")
n_total1 <- nrow(dt)
# Tính khoảng tin cậy 95% và kiểm định giả thuyết với tỷ lệ kỳ vọng p = 0.5
test_yes <- prop.test(n_yes, n_total1, p = 0.5, correct = FALSE)
test_yes
##
## 1-sample proportions test without continuity correction
##
## data: n_yes out of n_total1, null probability 0.5
## X-squared = 324.9, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.1906534 0.2415278
## sample estimates:
## p
## 0.215
Tỷ lệ chọn “Yes” trong mẫu là 0.215.
Khoảng tin cậy 95% cho tỷ lệ này là từ 0.1907 đến 0.2415.
Kiểm định giả thuyết
Giả thuyết kiểm định được đặt ra như sau:
H₀: p = 0.5 (Tỷ lệ sinh viên có việc “Yes” là 50%)
H₁: p ≠ 0.5 (Tỷ lệ sinh viên không có việc “Yes” khác 50%)
Kết quả kiểm định cho thấy p-value < 2.2e-16, nhỏ hơn rất nhiều so với mức ý nghĩa α = 0.05. Do đó, chúng ta bác bỏ giả thuyết không (H₀). Điều này cho thấy có đủ bằng chứng thống kê để kết luận rằng tỷ lệ chọn “Yes” trong tổng thể khác với 50%. Khoảng tin cậy 95% cho tỷ lệ chọn “Yes” là từ 19.07% đến 24.15%, không chứa giá trị 0.5, càng củng cố thêm việc bác bỏ H₀.
Tóm lại: Tỷ lệ chọn “Yes” trong mẫu là 21.5%. Với p-value rất nhỏ (p < 2.2e-16) và khoảng tin cậy không chứa 50%, kết quả cho thấy sự khác biệt so với tỷ lệ 50% là có ý nghĩa thống kê. Tỷ lệ này thấp hơn đáng kể so với mức giả định ban đầu, và không thể được xem là ngẫu nhiên.
Ước lượng khoảng tin cậy
# Số người nữ (diet_quality = "Good") và tổng số quan sát
n_good <- sum(dt$diet_quality == "Good")
n_total2 <- nrow(dt)
# Tính khoảng tin cậy 95% và kiểm định giả thuyết với tỷ lệ kỳ vọng p = 0.5
test_good <- prop.test(n_good, n_total2, p = 0.5, correct = FALSE)
test_good
##
## 1-sample proportions test without continuity correction
##
## data: n_good out of n_total2, null probability 0.5
## X-squared = 27.556, df = 1, p-value = 1.526e-07
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.3868147 0.4478205
## sample estimates:
## p
## 0.417
Tỷ lệ đánh giá “Good” trong mẫu là 0.417.
Khoảng tin cậy 95% cho tỷ lệ này là từ 0.3868 đến 0.4478.
Kiểm định giả thuyết
Giả thuyết được đặt ra như sau:
H₀: p = 0.5 (Tỷ lệ đánh giá “Good” là 50%)
H₁: p ≠ 0.5 (Tỷ lệ đánh giá “Good” khác 50%)
Kết quả kiểm định cho thấy p-value = 1.201e-14, nhỏ hơn rất nhiều so với mức ý nghĩa α = 0.05. Do đó, chúng ta bác bỏ giả thuyết không (H₀). Kết quả này chỉ ra rằng có sự khác biệt có ý nghĩa thống kê giữa tỷ lệ đánh giá “Good” quan sát được trong mẫu và tỷ lệ giả định là 50%.
Khoảng tin cậy 95% cho tỷ lệ này là từ 38.7% đến 44.8%, không bao gồm 50%, càng củng cố thêm kết luận bác bỏ H₀.
Tóm lại: Tỷ lệ đánh giá “Good” trong mẫu là 41.7%. Với p-value rất nhỏ (1.526e-074) và khoảng tin cậy không chứa giá trị 50%, chúng ta có đủ bằng chứng thống kê để khẳng định rằng tỷ lệ đánh giá “Good” trong tổng thể khác một cách đáng kể so với 50%. Tỷ lệ này thấp hơn đáng kể so với mức kỳ vọng ban đầu, cho thấy xu hướng đánh giá “Good” không chiếm đa số trong tổng thể.
Ước lượng khoảng tin cậy
# Số người nữ (extracurricular_participation = "Yes") và tổng số quan sát
n_yes1 <- sum(dt$extracurricular_participation == "Yes")
n_total3 <- nrow(dt)
# Tính khoảng tin cậy 95% và kiểm định giả thuyết với tỷ lệ kỳ vọng p = 0.5
test_yes1 <- prop.test(n_yes1, n_total1, p = 0.5, correct = FALSE)
test_yes1
##
## 1-sample proportions test without continuity correction
##
## data: n_yes1 out of n_total1, null probability 0.5
## X-squared = 132.5, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.2898795 0.3475134
## sample estimates:
## p
## 0.318
Tỷ lệ chọn “Yes” trong mẫu là 0.318.
Khoảng tin cậy 95% cho tỷ lệ này là từ 0.2899 đến 0.3475.
Kiểm định giả thuyết
Giả thuyết kiểm định:
H₀: p = 0.5 (Tỷ lệ chọn “Yes” là 50%)
H₁: p ≠ 0.5 (Tỷ lệ chọn “Yes” khác 50%)
Kết quả kiểm định cho thấy p-value < 2.2e-16, rất nhỏ so với mức ý nghĩa α = 0.05. Do đó, chúng ta bác bỏ giả thuyết không (H₀). Điều này cho thấy có bằng chứng thống kê mạnh mẽ rằng tỷ lệ chọn “Yes” khác với 50%.
Khoảng tin cậy 95% là từ 28.99% đến 34.75%, không chứa giá trị 50%, càng khẳng định sự khác biệt có ý nghĩa thống kê.
Tóm lại: Tỷ lệ chọn “Yes” trong mẫu là 31.8%. Với p-value cực nhỏ và khoảng tin cậy không chứa 50%, chúng ta có đủ bằng chứng để kết luận rằng tỷ lệ chọn “Yes” trong tổng thể thấp hơn đáng kể so với 50%. Đây không phải là kết quả ngẫu nhiên, mà là một sự khác biệt có ý nghĩa thống kê rõ rệt.
# Bảng tần số chéo (cross-tabulation) giữa Gender và Part Time Job
table_gender_job <- table(dt$gender, dt$part_time_job)
table_gender_job
##
## No Yes
## Female 417 105
## Male 368 110
diff_count <- table_gender_job["Female", "Yes"] - table_gender_job["Male", "Yes"]
diff_not_owner_count <- table_gender_job["Female", "No"] - table_gender_job["Male", "No"]
cat("Nữ có việc nhiều hơn nam:", diff_count, "người\n")
## Nữ có việc nhiều hơn nam: -5 người
cat("Nữ không có việc nhiều hơn nam:", diff_not_owner_count, "người\n")
## Nữ không có việc nhiều hơn nam: 49 người
# Tổng số mẫu
total_samples <- nrow(dt)
# Tỷ lệ tuyệt đối trên tổng số mẫu
prop_abs <- table_gender_job / total_samples
# Tỷ lệ tương đối trong từng giới tính (theo hàng)
prop_by_gender <- prop.table(table_gender_job, margin = 1) #tính tỷ lệ cho từng hàng, tức là chia từng giá trị trong hàng đó cho tổng của hàng đó.
# In tỷ lệ tuyệt đối trên tổng số mẫu
print("Tỷ lệ tuyệt đối (trên tổng số mẫu):")
## [1] "Tỷ lệ tuyệt đối (trên tổng số mẫu):"
print(round(prop_abs, 4))
##
## No Yes
## Female 0.417 0.105
## Male 0.368 0.110
# Đưa dữ liệu về dạng long để vẽ
df_prop <- as.data.frame(prop_by_gender)
colnames(df_prop) <- c("Gender", "ParttimeJob", "Proportion")
# Vẽ biểu đồ cột nhóm
ggplot(df_prop, aes(x = Gender, y = Proportion, fill = ParttimeJob)) +
geom_bar(stat = "identity", position = position_dodge(width = 0.9)) +
geom_text(aes(label = scales::percent(Proportion, accuracy = 0.1)),
position = position_dodge(width = 0.9),
vjust = -0.3, size = 3.5) +
scale_y_continuous(labels = scales::percent, limits = c(0, 1)) +
labs(title = "Tỷ lệ sinh viên có/không có việc làm part-time theo giới tính",
x = "Giới tính", y = "Tỷ lệ (%)", fill = "Việc làm part-time") +
theme_minimal()
Biểu đồ cột nhóm thể hiện tỷ lệ sinh viên nam và nữ có hoặc không có việc làm part-time, cho thấy phần lớn sinh viên ở cả hai giới đều không làm thêm, với tỷ lệ không làm part-time lần lượt là 79,9% ở nữ và 77,0% ở nam. Tỷ lệ sinh viên nam làm việc part-time cao hơn nữ một chút, lần lượt là 23,0% so với 20,1%, cho thấy nam giới có xu hướng tham gia việc làm thêm nhiều hơn khoảng 2,9 điểm phần trăm. Mặc dù có sự khác biệt nhỏ này, mô hình chung cho thấy ưu tiên học tập toàn thời gian vẫn chiếm đa số và việc làm part-time không phổ biến ở cả hai nhóm. Sự chênh lệch này có thể phản ánh khác biệt về cơ hội việc làm, nhu cầu tài chính hoặc sở thích, nhưng để xác định ý nghĩa thống kê của sự khác biệt cần thực hiện các kiểm định chuyên sâu. Tổng thể, biểu đồ minh họa rõ rằng việc làm part-time không phải là hoạt động phổ biến trong sinh viên, dù nam giới có xu hướng làm thêm nhiều hơn nữ.
chi_test <- chisq.test(table_gender_job)
chi_test
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table_gender_job
## X-squared = 1.0755, df = 1, p-value = 0.2997
chi_sq_value <- round(chi_test$statistic, 4)
df_value <- chi_test$parameter
p_value <- round(chi_test$p.value, 4)
Giá trị thống kê Chi-bình phương: 1.0755
Bậc tự do (df): 1
Giá trị p: p_value = 0.2997
Với mức ý nghĩa \(\alpha = 0.05\), `r ifelse(p_value1 > 0.05, “vì p_value > 0.05, ta không đủ cơ sở bác bỏ giả thuyết H₀, tức là không có mối quan hệ đáng kể giữa giới tính và nghề nghiệp.”,
Nhận xét: Kết quả kiểm định cho thấy không có sự khác biệt đáng kể về phân bố nghề nghiệp giữa nam và nữ trong mẫu dữ liệu này. Điều này cho thấy giới tính không phải là yếu tố quyết định rõ ràng đối với nghề nghiệp trong nhóm quan sát hiện tại. Tuy nhiên, kết quả có thể bị ảnh hưởng bởi quy mô mẫu hoặc các yếu tố xã hội, văn hóa, kinh tế phức tạp khác chưa được xem xét. Do đó, cần có thêm các nghiên cứu với dữ liệu lớn hơn hoặc phân tích sâu hơn các yếu tố liên quan để có cái nhìn toàn diện hơn về mối quan hệ giữa giới tính và nghề nghiệp.
# Bảng tần số chéo (cross-tabulation) giữa Gender và Diet Quality
table_gender_dq <- table(dt$gender, dt$diet_quality)
table_gender_dq
##
## Fair Good
## Female 301 221
## Male 282 196
diff_fair <- table_gender_dq["Female", "Fair"] - table_gender_dq["Male", "Fair"]
diff_good <- table_gender_dq["Female", "Good"] - table_gender_dq["Male", "Good"]
cat("Nữ có chế độ ăn Fair nhiều hơn nam:", diff_fair, "người\n")
## Nữ có chế độ ăn Fair nhiều hơn nam: 19 người
cat("Nữ có chế độ ăn Good nhiều hơn nam:", diff_good, "người\n")
## Nữ có chế độ ăn Good nhiều hơn nam: 25 người
# Tổng số mẫu
total_samples2 <- nrow(dt)
# Tỷ lệ tuyệt đối trên tổng số mẫu
prop_abs2 <- table_gender_dq / total_samples2
# Tỷ lệ tương đối trong từng giới tính (theo hàng)
prop_by_gender2 <- prop.table(table_gender_dq, margin = 1) #tính tỷ lệ cho từng hàng, tức là chia từng giá trị trong hàng đó cho tổng của hàng đó.
# In tỷ lệ tuyệt đối trên tổng số mẫu
print("Tỷ lệ tuyệt đối (trên tổng số mẫu):")
## [1] "Tỷ lệ tuyệt đối (trên tổng số mẫu):"
print(round(prop_abs2, 4))
##
## Fair Good
## Female 0.301 0.221
## Male 0.282 0.196
df <- as.data.frame(table_gender_dq)
colnames(df) <- c("Gender", "DietQuality", "Count")
ggplot(df, aes(x = DietQuality, y = Count, fill = Gender)) +
geom_bar(stat = "identity", position = position_dodge()) +
geom_text(aes(label = Count), position = position_dodge(width = 0.9), vjust = -0.3, size = 3.5) +
labs(title = "Số lượng theo giới tính và mức độ chế độ ăn",
x = "Mức độ chế độ ăn",
y = "Số lượng",
fill = "Giới tính") +
theme_minimal()
Biểu đồ cột nhóm này là một minh họa trực quan và sinh động về mối liên hệ giữa giới tính và mức độ chất lượng chế độ ăn trong nhóm sinh viên được khảo sát. Ba mức đánh giá chất lượng chế độ ăn – “Good” (Tốt), “Fair” (Khá) – được thể hiện dọc theo trục hoành, trong khi trục tung biểu thị số lượng sinh viên thuộc từng nhóm. Màu sắc được sử dụng hiệu quả để phân biệt giới tính: nữ sinh được biểu thị bằng cột màu đỏ cam, còn nam sinh bằng màu xanh ngọc. Việc gắn số liệu cụ thể lên mỗi cột giúp người xem nhanh chóng nắm bắt được quy mô từng nhóm.
Dữ liệu cho thấy phần lớn sinh viên có chế độ ăn ở mức trung bình hoặc tốt. Nhóm “Fair” chiếm tỷ lệ cao nhất ở cả hai giới, với 301 nữ sinh và 221 nam sinh – cho thấy đây là mức phổ biến nhất. Nhóm “Good” cũng có số lượng đáng kể, với 282 nữ và 196 nam, phản ánh rằng vẫn có một tỉ lệ lớn sinh viên duy trì được chế độ ăn tích cực.
chi_test2 <- chisq.test(table_gender_dq)
chi_test2
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table_gender_dq
## X-squared = 0.13166, df = 1, p-value = 0.7167
chi_sq_value2 <- round(chi_test2$statistic, 4)
df_value2 <- chi_test2$parameter
p_value2 <- round(chi_test2$p.value, 4)
Giá trị thống kê Chi-bình phương: 0.1317
Bậc tự do (df): 1
Giá trị p: p_value = 0.7167
Với mức ý nghĩa \(\alpha = 0.05\), `r ifelse(p_value1 > 0.05, “vì p_value > 0.05, ta không đủ cơ sở bác bỏ giả thuyết H₀, tức là không có mối quan hệ đáng kể giữa giới tính và chất lượng ăn uống.”,
Nhận xét: Kết quả kiểm định cho thấy không có sự khác biệt đáng kể về chế độ ăn uống giữa nam và nữ trong nhóm sinh viên được khảo sát. Nói cách khác, xu hướng lựa chọn các chế độ ăn như Good, Fail, Poor không phụ thuộc rõ ràng vào giới tính. Điều này gợi ý rằng các yếu tố ảnh hưởng đến chế độ ăn uống của sinh viên có thể đến từ những khía cạnh khác như nhận thức về sức khỏe, ảnh hưởng xã hội, điều kiện tài chính, hay thói quen cá nhân — hơn là từ giới tính. Để có cái nhìn đầy đủ và sâu sắc hơn, cần có thêm các nghiên cứu kết hợp nhiều biến số và mẫu dữ liệu lớn hơn.
# Bảng tần số chéo (cross-tabulation) giữa diet_quality và part_time_job
table_diet_pj <- table(dt$diet_quality, dt$part_time_job)
table_diet_pj
##
## No Yes
## Fair 464 119
## Good 321 96
# So sánh giữa Good và Fair
diff_yes_good_fair <- table_diet_pj["Good", "Yes"] - table_diet_pj["Fair", "Yes"]
diff_no_good_fair <- table_diet_pj["Good", "No"] - table_diet_pj["Fair", "No"]
cat("Chế độ ăn Good có việc nhiều hơn Fair:", diff_yes_good_fair, "người\n")
## Chế độ ăn Good có việc nhiều hơn Fair: -23 người
cat("Chế độ ăn Good không có việc nhiều hơn Fair:", diff_no_good_fair, "người\n")
## Chế độ ăn Good không có việc nhiều hơn Fair: -143 người
# Tổng số mẫu
total_samples3 <- nrow(dt)
# Tỷ lệ tuyệt đối trên tổng số mẫu
prop_abs3 <- table_diet_pj / total_samples3
# Tỷ lệ tương đối trong từng giới tính (theo hàng)
prop_by_dq<- prop.table(table_diet_pj, margin = 1) #tính tỷ lệ cho từng hàng, tức là chia từng giá trị trong hàng đó cho tổng của hàng đó.
# In tỷ lệ tuyệt đối trên tổng số mẫu
print("Tỷ lệ tuyệt đối (trên tổng số mẫu):")
## [1] "Tỷ lệ tuyệt đối (trên tổng số mẫu):"
print(round(prop_abs3, 4))
##
## No Yes
## Fair 0.464 0.119
## Good 0.321 0.096
# In tỷ lệ tương đối trong từng giới tính
print("Tỷ lệ tương đối trong từng giới tính:")
## [1] "Tỷ lệ tương đối trong từng giới tính:"
print(round(prop_by_gender, 4))
##
## No Yes
## Female 0.7989 0.2011
## Male 0.7699 0.2301
library(ggplot2)
df_prop_dq <- as.data.frame(prop_by_dq)
colnames(df_prop_dq) <- c("DietQuality", "PartTimeJob", "Proportion")
ggplot(df_prop_dq, aes(x = DietQuality, y = Proportion, fill = PartTimeJob)) +
geom_bar(stat = "identity", position = position_dodge()) +
geom_text(aes(label = scales::percent(Proportion, accuracy = 0.1)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.5) +
scale_y_continuous(labels = scales::percent) +
labs(title = "Tỷ lệ sinh viên có/không có việc làm theo chất lượng chế độ ăn",
x = "Chất lượng chế độ ăn",
y = "Tỷ lệ (%)",
fill = "Việc làm part-time") +
theme_minimal(base_size = 13)
Biểu đồ thể hiện tỷ lệ sinh viên làm và không làm part-time theo hai mức chất lượng chế độ ăn “Fair” và “Good”. Phần lớn sinh viên không làm part-time, với 79,6% ở nhóm “Fair” và 77,0% ở nhóm “Good”. Tỷ lệ làm part-time ở nhóm “Good” (23,0%) cao hơn nhóm “Fair” (20,4%) khoảng 2,6 điểm phần trăm, cho thấy sinh viên có chế độ ăn tốt hơn có xu hướng làm thêm nhiều hơn.
chi_test3 <- chisq.test(table_diet_pj)
chi_test3
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table_diet_pj
## X-squared = 0.83264, df = 1, p-value = 0.3615
chi_sq_value3 <- round(chi_test3$statistic, 4)
df_value3 <- chi_test3$parameter
p_value3 <- round(chi_test3$p.value, 4)
Giá trị thống kê Chi-bình phương: 0.8326
Bậc tự do (df): 1
Giá trị p: p_value = 0.3615
Với mức ý nghĩa \(\alpha = 0.05\), `r ifelse(p_value1 > 0.05, “vì p_value > 0.05, ta không đủ cơ sở bác bỏ giả thuyết H₀, tức là không có mối quan hệ đáng kể giữa chế độ ăn và mức độ có việc làm.”,
Nhận xét: Kết quả kiểm định cho thấy không có sự khác biệt rõ rệt về chế độ ăn uống giữa các nhóm mức độ làm thêm khác nhau trong mẫu dữ liệu. Điều này cho thấy việc sinh viên làm thêm ít hay nhiều không ảnh hưởng đáng kể đến lựa chọn chế độ ăn uống của họ. Tuy nhiên, yếu tố này có thể bị chi phối bởi các biến khác như thời gian rảnh, thu nhập, nhận thức về sức khỏe hoặc thói quen cá nhân. Do đó, cần nghiên cứu thêm với mẫu lớn hơn và kết hợp các biến khác để có đánh giá toàn diện hơn về mối quan hệ giữa chế độ ăn và mức độ làm thêm.
# Bảng chéo giữa Gender và Part Time Job
gp <- table(dt$gender, dt$part_time_job)
gp
##
## No Yes
## Female 417 105
## Male 368 110
Kiểm định:
H₀: p₁ - p₂ = 0 (tỷ lệ nữ có việc làm bằng tỷ lệ nam có việc làm)
H₁: p₁ - p₂ < 0 (Tỷ lệ nữ có việc làm nhỏ hơn tỷ lệ nam có việc làm)
# Số người có việc theo từng giới tính
counts <- c(gp["Female", "Yes"], gp["Male", "Yes"])
# Tổng số người theo từng giới tính
totals <- c(sum(gp["Female", ]), sum(gp["Male", ]))
# Kiểm định tỉ lệ giữa nữ và nam (alternative = "less": giả thuyết nữ có tỉ lệ thấp hơn nam)
test <- prop.test(counts, totals, alternative = "less", correct = FALSE)
print(test)
##
## 2-sample test for equality of proportions without continuity correction
##
## data: counts out of totals
## X-squared = 1.2413, df = 1, p-value = 0.1326
## alternative hypothesis: less
## 95 percent confidence interval:
## -1.00000000 0.01386834
## sample estimates:
## prop 1 prop 2
## 0.2011494 0.2301255
prop 1 (p1) = 0.2011494 : tỷ lệ nữ sở hữu nhà khoảng 20.11%
prop 2 (p2) = 0.2301255 : tỷ lệ nam sở hữu nhà khoảng 23.01%
P-value = 0.1326
Giá trị p-value thu được là 0.1326, lớn hơn mức ý nghĩa 0.05. Do đó, chúng ta không đủ bằng chứng để bác bỏ giả thuyết \(H_0: p_1 - p_2 = 0\).
Điều này có nghĩa là, theo dữ liệu hiện tại, không có sự khác biệt có ý nghĩa thống kê giữa tỷ lệ có việc làm của nữ và nam, và không có bằng chứng cho thấy tỷ lệ có việc thấp hơn tỷ lệ nam.
# Bảng chéo giữa Gender và Diet Quality
gq <- table(dt$gender, dt$diet_quality)
gq
##
## Fair Good
## Female 301 221
## Male 282 196
Kiểm định:
H₀: p₁ - p₂ = 0 (Tỷ lệ nữ có chế độ ăn bằng tỷ lệ nam có chế độ ăn Good)
H₁: p₁ - p₂ < 0 (Tỷ lệ nữ có chế độ ăn nhỏ hơn tỷ lệ có chế độ ăn Good)
counts2 <- c(gq["Female", "Good"], gq["Male", "Good"])
totals2 <- c(sum(gq["Female", ]), sum(gq["Male", ]))
test2 <- prop.test(counts2, totals2, alternative = "less", correct = FALSE)
test2
##
## 2-sample test for equality of proportions without continuity correction
##
## data: counts2 out of totals2
## X-squared = 0.18236, df = 1, p-value = 0.6653
## alternative hypothesis: less
## 95 percent confidence interval:
## -1.0000000 0.0646577
## sample estimates:
## prop 1 prop 2
## 0.4233716 0.4100418
prop 1 (p1) = 0.4233716: tỷ lệ nữ sở hữu nhà khoảng 42.33%
prop 2 (p2) = 0.4100418: tỷ lệ nam sở hữu nhà khoảng 41%
P-value = 0.6653
Giá trị p-value thu được là 0.6653, lớn hơn mức ý nghĩa 0.05. Do đó, chúng ta không đủ bằng chứng để bác bỏ giả thuyết \(H_0: p_1 - p_2 = 0\).
Điều này có nghĩa là, theo dữ liệu hiện tại, không có sự khác biệt có ý nghĩa thống kê giữa tỷ lệ có chế độ ăn của nữ và nam, và không có bằng chứng cho thấy tỷ lệ có chế độ ăn thấp hơn tỷ lệ nam.
# Bảng chéo giữa Diet Quality và Part Time Job
dp <- table(dt$diet_quality, dt$part_time_job)
dp
##
## No Yes
## Fair 464 119
## Good 321 96
Kiểm định:
H₀: p₁ - p₂ = 0 (Tỷ lệ chế độ ăn bằng tỷ lệ có việc làm)
H₁: p₁ - p₂ < 0 (Tỷ lệ chế độ ăn nhỏ hơn tỷ lệ có việc làm)
counts3 <- c(dp["Fair", "Yes"], dp["Good", "Yes"])
totals3 <- c(sum(dp["Fair", ]), sum(dp["Good", ]))
test3 <- prop.test(counts3, totals3, alternative = "less", correct = FALSE)
test3
##
## 2-sample test for equality of proportions without continuity correction
##
## data: counts3 out of totals3
## X-squared = 0.98118, df = 1, p-value = 0.161
## alternative hypothesis: less
## 95 percent confidence interval:
## -1.00000000 0.01753223
## sample estimates:
## prop 1 prop 2
## 0.2041166 0.2302158
prop 1 (p1) = 0.2041166: tỷ lệ nữ sở hữu nhà khoảng 20.4%
prop 2 (p2) = 0.2302158: tỷ lệ nam sở hữu nhà khoảng 23%
P-value = 0.161
Giá trị p-value thu được là 0.587, lớn hơn mức ý nghĩa 0.05. Do đó, chúng ta không đủ bằng chứng để bác bỏ giả thuyết \(H_0: p_1 - p_2 = 0\).
Điều này có nghĩa là, theo dữ liệu hiện tại, không có sự khác biệt có ý nghĩa thống kê giữa chế độ ăn uống và việc làm, và không có bằng chứng cho thấy tchees độ ăn uống ảnh hưởng đến việc có việc làm hay không.
gp5 <- table(dt$gender, dt$part_time_job)
#Thêm tổng hàng và cột
gp5
##
## No Yes
## Female 417 105
## Male 368 110
library(epitools)
riskratio(gp5, method="wald")
## $data
##
## No Yes Total
## Female 417 105 522
## Male 368 110 478
## Total 785 215 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Female 1.000000 NA NA
## Male 1.144053 0.9027561 1.449845
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 0.2666778 0.2811018 0.2652243
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Có 105 nữ và 110 nam làm việc bán thời gian.
Tỷ lệ nữ có việc bán thời gian là khoảng 20.1% (105 trên 522).
Tỷ lệ nam có việc bán thời gian là khoảng 23.0% (110 trên 478).
Tỷ số rủi ro (Risk Ratio) giữa nam và nữ là 1.144, tức là nam có khả năng làm việc bán thời gian cao hơn nữ khoảng 14.4%. Tuy nhiên, khoảng tin cậy 95% cho tỷ số này là từ 0.903 đến 1.450, nghĩa là sự chênh lệch này có thể do ngẫu nhiên và không đủ chắc chắn để kết luận có sự khác biệt thực sự.
Các phép kiểm định thống kê như kiểm định chi bình phương, kiểm định Fisher, và Mid-p đều cho giá trị p lớn hơn 0.26, vượt ngưỡng thông thường 0.05. Điều này cho thấy không có bằng chứng thống kê đủ mạnh để khẳng định rằng tỷ lệ có việc làm bán thời gian của nam và nữ là khác nhau một cách đáng kể.
gd5 <- table(dt$gender, dt$diet_quality)
#Thêm tổng hàng và cột
gd5
##
## Fair Good
## Female 301 221
## Male 282 196
riskratio(gd5, method="wald")
## $data
##
## Fair Good Total
## Female 301 221 522
## Male 282 196 478
## Total 583 417 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Female 1.0000000 NA NA
## Male 0.9685151 0.8361793 1.121795
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 0.6701053 0.700197 0.6693486
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Dữ liệu từ bảng chéo cho thấy:
Trong tổng số 522 nữ, có 301 người ăn uống ở mức Fair, và 221 người ăn uống ở mức Good.
Trong tổng số 478 nam, có 282 người ăn uống ở mức Fair, và 196 người ăn uống ở mức Good.
Tỷ lệ nữ có chế độ ăn uống tốt (Good) là 221 / 522 ≈ 42.3%. Tỷ lệ nam có chế độ ăn uống tốt là 196 / 478 ≈ 41.0%.
Tỷ số rủi ro (Risk Ratio) của nam so với nữ là 0.969, tức là nam có khả năng có chế độ ăn tốt thấp hơn nữ khoảng 3.1%. Tuy nhiên, khoảng tin cậy 95% cho tỷ số này là từ 0.836 đến 1.122, nghĩa là sự khác biệt này không chắc chắn và có thể do ngẫu nhiên. Kết quả kiểm định thống kê cho các phép kiểm định (Mid-p, Fisher, Chi-square) đều cho p-value > 0.66, cao hơn ngưỡng 0.05 thông thường. Điều này cho thấy không có bằng chứng thống kê đủ mạnh để khẳng định có sự khác biệt giữa nam và nữ về tỷ lệ có chế độ ăn uống tốt.
dp5 <- table(dt$diet_quality, dt$part_time_job)
#Thêm tổng hàng và cột
dp5
##
## No Yes
## Fair 464 119
## Good 321 96
riskratio(dp5, method="wald")
## $data
##
## No Yes Total
## Fair 464 119 583
## Good 321 96 417
## Total 785 215 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Fair 1.000000 NA NA
## Good 1.127864 0.8892638 1.430484
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Fair NA NA NA
## Good 0.3233459 0.3490117 0.3219066
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Dữ liệu khảo sát cho thấy trong số những người có chế độ ăn uống trung bình (Fair), có 119 người làm việc bán thời gian trên tổng số 583 người, tương đương khoảng 20.4%. Trong khi đó, ở nhóm có chế độ ăn uống tốt (Good), có 96 người làm việc bán thời gian trên tổng số 417 người, tương đương khoảng 23.0%.
Kết quả phân tích cho thấy tỷ số rủi ro (risk ratio) giữa hai nhóm là 1.13, nghĩa là những người có chế độ ăn uống tốt có khả năng làm việc bán thời gian cao hơn khoảng 13% so với nhóm ăn uống trung bình. Tuy nhiên, khoảng tin cậy 95% của tỷ số này là từ 0.89 đến 1.43, bao gồm cả giá trị 1.0. Điều này cho thấy sự khác biệt này có thể chỉ là do ngẫu nhiên và chưa đủ mạnh để khẳng định có sự khác biệt thực sự.
Bên cạnh đó, các kiểm định thống kê như kiểm định chi bình phương, kiểm định Fisher và mid-p đều cho giá trị p lớn hơn 0.32, cao hơn mức ý nghĩa 0.05. Do đó, không có bằng chứng thống kê đủ mạnh để kết luận rằng chất lượng chế độ ăn uống có ảnh hưởng rõ rệt đến việc làm bán thời gian.
library(DescTools)
# Tính OR và khoảng tin cậy
or_gh <- OddsRatio(gp5, method = "wald", conf.level = 0.95)
or_gh
## odds ratio lwr.ci upr.ci
## 1.187112 0.877743 1.605521
Odds Ratio (OR) = 1.187
Khoảng tin cậy 95%: từ 0.878 đến 1.606
Diễn giải:
Giá trị Odds Ratio 1.187 có nghĩa là odds (tỷ lệ cơ hội) có việc làm của nữ cao hơn khoảng 18.7% so với nam. Nói cách khác, nữ có khả năng có việc làm bán thời gian cao hơn nam, nhưng mức độ chênh lệch không lớn.
Tuy nhiên, khoảng tin cậy 95% từ 0.878 đến 1.606 bao gồm giá trị 1.0, nghĩa là sự khác biệt này có thể không thực sự tồn tại mà do ngẫu nhiên.
# Tính OR và khoảng tin cậy
or_gh2 <- OddsRatio(gd5, method = "wald", conf.level = 0.95)
or_gh2
## odds ratio lwr.ci upr.ci
## 0.9466320 0.7359664 1.2175993
Odds Ratio (OR) = 0.947
Khoảng tin cậy 95%: từ 0.736 đến 1.218
Diễn giải:
Giá trị Odds Ratio 0.947 có nghĩa là odds (tỷ lệ cơ hội) có chế độ ăn uống tốt của nữ thấp hơn khoảng 5.3% so với nam. Nói cách khác, nữ có khả năng có chế độ ăn uống tốt hơi thấp hơn nam, nhưng mức chênh lệch rất nhỏ.
# Tính OR và khoảng tin cậy
or_gh3 <- OddsRatio(dp5, method = "wald", conf.level = 0.95)
or_gh3
## odds ratio lwr.ci upr.ci
## 1.1661038 0.8602434 1.5807132
Odds Ratio (OR) = 1.166
Khoảng tin cậy 95%: từ 0.860 đến 1.581
Diễn giải:
Giá trị Odds Ratio 1.166 có nghĩa là odds có việc làm của nhóm có chế độ ăn tốt cao hơn khoảng 16.6% so với nhóm có chế độ ăn kém hơn. Nói cách khác, những người có chế độ ăn tốt có xu hướng có việc làm nhiều hơn những người khác.
Tuy nhiên, khoảng tin cậy 95% từ 0.860 đến 1.581 bao gồm giá trị 1.0, cho thấy sự khác biệt về odds có việc làm giữa các nhóm chế độ ăn có thể là do ngẫu nhiên và không có ý nghĩa thống kê.
Giới tính: Tỷ lệ sinh viên nữ (52.2%) và nam (47.8%) trong mẫu tương đối cân bằng, với nữ giới chiếm ưu thế hơn một chút.
Việc làm part-time: Phần lớn sinh viên (78.5%) không tham gia làm thêm, cho thấy việc học tập có thể là ưu tiên hàng đầu hoặc cơ hội việc làm phù hợp còn hạn chế.
Chất lượng chế độ ăn: Đa số sinh viên tự đánh giá chế độ ăn của mình ở mức “Fair” (Khá - 58.3%) hoặc “Good” (Tốt - 37.8%).
Học vấn phụ huynh: Trình độ học vấn của phụ huynh khá đa dạng, với tỷ lệ đáng kể có trình độ “High School” và “Bachelor”.
Chất lượng Internet: Phần lớn sinh viên được hưởng chất lượng Internet ở mức “Good” (44.7%) hoặc “Average” (39.1%), tạo điều kiện thuận lợi cho học tập.
Hoạt động ngoại khóa: Một tỷ lệ lớn sinh viên (68.2%) không tham gia hoạt động ngoại khóa, cho thấy tiềm năng cần khai thác để phát triển kỹ năng mềm và đời sống tinh thần cho sinh viên.
Phân tích này chủ yếu tập trung vào các mối quan hệ hai biến định tính. Việc xem xét đồng thời nhiều yếu tố hoặc các biến định lượng (như study_hours_per_day, exam_score) có thể cung cấp cái nhìn sâu sắc hơn thông qua các mô hình hồi quy.
Nhìn chung, bài phân tích đã cung cấp một cái nhìn tổng quan về đặc điểm sinh viên và bước đầu khám phá các mối liên hệ giữa các yếu tố. Các kết quả cho thấy một số thói quen nhất định (như ít làm thêm, ít tham gia ngoại khóa) là phổ biến, trong khi các mối liên hệ giữa giới tính, chất lượng chế độ ăn và việc làm part-time không thể hiện rõ ràng về mặt thống kê trong mẫu dữ liệu này. Các nghiên cứu sâu hơn với các phương pháp phức tạp hơn có thể làm sáng tỏ thêm các mối quan hệ này.