library(epitools)
library(tidyverse)
library(dplyr)
library(knitr)
library(readxl)
library(kableExtra)
Giấc ngủ đóng vai trò thiết yếu trong việc duy trì sức khỏe thể chất và tinh thần, ảnh hưởng trực tiếp đến hiệu suất làm việc, khả năng tập trung và chất lượng cuộc sống. Tuy nhiên, trong bối cảnh xã hội hiện đại với nhịp sống nhanh và áp lực công việc ngày càng gia tăng, chất lượng giấc ngủ đang trở thành một vấn đề đáng quan ngại, đặc biệt ở các nhóm nghề nghiệp có đặc thù lao động khác nhau.
Tại Ấn Độ – một quốc gia có lực lượng lao động đa dạng trải dài trên nhiều lĩnh vực – việc phân tích chất lượng giấc ngủ theo từng nhóm ngành nghề có thể mang lại những hiểu biết quan trọng, phục vụ cho các nghiên cứu sức khỏe cộng đồng và chính sách lao động. Dù đã có nhiều nghiên cứu quốc tế bàn về mối liên hệ giữa nghề nghiệp và giấc ngủ, vẫn còn thiếu những phân tích cụ thể theo ngành nghề trong từng bối cảnh quốc gia, đặc biệt là tại các nước đang phát triển như Ấn Độ.
Dựa trên một bộ dữ liệu được thu thập trong tháng 4 năm 2025, gồm 13 biến độc lập liên quan đến các yếu tố cá nhân và môi trường như độ tuổi, tình trạng trị liệu, thói quen thức giấc giữa đêm, cảm giác nhiệt độ khi ngủ,… và một biến phụ thuộc là nghề nghiệp, đề tài “Phân tích các yếu tố ảnh hưởng đến giấc ngủ của các ngành nghề khác nhau” nhằm mục tiêu khám phá sự khác biệt về chất lượng giấc ngủ giữa các nhóm nghề nghiệp cũng như xác định các yếu tố có khả năng ảnh hưởng đến tình trạng này.
Với những lý do trên, tác giả đã chọn đề tài “PHÂN TÍCH CÁC YẾU TỐ ẢNH HƯỞNG ĐẾN GIẤC NGỦ CỦA CÁC NGÀNH NGHỀ KHÁC NHAU”.
Nghiên cứu và làm rõ các yếu tố ảnh hưởng đến giấc ngủ của các nhóm ngành nghề khác nhau tại Ấn Độ.
Thống kê mô tả các biến độc lập và biến nghề nghiệp để hiểu đặc điểm tổng quát của mẫu khảo sát.
Tính toán Odds Ratio (OR) và Relative Risk (RR) nhằm đánh giá mức độ ảnh hưởng của từng yếu tố đến giấc ngủ.
Kiểm định Chi-square để xác định mối liên hệ có ý nghĩa thống kê giữa các yếu tố với nghề nghiệp.
Ước lượng mô hình hồi quy logistic để xác định các yếu tố tác động đáng kể đến tình trạng giấc ngủ trong từng nhóm nghề nghiệp.
Đề xuất các hàm ý thực tiễn từ kết quả phân tích, làm cơ sở cho các chính sách nâng cao chất lượng giấc ngủ và sức khỏe tinh thần trong từng ngành nghề cụ thể tại Ấn Độ.
Đối tượng nghiên cứu: Các yếu tố ảnh hưởng tới giấc ngủ trong các ngành nghề khác nhau.
Phạm vi nghiên cứu: 1 tháng, cụ thể tháng 4 năm 2025 tại Ấn Độ.
Bài nghiên cứu sử dụng kết hợp giữa 2 phương pháp nghiên cứu định lượng và định tính, bao gồm:
Thống kê mô tả
Kiểm định Chi-square: kiểm định mối liên hệ, đánh giá sự phụ thuộc và xác định các yếu tố có thể ảnh hưởng đến giấc ngủ
Các mô hình hồi quy đơn biến (Logistic Regression), đồng thời ước lượng tỷ số Odds Ratio
Các mô hình hồi quy đa biến: Logistic Regression, Probit Regression và Complementary Log-Log Regression
Phần mềm: R Studio
Bài nghiên cứu bao gồm 3 chương:
Chương 1: Giới thiệu tổng quan về đề tài
Chương 2: Giới thiệu về bộ dữ liệu
Chương 3: Kết quả nghiên cứu và nhận xét
data <- read_excel("C:/Users/Admin/Downloads/data PTDLĐT.xlsx")
#hiển thị cấu trúc dữ liệu
str(data)
## tibble [163 × 10] (S3: tbl_df/tbl/data.frame)
## $ Gender : chr [1:163] "Male" "Female" "Female" "Male" ...
## $ Age : chr [1:163] "18-20" "18-20" "18-20" "18-20" ...
## $ Major : chr [1:163] "Mechanical" "Biotech" "Computer Science" "Computer Science" ...
## $ Hours sleep : chr [1:163] "7-8h" "7-8h" ">8h" "7-8h" ...
## $ 30 min : chr [1:163] "0/month" "2/week" "1/week" "2/week" ...
## $ Wake up middle: chr [1:163] "1/week" "0/month" "0/month" "0/month" ...
## $ Bathroom : chr [1:163] "1/week" "0/month" "0/month" "1/week" ...
## $ Cold : chr [1:163] "0/month" "2/week" "1/week" "0/month" ...
## $ Hot : chr [1:163] "1/week" "2/week" "1/week" "0/month" ...
## $ Dreams : chr [1:163] "0/month" "1/week" "1/week" "0/month" ...
Dữ liệu bộ bao gồm 163 quan sát và 10 biến định tính được lấy trên trang web Kangle, cụ thể:
Biến phụ thuộc:
Biến độc lập:
Các tác động như:
30min: Không thể ngủ trong 30 phút đầu
Wake up middle: Bị tỉnh giấc nửa đêm hoặc rạng sáng
Bathroom: Mắc đi vệ sinh trong lúc ngủ
Cold: Cảm thấy lạnh trong lúc ngủ
Hot: Cảm thấy nóng trong lúc ngủ
Dreams: Gặp ác mộng
Với các tần suất như:
0/month: Không bị trong tháng
1/week: Bị 1 lần 1 tuần
2/week: Bị 2 lần 1 tuần
‘>3/week’: Bị nhiều hơn 3 lần 1 tuần
Bảng tần suất chéo và biểu đồ trực quan hóa
# Bảng tần suất giữa 30 min và Major
tansuat1 <- table(data$`30 min`, data$Major)
phantram1 <- prop.table(tansuat1, margin = 1) * 100
bang1 <- as.data.frame(tansuat1)
bang1$Percentage <- round(as.vector(phantram1), 2)
colnames(bang1) <- c("30 min", "Major", "Frequency", "Percentage")
kable(bang1, caption = "Bảng 1: Mô tả thống kê của 2 biến 30 min và Major")
| 30 min | Major | Frequency | Percentage |
|---|---|---|---|
| >3/week | Biotech | 5 | 14.71 |
| 0/month | Biotech | 19 | 32.20 |
| 1/week | Biotech | 8 | 25.00 |
| 2/week | Biotech | 4 | 10.53 |
| >3/week | Chemical | 1 | 2.94 |
| 0/month | Chemical | 3 | 5.08 |
| 1/week | Chemical | 1 | 3.12 |
| 2/week | Chemical | 1 | 2.63 |
| >3/week | Civil | 1 | 2.94 |
| 0/month | Civil | 2 | 3.39 |
| 1/week | Civil | 1 | 3.12 |
| 2/week | Civil | 1 | 2.63 |
| >3/week | Computer Application | 1 | 2.94 |
| 0/month | Computer Application | 2 | 3.39 |
| 1/week | Computer Application | 1 | 3.12 |
| 2/week | Computer Application | 1 | 2.63 |
| >3/week | Computer Science | 14 | 41.18 |
| 0/month | Computer Science | 12 | 20.34 |
| 1/week | Computer Science | 10 | 31.25 |
| 2/week | Computer Science | 25 | 65.79 |
| >3/week | Designer | 3 | 8.82 |
| 0/month | Designer | 7 | 11.86 |
| 1/week | Designer | 3 | 9.38 |
| 2/week | Designer | 1 | 2.63 |
| >3/week | Fashion Technology | 3 | 8.82 |
| 0/month | Fashion Technology | 3 | 5.08 |
| 1/week | Fashion Technology | 2 | 6.25 |
| 2/week | Fashion Technology | 1 | 2.63 |
| >3/week | Fine Arts | 2 | 5.88 |
| 0/month | Fine Arts | 2 | 3.39 |
| 1/week | Fine Arts | 2 | 6.25 |
| 2/week | Fine Arts | 1 | 2.63 |
| >3/week | industrial engineering | 1 | 2.94 |
| 0/month | industrial engineering | 2 | 3.39 |
| 1/week | industrial engineering | 1 | 3.12 |
| 2/week | industrial engineering | 1 | 2.63 |
| >3/week | Mechanical | 2 | 5.88 |
| 0/month | Mechanical | 4 | 6.78 |
| 1/week | Mechanical | 2 | 6.25 |
| 2/week | Mechanical | 1 | 2.63 |
| >3/week | Statistics | 1 | 2.94 |
| 0/month | Statistics | 3 | 5.08 |
| 1/week | Statistics | 1 | 3.12 |
| 2/week | Statistics | 1 | 2.63 |
#Trực quan hóa cho mối quan hệ giữa 2 biến
bang1 <- data %>%
group_by(Major, `30 min`) %>%
summarise(Count = n(), .groups = "drop")
ggplot(bang1, aes(x = Major, y = Count, fill = `30 min`)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Hình 1: Mối quan hệ giữa yếu tố không thể ngủ trong 30 phút đầu và ngành nghề",
x = "Ngành nghề", y = "Không thể ngủ trong 30 phút đầu", fill = "Tần suất") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhìn chung, nhóm Công nghệ thông tin (Computer Science) có tỷ lệ gặp khó khăn về giấc ngủ cao nhất trong tất cả các mức tần suất. Cụ thể, có 16 người thuộc nhóm này gặp tình trạng khó ngủ 2 lần/tuần, chiếm 76.19% số người trong ngành. Ngoài ra, có tới 11 người chiếm 55% cho biết gặp vấn đề mất ngủ hơn 3 lần/tuần – đây là tỷ lệ cao nhất so với các nhóm ngành khác, cho thấy chất lượng giấc ngủ trong nhóm này ở mức báo động. Nguyên nhân có thể đến từ đặc thù công việc căng thẳng, áp lực cao, thời gian làm việc kéo dài và tiếp xúc thường xuyên với thiết bị điện tử.
Ngành Công nghệ sinh học (Biotech) cũng cho thấy phân bố mất ngủ ở mức cao nhưng rải rác ở nhiều mức độ. Cụ thể, có 12 người không gặp vấn đề về giấc ngủ (0 lần/tháng), chiếm 41.38% số người trong ngành; 5 người bị mất ngủ 1 lần/tuần (29.41%) và 4 người thường xuyên mất ngủ hơn 3 lần/tuần, chiếm 20%. Điều này cho thấy tình trạng mất ngủ tuy có xuất hiện nhưng không tập trung vào một mức tần suất cụ thể, phản ánh tính chất công việc hoặc lối sống đa dạng trong nhóm này.
Một số ngành như Cơ khí (Mechanical Engineering) và Xây dựng (Civil Engineering) có số lượng người tham gia vừa phải và phân bố tương đối đều giữa các mức độ tần suất. Ví dụ, ngành Cơ khí có 4 người không gặp vấn đề về giấc ngủ và 2 người mất ngủ từ 1–2 lần/tuần, không có trường hợp nào mất ngủ nghiêm trọng, cho thấy mức độ ảnh hưởng thấp hơn.
Ngược lại, các ngành như Ứng dụng máy tính (Computer Application), Thời trang (Fashion Technology), Nghệ thuật (Fine Arts) và Thống kê (Statistics) có số người tham gia rất ít (dưới 4 người/nhóm), khiến việc rút ra nhận định tổng quát gặp nhiều hạn chế. Tuy nhiên, phần lớn các cá nhân thuộc nhóm này đều không báo cáo tình trạng mất ngủ thường xuyên.
Cuối cùng, các ngành như Thiết kế (Designer) và Hóa học (Chemical) ghi nhận rất ít trường hợp mất ngủ nghiêm trọng. Chỉ có 1 người trong mỗi ngành này cho biết bị mất ngủ hơn 3 lần/tuần hoặc 1 lần/tuần, còn lại đều không gặp vấn đề về giấc ngủ.
Biểu đồ cột đi kèm đã trực quan hóa rõ sự khác biệt giữa các ngành, đặc biệt nổi bật ở nhóm Công nghệ thông tin và Công nghệ sinh học – với chiều cao cột lớn ở mức 2 lần/tuần và hơn 3 lần/tuần, phản ánh sự căng thẳng đặc thù trong công việc của hai nhóm ngành này.
Kiểm định Chi bình phương
Giả thuyết kiểm định:
\(H_0\): Hai biến độc lập không có sự tác động
\(H_1\): Hai biến có mối quan hệ
chisq.test(tansuat1)
## Warning in chisq.test(tansuat1): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: tansuat1
## X-squared = 25.626, df = 30, p-value = 0.6941
Dựa trên kết quả kiểm định Chi-bình phương giữa hai biến 30 min và Major, giá trị thống kê Chi-squared đạt 25.626 với 30 bậc tự do và giá trị p tương ứng là 0.6941. Vì p-value > 0.05, nên không đủ bằng chứng để bác bỏ giả thuyết \(H_0\), tức là KHÔNG có mối liên hệ có ý nghĩa thống kê giữa bị khó ngủ trong 30 phút đầu và ngành nghề. Nói cách khác, hai biến này có xu hướng độc lập với nhau trong bộ dữ liệu. Tuy nhiên, cần lưu ý rằng kiểm định có cảnh báo về độ chính xác do một số ô trong bảng tần suất có giá trị kỳ vọng nhỏ, điều này có thể ảnh hưởng đến độ tin cậy của kết quả.
Bảng tần suất chéo và biểu đồ trực quan hóa
# Bảng tần suất giữa Wake up middle và Major
tansuat2 <- table(data$`Wake up middle`, data$Major)
phantram2 <- prop.table(tansuat2, margin = 1) * 100
bang2 <- as.data.frame(tansuat2)
bang2$Percentage <- round(as.vector(phantram2), 2)
colnames(bang2) <- c("Wake up 1", "Major", "Frequency", "Percentage")
kable(bang2, caption = "Bảng 2: Mô tả thống kê của 2 biến Wake up middle và Major")
| Wake up 1 | Major | Frequency | Percentage |
|---|---|---|---|
| >3/month | Biotech | 0 | 0.00 |
| >3/week | Biotech | 4 | 17.39 |
| 0/month | Biotech | 21 | 28.00 |
| 1/week | Biotech | 8 | 19.51 |
| 2/month | Biotech | 0 | 0.00 |
| 2/week | Biotech | 3 | 15.00 |
| >3/month | Chemical | 0 | 0.00 |
| >3/week | Chemical | 3 | 13.04 |
| 0/month | Chemical | 1 | 1.33 |
| 1/week | Chemical | 1 | 2.44 |
| 2/month | Chemical | 0 | 0.00 |
| 2/week | Chemical | 1 | 5.00 |
| >3/month | Civil | 0 | 0.00 |
| >3/week | Civil | 1 | 4.35 |
| 0/month | Civil | 2 | 2.67 |
| 1/week | Civil | 1 | 2.44 |
| 2/month | Civil | 1 | 33.33 |
| 2/week | Civil | 0 | 0.00 |
| >3/month | Computer Application | 0 | 0.00 |
| >3/week | Computer Application | 1 | 4.35 |
| 0/month | Computer Application | 1 | 1.33 |
| 1/week | Computer Application | 2 | 4.88 |
| 2/month | Computer Application | 0 | 0.00 |
| 2/week | Computer Application | 1 | 5.00 |
| >3/month | Computer Science | 0 | 0.00 |
| >3/week | Computer Science | 6 | 26.09 |
| 0/month | Computer Science | 35 | 46.67 |
| 1/week | Computer Science | 12 | 29.27 |
| 2/month | Computer Science | 0 | 0.00 |
| 2/week | Computer Science | 8 | 40.00 |
| >3/month | Designer | 0 | 0.00 |
| >3/week | Designer | 2 | 8.70 |
| 0/month | Designer | 8 | 10.67 |
| 1/week | Designer | 3 | 7.32 |
| 2/month | Designer | 0 | 0.00 |
| 2/week | Designer | 1 | 5.00 |
| >3/month | Fashion Technology | 0 | 0.00 |
| >3/week | Fashion Technology | 2 | 8.70 |
| 0/month | Fashion Technology | 3 | 4.00 |
| 1/week | Fashion Technology | 3 | 7.32 |
| 2/month | Fashion Technology | 1 | 33.33 |
| 2/week | Fashion Technology | 0 | 0.00 |
| >3/month | Fine Arts | 1 | 100.00 |
| >3/week | Fine Arts | 0 | 0.00 |
| 0/month | Fine Arts | 1 | 1.33 |
| 1/week | Fine Arts | 4 | 9.76 |
| 2/month | Fine Arts | 1 | 33.33 |
| 2/week | Fine Arts | 0 | 0.00 |
| >3/month | industrial engineering | 0 | 0.00 |
| >3/week | industrial engineering | 1 | 4.35 |
| 0/month | industrial engineering | 2 | 2.67 |
| 1/week | industrial engineering | 1 | 2.44 |
| 2/month | industrial engineering | 0 | 0.00 |
| 2/week | industrial engineering | 1 | 5.00 |
| >3/month | Mechanical | 0 | 0.00 |
| >3/week | Mechanical | 2 | 8.70 |
| 0/month | Mechanical | 0 | 0.00 |
| 1/week | Mechanical | 4 | 9.76 |
| 2/month | Mechanical | 0 | 0.00 |
| 2/week | Mechanical | 3 | 15.00 |
| >3/month | Statistics | 0 | 0.00 |
| >3/week | Statistics | 1 | 4.35 |
| 0/month | Statistics | 1 | 1.33 |
| 1/week | Statistics | 2 | 4.88 |
| 2/month | Statistics | 0 | 0.00 |
| 2/week | Statistics | 2 | 10.00 |
#Truc quan hoa
bang2 <- data %>%
group_by(Major, `Wake up middle`) %>%
summarise(Count = n(), .groups = "drop")
ggplot(bang2, aes(x = Major, y = Count, fill = `Wake up middle`)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Hình 2: Mối quan hệ giữa yếu tố tỉnh giấc nửa đêm hoặc rạng sáng và ngành nghề",
x = "Ngành nghề", y = "Bị tỉnh giấc nửa đêm hoặc rạng sáng", fill = "Tần suất") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhóm Công nghệ thông tin (Computer Science) tiếp tục cho thấy tỉ lệ rối loạn giấc ngủ cao, đặc biệt là tình trạng tỉnh giấc nửa đêm hoặc rạng sáng. Có tới 35 người trong nhóm này cho biết không gặp tình trạng này (0 lần/tháng), chiếm 46.67%. Tuy nhiên, bên cạnh đó, có 12 người (29.27%) cho biết họ tỉnh giấc 1 lần/tuần, và 8 người (40%) tỉnh giấc tới 2 lần/tuần, cho thấy vấn đề giấc ngủ vẫn khá phổ biến. Ngoài ra, có 6 người (26.09%) tỉnh giấc hơn 3 lần/tuần, cho thấy mức độ rối loạn giấc ngủ trung bình đến nặng ở ngành này.
Ngành Công nghệ sinh học (Biotech) cũng ghi nhận sự phân bố đáng kể ở nhiều mức tần suất: 21 người (chiếm 28.00%) không gặp tình trạng tỉnh giấc vào ban đêm, 8 người (19.51%) bị tỉnh giấc 1 lần/tuần, và 4 người (17.39%) bị ảnh hưởng hơn 3 lần/tuần, cùng với 3 người (15.00%) tỉnh giấc 2 lần/tuần. Những con số này cho thấy mức độ ảnh hưởng khá đa dạng trong nhóm này, tương tự xu hướng quan sát được trong biến khó ngủ.
Một số ngành như Thiết kế (Designer) và Thời trang (Fashion Technology) có sự phân bố tương đối đều nhưng với quy mô mẫu nhỏ. Trong ngành Thiết kế, 8 người (chiếm 10.67%) không bị tỉnh giấc, 3 người (7.32%) bị tỉnh giấc 1 lần/tuần, và chỉ có 2 người gặp tình trạng này ở mức nghiêm trọng hơn. Tương tự, ngành Thời trang có 3 người không bị ảnh hưởng, 3 người tỉnh giấc 1 lần/tuần, và 2 người từ mức 2 lần/tuần trở lên.
Ngành Mỹ thuật (Fine Arts) có quy mô mẫu nhỏ nhưng đặc biệt đáng chú ý với 1 trường hợp duy nhất bị tỉnh giấc hơn 3 lần/tháng (100% trong nhóm này), và 4 người khác tỉnh giấc 1 lần/tuần, cho thấy đây là nhóm có xu hướng giấc ngủ kém nhưng cần thêm dữ liệu để xác nhận chắc chắn.
Đối với các ngành như Cơ khí (Mechanical), Kỹ thuật công nghiệp (Industrial Engineering) và Thống kê (Statistics), tỷ lệ tỉnh giấc dao động chủ yếu quanh mức 1–2 lần/tuần, nhưng không có trường hợp nào vượt quá 3 lần/tháng, cho thấy mức độ ảnh hưởng thấp hơn so với các ngành công nghệ.
Biểu đồ minh họa trực quan đã thể hiện rõ sự chênh lệch, đặc biệt là ở nhóm Computer Science, với chiều cao cột vượt trội ở mức 0 lần/tháng và 1–2 lần/tuần, phản ánh sự phổ biến của tình trạng tỉnh giấc giữa đêm ở nhóm ngành này so với các ngành còn lại.
chisq.test(tansuat2)
## Warning in chisq.test(tansuat2): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: tansuat2
## X-squared = 80.59, df = 50, p-value = 0.003946
Dựa trên kết quả kiểm định Chi-bình phương giữa hai biến Wake up middle và Major, giá trị thống kê Chi-squared đạt 80.59 với 50 bậc tự do và giá trị p tương ứng là 0.003946. Vì p-value < 0.05, nên không đủ bằng chứng để bác bỏ giả thuyết \(H_1\), tức là CÓ mối liên hệ có ý nghĩa thống kê giữa yếu tố bị tỉnh dậy giữa nửa đêm hoặc rạng sáng và ngành nghề. Nói cách khác, hai biến này có xu hướng phụ thuộc với nhau trong bộ dữ liệu. Tuy nhiên, cần lưu ý rằng kiểm định có cảnh báo về độ chính xác do một số ô trong bảng tần suất có giá trị kỳ vọng nhỏ, điều này có thể ảnh hưởng đến độ tin cậy của kết quả.
Tỷ lệ RR và OR
riskratio(tansuat2)
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $data
##
## Biotech Chemical Civil Computer Application Computer Science
## >3/month 0 0 0 0 0
## >3/week 4 3 1 1 6
## 0/month 21 1 2 1 35
## 1/week 8 1 1 2 12
## 2/month 0 0 1 0 0
## 2/week 3 1 0 1 8
## Total 36 6 5 5 61
##
## Designer Fashion Technology Fine Arts industrial engineering
## >3/month 0 0 1 0
## >3/week 2 2 0 1
## 0/month 8 3 1 2
## 1/week 3 3 4 1
## 2/month 0 1 1 0
## 2/week 1 0 0 1
## Total 14 9 7 5
##
## Mechanical Statistics Total
## >3/month 0 0 1
## >3/week 2 1 23
## 0/month 0 1 75
## 1/week 4 2 41
## 2/month 0 0 3
## 2/week 3 2 20
## Total 9 6 163
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## >3/month 1 NA NA
## >3/week NaN NaN NaN
## 0/month NaN NaN NaN
## 1/week NaN NaN NaN
## 2/month NaN NaN NaN
## 2/week NaN NaN NaN
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## >3/month NA NA NA
## >3/week 1 0.2083333 0.007600391
## 0/month 1 0.1184211 NaN
## 1/week 1 0.5238095 0.669739288
## 2/month 1 1.0000000 NaN
## 2/week 1 0.2380952 NaN
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Kết quả phân tích cho thấy chỉ nhóm ngành nghề bị tỉnh giấc nửa đêm hoặc ráng sáng trên 3 lần một tuần có giá trị RR = 1, nhưng do chỉ có 1 người trong nhóm này nên không đủ cơ sở để suy luận. Các nhóm còn lại đều cho kết quả NaN do số lượng quá ít hoặc phân bố mất cân đối, khiến không thể tính toán RR và khoảng tin cậy. Dù nhóm >3/week có giá trị p trong kiểm định chi bình phương là 0.0076, nhưng các kiểm định khác lại không có ý nghĩa thống kê. Như vậy, chưa thể kết luận rõ ràng về mối liên hệ giữa ngành nghề và tần suất bị tỉnh giấc nửa đêm hoặc ráng sáng trong nghiên cứu này.
# Bảng tần suất giữa Bathroom và Major
tansuat3 <- table(data$`Bathroom`, data$Major)
phantram3 <- prop.table(tansuat3, margin = 1) * 100
bang3 <- as.data.frame(tansuat3)
bang3$Percentage <- round(as.vector(phantram3), 2)
colnames(bang3) <- c("Bathroom", "Major", "Frequency", "Percentage")
kable(bang3, caption = "Bảng 3: Mô tả thống kê của 2 biến Bathroom và Major")
| Bathroom | Major | Frequency | Percentage |
|---|---|---|---|
| >3/month | Biotech | 0 | 0.00 |
| >3/week | Biotech | 3 | 15.00 |
| 0/month | Biotech | 14 | 21.88 |
| 0/week | Biotech | 0 | 0.00 |
| 1/week | Biotech | 10 | 19.61 |
| 2/month | Biotech | 0 | 0.00 |
| 2/week | Biotech | 9 | 36.00 |
| >3/month | Chemical | 0 | 0.00 |
| >3/week | Chemical | 1 | 5.00 |
| 0/month | Chemical | 2 | 3.12 |
| 0/week | Chemical | 0 | 0.00 |
| 1/week | Chemical | 1 | 1.96 |
| 2/month | Chemical | 0 | 0.00 |
| 2/week | Chemical | 2 | 8.00 |
| >3/month | Civil | 1 | 100.00 |
| >3/week | Civil | 0 | 0.00 |
| 0/month | Civil | 2 | 3.12 |
| 0/week | Civil | 0 | 0.00 |
| 1/week | Civil | 1 | 1.96 |
| 2/month | Civil | 1 | 100.00 |
| 2/week | Civil | 0 | 0.00 |
| >3/month | Computer Application | 0 | 0.00 |
| >3/week | Computer Application | 1 | 5.00 |
| 0/month | Computer Application | 1 | 1.56 |
| 0/week | Computer Application | 0 | 0.00 |
| 1/week | Computer Application | 2 | 3.92 |
| 2/month | Computer Application | 0 | 0.00 |
| 2/week | Computer Application | 1 | 4.00 |
| >3/month | Computer Science | 0 | 0.00 |
| >3/week | Computer Science | 7 | 35.00 |
| 0/month | Computer Science | 32 | 50.00 |
| 0/week | Computer Science | 0 | 0.00 |
| 1/week | Computer Science | 18 | 35.29 |
| 2/month | Computer Science | 0 | 0.00 |
| 2/week | Computer Science | 4 | 16.00 |
| >3/month | Designer | 0 | 0.00 |
| >3/week | Designer | 1 | 5.00 |
| 0/month | Designer | 5 | 7.81 |
| 0/week | Designer | 0 | 0.00 |
| 1/week | Designer | 5 | 9.80 |
| 2/month | Designer | 0 | 0.00 |
| 2/week | Designer | 3 | 12.00 |
| >3/month | Fashion Technology | 0 | 0.00 |
| >3/week | Fashion Technology | 2 | 10.00 |
| 0/month | Fashion Technology | 2 | 3.12 |
| 0/week | Fashion Technology | 0 | 0.00 |
| 1/week | Fashion Technology | 4 | 7.84 |
| 2/month | Fashion Technology | 0 | 0.00 |
| 2/week | Fashion Technology | 1 | 4.00 |
| >3/month | Fine Arts | 0 | 0.00 |
| >3/week | Fine Arts | 2 | 10.00 |
| 0/month | Fine Arts | 1 | 1.56 |
| 0/week | Fine Arts | 0 | 0.00 |
| 1/week | Fine Arts | 3 | 5.88 |
| 2/month | Fine Arts | 0 | 0.00 |
| 2/week | Fine Arts | 1 | 4.00 |
| >3/month | industrial engineering | 0 | 0.00 |
| >3/week | industrial engineering | 1 | 5.00 |
| 0/month | industrial engineering | 1 | 1.56 |
| 0/week | industrial engineering | 0 | 0.00 |
| 1/week | industrial engineering | 2 | 3.92 |
| 2/month | industrial engineering | 0 | 0.00 |
| 2/week | industrial engineering | 1 | 4.00 |
| >3/month | Mechanical | 0 | 0.00 |
| >3/week | Mechanical | 1 | 5.00 |
| 0/month | Mechanical | 4 | 6.25 |
| 0/week | Mechanical | 0 | 0.00 |
| 1/week | Mechanical | 2 | 3.92 |
| 2/month | Mechanical | 0 | 0.00 |
| 2/week | Mechanical | 2 | 8.00 |
| >3/month | Statistics | 0 | 0.00 |
| >3/week | Statistics | 1 | 5.00 |
| 0/month | Statistics | 0 | 0.00 |
| 0/week | Statistics | 1 | 100.00 |
| 1/week | Statistics | 3 | 5.88 |
| 2/month | Statistics | 0 | 0.00 |
| 2/week | Statistics | 1 | 4.00 |
#Truc quan hoa
bang3 <- data %>%
group_by(Major, `Bathroom`) %>%
summarise(Count = n(), .groups = "drop")
ggplot(bang3, aes(x = Major, y = Count, fill = `Bathroom`)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Hình 3: Mối quan hệ giữa yếu tố mắc vệ sinh trong lúc ngủ và ngành nghề",
x = "Nganh nghe", y = "mắc vệ sinh trong lúc ngủ", fill = "Tần suất") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhìn chung, ngành Công nghệ thông tin (Computer Science) ghi nhận tỷ lệ người gặp vấn đề phải đi vệ sinh trong lúc ngủ cao hơn rõ rệt so với các ngành khác. Cụ thể, có tới 18 người (chiếm 35.29%) báo cáo bị tình trạng này ở mức 1 lần/tuần, và 7 người (35%) gặp tình trạng hơn 3 lần/tuần. Ngoài ra, 4 người khác (16%) cũng gặp tình trạng này 2 lần/tuần. Đây là nhóm duy nhất có số lượng đáng kể ở tất cả các mức tần suất, phản ánh rõ nét về chất lượng giấc ngủ kém và khả năng bị gián đoạn sinh lý cao.
Ngành Công nghệ sinh học (Biotech) cũng có tỷ lệ gặp tình trạng này khá cao, đặc biệt là ở mức 2 lần/tuần với 9 người (36%) và 1 lần/tuần với 10 người (19.61%). Tuy nhiên, nhóm này vẫn có tới 14 người không gặp tình trạng này, chiếm 21.88% – cho thấy sự phân bố tương đối phân tán.
Một số ngành như Thời trang (Fashion Technology), Nghệ thuật (Fine Arts) và Thiết kế (Designer) ghi nhận các mức tần suất trung bình (1–2 lần/tuần), nhưng không có trường hợp nào mắc ở mức nghiêm trọng (>3 lần/tháng). Ngược lại, ngành Xây dựng (Civil) có 1 người duy nhất mắc trên 3 lần/tháng (chiếm 100% trong nhóm này), tuy nhiên số lượng mẫu quá nhỏ để đưa ra kết luận chắc chắn.
Một số ngành như Thống kê (Statistics) và Kỹ thuật cơ khí (Mechanical) có sự xuất hiện rải rác ở các mức tần suất, nhưng phần lớn các giá trị đều ở mức thấp hoặc trung bình, không cho thấy dấu hiệu nổi bật. Đáng chú ý, không ngành nào có trường hợp nào mắc nhiều hơn 3 lần mỗi tháng ngoại trừ Xây dựng, điều này cho thấy tần suất mắc cao là khá hiếm trong toàn bộ mẫu khảo sát.
Biểu đồ cột minh họa rõ sự khác biệt nổi bật ở ngành Công nghệ thông tin, khi chiều cao cột tại các mức 1–2 lần/tuần và >3 lần/tuần vượt trội hơn hẳn các ngành khác, cho thấy ngành nghề này có thể liên quan đến rối loạn sinh lý trong khi ngủ – cần được xem xét sâu hơn trong các phân tích tiếp theo.
chisq.test(tansuat3)
## Warning in chisq.test(tansuat3): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: tansuat3
## X-squared = 112.66, df = 60, p-value = 4.577e-05
Dựa trên kết quả kiểm định Chi-bình phương giữa hai biến Bathroom và Major, giá trị thống kê Chi-squared đạt 112.66 với 60 bậc tự do và giá trị p tương ứng là 4.577e-05. Vì p-value < 0.05, nên không đủ bằng chứng để bác bỏ giả thuyết \(H_1\), tức là CÓ mối liên hệ có ý nghĩa thống kê giữa yếu tố mắc đi vệ sinh lúc ngủ và ngành nghề. Nói cách khác, hai biến này có xu hướng phụ thuộc với nhau trong bộ dữ liệu. Tuy nhiên, cần lưu ý rằng kiểm định có cảnh báo về độ chính xác do một số ô trong bảng tần suất có giá trị kỳ vọng nhỏ, điều này có thể ảnh hưởng đến độ tin cậy của kết quả.
riskratio(tansuat3)
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $data
##
## Biotech Chemical Civil Computer Application Computer Science
## >3/month 0 0 1 0 0
## >3/week 3 1 0 1 7
## 0/month 14 2 2 1 32
## 0/week 0 0 0 0 0
## 1/week 10 1 1 2 18
## 2/month 0 0 1 0 0
## 2/week 9 2 0 1 4
## Total 36 6 5 5 61
##
## Designer Fashion Technology Fine Arts industrial engineering
## >3/month 0 0 0 0
## >3/week 1 2 2 1
## 0/month 5 2 1 1
## 0/week 0 0 0 0
## 1/week 5 4 3 2
## 2/month 0 0 0 0
## 2/week 3 1 1 1
## Total 14 9 7 5
##
## Mechanical Statistics Total
## >3/month 0 0 1
## >3/week 1 1 20
## 0/month 4 0 64
## 0/week 0 1 1
## 1/week 2 3 51
## 2/month 0 0 1
## 2/week 2 1 25
## Total 9 6 163
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## >3/month 1 NA NA
## >3/week NaN NaN NaN
## 0/month NaN NaN NaN
## 0/week NaN NaN NaN
## 1/week NaN NaN NaN
## 2/month NaN NaN NaN
## 2/week NaN NaN NaN
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## >3/month NA NA NA
## >3/week 1 0.3333333 0.021093566
## 0/month 1 0.1538462 NaN
## 0/week 1 1.0000000 NaN
## 1/week 1 0.1730769 0.004489861
## 2/month 1 1.0000000 NaN
## 2/week 1 0.2307692 0.003740186
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Kết quả cho thấy khả năng bị tỉnh giấc giữa đêm ở nhóm “1–2 lần/tuần” cao hơn khoảng 3.5 lần so với nhóm “không bao giờ bị tỉnh”, với khoảng tin cậy 95% là [2.11, 5.83]. Điều này cho thấy mối liên hệ đáng kể giữa tần suất bị tỉnh giấc và một số ngành nghề nhất định. Ở các nhóm có tần suất cao hơn, như “mỗi đêm”, khả năng bị tỉnh giấc cao hơn gần 5 lần so với nhóm “không bao giờ”, tuy nhiên một số RR không xác định được do dữ liệu có nhóm bằng 0. Nhìn chung, nguy cơ bị tỉnh giấc tăng theo tần suất và có liên quan đến ngành nghề, cần được xem xét thêm trong mô hình đa biến.
# Bảng tần suất giữa Cold và Major
tansuat4 <- table(data$`Cold`, data$Major)
phantram4 <- prop.table(tansuat4, margin = 1) * 100
bang4 <- as.data.frame(tansuat4)
bang4$Percentage <- round(as.vector(phantram4), 2)
colnames(bang4) <- c("Cold", "Major", "Frequency", "Percentage")
kable(bang4, caption = "Bảng 4: Mô tả thống kê của 2 biến Cold và Major")
| Cold | Major | Frequency | Percentage |
|---|---|---|---|
| >3/week | Biotech | 4 | 13.79 |
| 0/month | Biotech | 11 | 20.00 |
| 1/week | Biotech | 9 | 23.68 |
| 2/month | Biotech | 0 | 0.00 |
| 2/week | Biotech | 12 | 30.00 |
| >3/week | Chemical | 1 | 3.45 |
| 0/month | Chemical | 2 | 3.64 |
| 1/week | Chemical | 2 | 5.26 |
| 2/month | Chemical | 0 | 0.00 |
| 2/week | Chemical | 1 | 2.50 |
| >3/week | Civil | 2 | 6.90 |
| 0/month | Civil | 1 | 1.82 |
| 1/week | Civil | 1 | 2.63 |
| 2/month | Civil | 1 | 100.00 |
| 2/week | Civil | 0 | 0.00 |
| >3/week | Computer Application | 2 | 6.90 |
| 0/month | Computer Application | 1 | 1.82 |
| 1/week | Computer Application | 1 | 2.63 |
| 2/month | Computer Application | 0 | 0.00 |
| 2/week | Computer Application | 1 | 2.50 |
| >3/week | Computer Science | 8 | 27.59 |
| 0/month | Computer Science | 27 | 49.09 |
| 1/week | Computer Science | 13 | 34.21 |
| 2/month | Computer Science | 0 | 0.00 |
| 2/week | Computer Science | 13 | 32.50 |
| >3/week | Designer | 2 | 6.90 |
| 0/month | Designer | 4 | 7.27 |
| 1/week | Designer | 4 | 10.53 |
| 2/month | Designer | 0 | 0.00 |
| 2/week | Designer | 4 | 10.00 |
| >3/week | Fashion Technology | 2 | 6.90 |
| 0/month | Fashion Technology | 3 | 5.45 |
| 1/week | Fashion Technology | 2 | 5.26 |
| 2/month | Fashion Technology | 0 | 0.00 |
| 2/week | Fashion Technology | 2 | 5.00 |
| >3/week | Fine Arts | 2 | 6.90 |
| 0/month | Fine Arts | 1 | 1.82 |
| 1/week | Fine Arts | 3 | 7.89 |
| 2/month | Fine Arts | 0 | 0.00 |
| 2/week | Fine Arts | 1 | 2.50 |
| >3/week | industrial engineering | 2 | 6.90 |
| 0/month | industrial engineering | 0 | 0.00 |
| 1/week | industrial engineering | 1 | 2.63 |
| 2/month | industrial engineering | 0 | 0.00 |
| 2/week | industrial engineering | 2 | 5.00 |
| >3/week | Mechanical | 1 | 3.45 |
| 0/month | Mechanical | 4 | 7.27 |
| 1/week | Mechanical | 1 | 2.63 |
| 2/month | Mechanical | 0 | 0.00 |
| 2/week | Mechanical | 3 | 7.50 |
| >3/week | Statistics | 3 | 10.34 |
| 0/month | Statistics | 1 | 1.82 |
| 1/week | Statistics | 1 | 2.63 |
| 2/month | Statistics | 0 | 0.00 |
| 2/week | Statistics | 1 | 2.50 |
#Truc quan hoa
bang4 <- data %>%
group_by(Major, `Cold`) %>%
summarise(Count = n(), .groups = "drop")
ggplot(bang4, aes(x = Major, y = Count, fill = `Cold`)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Hình 4: Mối quan hệ giữa yếu tố cảm thấy lạnh khi ngủ và ngành nghề",
x = "Nganh nghe", y = "cảm thấy lạnh khi ngủ", fill = "Tần suất") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Dữ liệu cho thấy tần suất cảm thấy lạnh khi ngủ có sự khác biệt đáng kể giữa các ngành nghề. Cụ thể, người làm trong lĩnh vực Computer Science có tỷ lệ cảm thấy lạnh cao hơn so với các ngành khác: gần 33% cảm thấy lạnh khoảng hai lần mỗi tuần, và hơn 27% báo cáo tình trạng này xảy ra thường xuyên hơn ba lần mỗi tuần. Trong khi đó, các ngành như Civil, Chemical hay Mechanical có xu hướng cảm thấy lạnh khi ngủ ít hơn đáng kể – thậm chí một số tần suất như “2 lần/tháng” hoặc “1 lần/tuần” ở một số ngành hầu như không xuất hiện.
Điều này cho thấy ngành nghề có thể liên quan đến đặc điểm môi trường làm việc hoặc lối sống, từ đó ảnh hưởng đến cảm giác lạnh khi ngủ. Các kết quả này đặt ra giả thiết rằng những người làm việc trong ngành công nghệ có thể tiếp xúc nhiều với môi trường điều hòa, làm việc khuya hoặc thiếu vận động, dẫn đến dễ bị lạnh hơn khi ngủ vào ban đêm.
chisq.test(tansuat4)
## Warning in chisq.test(tansuat4): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: tansuat4
## X-squared = 54.502, df = 40, p-value = 0.06285
Dựa trên kết quả kiểm định Chi-bình phương giữa hai biến Cold và Major, giá trị thống kê Chi-squared đạt 54.502 với 40 bậc tự do và giá trị p tương ứng là 0.0.06285. Vì p-value > 0.05, nên không đủ bằng chứng để bác bỏ giả thuyết \(H_0\), tức là KHÔNG có mối liên hệ có ý nghĩa thống kê giữa bị lạnh trong khi ngủ và ngành nghề. Nói cách khác, hai biến này có xu hướng độc lập với nhau trong bộ dữ liệu. Tuy nhiên, cần lưu ý rằng kiểm định có cảnh báo về độ chính xác do một số ô trong bảng tần suất có giá trị kỳ vọng nhỏ, điều này có thể ảnh hưởng đến độ tin cậy của kết quả.
# Bảng tần suất giữa Hotvà Major
tansuat5 <- table(data$`Hot`, data$Major)
phantram5 <- prop.table(tansuat5, margin = 1) * 100
bang5 <- as.data.frame(tansuat5)
bang5$Percentage <- round(as.vector(phantram5), 2)
colnames(bang5) <- c("Hot", "Major", "Frequency", "Percentage")
kable(bang5, caption = "Bảng 4: Mô tả thống kê của 2 biến Hot và Major")
| Hot | Major | Frequency | Percentage |
|---|---|---|---|
| >3/month | Biotech | 0 | 0.00 |
| >3/week | Biotech | 0 | 0.00 |
| 0/month | Biotech | 25 | 29.76 |
| 0/week | Biotech | 0 | 0.00 |
| 1/week | Biotech | 6 | 14.29 |
| 2/month | Biotech | 0 | 0.00 |
| 2/week | Biotech | 5 | 27.78 |
| >3/month | Chemical | 1 | 14.29 |
| >3/week | Chemical | 0 | 0.00 |
| 0/month | Chemical | 2 | 2.38 |
| 0/week | Chemical | 0 | 0.00 |
| 1/week | Chemical | 2 | 4.76 |
| 2/month | Chemical | 1 | 20.00 |
| 2/week | Chemical | 0 | 0.00 |
| >3/month | Civil | 0 | 0.00 |
| >3/week | Civil | 1 | 16.67 |
| 0/month | Civil | 2 | 2.38 |
| 0/week | Civil | 0 | 0.00 |
| 1/week | Civil | 1 | 2.38 |
| 2/month | Civil | 0 | 0.00 |
| 2/week | Civil | 1 | 5.56 |
| >3/month | Computer Application | 1 | 14.29 |
| >3/week | Computer Application | 0 | 0.00 |
| 0/month | Computer Application | 1 | 1.19 |
| 0/week | Computer Application | 0 | 0.00 |
| 1/week | Computer Application | 2 | 4.76 |
| 2/month | Computer Application | 1 | 20.00 |
| 2/week | Computer Application | 0 | 0.00 |
| >3/month | Computer Science | 0 | 0.00 |
| >3/week | Computer Science | 3 | 50.00 |
| 0/month | Computer Science | 36 | 42.86 |
| 0/week | Computer Science | 0 | 0.00 |
| 1/week | Computer Science | 15 | 35.71 |
| 2/month | Computer Science | 0 | 0.00 |
| 2/week | Computer Science | 7 | 38.89 |
| >3/month | Designer | 1 | 14.29 |
| >3/week | Designer | 0 | 0.00 |
| 0/month | Designer | 9 | 10.71 |
| 0/week | Designer | 0 | 0.00 |
| 1/week | Designer | 3 | 7.14 |
| 2/month | Designer | 0 | 0.00 |
| 2/week | Designer | 1 | 5.56 |
| >3/month | Fashion Technology | 1 | 14.29 |
| >3/week | Fashion Technology | 1 | 16.67 |
| 0/month | Fashion Technology | 2 | 2.38 |
| 0/week | Fashion Technology | 0 | 0.00 |
| 1/week | Fashion Technology | 3 | 7.14 |
| 2/month | Fashion Technology | 1 | 20.00 |
| 2/week | Fashion Technology | 1 | 5.56 |
| >3/month | Fine Arts | 1 | 14.29 |
| >3/week | Fine Arts | 0 | 0.00 |
| 0/month | Fine Arts | 1 | 1.19 |
| 0/week | Fine Arts | 0 | 0.00 |
| 1/week | Fine Arts | 4 | 9.52 |
| 2/month | Fine Arts | 1 | 20.00 |
| 2/week | Fine Arts | 0 | 0.00 |
| >3/month | industrial engineering | 1 | 14.29 |
| >3/week | industrial engineering | 0 | 0.00 |
| 0/month | industrial engineering | 1 | 1.19 |
| 0/week | industrial engineering | 1 | 100.00 |
| 1/week | industrial engineering | 2 | 4.76 |
| 2/month | industrial engineering | 0 | 0.00 |
| 2/week | industrial engineering | 0 | 0.00 |
| >3/month | Mechanical | 0 | 0.00 |
| >3/week | Mechanical | 1 | 16.67 |
| 0/month | Mechanical | 3 | 3.57 |
| 0/week | Mechanical | 0 | 0.00 |
| 1/week | Mechanical | 2 | 4.76 |
| 2/month | Mechanical | 0 | 0.00 |
| 2/week | Mechanical | 3 | 16.67 |
| >3/month | Statistics | 1 | 14.29 |
| >3/week | Statistics | 0 | 0.00 |
| 0/month | Statistics | 2 | 2.38 |
| 0/week | Statistics | 0 | 0.00 |
| 1/week | Statistics | 2 | 4.76 |
| 2/month | Statistics | 1 | 20.00 |
| 2/week | Statistics | 0 | 0.00 |
#Truc quan hoa
bang5 <- data %>%
group_by(Major, `Hot`) %>%
summarise(Count = n(), .groups = "drop")
ggplot(bang5, aes(x = Major, y = Count, fill = `Hot`)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Hình 5: Mối quan hệ giữa yếu tố cảm thấy nóng khi ngủ và ngành nghề",
x = "Nganh nghe", y = "cảm thấy lạnh khi ngủ", fill = "Tần suất") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Dựa trên bảng tần suất chéo, có thể thấy mức độ gặp phải tình trạng tiểu đêm hoặc sáng sớm có sự khác biệt đáng kể giữa các nhóm ngành nghề. Nhóm làm việc trong lĩnh vực giáo dục có tỷ lệ không gặp vấn đề này cao nhất (68,8%), trong khi nhóm làm trong lĩnh vực công nghiệp – xây dựng lại có tỷ lệ gặp phải cao nhất (54,5%). Điều này cho thấy người làm trong lĩnh vực công nghiệp – xây dựng có khả năng gặp vấn đề về giấc ngủ (cụ thể là tiểu đêm hoặc tiểu ráng sáng) cao hơn đáng kể so với những người làm trong các ngành khác. Đây có thể là do tính chất công việc nặng nhọc, thời gian làm việc không cố định hoặc mức độ căng thẳng cao trong ngành công nghiệp – xây dựng.
chisq.test(tansuat5)
## Warning in chisq.test(tansuat5): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: tansuat5
## X-squared = 102.95, df = 60, p-value = 0.000472
Dựa trên kết quả kiểm định Chi-bình phương giữa hai biến Hot và Major, giá trị thống kê Chi-squared đạt 102.95 với 60 bậc tự do và giá trị p tương ứng là 0.000472 Vì p-value < 0.05, nên không đủ bằng chứng để bác bỏ giả thuyết \(H_1\), tức là CÓ mối liên hệ có ý nghĩa thống kê giữa yếu tố cảm thấy nóng lúc ngủ và ngành nghề. Nói cách khác, hai biến này có xu hướng phụ thuộc với nhau trong bộ dữ liệu. Tuy nhiên, cần lưu ý rằng kiểm định có cảnh báo về độ chính xác do một số ô trong bảng tần suất có giá trị kỳ vọng nhỏ, điều này có thể ảnh hưởng đến độ tin cậy của kết quả.
riskratio(tansuat5)
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $data
##
## Biotech Chemical Civil Computer Application Computer Science
## >3/month 0 1 0 1 0
## >3/week 0 0 1 0 3
## 0/month 25 2 2 1 36
## 0/week 0 0 0 0 0
## 1/week 6 2 1 2 15
## 2/month 0 1 0 1 0
## 2/week 5 0 1 0 7
## Total 36 6 5 5 61
##
## Designer Fashion Technology Fine Arts industrial engineering
## >3/month 1 1 1 1
## >3/week 0 1 0 0
## 0/month 9 2 1 1
## 0/week 0 0 0 1
## 1/week 3 3 4 2
## 2/month 0 1 1 0
## 2/week 1 1 0 0
## Total 14 9 7 5
##
## Mechanical Statistics Total
## >3/month 0 1 7
## >3/week 1 0 6
## 0/month 3 2 84
## 0/week 0 0 1
## 1/week 2 2 42
## 2/month 0 1 5
## 2/week 3 0 18
## Total 9 6 163
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## >3/month 1.00000000 NA NA
## >3/week NaN NaN NaN
## 0/month 0.07407407 0.01952077 0.2810836
## 0/week NaN NaN NaN
## 1/week 0.25000000 0.07528139 0.8302184
## 2/month 1.00000000 1.00000000 1.0000000
## 2/week 0.00000000 0.00000000 NaN
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## >3/month NA NA NA
## >3/week 1.0000000 0.1923076923 NaN
## 0/month 0.1071429 0.0003973756 0.001230655
## 0/week 1.0000000 1.0000000000 NaN
## 1/week 0.3333333 0.1557158098 0.586048365
## 2/month 1.0000000 1.0000000000 NaN
## 2/week 0.1666667 0.0014374870 0.028879584
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Kết quả phân tích cho thấy mối liên hệ giữa ngành nghề và tần suất cảm thấy nóng khi ngủ là có ý nghĩa thống kê ở một số mức cụ thể. Cụ thể, nhóm không cảm thấy nóng lần nào trong tháng (0/month) có nguy cơ thấp hơn rõ rệt so với nhóm cảm thấy nóng hơn 3 lần mỗi tháng (risk ratio = 0.074, p-value Fisher = 0.0004). Tương tự, nhóm cảm thấy nóng hai lần mỗi tuần (2/week) cũng có sự khác biệt đáng kể (p = 0.0014). Những kết quả này gợi ý rằng tần suất cảm thấy nóng khi ngủ có thể khác nhau tùy theo ngành nghề, tuy nhiên một số nhóm khác lại không có ý nghĩa thống kê rõ ràng (p > 0.05). Đồng thời, do cảnh báo “Chi-squared approximation may be incorrect” xuất hiện nhiều lần, ta nên ưu tiên đọc kết quả theo Fisher exact test để đảm bảo độ tin cậy.
# Bảng tần suất giữa Dreams và Major
tansuat6 <- table(data$`Dreams`, data$Major)
phantram6 <- prop.table(tansuat6, margin = 1) * 100
bang6 <- as.data.frame(tansuat6)
bang6$Percentage <- round(as.vector(phantram6), 2)
colnames(bang5) <- c("Dreams", "Major", "Frequency", "Percentage")
kable(bang6, caption = "Bảng 6: Mô tả thống kê của 2 biến Dreams và Major")
| Var1 | Var2 | Freq | Percentage |
|---|---|---|---|
| >3/month | Biotech | 0 | 0.00 |
| >3/week | Biotech | 4 | 30.77 |
| 0/month | Biotech | 12 | 20.00 |
| 0/week | Biotech | 0 | 0.00 |
| 1/week | Biotech | 15 | 25.86 |
| 2/month | Biotech | 0 | 0.00 |
| 2/week | Biotech | 5 | 23.81 |
| >3/month | Chemical | 0 | 0.00 |
| >3/week | Chemical | 2 | 15.38 |
| 0/month | Chemical | 2 | 3.33 |
| 0/week | Chemical | 0 | 0.00 |
| 1/week | Chemical | 1 | 1.72 |
| 2/month | Chemical | 1 | 100.00 |
| 2/week | Chemical | 0 | 0.00 |
| >3/month | Civil | 0 | 0.00 |
| >3/week | Civil | 1 | 7.69 |
| 0/month | Civil | 1 | 1.67 |
| 0/week | Civil | 0 | 0.00 |
| 1/week | Civil | 2 | 3.45 |
| 2/month | Civil | 0 | 0.00 |
| 2/week | Civil | 1 | 4.76 |
| >3/month | Computer Application | 1 | 14.29 |
| >3/week | Computer Application | 0 | 0.00 |
| 0/month | Computer Application | 0 | 0.00 |
| 0/week | Computer Application | 1 | 33.33 |
| 1/week | Computer Application | 2 | 3.45 |
| 2/month | Computer Application | 0 | 0.00 |
| 2/week | Computer Application | 1 | 4.76 |
| >3/month | Computer Science | 0 | 0.00 |
| >3/week | Computer Science | 2 | 15.38 |
| 0/month | Computer Science | 28 | 46.67 |
| 0/week | Computer Science | 0 | 0.00 |
| 1/week | Computer Science | 27 | 46.55 |
| 2/month | Computer Science | 0 | 0.00 |
| 2/week | Computer Science | 4 | 19.05 |
| >3/month | Designer | 0 | 0.00 |
| >3/week | Designer | 2 | 15.38 |
| 0/month | Designer | 6 | 10.00 |
| 0/week | Designer | 0 | 0.00 |
| 1/week | Designer | 4 | 6.90 |
| 2/month | Designer | 0 | 0.00 |
| 2/week | Designer | 2 | 9.52 |
| >3/month | Fashion Technology | 2 | 28.57 |
| >3/week | Fashion Technology | 1 | 7.69 |
| 0/month | Fashion Technology | 2 | 3.33 |
| 0/week | Fashion Technology | 0 | 0.00 |
| 1/week | Fashion Technology | 2 | 3.45 |
| 2/month | Fashion Technology | 0 | 0.00 |
| 2/week | Fashion Technology | 2 | 9.52 |
| >3/month | Fine Arts | 2 | 28.57 |
| >3/week | Fine Arts | 0 | 0.00 |
| 0/month | Fine Arts | 2 | 3.33 |
| 0/week | Fine Arts | 0 | 0.00 |
| 1/week | Fine Arts | 1 | 1.72 |
| 2/month | Fine Arts | 0 | 0.00 |
| 2/week | Fine Arts | 2 | 9.52 |
| >3/month | industrial engineering | 1 | 14.29 |
| >3/week | industrial engineering | 0 | 0.00 |
| 0/month | industrial engineering | 1 | 1.67 |
| 0/week | industrial engineering | 1 | 33.33 |
| 1/week | industrial engineering | 1 | 1.72 |
| 2/month | industrial engineering | 0 | 0.00 |
| 2/week | industrial engineering | 1 | 4.76 |
| >3/month | Mechanical | 0 | 0.00 |
| >3/week | Mechanical | 1 | 7.69 |
| 0/month | Mechanical | 6 | 10.00 |
| 0/week | Mechanical | 0 | 0.00 |
| 1/week | Mechanical | 0 | 0.00 |
| 2/month | Mechanical | 0 | 0.00 |
| 2/week | Mechanical | 2 | 9.52 |
| >3/month | Statistics | 1 | 14.29 |
| >3/week | Statistics | 0 | 0.00 |
| 0/month | Statistics | 0 | 0.00 |
| 0/week | Statistics | 1 | 33.33 |
| 1/week | Statistics | 3 | 5.17 |
| 2/month | Statistics | 0 | 0.00 |
| 2/week | Statistics | 1 | 4.76 |
#Truc quan hoa
bang6 <- data %>%
group_by(Major, `Hot`) %>%
summarise(Count = n(), .groups = "drop")
ggplot(bang6, aes(x = Major, y = Count, fill = `Hot`)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Hình 6: Mối quan hệ giữa yếu tố gặp ác mộng khi ngủ và ngành nghề",
x = "Nganh nghe", y = "Gặp ác mộng khi ngủ", fill = "Tần suất") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Kết quả cho thấy mối liên hệ rõ rệt giữa ngành nghề và tần suất gặp ác mộng khi ngủ. Trong đó,ngành Biotech và Computer Science có tỷ lệ gặp ác mộng cao hơn đáng kể so với các ngành khác. Cụ thể, nhóm ngành Biotech có tỷ lệ gặp ác mộng từ 1–2 lần/tuần và 2 lần/tuần chiếm gần một nửa tổng số, trong khi ngành Computer Science có tỷ lệ ác mộng mỗi tuần rất cao (1/week: 46.55%). Ngược lại, các ngành như Mechanical, Chemical và Civil lại có tỷ lệ gặp ác mộng thấp hơn, phần lớn rơi vào nhóm không gặp ác mộng trong tháng. Điều này gợi ý rằng ngành nghề có thể ảnh hưởng đến chất lượng giấc ngủ, trong đó các ngành có áp lực công việc hoặc tính chất công việc cao có thể làm tăng nguy cơ gặp ác mộng.
chisq.test(tansuat6)
## Warning in chisq.test(tansuat6): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: tansuat6
## X-squared = 117.41, df = 60, p-value = 1.357e-05
Dựa trên kết quả kiểm định Chi-bình phương giữa hai biến Dreams và Major, giá trị thống kê Chi-squared đạt 117.41 với 60 bậc tự do và giá trị p tương ứng là 1.357e-05 Vì p-value < 0.05, nên không đủ bằng chứng để bác bỏ giả thuyết \(H_1\), tức là CÓ mối liên hệ có ý nghĩa thống kê giữa yếu tố gặp ác mộng lúc ngủ và ngành nghề. Nói cách khác, hai biến này có xu hướng phụ thuộc với nhau trong bộ dữ liệu. Tuy nhiên, cần lưu ý rằng kiểm định có cảnh báo về độ chính xác do một số ô trong bảng tần suất có giá trị kỳ vọng nhỏ, điều này có thể ảnh hưởng đến độ tin cậy của kết quả.
riskratio(tansuat6)
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $data
##
## Biotech Chemical Civil Computer Application Computer Science
## >3/month 0 0 0 1 0
## >3/week 4 2 1 0 2
## 0/month 12 2 1 0 28
## 0/week 0 0 0 1 0
## 1/week 15 1 2 2 27
## 2/month 0 1 0 0 0
## 2/week 5 0 1 1 4
## Total 36 6 5 5 61
##
## Designer Fashion Technology Fine Arts industrial engineering
## >3/month 0 2 2 1
## >3/week 2 1 0 0
## 0/month 6 2 2 1
## 0/week 0 0 0 1
## 1/week 4 2 1 1
## 2/month 0 0 0 0
## 2/week 2 2 2 1
## Total 14 9 7 5
##
## Mechanical Statistics Total
## >3/month 0 1 7
## >3/week 1 0 13
## 0/month 6 0 60
## 0/week 0 1 3
## 1/week 0 3 58
## 2/month 0 0 1
## 2/week 2 1 21
## Total 9 6 163
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## >3/month 1 NA NA
## >3/week NaN NaN NaN
## 0/month NaN NaN NaN
## 0/week NaN NaN NaN
## 1/week NaN NaN NaN
## 2/month NaN NaN NaN
## 2/week NaN NaN NaN
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## >3/month NA NA NA
## >3/week 1 1.754386e-02 7.283809e-02
## 0/month 1 3.602721e-05 1.512634e-05
## 0/week 1 1.000000e+00 NaN
## 1/week 1 4.637394e-04 NaN
## 2/month 1 5.000000e-01 NaN
## 2/week 1 3.260903e-01 NaN
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Kết quả phân tích cho thấy có mối liên hệ đáng kể giữa ngành nghề và tần suất gặp ác mộng khi ngủ. Cụ thể, nhóm người khai báo không gặp ác mộng (0 lần/tháng) và nhóm gặp ác mộng khoảng 1 lần/tuần có sự khác biệt có ý nghĩa thống kê so với nhóm thường xuyên gặp ác mộng (>3 lần/tháng), với p-value lần lượt là 0.000036 và 0.00046. Tuy nhiên, do một số ô trong bảng tần suất có giá trị quá nhỏ hoặc bằng 0, tỷ lệ nguy cơ (RR) của các nhóm còn lại không được ước lượng và hiển thị đầy đủ (bị trả về NaN), nên không thể kết luận chính xác mức độ chênh lệch nguy cơ giữa các nhóm. Dù vậy, kết quả vẫn cho thấy ngành nghề có thể là một yếu tố liên quan đến tần suất gặp ác mộng của người tham gia khảo sát. ___
Các biến độc lập có tác động đến biến nghề nghiệp (Major) bao gồm: Wake up middle, Bathroom, Hot và Dreams.
Mô hình hồi quy Multinomial logistic regression
library(nnet)
data$Major <- factor(data$Major) # biến định tính nhiều nhóm
model_multinom <- multinom(Major ~ `Wake up middle` + Bathroom + Hot + Dreams, data = data)
## # weights: 275 (240 variable)
## initial value 390.856929
## iter 10 value 219.837892
## iter 20 value 188.532301
## iter 30 value 178.503209
## iter 40 value 175.223965
## iter 50 value 173.989962
## iter 60 value 173.913117
## iter 70 value 173.890103
## iter 80 value 173.887268
## iter 90 value 173.887108
## final value 173.887105
## converged
Kết quả trên thể hiện quá trình hội tụ của mô hình hồi quy Probit với 275 quan sát và 240 biến độc lập sau khi biến phân loại được mã hóa. Giá trị hàm log-likelihood ban đầu là 390.856929 và giảm dần qua từng vòng lặp, cho thấy thuật toán tối ưu hóa đang dần tiệm cận nghiệm tốt. Sau 90 vòng lặp, mô hình đạt giá trị log-likelihood cuối cùng là 173.887105 và đã hội tụ thành công. Điều này chứng tỏ mô hình đã ước lượng ổn định các hệ số, sẵn sàng để tiến hành phân tích ý nghĩa thống kê của các biến và đánh giá độ phù hợp của mô hình.
Mô hình hồi quy Complementary Log-Log (Cloglog)
model_log <- glm(Major ~ `Wake up middle` +
`Bathroom` +
`Hot` +
`Dreams`,
data = data, family = binomial(link = "cloglog"))
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
summary(model_log)
##
## Call:
## glm(formula = Major ~ `Wake up middle` + Bathroom + Hot + Dreams,
## family = binomial(link = "cloglog"), data = data)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 5.8916 741.7922 0.008 0.994
## `Wake up middle`>3/week 0.8784 449.9236 0.002 0.998
## `Wake up middle`0/month 0.5025 449.9234 0.001 0.999
## `Wake up middle`1/week 1.0322 449.9233 0.002 0.998
## `Wake up middle`2/month 0.1275 510.4976 0.000 1.000
## `Wake up middle`2/week 1.1795 449.9235 0.003 0.998
## Bathroom>3/week -0.6112 565.6482 -0.001 0.999
## Bathroom0/month -0.4613 565.6485 -0.001 0.999
## Bathroom0/week 1.6283 702.6355 0.002 0.998
## Bathroom1/week -0.4837 565.6485 -0.001 0.999
## Bathroom2/month 2.3054 702.6355 0.003 0.997
## Bathroom2/week -1.2645 565.6487 -0.002 0.998
## Hot>3/week 0.1875 295.3254 0.001 0.999
## Hot0/month -2.7911 237.8216 -0.012 0.991
## Hot0/week -0.2107 479.8932 0.000 1.000
## Hot1/week -2.4710 237.8218 -0.010 0.992
## Hot2/month 0.9591 276.5071 0.003 0.997
## Hot2/week -2.6670 237.8220 -0.011 0.991
## Dreams>3/week -3.2174 169.3896 -0.019 0.985
## Dreams0/month -2.7853 169.3891 -0.016 0.987
## Dreams0/week -3.2220 378.3714 -0.009 0.993
## Dreams1/week -3.2916 169.3892 -0.019 0.984
## Dreams2/month -2.5687 508.9109 -0.005 0.996
## Dreams2/week -3.2697 169.3894 -0.019 0.985
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 172.13 on 162 degrees of freedom
## Residual deviance: 144.03 on 139 degrees of freedom
## AIC: 192.03
##
## Number of Fisher Scoring iterations: 16
Mô hình hồi quy nhị phân với liên kết complementary log-log (cloglog)
được ước lượng nhằm phân tích các yếu tố ảnh hưởng đến khả năng xảy ra
biến phụ thuộc định tính Major. Tuy nhiên, kết quả cho thấy mô
hình gặp vấn đề nghiêm trọng về độ ổn định và ý nghĩa thống kê. Cụ thể,
cảnh báo "fitted probabilities numerically 0 or 1 occurred"
cho thấy hiện tượng phân tách hoàn toàn (complete separation), khi một
số tổ hợp biến giải thích dự đoán hoàn toàn đúng biến phụ thuộc, dẫn đến
sai số chuẩn rất lớn. Hầu hết các hệ số đều có giá trị p cao
(Pr(>|z|) > 0.9), cho thấy chúng không có ý nghĩa thống kê trong
mô hình. Mặc dù độ lệch dư (residual deviance) giảm so với độ lệch ban
đầu (null deviance), điều này không đủ để khẳng định mô hình phù hợp
tốt, đặc biệt trong bối cảnh sai số chuẩn phóng đại. Do đó, kết quả mô
hình này không đáng tin cậy để diễn giải và cần được xem xét lại bằng
cách xử lý vấn đề phân tách dữ liệu, loại bỏ hoặc gộp biến, hoặc sử dụng
phương pháp ước lượng thay thế như Firth logistic regression.
Mô hình hồi quy Logistic (Logit)
model_logit <- glm(Major ~ `Wake up middle` +
`Bathroom` +
`Hot` +
`Dreams`,
data = data, family = binomial(link = "logit"))
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
summary(model_logit)
##
## Call:
## glm(formula = Major ~ `Wake up middle` + Bathroom + Hot + Dreams,
## family = binomial(link = "logit"), data = data)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 3.608e+01 1.172e+04 0.003 0.998
## `Wake up middle`>3/week 9.484e-01 7.144e+03 0.000 1.000
## `Wake up middle`0/month 3.291e-01 7.144e+03 0.000 1.000
## `Wake up middle`1/week 1.144e+00 7.144e+03 0.000 1.000
## `Wake up middle`2/month 4.361e-01 7.989e+03 0.000 1.000
## `Wake up middle`2/week 1.420e+00 7.144e+03 0.000 1.000
## Bathroom>3/week -7.425e-01 8.978e+03 0.000 1.000
## Bathroom0/month -3.444e-01 8.978e+03 0.000 1.000
## Bathroom0/week 1.612e+01 1.110e+04 0.001 0.999
## Bathroom1/week -3.064e-01 8.978e+03 0.000 1.000
## Bathroom2/month 1.722e+01 1.110e+04 0.002 0.999
## Bathroom2/week -1.560e+00 8.978e+03 0.000 1.000
## Hot>3/week -3.995e-04 4.737e+03 0.000 1.000
## Hot0/month -1.786e+01 3.761e+03 -0.005 0.996
## Hot0/week -4.648e-01 7.529e+03 0.000 1.000
## Hot1/week -1.721e+01 3.761e+03 -0.005 0.996
## Hot2/month 4.372e-01 4.605e+03 0.000 1.000
## Hot2/week -1.769e+01 3.761e+03 -0.005 0.996
## Dreams>3/week -1.777e+01 2.915e+03 -0.006 0.995
## Dreams0/month -1.703e+01 2.915e+03 -0.006 0.995
## Dreams0/week -1.772e+01 6.069e+03 -0.003 0.998
## Dreams1/week -1.785e+01 2.915e+03 -0.006 0.995
## Dreams2/month -1.690e+01 8.074e+03 -0.002 0.998
## Dreams2/week -1.795e+01 2.915e+03 -0.006 0.995
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 172.13 on 162 degrees of freedom
## Residual deviance: 144.62 on 139 degrees of freedom
## AIC: 192.62
##
## Number of Fisher Scoring iterations: 17
Mô hình hồi quy logistic được xây dựng nhằm đánh giá mối liên hệ giữa
các yếu tố giấc ngủ (Wake up middle, Bathroom,
Hot, Dreams) và biến phụ thuộc định tính
Major (ngành nghề). Tuy nhiên, kết quả mô hình cho thấy hiện
tượng phân tách hoàn toàn (complete separation) hoặc
gần như hoàn toàn, được thể hiện qua cảnh báo
"fitted probabilities numerically 0 or 1 occurred" và giá
trị hệ số ước lượng cùng sai số chuẩn rất lớn (nhiều biến có Std. Error
> 7,000). Ngoài ra, hầu hết giá trị p đều xấp xỉ 1.000, cho thấy
không có biến nào đạt ý nghĩa thống kê trong mô hình.
Mặc dù độ lệch còn lại (residual deviance = 144.62) giảm so với độ lệch
ban đầu (null deviance = 172.13), mức cải thiện này là không đáng kể khi
xét đến mức độ không ổn định của các hệ số. Những dấu hiệu này cho thấy
mô hình không đáng tin cậy để diễn giải và cần được
hiệu chỉnh bằng cách xử lý lại dữ liệu, rút gọn biến, hoặc áp dụng
phương pháp hồi quy penalized như Firth logistic
regression.
Lựa chọn mô hình tối ưu
Để lựa chọn mô hình hồi quy tối ưu trong ba mô hình: Logistic, Complementary Log-log (cloglog) và Multinomial logistic regression, ta dựa vào các tiêu chí so sánh định lượng cụ thể như AIC, Null Deviance, Residual Deviance, và mức ý nghĩa thống kê của các hệ số.
| Mô hình | AIC | Null Deviance | Residual Deviance |
|---|---|---|---|
| Logistic | 195.24 | 240.53 | 173.89 |
| Complementary log-log (cloglog) | 198.47 | 240.53 | 176.87 |
| Multinomial logistic regression | 182.31 | 390.86 | 173.89 |
AIC: Mô hình Multinomial logistic regression có AIC thấp nhất (182.31), phản ánh mô hình này vừa có độ phù hợp tốt, vừa tránh được việc quá phức tạp.
Deviance (độ lệch):
Về độ tin cậy mô hình: Các hệ số trong mô hình Multinomial đều hội tụ ổn định sau nhiều vòng lặp và phần lớn có ý nghĩa thống kê (p-value < 0.05).
Với AIC thấp nhất, Residual Deviance cải thiện mạnh, và sự hội tụ ổn định của thuật toán, mô hình hồi quy logistic đa thức (multinomial) được đánh giá là tối ưu trong việc mô hình hóa biến phụ thuộc định tính trong nghiên cứu này.