Trong xã hội hiện nay, giấc ngủ đóng vai trò quan trọng trong việc duy trì sức khỏe tổng thể và chất lượng cuộc sống. Tuy nhiên, nhiều người đang phải đối mặt với tình trạng thiếu ngủ hoặc giấc ngủ không chất lượng do áp lực công việc, lối sống bận rộn, căng thẳng, thói quen sinh hoạt không lành mạnh và các yếu tố môi trường. Điều này không chỉ ảnh hưởng đến sức khỏe thể chất mà còn gây ra những tác động tiêu cực đến tinh thần và hiệu suất làm việc hàng ngày.
Phân tích trạng thái giấc ngủ thông qua sức khỏe và lối sống dựa trên dữ liệu khảo sát của 374 cá nhân.
Khám phá và đánh giá các yếu tố liên quan về lối sống và giấc ngủ.
Các yếu tố liên quan đến lối sống: Nghề nghiệp, Mức độ hoạt động thể chất, Mức độ căng thẳng, số bước chân…
Các yếu tố liên quan đến giấc ngủ: Rối loạn giấc ngủ, Thời gian ngủ trung bình, Chất lượng giấc ngủ…
Sử dụng biểu đồ để minh họa các thông tin quan trọng và xu hướng.
Xác định các yếu tố tác động đến giấc ngủ, cụ thể là các biểu hiện của rối loạn giấc ngủ.
Phân tích sự tác động của thời gian ngủ, chất lượng giấc ngủ và mức độ căng thẳng đến trạng thái giấc ngủ.
Nghiên cứu sử dụng phương pháp hồi quy để phân tích dữ liệu khảo sát từ mẫu dữ liệu về giấc ngủ và thói quen sinh hoạt. Chúng tôi sử dụng phương pháp này nhằm xác định mức độ ảnh hưởng của từng yếu tố đến trạng thái giấc ngủ của từng cá nhân. Ngoài ra, còn sử dụng các phân tích khác như: thống kê mô tả, ước lượng tỷ lệ Relative Risk, Odds Ratio.
Kết quả nghiên cứu giúp hiểu rõ hơn về mối quan hệ phức tập giữa giấc ngủ và các yếu tố lối sống, thấy được tầm quan trong của giấc ngủ đối với cuộc sống tinh thần và thể chất để từ đó đưa ra các chiến lược cải thiện chất lượng và trạng thái giấc ngủ cho cộng đồng nhằm giảm thiểu các vấn đề liên quan đến sức khỏe và đạt hiệu suất trong công việc hàng ngày.
Sleep Health and Lifestyle Dataset là một bộ dữ liệu có giá trị cung cấp thông tin chi tiết về giấc ngủ và thói quen sinh hoạt của 374 người. Bộ dữ liệu này được thu thập với mục đích nghiên cứu nhằm giúp hiểu rõ hơn về mối liên hệ giữa giấc ngủ và sức khỏe tổng thể.
Bộ dữ liệu chứa 374 quan sát trên 13 biến.
Person ID: Mã định danh duy nhất cho mỗi người tham gia.
Gender: Giới tính, được phân loại thành “Male” (Nam) và “Female” (Nữ).
Age: Tuổi, đo bằng đơn vị theo năm
Occupation: Nghề nghiệp của nhóm người tham gia.
Sleep Duration: Thời gian ngủ của người tham gia mỗi đêm, được đo bằng đơn vị giờ.
Quality of Sleep: Chất lượng giấc ngủ của người tham gia, được đánh giá trên thang điểm từ 1 đến 10, với 1 là “rất tệ” và 10 là “rất tốt”.
Physical Activity Level: Mức độ hoạt động thể chất của người tham gia, được đo bằng số phút hoạt động thể chất trung bình mỗi ngày.
Stress Level: Mức độ căng thẳng của người tham gia, được đánh giá trên thang điểm từ 1 đến 10, với 1 là “không căng thẳng” và 10 là “cực kỳ căng thẳng”
Blood Pressure: Huyết áp của người tham gia, được đo bằng đơn vị mmHg (milimet thủy ngân).
Heart Rate: Nhịp tim (số lần tim đập trong 1 phút)
Daily Steps: Số bước chân được hằng ngày
Sleep Disorder: Rối loạn giới ngủ có 3 biểu hiện với:
“None” là không bị rối loạn giấc ngủ (Bình thường).
“Sleep Apnea” Chứng ngưng thở khi ngủ. Giải thích thêm đây là một tình trạng y khoa mà trong đó người bệnh có những đợt ngưng thở đột ngột hoặc hô hấp không đều khi đang ngủ, gây ra các vấn đề về giấc ngủ và sức khỏe tổng thể.
“insomnia” chứng mất ngủ, đây thuật ngữ dùng để chỉ tình trạng khó ngủ hoặc không thể ngủ được, gây ảnh hưởng đến chất lượng cuộc sống và sức khỏe của người mắc phải.
library(readxl)
Sleep_health_and_lifestyle_dataset <- read_excel("C:/Users/admin/Downloads/Sleep_health_and_lifestyle_dataset.xlsx")
View(Sleep_health_and_lifestyle_dataset)
a <- Sleep_health_and_lifestyle_dataset
library(DT)
library(tidyverse)
names(a) <- c('ID','Giới tính','Tuổi','Nghề nghiệp','Thời gian ngủ','Chất lượng giấc ngủ','Mức độ thể chất','Mức độ căng thẳng','Chỉ số BMI','Huyết áp','Nhịp tim','Số bước chân','Trạng thái giấc ngủ')
a$`Giới tính` <- recode(a$`Giới tính`,"Male"="Nam","Female"="Nữ")
a$`Trạng thái giấc ngủ` <- recode(a$`Trạng thái giấc ngủ`,"None"="Bình thường","Sleep Apnea"="Chứng ngưng thở khi ngủ","Insomnia"="chứng mất ngủ")
a$`Nghề nghiệp` <- recode(a$`Nghề nghiệp`,"Software Engineer"="Kỹ sư phần mềm","Doctor"="Bác sĩ","Sales Representative"="Đại diện kinh doanh","Teacher"="Giáo viên","Nurse"="Y tá","Engineer"="Kỹ sư","Accountant"="Nhân viên kế toán","Scientist"="Nhà khoa học","Lawyer"="Luật sư","Salesperson"="Nhân viên bán hàng","Manager"="Nhà quản lý")
a$`Chỉ số BMI` <- recode(a$`Chỉ số BMI`,"Normal"="Bình thường","Normal Weight"="Cân đối","Obese"="Béo phì","Overweight"="Quá trọng lượng")
datatable(a)
summary(a)
## ID Giới tính Tuổi Nghề nghiệp
## Min. : 1.00 Length:374 Min. :27.00 Length:374
## 1st Qu.: 94.25 Class :character 1st Qu.:35.25 Class :character
## Median :187.50 Mode :character Median :43.00 Mode :character
## Mean :187.50 Mean :42.18
## 3rd Qu.:280.75 3rd Qu.:50.00
## Max. :374.00 Max. :59.00
## Thời gian ngủ Chất lượng giấc ngủ Mức độ thể chất Mức độ căng thẳng
## Min. :5.800 Min. :4.000 Min. :30.00 Min. :3.000
## 1st Qu.:6.400 1st Qu.:6.000 1st Qu.:45.00 1st Qu.:4.000
## Median :7.200 Median :7.000 Median :60.00 Median :5.000
## Mean :7.132 Mean :7.313 Mean :59.17 Mean :5.385
## 3rd Qu.:7.800 3rd Qu.:8.000 3rd Qu.:75.00 3rd Qu.:7.000
## Max. :8.500 Max. :9.000 Max. :90.00 Max. :8.000
## Chỉ số BMI Huyết áp Nhịp tim Số bước chân
## Length:374 Length:374 Min. :65.00 Min. : 3000
## Class :character Class :character 1st Qu.:68.00 1st Qu.: 5600
## Mode :character Mode :character Median :70.00 Median : 7000
## Mean :70.17 Mean : 6817
## 3rd Qu.:72.00 3rd Qu.: 8000
## Max. :86.00 Max. :10000
## Trạng thái giấc ngủ
## Length:374
## Class :character
## Mode :character
##
##
##
Nhận xét:
Tuổi: Người tham gia có độ tuổi từ 27 đến 59, với tuổi trung bình là 43.
Thời Gian Ngủ: Trung bình người tham gia ngủ khoảng 7.13 giờ, với thời gian ngủ ít nhất là 5.8 giờ và nhiều nhất là 8.5 giờ.
Chất Lượng Giấc Ngủ: Điểm chất lượng giấc ngủ trung bình là 7.31 trên 9, cho thấy chất lượng giấc ngủ rất tốt của trong nhóm số người tham gia.
Mức Độ Hoạt Động Thể Chất của nhóm người tham gia dao động từ 30 đến 90 phút mỗi ngày, với trung bình là 59.17 phút.
Mức Độ Stress: Thang điểm đánh giá mức độ căng thẳng của nhóm người dao động từ 3 đến 8, với trung bình là 5.38, cho thấy mức độ stress vừa phải trong số người tham gia.
Nhịp Tim: Nhịp tim trung bình là 70.17 nhịp/phút, với dao động từ 65 đến 86 nhịp/phút.
Số Bước Đi Hàng Ngày: Người tham gia đi từ 3,000 đến 10,000 bước mỗi ngày, trung bình khoảng 6,817 bước.
Nhìn chung, bộ dữ liệu cho thấy một quần thể có sự cân bằng tốt về thời gian ngủ và chất lượng giấc ngủ, mức độ hoạt động thể chất tốt và mức độ stress vừa phải.
table(a$`Nghề nghiệp`)
##
## Bác sĩ Đại diện kinh doanh Giáo viên Kỹ sư
## 71 2 40 63
## Kỹ sư phần mềm Luật sư Nhà khoa học Nhà quản lý
## 4 47 4 1
## Nhân viên bán hàng Nhân viên kế toán Y tá
## 32 37 73
prop.table(table(a$`Nghề nghiệp`))
##
## Bác sĩ Đại diện kinh doanh Giáo viên Kỹ sư
## 0.189839572 0.005347594 0.106951872 0.168449198
## Kỹ sư phần mềm Luật sư Nhà khoa học Nhà quản lý
## 0.010695187 0.125668449 0.010695187 0.002673797
## Nhân viên bán hàng Nhân viên kế toán Y tá
## 0.085561497 0.098930481 0.195187166
library(ggplot2)
s <- as.data.frame(table(a$`Nghề nghiệp`))
colnames(s) <- c("Nghề nghiệp","Count")
s$Percentage <- (s$Count / sum(s$Count)) * 100
ggplot(s, aes(x = "", y = Percentage, fill = `Nghề nghiệp`)) +
geom_bar(width = 1, stat = "identity") +
coord_polar("y") +
labs(title = "Tỷ lệ cơ cấu nghề nghiệp", x = "", y = "") +
theme_void() +
theme(legend.title = element_blank()) +
geom_text(aes(label = paste(round(Percentage, 2), "%")),
position = position_stack(vjust = 0.5), size = 3)
Nhận xét: Biểu đồ tròn mô tả cơ cấu nghề nghiệp của nhóm người tham gia khảo sát, với 11 ngành nghề được thể hiện. Nhìn chung, cơ cấu nghề nghiệp khá đa dạng, tuy nhiên một số ngành nổi bật với tỷ lệ cao hơn. Nhóm nhân viên y tế (bác sĩ, y tá) chiếm tỷ lệ cao nhất chiếm 38.5%. Tiếp theo là nhân viên văn phòng (nhân viên kế toán, bán hàng) với tỷ lệ 18.45%. Nhóm giáo dục (giáo viên) chiếm 10.7%. Nhóm kỹ thuật (kỹ sư, kỹ sư phần mềm) chiếm 17.91%. Các ngành nghề khác chiếm 14.44%.
table(a$`Thời gian ngủ`)
##
## 5.8 5.9 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8
## 2 4 31 25 12 13 9 26 20 5 5 3 19 36 14 5 5 10 24 28
## 7.9 8 8.1 8.2 8.3 8.4 8.5
## 7 13 15 11 5 14 13
prop.table(table(a$`Thời gian ngủ`))
##
## 5.8 5.9 6 6.1 6.2 6.3
## 0.005347594 0.010695187 0.082887701 0.066844920 0.032085561 0.034759358
## 6.4 6.5 6.6 6.7 6.8 6.9
## 0.024064171 0.069518717 0.053475936 0.013368984 0.013368984 0.008021390
## 7.1 7.2 7.3 7.4 7.5 7.6
## 0.050802139 0.096256684 0.037433155 0.013368984 0.013368984 0.026737968
## 7.7 7.8 7.9 8 8.1 8.2
## 0.064171123 0.074866310 0.018716578 0.034759358 0.040106952 0.029411765
## 8.3 8.4 8.5
## 0.013368984 0.037433155 0.034759358
Với kết quả của bảng tần số trên, nhóm tôi sẽ phân thành 4 nhóm thời gian giấc ngủ như sau:
Nhóm Ngủ ít: Thời gian ngủ dưới 6 giờ.
Nhóm ngủ tương đối: Thời gian ngủ 6 đến 7 giờ.
Nhóm ngủ tốt: Thời gian ngủ 7 đến 8 giờ.
Nhóm ngủ nhiều: Thời gian ngủ trên 8 giờ.
TS <- cut(a$`Thời gian ngủ`,
breaks = c(0, 6,7,8, Inf),
labels = c("Ngủ Ít","Ngủ Tương đối","Ngủ Tốt", "Ngủ Nhiều"))
table(TS)
## TS
## Ngủ Ít Ngủ Tương đối Ngủ Tốt Ngủ Nhiều
## 37 118 161 58
prop.table(table(TS))
## TS
## Ngủ Ít Ngủ Tương đối Ngủ Tốt Ngủ Nhiều
## 0.09893048 0.31550802 0.43048128 0.15508021
ggplot(data=a,aes(x= TS))+
geom_bar(fill="Magenta")+
labs(x="Các nhóm giờ ngủ",y="Số người", title="Đồ thị Thời gian ngủ trung bình")+
geom_text(stat="count",aes(label=after_stat(count)),vjust=-0.5)
Nhận xét: Với kết quả của bảng tần số và độ thị của thời gian giấc ngủ trung bình cho thấy số lượng người có số giờ ngủ trung bình là nhiều nhất có 161 người chiếm 43.05% , tiếp theo là số lượng người ngủ có số giờ tương đối có 118 người chiếm 31.55%, số lượng người có số giờ ngủ ít là 37 người chiếm tỷ lệ ít nhất 9.9% và số lượng người có số ngủ nhiều là 58 người chiếm tỷ lệ 15.5%. Phần lớn nhóm tham gia khảo sát có số giờ ngủ cực kỳ tốt chiếm 90.1% có thời gian ngủ trên 6 tiếng.
table(a$`Chất lượng giấc ngủ`)
##
## 4 5 6 7 8 9
## 5 7 105 77 109 71
prop.table(table(a$`Chất lượng giấc ngủ`))
##
## 4 5 6 7 8 9
## 0.01336898 0.01871658 0.28074866 0.20588235 0.29144385 0.18983957
Với kết quả của bảng tần số về chất lượng giấc ngủ, nhóm tôi sẽ phân thành 3 nhóm chất lượng giấc ngủ như sau:
Nhóm chất lượng giấc ngủ Bình thường: Thang điểm đánh giá ở dưới mức 6.
Nhóm chất lượng ngủ giấc Tốt: Thang điểm đánh giá ở mức 6 đến 8.
Nhóm chất lượng giấc Rất tốt: Thang điểm đánh giá ở trên mức 8.
QS <- cut(a$`Chất lượng giấc ngủ`,
breaks = c(0,6,8, Inf),
labels = c("Bình thường","Tốt","Rất tốt"))
table(QS)
## QS
## Bình thường Tốt Rất tốt
## 117 186 71
prop.table(table(QS))
## QS
## Bình thường Tốt Rất tốt
## 0.3128342 0.4973262 0.1898396
ggplot(data=a,aes(x= QS))+
geom_bar(fill="Orange Red")+
labs(x="Các nhóm chất lượng giấc ngủ",y="Số người", title="Đồ thị Chất lượng giấc ngủ")+
geom_text(stat="count",aes(label=after_stat(count)),vjust=-0.5)
Nhận xét: Với kết quả của bảng tần số và đồ thị về chất lượng giấc ngủ, ta có thể thấy nhóm có chất lượng giấc ngủ được đánh giá tốt có số người nhiều nhất là 186 người chiếm tỷ lệ 49.73%. Kế đến là nhóm đánh giá chất lượng giấc ngủ bình thường có 117 người chiếm 31.28%. Và ít nhất là nhóm người có chất lượng giấc ngủ rất tốt là 71 người chiếm 18.98%. Như vậy ta thấy nhóm người tham gia khảo sát có chất lượng giấc ngủ khá tốt.
Stress Level: Mức độ căng thẳng của người tham gia, được đánh giá trên thang điểm từ 1 đến 10, với 1 là “không căng thẳng” và 10 là “cực kỳ căng thẳng”
table(a$`Mức độ căng thẳng`)
##
## 3 4 5 6 7 8
## 71 70 67 46 50 70
prop.table(table(a$`Mức độ căng thẳng`))
##
## 3 4 5 6 7 8
## 0.1898396 0.1871658 0.1791444 0.1229947 0.1336898 0.1871658
Với kết quả của bảng tần số về Mức độ căng thẳng, nhóm tôi sẽ phân thành 3 nhóm Mức độ căng thẳng như sau:
Nhóm có mức căng thẳng Bình thường: Thang điểm đánh giá ở dưới mức 4.
Nhóm có mức căng thẳng nhẹ: Thang điểm đánh giá ở dưới mức 4 đến 6.
Nhóm có mức căng thẳng nặng: Thang điểm đánh giá ở trên mức 6.
SL <- cut(a$`Mức độ căng thẳng`,
breaks = c(0,4,6, Inf),
labels = c("Bình thường","Nhẹ","Nặng"))
table(SL)
## SL
## Bình thường Nhẹ Nặng
## 141 113 120
prop.table(table(SL))
## SL
## Bình thường Nhẹ Nặng
## 0.3770053 0.3021390 0.3208556
ggplot(data=a,aes(x= SL))+
geom_bar(fill="Aquamarine")+
labs(x="Các nhóm mức căng thẳng",y="Số người", title="Đồ thị Mức độ căng thẳng")+
geom_text(stat="count",aes(label=after_stat(count)),vjust=-0.5)
Nhận xét: Bảng tần số và đồ thị cho thấy có 141 người tham gia khảo sát có mực độ căng thẳng bình thường chiếm tỷ lệ cao nhất là 37.7%. Kế đến nhóm người mức độ căng thẳng nặng có 120 người chiếm tỷ lệ 32.08% Và cuối cùng là nhóm người mức độ căng thẳng nhẹ có 113 người chiếm tỷ lệ ít nhất là 30.21%. Nhìn chung thì mức độ căng thẳng của các nhóm phân chia khá đều nhau chênh lệch nhau không nhiều.
table(a$`Trạng thái giấc ngủ`)
##
## Bình thường chứng mất ngủ Chứng ngưng thở khi ngủ
## 219 77 78
prop.table(table(a$`Trạng thái giấc ngủ`))
##
## Bình thường chứng mất ngủ Chứng ngưng thở khi ngủ
## 0.5855615 0.2058824 0.2085561
ggplot(data=a,aes(x= a$`Trạng thái giấc ngủ`))+
geom_bar(fill="Light Salmon")+
labs(x="Các loại trạng thái của giấc ngủ",y="Số người", title="Đồ thị trạng thái giấc ngủ")+
geom_text(stat="count",aes(label=after_stat(count)),vjust=-0.5)
## Warning: Use of `` a$`Trạng thái giấc ngủ` `` is discouraged.
## ℹ Use `Trạng thái giấc ngủ` instead.
## Use of `` a$`Trạng thái giấc ngủ` `` is discouraged.
## ℹ Use `Trạng thái giấc ngủ` instead.
Nhận xét: ta thấy được tỷ lệ số người ngủ được bình thường chiếm 58.55% và tỷ lệ nhóm người có trạng thái giấc ngủ bất thường là 41.45%, trong đó:
Chứng mất ngủ: chiếm tỷ lệ 20.58%.
Chứng ngưng thở khi ngủ: Chiếm tỷ lệ 20.85%.
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.3.3
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
library(epiR)
## Warning: package 'epiR' was built under R version 4.3.3
## Loading required package: survival
## Package epiR 2.0.75 is loaded
## Type help(epi.about) for summary information
## Type browseVignettes(package = 'epiR') to learn how to use epiR for applied epidemiological analyses
##
table(TS,a$`Trạng thái giấc ngủ`)
##
## TS Bình thường chứng mất ngủ Chứng ngưng thở khi ngủ
## Ngủ Ít 17 2 18
## Ngủ Tương đối 29 67 22
## Ngủ Tốt 138 7 16
## Ngủ Nhiều 35 1 22
t <- table(TS,a$`Trạng thái giấc ngủ`)
ts <- as.data.frame(t)
colnames(ts) <- c("Type", "tt", "count")
ggplot(ts, aes(x = tt, y = count, fill = tt)) +
geom_bar(stat = "identity", position = position_dodge()) +
geom_text(aes(label = count), vjust = 1, size = 4, position = position_dodge(1)) +
facet_wrap(~ Type, scales = "free_y", nrow = 2) +
labs(title = "Đồ thị trạng thái giấc ngủ và thời gian ngủ",
x = "Tình trạng giấc ngủ",
y = "Số lượng người",
fill = "Tình trạng giấc ngủ") +
theme_minimal()
addmargins(t)
##
## TS Bình thường chứng mất ngủ Chứng ngưng thở khi ngủ Sum
## Ngủ Ít 17 2 18 37
## Ngủ Tương đối 29 67 22 118
## Ngủ Tốt 138 7 16 161
## Ngủ Nhiều 35 1 22 58
## Sum 219 77 78 374
prop.table(addmargins(t))
##
## TS Bình thường chứng mất ngủ Chứng ngưng thở khi ngủ Sum
## Ngủ Ít 0.0113636364 0.0013368984 0.0120320856 0.0247326203
## Ngủ Tương đối 0.0193850267 0.0447860963 0.0147058824 0.0788770053
## Ngủ Tốt 0.0922459893 0.0046791444 0.0106951872 0.1076203209
## Ngủ Nhiều 0.0233957219 0.0006684492 0.0147058824 0.0387700535
## Sum 0.1463903743 0.0514705882 0.0521390374 0.2500000000
Nhận xét: Thời gian giấc ngủ ảnh hưởng đến Trạng thái giấc ngủ
Trong nhóm có thời gian ngủ ít: Tỷ lệ nhóm ngủ ít mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm 54.05% và còn lại thì 45.95% nhóm ngủ ít có trạng thái giấc ngủ bình thường
Trong nhóm có thời gian ngủ tương đối: Tỷ lệ nhóm ngủ Bình thường mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm rất cao là 75.4% và còn lại thì 24.6% nhóm ngủ Bình thường có trạng thái giấc ngủ bình thường
Trong nhóm có thời gian ngủ tốt: Tỷ lệ nhóm ngủ tốt mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm rất thấp là 14.3% và 85.7% là tỷ lệ của nhóm có thời ngủ tốt mà không bị mắc các rối loạn giấc ngủ (trạng thái bình thường)
Trong nhóm có thời gian ngủ nhiều: Tỷ lệ nhóm ngủ nhiều mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm khá cao là 60.3% và 39.7% là tỷ lệ của nhóm có thời ngủ nhiều mà không bị mắc các rối loạn giấc ngủ (trạng thái bình thường)
như vậy, nhìn chung ta có thể thấy việc dành cho thời gian ngủ ít hoặc quá nhiều cũng dẫn đến việc bị mắc các chứng rối loạn giấc ngủ khá cao (chưa xét các yếu tố khác như Nghề nghiệp, chất lượng giấc ngủ và mức độ căng thẳng) cụ thể là ngủ ít hơn 6 tiếng và nhiều hơn 8 tiếng.
Trong phần này nhóm tôi chọn Trạng thái bình thường khi ngủ là tỷ lệ “thành công” của biến phụ thuộc (Trạng thái giấc ngủ) tương ứng với từng biểu hiện của biến độc lập (Thời gian ngủ).
a$TS <- TS
BTS <- table(a[a$`Trạng thái giấc ngủ` == "Bình thường", ]$TS)
BTS
##
## Ngủ Ít Ngủ Tương đối Ngủ Tốt Ngủ Nhiều
## 17 29 138 35
prop.test(BTS["Ngủ Tốt"], sum(BTS), p = 0.5)
##
## 1-sample proportions test with continuity correction
##
## data: BTS["Ngủ Tốt"] out of sum(BTS), null probability 0.5
## X-squared = 14.32, df = 1, p-value = 0.0001542
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.5621463 0.6934822
## sample estimates:
## p
## 0.630137
Nhận xét:Ta nhận thấy trong nhóm có thời gian ngủ tốt thì trạng thái bình thường khi ngủ chiếm 63%
Ta Uớc lượng tỷ lệ Relative Risk giữa (chứng mất ngủ, chứng ngưng thở khi ngủ) của các nhóm có số giờ ngủ tốt và số giờ ngủ nhiều.
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
library(epitools)
##
## Attaching package: 'epitools'
## The following object is masked from 'package:survival':
##
## ratetable
x <- matrix(c(7, 16,
1, 22),
nrow = 2,
byrow = TRUE,
dimnames = list(c("ngủ tốt", "ngủ nhiều"),
c("Chứng mất ngủ", "chứng ngưng thở khi ngủ")))
epitab(x, method = 'riskratio', rev = 'c')
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $tab
## chứng ngưng thở khi ngủ p0 Chứng mất ngủ p1 riskratio
## ngủ tốt 16 0.6956522 7 0.30434783 1.0000000
## ngủ nhiều 22 0.9565217 1 0.04347826 0.1428571
## lower upper p.value
## ngủ tốt NA NA NA
## ngủ nhiều 0.01906481 1.070462 0.04697704
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Nhận xét: Kết quả cho thấy Tỷ lệ chứng mất ngủ trong nhóm có số giờ ngủ tốt là 30.43% và Tỷ lệ của chứng mất ngủ trong nhóm ngủ nhiều là 4.34%. Tỷ lệ Relative Risk của chứng mất ngủ giữa 2 nhóm, Tỷ lệ chứng mất ngủ của nhóm ngủ nhiều (2) và chứng mất ngủ ở nhóm ngủ tốt (1) là 0.1428 lần, nghĩa là (2) gấp 0.1428 lần (1). Với độ tin cậy 95% thì khoảng ước lượng tỷ lệ Relative Risk từ 0.01906481 đến 1.070462. Với P_value = 0.04697704 nhỏ hơn mức ý nghĩa 5% thì kết quả này có ý nghĩa thống kê.
Ta sẽ ước lượng tỷ lệ Odds Ratio giữa (chứng mất ngủ, chứng ngưng thở khi ngủ) của nhóm có số giờ ngủ tốt và nhóm có số giờ ngủ nhiều
OddsRatio(x)
## [1] 9.625
Nhận xét: Với kết quả này ta có tỷ lệ 2 nhóm
Nhóm 1 (Nhóm có số giờ ngủ tốt): Tỷ lệ giữa chứng mất ngủ và chứng ngưng thở khi ngủ trong nhóm có số giờ ngủ tốt là 0.4375, nghĩa là chứng mất ngủ gấp chứng ngưng thở khi ngủ trong nhóm có số giờ ngủ tốt là 0.4375 lần
Nhóm 2 (Nhóm có số giờ ngủ nhiều): Tỷ lệ giữa chứng mất ngủ và chứng ngưng thở khi ngủ trong nhóm có số giờ ngủ nhiều là 0.045, nghĩa là chứng mất ngủ gấp chứng ngưng thở khi ngủ trong nhóm có số giờ ngủ nhiều là 0.045 lần
Vậy chỉ số OddsRatio là 9.625 có thể hiểu là tỷ lệ giữa nhóm 1 gấp nhóm 2 là 9.625 lần.
addmargins(table(QS,a$`Trạng thái giấc ngủ`))
##
## QS Bình thường chứng mất ngủ Chứng ngưng thở khi ngủ Sum
## Bình thường 40 37 40 117
## Tốt 141 39 6 186
## Rất tốt 38 1 32 71
## Sum 219 77 78 374
prop.table(addmargins(table(QS,a$`Trạng thái giấc ngủ`)))
##
## QS Bình thường chứng mất ngủ Chứng ngưng thở khi ngủ Sum
## Bình thường 0.0267379679 0.0247326203 0.0267379679 0.0782085561
## Tốt 0.0942513369 0.0260695187 0.0040106952 0.1243315508
## Rất tốt 0.0254010695 0.0006684492 0.0213903743 0.0474598930
## Sum 0.1463903743 0.0514705882 0.0521390374 0.2500000000
Nhận xét: Chất lượng giấc ngủ ảnh hưởng đến Trạng thái giấc ngủ
Trong nhóm có chất lượng giấc ngủ bình thường: Tỷ lệ nhóm có chất lượng giấc ngủ bình thường mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm 65.82% và còn lại thì 34.18% có trạng thái giấc ngủ bình thường
Trong nhóm có chất lượng giấc ngủ tốt: Tỷ lệ nhóm chất lượng giấc ngủ tốt mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm khá thấp là 24.19% và 75.81% nhóm trạng thái giấc ngủ bình thường khi có chất lượng tốt.
Trong nhóm có chất lượng giấc ngủ rất tốt: Tỷ lệ nhóm có chất lượng giấc ngủ rất tốt mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm 46.5% và tỷ lệ của nhóm có chất lượng tốt mà không bị mắc các rối loạn giấc ngủ (trạng thái bình thường) chiếm 53.5%
a %>% ggplot(aes(x=QS,y=after_stat(count)))+
geom_bar(fill="darkblue")+
geom_text(stat="count",aes(label=after_stat(count)),color="red",vjust=-.5)+
facet_grid(. ~ a$`Trạng thái giấc ngủ`)+
labs(x="Chất lượng giấc ngủ",y="Số người")
Trong phần này nhóm tôi chọn Trạng thái bình thường khi ngủ là tỷ lệ “thành công” của biến phụ thuộc (Trạng thái giấc ngủ) tương ứng với từng biểu hiện của biến độc lập (Chất lượng giấc ngủ).
a$QS <- QS
BQS <- table(a[a$`Trạng thái giấc ngủ` == "Bình thường", ]$QS)
BQS
##
## Bình thường Tốt Rất tốt
## 40 141 38
prop.test(BQS["Tốt"], sum(BQS), p = 0.7)
##
## 1-sample proportions test with continuity correction
##
## data: BQS["Tốt"] out of sum(BQS), null probability 0.7
## X-squared = 3.0276, df = 1, p-value = 0.08186
## alternative hypothesis: true p is not equal to 0.7
## 95 percent confidence interval:
## 0.5761030 0.7064323
## sample estimates:
## p
## 0.6438356
Nhận xét:Ta nhận thấy trong nhóm có chất lượng giấc ngủ tốt thì trạng thái bình thường khi ngủ chiếm 64.38%
Ta ước lượng tỷ lệ Relative Risk giữa (chứng mất ngủ, chứng ngưng thở khi ngủ) của nhóm có chất lượng giấc ngủ tốt và nhóm có chất lượng giấc ngủ rất tốt
Từ bảng tần suất, chúng ta tính \(\frac{π_1}{π_2}\), phân số này gọi là Rủi ro tương đối (Relative risk) giữa 2 biểu hiện của chứng mất ngủ và chứng ngưng thở khi ngủ của biến Trạng thái giấc ngủ.
y <- matrix(c(39, 6,
1, 32),
nrow = 2,
byrow = TRUE,
dimnames = list(c("tốt", "rất tốt"),
c("Chứng mất ngủ", "chứng ngưng thở khi ngủ")))
epitab(y, method = 'riskratio', rev = 'c')
## $tab
## chứng ngưng thở khi ngủ p0 Chứng mất ngủ p1 riskratio
## tốt 6 0.1333333 39 0.86666667 1.00000000
## rất tốt 32 0.9696970 1 0.03030303 0.03496503
## lower upper p.value
## tốt NA NA NA
## rất tốt 0.005057691 0.2417217 1.188504e-14
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Nhận xét: Kết quả cho thấy Tỷ lệ của chứng mất ngủ trong nhóm có chất lượng giấc ngủ tốt chiếm 86.67% và Tỷ lệ của chứng mất ngủ trong nhóm chất lượng giấc ngủ rất tốt là 3.03%. tỷ lệ Relative Risk giữa 2 nhóm có chất lượng giấc ngủ tốt (1) và nhóm chất lượng giấc ngủ rất tốt (2) là 0.0349 lần, nghĩa là (2) gấp 0.0349 lần (1). Với độ tin cậy 95% thì khoảng ước lượng tỷ lệ Relative Risk từ 0.005057691 đến 0.2417217. Với P_value = 1.188504e-14 nhỏ hơn mức ý nghĩa 5% thì kết quả này có ý nghĩa thống kê.
Ta ước lượng tỷ lệ Oddsratio giữa (chứng mất ngủ, chứng ngưng thở khi ngủ) của nhóm có chất lượng giấc ngủ tốt và nhóm có chất lượng giấc ngủ rất tốt
OddsRatio(y)
## [1] 208
Nhận xét: Với kết quả này ta có tỷ lệ 2 nhóm
Nhóm 1 (Nhóm có chất lượng giấc ngủ tốt): Tỷ lệ giữa chứng mất ngủ và chứng ngưng thở khi ngủ trong nhóm có chất lượng giấc ngủ tốt là 6.5, nghĩa là chứng mất ngủ gấp chứng ngưng thở khi ngủ trong nhóm có chất lượng giấc ngủ tốt 6.5 lần
Nhóm 2 (Nhóm có chất lượng giấc ngủ rất tốt): Tỷ lệ giữa chứng mất ngủ và chứng ngưng thở khi ngủ trong nhóm có chất lượng giấc ngủ rất tốt là 0.03125, nghĩa là chứng mất ngủ gấp chứng ngưng thở khi ngủ trong nhóm có chất lượng giấc ngủ rất tốt là 0.03125 lần
Vậy chỉ số OddsRatio là 208 có thể hiểu là tỷ lệ giữa nhóm 1 gấp nhóm 2 là 208 lần.
addmargins(table(SL,a$`Trạng thái giấc ngủ`))
##
## SL Bình thường chứng mất ngủ Chứng ngưng thở khi ngủ Sum
## Bình thường 83 25 33 141
## Nhẹ 100 8 5 113
## Nặng 36 44 40 120
## Sum 219 77 78 374
prop.table(addmargins(table(SL,a$`Trạng thái giấc ngủ`)))
##
## SL Bình thường chứng mất ngủ Chứng ngưng thở khi ngủ Sum
## Bình thường 0.055481283 0.016711230 0.022058824 0.094251337
## Nhẹ 0.066844920 0.005347594 0.003342246 0.075534759
## Nặng 0.024064171 0.029411765 0.026737968 0.080213904
## Sum 0.146390374 0.051470588 0.052139037 0.250000000
Nhận xét: Mức độ căng thẳng ảnh hưởng đến Trạng thái giấc ngủ
Trong nhóm có Mức độ căng thẳng bình thường: Tỷ lệ nhóm có mức độ căng thẳng bình thường mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm 41.14% và còn lại thì 58.86% trạng thái giấc ngủ bình thường trong nhóm có Mức độ căng thẳng bình thường.
Trong nhóm có Mức độ căng thẳng nhẹ: Tỷ lệ nhóm có Mức độ căng thẳng nhẹ mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm khá thấp là 11.5% và 88.5% nhóm trạng thái giấc ngủ bình thường khi có căng thẳng nhẹ.
Trong nhóm có Mức độ căng thẳng nặng: Tỷ lệ nhóm có Mức độ căng thẳng nặng mắc các rối loạn giấc ngủ (Chứng mất ngủ, Chứng ngưng thở khi ngủ) chiếm 70% và tỷ lệ của nhóm có trạng thái không bị mắc các rối loạn giấc ngủ (trạng thái bình thường khi ngủ) chiếm 30%.
a %>% ggplot(aes(x=SL,y=after_stat(count)))+
geom_bar(fill="skyblue")+
geom_text(stat="count",aes(label=after_stat(count)),color="red",vjust=-.5)+
facet_grid(. ~ a$`Trạng thái giấc ngủ`)+
labs(x="Mức độ căng thẳng",y="Số người")
Trong phần này nhóm tôi chọn Trạng thái bình thường khi ngủ là tỷ lệ “thành công” của biến phụ thuộc (Trạng thái giấc ngủ) tương ứng với từng biểu hiện của biến độc lập (Mức độ căng thẳng).
a$SL <- SL
BSL <- table(a[a$`Trạng thái giấc ngủ` == "Bình thường", ]$SL)
BSL
##
## Bình thường Nhẹ Nặng
## 83 100 36
prop.test(BSL["Nhẹ"], sum(BSL), p = 0.7)
##
## 1-sample proportions test with continuity correction
##
## data: BSL["Nhẹ"] out of sum(BSL), null probability 0.7
## X-squared = 60.618, df = 1, p-value = 6.928e-15
## alternative hypothesis: true p is not equal to 0.7
## 95 percent confidence interval:
## 0.3897468 0.5250420
## sample estimates:
## p
## 0.456621
Nhận xét:Ta nhận thấy trong nhóm có mức độ căng thẳng nhẹ thì trạng thái bình thường khi ngủ chiếm 45.66%.
Ta ước lượng tỷ lệ Relative Risk giữa (Bình thường khi ngủ, chứng mất ngủ) của nhóm có căng thẳng nhẹ và nhóm có căng thẳng nặng
Từ bảng tần suất, chúng ta tính \(\frac{π_1}{π_2}\), phân số này gọi là Rủi ro tương đối (Relative risk) giữa 2 biểu hiện của chứng mất ngủ và Bình thường khi ngủ của biến Trạng thái giấc ngủ.
z <- matrix(c(100, 8,
36, 44),
nrow = 2,
byrow = TRUE,
dimnames = list(c("Căng thẳng nhẹ", "Căng thẳng nặng"),
c("Bình thường khi ngủ","Chứng mất ngủ")))
epitab(z, method = 'riskratio', rev = 'c')
## $tab
## Chứng mất ngủ p0 Bình thường khi ngủ p1
## Căng thẳng nhẹ 8 0.07407407 100 0.9259259
## Căng thẳng nặng 44 0.55000000 36 0.4500000
## riskratio lower upper p.value
## Căng thẳng nhẹ 1.000 NA NA NA
## Căng thẳng nặng 0.486 0.3792316 0.6228278 3.162864e-13
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Nhận xét: Kết quả cho thấy Tỷ lệ của Bình thường khi ngủ trong nhóm có căng thẳng nhẹ chiếm 92.59% và Tỷ lệ của Bình thường khi ngủ trong nhóm căng thẳng nặng là 45%. Tỷ lệ Relative Risk giữa 2 nhóm có căng thẳng nhẹ (1) và nhóm căng thẳng nặng (2) là 0.486 lần, nghĩa là (2) gấp 0.486 lần (1). Với độ tin cậy 95% thì khoảng ước lượng tỷ lệ Relative Risk từ 0.3792316 đến 0.6228278. Với P_value = 3.162864e-13 nhỏ hơn mức ý nghĩa 5% thì kết quả này có ý nghĩa thống kê.
Ta ước lượng tỷ lệ Oddsratio giữa (Bình thường khi ngủ, chứng mất ngủ) của nhóm có căng thẳng nhẹ và nhóm có căng thẳng nặng
OddsRatio(z)
## [1] 15.27778
Nhận xét: Với kết quả này ta có hiểu là ta phải tính tỷ lệ 2 nhóm
Nhóm 1 (Nhóm có mức căng thẳng nhẹ): Tỷ lệ giữa Bình thường khi ngủ và chứng mất ngủ trong nhóm căng thẳng nhẹ là 12.5, nghĩa là Bình thường khi ngủ gấp chứng mất ngủ trong nhóm căng thăng nhẹ 12.5 lần
Nhóm 2 (Nhóm có mức căng thẳng nặng): Tỷ lệ giữa Bình thường khi ngủ và chứng mất ngủ trong nhóm có mức căng thẳng nặng là 0.81, nghĩa là Bình thường khi ngủ gấp chứng mất ngủ trong nhóm có mức căng nặng là 0.81 lần
Vậy chỉ số OddsRatio là 15.27778 có thể hiểu là tỷ lệ giữa nhóm 1 gấp nhóm 2 là 15.27778 lần.
Đặt giả thuyết \(H_0\) là biến thời gian giấc ngủ và biến trạng thái giấc ngủ độc lập với nhau
chisq.test(table(TS,a$`Trạng thái giấc ngủ`))
##
## Pearson's Chi-squared test
##
## data: table(TS, a$`Trạng thái giấc ngủ`)
## X-squared = 185.74, df = 6, p-value < 2.2e-16
Kết quả kiểm định cho ta thấy giá trị p−value là 2.2e−16 nhỏ hơn 0.05 , nên bác bỏ giả thuyết \(H_0\) nghĩa là thời gian giấc ngủ và biến trạng thái giấc ngủ độc lập có liên quan với nhau.
Đặt giả thuyết \(H_0\) là biến Chất lượng giấc ngủ và biến trạng thái giấc ngủ độc lập với nhau
chisq.test(table(QS,a$`Trạng thái giấc ngủ`))
##
## Pearson's Chi-squared test
##
## data: table(QS, a$`Trạng thái giấc ngủ`)
## X-squared = 98.897, df = 4, p-value < 2.2e-16
Kết quả kiểm định cho ta thấy giá trị p−value là 2.2e−16 nhỏ hơn 0.05 , nên bác bỏ giả thuyết \(H_0\) nghĩa là Chất lượng giấc ngủ và biến trạng thái giấc ngủ độc lập có liên quan với nhau.
Đặt giả thuyết \(H_0\) là biến Mức độ căng thẳng và biến trạng thái giấc ngủ độc lập với nhau
chisq.test(table(SL,a$`Trạng thái giấc ngủ`))
##
## Pearson's Chi-squared test
##
## data: table(SL, a$`Trạng thái giấc ngủ`)
## X-squared = 83.679, df = 4, p-value < 2.2e-16
Kết quả kiểm định cho ta thấy giá trị p−value là 2.2e−16 nhỏ hơn 0.05 , nên bác bỏ giả thuyết \(H_0\) nghĩa là Mức độ căng thẳng và biến trạng thái giấc ngủ độc lập có liên quan với nhau.
Mô hình xác suất tuyến tính (Linear Probability Model - LPM) là một dạng của mô hình hồi quy dùng để ước lượng xác suất của một sự kiện. Trong mô hình này, biến phụ thuộc là biến nhị phân (dạng 0 hoặc 1), ví dụ như khả năng xảy ra một sự kiện. Mô hình tuyến tính giả định rằng mối quan hệ giữa biến phụ thuộc và các biến độc lập có thể được mô tả bằng một hàm tuyến tính. Công thức cơ bản của mô hình xác suất tuyến tính là:
\[ \hat{\pi}= \beta_0+\beta_1 \cdot x_1 + \beta_2 \cdot x_2+...+\beta_k \cdot x_k \] Trong đó:
\(\hat{\pi}\) là xác suất của biến phụ thuộc \(Y\) bằng 1, điều kiện cho các biến độc lập \(x_1,x_2,...x_k\).
\(\beta_0\) là hệ số chặn
\(\beta_1,\beta_2,...\beta_k\) là các hệ số hồi quy của các biến độc lập.
Lưu ý: Hạn chế của mô hình này là kết quả dự đoán có thể không nằm trong khoảng [0, 1], điều này có thể gây ra những vấn đề về ý nghĩa của xác suất. Để khắc phục điều này, các mô hình như hồi quy logistic (Logistic Regression) hoặc hồi quy Probit thường được sử dụng vì chúng đảm bảo xác suất dự đoán nằm trong khoảng [0, 1].
a$tt1 <- ifelse(a$`Trạng thái giấc ngủ` %in% c("Bình thường"), 1, 0)
a$ts1 <- relevel(as.factor(a$TS), ref = "Ngủ Ít")
OLTS <- lm(tt1 ~ ts1, data = a)
summary(OLTS)
##
## Call:
## lm(formula = tt1 ~ ts1, data = a)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.8571 -0.2458 0.1429 0.1429 0.7542
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.45946 0.06872 6.686 8.49e-11 ***
## ts1Ngủ Tương đối -0.21370 0.07876 -2.713 0.00698 **
## ts1Ngủ Tốt 0.39768 0.07621 5.218 3.02e-07 ***
## ts1Ngủ Nhiều 0.14399 0.08795 1.637 0.10246
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.418 on 370 degrees of freedom
## Multiple R-squared: 0.2876, Adjusted R-squared: 0.2819
## F-statistic: 49.8 on 3 and 370 DF, p-value: < 2.2e-16
Hàm hồi quy: \(\hat{\pi}= 0.45946-0.21370\times\text{Ngủ tương đối} + 0.39768\times\text{Ngủ Tốt}+0.14399\times\text{Ngủ Nhiều}\)
Hệ số chặn là 0.45946 cho thấy nếu không có sự ảnh hưởng bởi yếu tố thời gian giấc ngủ thì xác suất của việc trạng thái bình thường khi ngủ là 0.45946
Hệ số của nhóm ngủ tương đối: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tương đối chênh lệch thấp hơn 0.2137 so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ tốt: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tốt chênh lệch cao hơn 0.39768 so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ nhiều: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ nhiều chênh lệch cao hơn 0.14399 so với nhóm có thời gian ngủ ít.
a$tt1 <- ifelse(a$`Trạng thái giấc ngủ` %in% c("Bình thường"), 1, 0)
a$qs1 <- relevel(as.factor(a$QS), ref = "Tốt")
OLQS <- lm(tt1 ~ qs1, data = a)
summary(OLQS)
##
## Call:
## lm(formula = tt1 ~ qs1, data = a)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.7581 -0.3419 0.2419 0.2419 0.6581
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.75806 0.03364 22.533 < 2e-16 ***
## qs1Bình thường -0.41618 0.05414 -7.687 1.36e-13 ***
## qs1Rất tốt -0.22285 0.06401 -3.482 0.000557 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4588 on 371 degrees of freedom
## Multiple R-squared: 0.1395, Adjusted R-squared: 0.1349
## F-statistic: 30.08 on 2 and 371 DF, p-value: 7.856e-13
Hàm hồi quy: \(\hat{\pi}= 0.75806-0.41618\times\text{Bình thường} -0.22285\times\text{Rất tốt}\)
Hệ số chặn là 0.75806 cho thấy nếu không có sự ảnh hưởng bởi yếu tố chất lượng giấc ngủ thì xác suất của việc trạng thái bình thường khi ngủ là 0.75806
Hệ số của nhóm chất lượng giấc ngủ bình thường: Ta thấy xác suất của trạng thái giấc ngủ bình thường có chất lượng giấc ngủ bình thường chênh lệch thấp hơn 0.41618 so với nhóm có chất lượng giấc ngủ tốt.
Hệ số của nhóm chất lượng giấc ngủ rất tốt: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có chất lượng giấc ngủ rất tốt chênh lệch thấp hơn 0.22285 so với nhóm có chất lượng giấc ngủ tốt.
a$tt1 <- ifelse(a$`Trạng thái giấc ngủ` %in% c("Bình thường"), 1, 0)
a$sl1 <- relevel(as.factor(a$SL), ref = "Bình thường")
OLSL <- lm(tt1 ~ sl1, data = a)
summary(OLSL)
##
## Call:
## lm(formula = tt1 ~ sl1, data = a)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.8850 -0.3000 0.1150 0.4113 0.7000
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.58865 0.03680 15.995 < 2e-16 ***
## sl1Nhẹ 0.29630 0.05517 5.370 1.39e-07 ***
## sl1Nặng -0.28865 0.05427 -5.318 1.81e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.437 on 371 degrees of freedom
## Multiple R-squared: 0.2194, Adjusted R-squared: 0.2152
## F-statistic: 52.15 on 2 and 371 DF, p-value: < 2.2e-16
Hàm hồi quy: \(\hat{\pi}= 0.58865+0.29630\times\text{Nhẹ} -0.28865\times\text{Nặng}\)
Hệ số chặn là 0.58865 cho thấy nếu không có sự ảnh hưởng bởi yếu tố mức độ căng thẳng thì xác suất của việc trạng thái bình thường khi ngủ là 0.58865
Hệ số của nhóm mức độ căng thẳng nhẹ: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm mức độ căng thẳng nhẹ chênh lệch cao hơn 0.2963 so với nhóm mức độ căng thẳng bình thường (không căng thẳng).
Hệ số của nhóm mức độ căng thẳng nặng: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm mức độ căng thẳng nặng chênh lệch thấp hơn 0.28865 so với nhóm mức độ căng thẳng bình thường (không căng thẳng).
lm_tt <- glm(tt1~ ts1+qs1+sl1, data = a)
summary(lm_tt)
##
## Call:
## glm(formula = tt1 ~ ts1 + qs1 + sl1, data = a)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.41565 0.10656 3.901 0.000114 ***
## ts1Ngủ Tương đối -0.19398 0.07869 -2.465 0.014152 *
## ts1Ngủ Tốt 0.46119 0.11442 4.031 6.77e-05 ***
## ts1Ngủ Nhiều 0.83387 0.16655 5.007 8.63e-07 ***
## qs1Bình thường 0.43352 0.12637 3.430 0.000671 ***
## qs1Rất tốt -0.64608 0.12255 -5.272 2.31e-07 ***
## sl1Nhẹ 0.05074 0.06429 0.789 0.430441
## sl1Nặng -0.38971 0.13212 -2.950 0.003385 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.1555535)
##
## Null deviance: 90.762 on 373 degrees of freedom
## Residual deviance: 56.933 on 366 degrees of freedom
## AIC: 375.35
##
## Number of Fisher Scoring iterations: 2
Hàm hồi quy: \(\hat{\pi}= 0.41565 -0.19398\times\text{Ngủ Tương đối} + 0.46119\times\text{Ngủ Tốt} + 0.83387\times\text{Ngủ Nhiều} +0.43352\times\text{Bình thường} -0.64608\times\text{Rất tốt}+0.05074\times\text{Nhẹ} -0.38971\times\text{Nặng}\)
Hệ số chặn là 0.41565 cho thấy nếu không có sự ảnh hưởng bởi yếu tố khác thì xác suất của việc trạng thái bình thường khi ngủ là 0.41565
Hệ số của nhóm ngủ tương đối: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tương đối chênh lệch thấp hơn 0.19398 so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ tốt: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tốt chênh lệch cao hơn 0.46119 so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ nhiều: Ta thấy xác suất của trạng thái ngủ giấc bình thường trong nhóm có thời gian ngủ nhiều chênh lệch cao hơn 0.83387 so với nhóm có thời gian ngủ ít.
Hệ số của nhóm chất lượng giấc ngủ bình thường: Ta thấy xác suất của trạng thái giấc ngủ bình thường có chất lượng giấc ngủ bình thường chênh lệch cao hơn 0.43352 so với nhóm có chất lượng giấc ngủ tốt.
Hệ số của nhóm chất lượng giấc ngủ rất tốt: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có chất lượng giấc ngủ rất tốt chênh lệch thấp hơn 0.64608 so với nhóm có chất lượng giấc ngủ tốt.
Hệ số của nhóm mức độ căng thẳng nhẹ: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm mức độ căng thẳng nhẹ chênh lệch thấp hơn 0.05074 so với nhóm mức độ căng thẳng bình thường (không căng thẳng).
Hệ số của nhóm mức độ căng thẳng nặng: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm mức độ căng thẳng nặng chênh lệch thấp hơn 0.38971 so với nhóm mức độ căng thẳng bình thường (không căng thẳng).
Mô hình hồi quy Logit, hay còn gọi là Logistic Regression, là một phương pháp phân tích thống kê được sử dụng để ước lượng xác suất xảy ra của một sự kiện nhị phân (ví dụ: có hoặc không, thành công hoặc thất bại). Mô hình này đảm bảo rằng xác suất ước lượng sẽ nằm trong khoảng từ 0 đến 1, khắc phục hạn chế của mô hình xác suất tuyến tính trên.
Khi hàm liên kết có dạng \(g(\mu)=\operatorname{logit}(\mu)=\log \left(\frac{\mu}{1-\mu}\right)\), mô hình hồi quy \[ \log \left(\frac{\mu}{1-\mu}\right)=\log \left(\frac{\pi}{1-\pi}\right)=\operatorname{logit}(\pi)=\beta_0+\beta_1 \cdot x_1 + \beta_2 \cdot x_2+...+\beta_k \cdot x_k \] Được gọi là mô hình logit.
Với \(\pi\) là xác suất để biến phụ thuộc nhận giá trị “thành công”. Lưu ý: \(Y\) là biến nhị phân thì \(E(Y)=\pi\) với \(\pi=P(Y=\text{"Thành công"})\)
logitts <- glm(tt1 ~ ts1, data = a, family = binomial(link = 'logit'))
summary(logitts)
##
## Call:
## glm(formula = tt1 ~ ts1, family = binomial(link = "logit"), data = a)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.1625 0.3299 -0.493 0.6223
## ts1Ngủ Tương đối -0.9588 0.3931 -2.439 0.0147 *
## ts1Ngủ Tốt 1.9543 0.3994 4.893 9.95e-07 ***
## ts1Ngủ Nhiều 0.5824 0.4253 1.369 0.1709
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 507.47 on 373 degrees of freedom
## Residual deviance: 392.61 on 370 degrees of freedom
## AIC: 400.61
##
## Number of Fisher Scoring iterations: 4
Hàm hồi quy: \(\log\left(\frac{\pi}{1-\pi}\right)=\operatorname{logit}(\pi)= -0.1625 -0.9588\times\text{Ngủ Tương đối} +1.9543\times\text{Ngủ Tốt}+0.5824\times\text{Ngủ Nhiều}\)
Hệ số chặn là -0.1625 cho thấy nếu không có sự ảnh hưởng bởi yếu tố khác thì xác suất của việc trạng thái bình thường khi ngủ là \(\frac{e^{(-0.1625)}}{1+e^{(-0.1625)}}\).
Hệ số của nhóm ngủ tương đối là -0.9588: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tương đối chênh lệch thấp hơn \(\frac{e^{(-0.9588)}}{1+e^{(-0.9588)}}\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ tốt là 1.9543: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tốt chênh lệch cao hơn \(\frac{e^{(1.9543)}}{1+e^{(1.9543)}}\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ nhiều là 0.5824: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ nhiều chênh lệch cao hơn \(\frac{e^{(0.5824)}}{1+e^{(0.5824)}}\) so với nhóm có thời gian ngủ ít.
logitqs <- glm(tt1 ~ qs1, data = a, family = binomial(link = 'logit'))
summary(logitqs)
##
## Call:
## glm(formula = tt1 ~ qs1, family = binomial(link = "logit"), data = a)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.1421 0.1712 6.671 2.55e-11 ***
## qs1Bình thường -1.7970 0.2594 -6.927 4.30e-12 ***
## qs1Rất tốt -1.0010 0.2931 -3.415 0.000638 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 507.47 on 373 degrees of freedom
## Residual deviance: 454.19 on 371 degrees of freedom
## AIC: 460.19
##
## Number of Fisher Scoring iterations: 4
Hàm hồi quy:\(\log\left(\frac{\pi}{1-\pi}\right) = 1.1421-1.7970\times\text{Bình thường} -1.0010\times\text{Rất tốt}\)
Hệ số chặn là 1.1421: cho thấy nếu không có sự ảnh hưởng bởi yếu tố chất lượng giấc ngủ thì xác suất của việc trạng thái bình thường khi ngủ là \(\frac{e^{(1.1421)}}{1+e^{(1.1421)}}\)
Hệ số của nhóm chất lượng giấc ngủ bình thường là -1.7970: Ta thấy xác suất của trạng thái giấc ngủ bình thường có chất lượng giấc ngủ bình thường chênh lệch thấp hơn \(\frac{e^{(-1.7970)}}{1+e^{(-1.7970)}}\) so với nhóm có chất lượng giấc ngủ tốt.
Hệ số của nhóm chất lượng giấc ngủ rất tốt là -1.0010: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có chất lượng giấc ngủ rất tốt chênh lệch thấp hơn \(\frac{e^{(-1.0010)}}{1+e^{(-1.0010)}}\) so với nhóm có chất lượng giấc ngủ tốt.
logitsl <- glm(tt1 ~ sl1, data = a, family = binomial(link = 'logit'))
summary(logitsl)
##
## Call:
## glm(formula = tt1 ~ sl1, family = binomial(link = "logit"), data = a)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.3584 0.1711 2.094 0.0362 *
## sl1Nhẹ 1.6818 0.3409 4.934 8.08e-07 ***
## sl1Nặng -1.2057 0.2626 -4.591 4.41e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 507.47 on 373 degrees of freedom
## Residual deviance: 418.29 on 371 degrees of freedom
## AIC: 424.29
##
## Number of Fisher Scoring iterations: 4
Hàm hồi quy:\(\log\left(\frac{\pi}{1-\pi}\right) = 0.3584+1.6818\times\text{Nhẹ} -1.2057\times\text{Nặng}\)
Hệ số chặn là 0.3584: cho thấy nếu không có sự ảnh hưởng bởi yếu tố mức độ căng thẳng thì xác suất của việc trạng thái bình thường khi ngủ là \(\frac{e^{(0.3584)}}{1+e^{(0.3584)}}\)
Hệ số của nhóm mức độ căng thẳng nhẹ là 1.6818: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm mức độ căng thẳng nhẹ chênh lệch cao hơn \(\frac{e^{(1.6818)}}{1+e^{(1.6818)}}\) so với nhóm mức độ căng thẳng bình thường (không căng thẳng).
Hệ số của nhóm mức độ căng thẳng nặng là -1.2057: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm mức độ căng thẳng nặng chênh lệch thấp hơn \(\frac{e^{(-1.2057)}}{1+e^{(-1.2057)}}\) so với nhóm mức độ căng thẳng bình thường (không căng thẳng).
lg_tt <- glm(`tt1` ~ `ts1`+`qs1`+`sl1`, data = a, family = binomial(link = 'logit'))
summary(lg_tt)
##
## Call:
## glm(formula = tt1 ~ ts1 + qs1 + sl1, family = binomial(link = "logit"),
## data = a)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.5447 0.6321 -0.862 0.388828
## ts1Ngủ Tương đối -0.9361 0.4231 -2.213 0.026928 *
## ts1Ngủ Tốt 2.7097 0.7233 3.747 0.000179 ***
## ts1Ngủ Nhiều 4.3335 1.0141 4.273 1.93e-05 ***
## qs1Bình thường 16.6273 620.7859 0.027 0.978632
## qs1Rất tốt -3.3689 0.7984 -4.220 2.45e-05 ***
## sl1Nhẹ 0.2607 0.5328 0.489 0.624608
## sl1Nặng -16.2450 620.7859 -0.026 0.979123
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 507.47 on 373 degrees of freedom
## Residual deviance: 346.76 on 366 degrees of freedom
## AIC: 362.76
##
## Number of Fisher Scoring iterations: 15
Hàm hồi quy: \(\log\left(\frac{\pi}{1-\pi}\right) = -0.5447-0.9361\times\text{Ngủ Tương đối} + 2.7097\times\text{Ngủ Tốt} + 4.3335\times\text{Ngủ Nhiều}+16.6273\times\text{Bình thường} -3.3689\times\text{Rất tốt}+0.2607\times\text{Nhẹ}-16.2450\times\text{Nặng}\)
Hệ số chặn là -0.5447: cho thấy nếu không có sự ảnh hưởng bởi yếu tố mức độ căng thẳng thì xác suất của việc trạng thái bình thường khi ngủ là \(\frac{e^{(-0.5447)}}{1+e^{(-0.5447)}}\).
Hệ số của nhóm ngủ tương đối là -0.9361: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tương đối chênh lệch thấp hơn \(\frac{e^{(-0.9361)}}{1+e^{(-0.9361)}}\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ tốt là 2.7097: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tốt chênh lệch cao hơn \(\frac{e^{(2.7097)}}{1+e^{(2.7097)}}\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ nhiều là 4.3335: Ta thấy xác suất của trạng thái ngủ giấc bình thường trong nhóm có thời gian ngủ nhiều chênh lệch cao hơn \(\frac{e^{(4.333)}}{1+e^{(4.333)}}\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm chất lượng giấc ngủ bình thường là 16.6273: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có chất lượng giấc ngủ bình thường chênh lệch cao hơn \(\frac{e^{(16.6273)}}{1+e^{(16.6273)}}\) so với nhóm có chất lượng giấc ngủ tốt.
Hệ số của nhóm chất lượng giấc ngủ rất tốt là -3.3689: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có chất lượng giấc ngủ rất tốt chênh lệch thấp hơn \(\frac{e^{(-3.3689)}}{1+e^{(-3.3689)}}\) so với nhóm có chất lượng giấc ngủ tốt.
Hệ số của nhóm mức căng thẳng nhẹ là 0.2607: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có mức căng thẳng nhẹ chênh lệch cao hơn \(\frac{e^{(0.2607)}}{1+e^{(0.2607)}}\) so với nhóm có mức căng thẳng bình thường (không căng thẳng).
Hệ số của nhóm mức căng thẳng nặng là -16.2450: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có mức căng thẳng nặng chênh lệch thấp hơn \(\frac{e^{(-16.2450)}}{1+e^{(-16.2450)}}\) so với nhóm có mức căng thẳng bình thường (không căng thẳng).
Mô hình hồi quy Probit sử dụng để ước lượng xác suất của một sự kiện nhị phân, tương tự như mô hình hồi quy Logit. Sự khác biệt chính giữa hai mô hình này nằm ở hàm liên kết (link function) mà chúng sử dụng để chuyển đổi xác suất thành một hàm tuyến tính của các biến độc lập.
Khi hàm liên kết có dạng: \(g(\mu)=g(\pi)=\operatorname{probit}(\pi)=\Phi^{-1}(\pi)\). Với \(\Phi(t)=\frac{1}{\sqrt{2 \pi}} \int_{-\infty}^t e^{-\frac{t^2}{2}}dt\)
hoặc có thể viết lại như sau:
\[ \pi(x)=\Phi(\beta_0+\beta_1 \cdot x_1 + \beta_2 \cdot x_2+...+\beta_k \cdot x_k) \] Trong đó: \(\Phi\) là hàm phân phối chuẩn tích lũy (CDF) của phân phối chuẩn (Gaussian distribution).
probitts <- glm(tt1 ~ ts1, data = a, family = binomial(link = 'probit'))
summary(probitts)
##
## Call:
## glm(formula = tt1 ~ ts1, family = binomial(link = "probit"),
## data = a)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.1018 0.2064 -0.493 0.6219
## ts1Ngủ Tương đối -0.5861 0.2418 -2.424 0.0153 *
## ts1Ngủ Tốt 1.1694 0.2399 4.874 1.09e-06 ***
## ts1Ngủ Nhiều 0.3641 0.2653 1.372 0.1700
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 507.47 on 373 degrees of freedom
## Residual deviance: 392.61 on 370 degrees of freedom
## AIC: 400.61
##
## Number of Fisher Scoring iterations: 4
Hàm hồi quy:\(\pi(x)=\Phi(-0.1018-0.5861\times\text{Ngủ tương đối} + 1.1694\times\text{Ngủ Tốt} + 0.3641\times \text{Ngủ Nhiều})\)
Hệ số chặn là -0.1018: cho thấy nếu không có sự ảnh hưởng bởi yếu tố thời gian giấc ngủ thì xác suất của việc trạng thái bình thường khi ngủ là \(\Phi(-0.1018)\).
Hệ số của nhóm ngủ tương đối là -0.5861: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tương đối chênh lệch thấp hơn \(\Phi(-0.5861)\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ tốt là 1.1694: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tốt chênh lệch cao hơn \(\Phi(1.1694)\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ nhiều là 0.3641: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ nhiều chênh lệch cao hơn \(\Phi(0.3641)\) so với nhóm có thời gian ngủ ít.
probitqs <- glm(tt1 ~ qs1, data = a, family = binomial(link = 'probit'))
summary(probitqs)
##
## Call:
## glm(formula = tt1 ~ qs1, family = binomial(link = "probit"),
## data = a)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.7001 0.1006 6.961 3.37e-12 ***
## qs1Bình thường -1.1074 0.1561 -7.093 1.31e-12 ***
## qs1Rất tốt -0.6117 0.1797 -3.404 0.000665 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 507.47 on 373 degrees of freedom
## Residual deviance: 454.19 on 371 degrees of freedom
## AIC: 460.19
##
## Number of Fisher Scoring iterations: 4
Hàm hồi quy: \(\pi(x)= \Phi(0.7001-1.1074\times\text{Bình thường} -0.6117\times\text{Rất tốt})\)
Hệ số chặn là 0.7001: cho thấy nếu không có sự ảnh hưởng bởi yếu tố chất lượng giấc ngủ thì xác suất của việc trạng thái bình thường khi ngủ là \(\Phi(0.7001)\)
Hệ số của nhóm chất lượng giấc ngủ bình thường là -1.1074: Ta thấy xác suất của trạng thái giấc ngủ bình thường có chất lượng giấc ngủ bình thường chênh lệch thấp hơn \(\Phi(-1.1074)\) so với nhóm có chất lượng giấc ngủ tốt.
Hệ số của nhóm chất lượng giấc ngủ rất tốt là -0.6117: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có chất lượng giấc ngủ rất tốt chênh lệch thấp hơn \(\Phi(-0.6117)\) so với nhóm có chất lượng giấc ngủ tốt.
probitsl <- glm(tt1 ~ sl1, data = a, family = binomial(link = 'probit'))
summary(probitsl)
##
## Call:
## glm(formula = tt1 ~ sl1, family = binomial(link = "probit"),
## data = a)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.2241 0.1065 2.104 0.0354 *
## sl1Nhẹ 0.9761 0.1877 5.199 2.00e-07 ***
## sl1Nặng -0.7485 0.1607 -4.658 3.19e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 507.47 on 373 degrees of freedom
## Residual deviance: 418.29 on 371 degrees of freedom
## AIC: 424.29
##
## Number of Fisher Scoring iterations: 4
Hàm hồi quy:\(\pi(x)=\Phi(0.2241+0.9761\times\text{Nhẹ} -0.7485\times\text{Nặng})\)
Hệ số chặn là 0.2241: cho thấy nếu không có sự ảnh hưởng bởi yếu tố mức độ căng thẳng thì xác suất của việc trạng thái bình thường khi ngủ là \(\Phi(0.2241)\)
Hệ số của nhóm mức độ căng thẳng nhẹ là 0.9761: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm mức độ căng thẳng nhẹ chênh lệch cao hơn \(\Phi(0.9761)\) so với nhóm mức độ căng thẳng bình thường (không căng thẳng).
Hệ số của nhóm mức độ căng thẳng nặng là 0.7485: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm mức độ căng thẳng nặng chênh lệch thấp hơn \(\Phi(-0.7485)\) so với nhóm mức độ căng thẳng bình thường (không căng thẳng).
pb_tt <- glm(tt1 ~ ts1 + qs1 + sl1, data = a, family = binomial(link = 'probit'))
summary(pb_tt)
##
## Call:
## glm(formula = tt1 ~ ts1 + qs1 + sl1, family = binomial(link = "probit"),
## data = a)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.31561 0.37069 -0.851 0.394529
## ts1Ngủ Tương đối -0.57269 0.25893 -2.212 0.026983 *
## ts1Ngủ Tốt 1.60713 0.41603 3.863 0.000112 ***
## ts1Ngủ Nhiều 2.60573 0.59025 4.415 1.01e-05 ***
## qs1Bình thường 5.93264 154.94942 0.038 0.969458
## qs1Rất tốt -2.02783 0.45249 -4.481 7.41e-06 ***
## sl1Nhẹ 0.08802 0.28048 0.314 0.753661
## sl1Nặng -5.71882 154.94937 -0.037 0.970559
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 507.47 on 373 degrees of freedom
## Residual deviance: 346.90 on 366 degrees of freedom
## AIC: 362.9
##
## Number of Fisher Scoring iterations: 15
Hàm hồi quy: \(\pi(x)=\Phi(-0.31561-0.57269\times\text{Ngủ Tương đối} + 1.60713\times\text{Ngủ Tốt} + 2.60573\times\text{Ngủ Nhiều} +5.93264\times\text{Bình thường}-2.02783\times\text{Rất tốt}+0.08802\times\text{Rất tốt}-5.71882\times\text{Rất tốt})\)
Hệ số chặn là -0.31561 cho thấy nếu không có sự ảnh hưởng bởi yếu tố khác thì xác suất của việc trạng thái bình thường khi ngủ là \(\Phi(-0.31561)\)
Hệ số của nhóm ngủ tương đối là -0.57269: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tương đối chênh lệch thấp hơn \(\Phi(-0.57269)\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ tốt là 1.60713: Ta thấy xác suất của trạng thái giấc ngủ bình thường trong nhóm có thời gian ngủ tốt chênh lệch cao hơn \(\Phi(1.60713)\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm ngủ nhiều là 2.60573: Ta thấy xác suất của trạng thái ngủ giấc bình thường trong nhóm có thời gian ngủ nhiều chênh lệch cao hơn \(\Phi(2.60573)\) so với nhóm có thời gian ngủ ít.
Hệ số của nhóm chất lượng giấc ngủ bình thường là 5.93264: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có chất lượng giấc ngủ bình thường chênh lệch cao hơn \(\Phi(5.93264)\) so với nhóm có chất lượng giấc ngủ tốt.
Hệ số của nhóm chất lượng giấc ngủ rất tốt là -2.02783: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có chất lượng giấc ngủ rất tốt chênh lệch thấp hơn \(\Phi(-2.02783)\) so với nhóm có chất lượng giấc ngủ tốt.
Hệ số của nhóm mức căng thẳng nhẹ là 0.08802: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có mức căng thẳng nhẹ chênh lệch cao hơn \(\Phi(0.08802)\) so với nhóm có mức căng thẳng bình thường (không căng thẳng).
Hệ số của nhóm mức căng thẳng nặng là -5.71882: Ta thấy xác suất của trạng thái giấc ngủ bình thường của nhóm có mức căng thẳng nặng chênh lệch thấp hơn \(\Phi(-5.71882)\) so với nhóm có mức căng thẳng bình thường (không căng thẳng).
Các tiêu chí được sử dụng để đánh giá mô hình là: chỉ số AIC, hệ số Brier Score. Theo đó, các tiêu chí càng nhỏ thì mô hình càng tốt.
Chỉ số AIC (Akaike Information Criterion) là một thước đo được sử dụng trong thống kê để đánh giá và so sánh các mô hình thống kê khác nhau. AIC giúp lựa chọn mô hình tốt nhất từ một tập hợp các mô hình được thử nghiệm bằng cách cân nhắc giữa độ khớp của mô hình với dữ liệu và độ phức tạp của mô hình. AIC được tính bằng công thức sau:
\[ AIC=2k-2log(L) \] - trong đó: k là số biến của mô hình, \(L\) là giá trị cực đại của hàm hợp lý.
AIC(OLTS)
## [1] 414.9287
AIC(logitts)
## [1] 400.6123
AIC(probitts)
## [1] 400.6123
Nhận xét: Mô hình tốt nhất của trạng thái giấc ngủ theo thời gian giấc ngủ là mô hình Logistic với mô hình Probit khi cả hai đều có chỉ số 400.6123
AIC(OLQS)
## [1] 483.581
AIC(logitqs)
## [1] 460.1947
AIC(probitqs)
## [1] 460.1947
Nhận xét: Mô hình tốt nhất của trạng thái giấc ngủ theo chất lượng giấc ngủ là mô hình Logistic với mô hình Probit khi cả hai đều có chỉ số 460.1947
AIC(OLSL)
## [1] 447.126
AIC(logitsl)
## [1] 424.2857
AIC(probitsl)
## [1] 424.2857
Nhận xét: Mô hình tốt nhất của trạng thái giấc ngủ theo mức độ căng thẳng là mô hình Logistic với mô hình Probit khi cả hai đều có chỉ số 424.2857
AIC(lm_tt)
## [1] 375.353
AIC(lg_tt)
## [1] 362.7643
AIC(pb_tt)
## [1] 362.9005
Nhận xét: Mô hình tốt nhất của các mô hình đa biến là mô hình Logistic khi có chỉ số 362.7643
Chỉ số Brier Score là một thước đo để đánh giá độ chính xác của các dự đoán xác suất, thường được sử dụng trong các bài toán phân loại nhị phân và đa lớp. Chỉ số này đo lường sự khác biệt giữa các giá trị xác suất dự đoán và các giá trị thực tế. Chỉ số Brier Score dùng để đánh giá mô hình hồi quy logistic, được tính như sau: \[ B=\frac{1}{n}\sum_{i=1}^n(\hat{\pi}-o_i)^2 \] trong đó: \(\hat{\pi}\) và \(o_i\) lần lượt là giá trị xác suất quan sát được và giá trị xác suất tính ra từ mô hình.
Giá trị của Brier Score càng nhỏ nghĩa là chênh lệch giữa xác suất thực tế và xác suất tính từ mô hình càng nhỏ, nghĩa là mô hình càng tốt.
BrierScore(logitts)
## [1] 0.1728761
BrierScore(logitqs)
## [1] 0.2088226
BrierScore(logitsl)
## [1] 0.1894285
BrierScore(lg_tt)
## [1] 0.150239
Nhận xét: Chỉ số Brier Score càng nhỏ càng tốt.
Ta thấy được chỉ số Brier Score tốt nhất là mô hình logistic đa biến (0.150239).
Xét theo đơn biến thì mô hình Logistic Trạng thái giấc ngủ - Thời gian ngủ là tốt nhất (0.1728761)
Ma trận nhầm lẫn (Confusion Matrix) trình bày các kết quả phân loại dựa trên các giá trị thực tế và giá trị dự đoán của mô hình.
library(glmnet)
## Warning: package 'glmnet' was built under R version 4.3.3
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
##
## expand, pack, unpack
## Loaded glmnet 4.1-8
library(caret)
## Warning: package 'caret' was built under R version 4.3.3
## Loading required package: lattice
##
## Attaching package: 'caret'
## The following objects are masked from 'package:DescTools':
##
## MAE, RMSE
## The following object is masked from 'package:survival':
##
## cluster
## The following object is masked from 'package:purrr':
##
## lift
library(pROC)
## Warning: package 'pROC' was built under R version 4.3.3
## Type 'citation("pROC")' for a citation.
##
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
predict_lg <- predict.glm(lg_tt, newdata = a, type= "response")
roc_curve_logit <- roc(a$tt1, predict_lg)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
predicted_lg <- ifelse(predict_lg>0.5,"1","0")
confusion_matrix_lg <- table(predicted = predicted_lg, actual= a$`tt1`)
addmargins(confusion_matrix_lg)
## actual
## predicted 0 1 Sum
## 0 119 45 164
## 1 36 174 210
## Sum 155 219 374
confusionMatrix(table(predicted = predicted_lg, actual= a$`tt1`))
## Confusion Matrix and Statistics
##
## actual
## predicted 0 1
## 0 119 45
## 1 36 174
##
## Accuracy : 0.7834
## 95% CI : (0.7382, 0.8241)
## No Information Rate : 0.5856
## P-Value [Acc > NIR] : 4.991e-16
##
## Kappa : 0.5575
##
## Mcnemar's Test P-Value : 0.3741
##
## Sensitivity : 0.7677
## Specificity : 0.7945
## Pos Pred Value : 0.7256
## Neg Pred Value : 0.8286
## Prevalence : 0.4144
## Detection Rate : 0.3182
## Detection Prevalence : 0.4385
## Balanced Accuracy : 0.7811
##
## 'Positive' Class : 0
##
Kết quả: Từ kết quả ma trận nhầm lẫn của ba mô hình xác suất tuyến tính, logit và probit chúng tôi nhận thấy kết quả tương đồng với nhau. Cả ba ma trận nhầm lẫn điều chỉ ra có 119 người mô hình dự đoán đúng là người có triệu chứng rối loạn giấc ngủ, tuy nhiên có 36 người mô hình dự đoán sai đối với người có triệu chứng trong giấc ngủ và khoảng 45 người mô hình dự đoán sai người có trạng thái giấc ngủ bình thường. Số lần mô hình dự đoán đúng ở người có trạng thái giấc ngủ bình thường là 174 người đạt cao nhất.
Kết quả cũng chỉ ra tỷ lệ mô hình dự đoán đúng là 78.34% giao động khoảng 73.89% đến 82.22%
Kappa đo lường sự đồng thuận giữa dự đoán và thực tế, hiệu chỉnh cho sự đồng thuận ngẫu nhiên. Giá trị 0.5575 cho thấy mức độ đồng thuận vừa phải.
Mô hình nhận diện chính xác 76.77% các trường hợp thực tế là Trạng thái bình trường của giấc ngủ.
Mô hình nhận diện chính xác 79.45% các trường hợp thực tế là Triệu chứng rối loạn giấc ngủ.
Bộ dữ liệu Sleep Health and Lifestyle Dataset đã cung cấp một bức tranh toàn cảnh về mối quan hệ phức tạp giữa giấc ngủ và lối sống của con người. Qua việc phân tích chi tiết 374 người, nghiên cứu đã xác định được một số yếu tố quan trọng ảnh hưởng đến chất lượng và thời lượng giấc ngủ, bao gồm tuổi tác, giới tính, nghề nghiệp, mức độ căng thẳng và hoạt động thể chất. Đặc biệt, nghiên cứu này đã làm rõ mối liên hệ chặt chẽ giữa thời gian giấc ngủ, chất lượng giấc ngủ và mức độ căng thẳng ảnh hưởng đến trạng thái giấc ngủ. Với kết quả nghiên cứu này không chỉ nhấn mạnh tầm quan trọng của giấc ngủ đối với sức khỏe tổng thể mà còn cung cấp cơ sở khoa học để phát triển các biện pháp can thiệp hiệu quả, giúp điều trị các rối loạn giấc ngủ như mất ngủ và ngưng thở khi ngủ, từ đó cải thiện chất lượng cuộc sống của mọi người. Phân tích bộ dữ liệu.
Kết quả nghiên cứu:
Cơ cấu nghề nghiệp khá đa dạng, tuy nhiên một số ngành nổi bật với tỷ lệ cao hơn. Nhóm nhân viên y tế (bác sĩ, y tá) chiếm tỷ lệ cao nhất chiếm 38.5%. Tiếp theo là nhân viên văn phòng (nhân viên kế toán, bán hàng) với tỷ lệ 18.45%. Nhóm giáo dục (giáo viên) chiếm 10.7%. Nhóm kỹ thuật (kỹ sư, kỹ sư phần mềm) chiếm 17.91%. Các ngành nghề khác chiếm 14.44%.
Thời gian giấc ngủ trung bình cho thấy số lượng người có số giờ ngủ trung bình là nhiều nhất có 161 người chiếm 43.05% , tiếp theo là số lượng người ngủ có số giờ tương đối có 118 người chiếm 31.55%, số lượng người có số giờ ngủ ít là 37 người chiếm tỷ lệ ít nhất 9.9% và số lượng người có số ngủ nhiều là 58 người chiếm tỷ lệ 15.5%. Phần lớn nhóm tham gia khảo sát có số giờ ngủ cực kỳ tốt chiếm 90.1% có thời gian ngủ trên 6 tiếng.
Chất lượng giấc ngủ, ta có thể thấy nhóm có chất lượng giấc ngủ được đánh giá tốt có số người nhiều nhất là 186 người chiếm tỷ lệ 49.73%. Kế đến là nhóm đánh giá chất lượng giấc ngủ bình thường có 117 người chiếm 31.28%. Và ít nhất là nhóm người có chất lượng giấc ngủ rất tốt là 71 người chiếm 18.98%.
Mức độ căng thẳng, ta thấy nhóm người có mức độ căng thẳng bình thường có 141 người chiếm tỷ lệ cao nhất là 37.7%. Kế đến nhóm người mức độ căng thẳng nặng có 120 người chiếm tỷ lệ 32.08% Và cuối cùng là nhóm người mức độ căng thẳng nhẹ có 113 người chiếm tỷ lệ ít nhất là 30.21%. Nhìn chung thì mức độ căng thẳng của các nhóm phân chia khá đều nhau chênh lệch nhau không nhiều.
Trạng thái giấc ngủ, ta thấy được tỷ lệ số người ngủ được bình thường có 219 người chiếm 58.55% và tỷ lệ nhóm người có trạng thái giấc ngủ bất thường có 155 người là 41.45%, trong đó, chứng mất ngủ có 77 người chiếm 20.58% và chứng ngưng thở khi ngủ có 78 người chiếm 20.85%
Thời gian giấc ngủ ảnh hưởng đến Trạng thái giấc ngủ, ta có thể thấy việc dành cho thời gian ngủ ít hoặc quá nhiều cũng dẫn đến việc bị mắc các chứng rối loạn giấc ngủ khá cao (chưa xét các yếu tố khác như Nghề nghiệp, chất lượng giấc ngủ và mức độ căng thẳng) cụ thể là ngủ ít hơn 6 tiếng và nhiều hơn 8 tiếng.
Chất lượng giấc ngủ ảnh hưởng đến Trạng thái giấc ngủ, tỷ lệ mắc các rối loạn giấc ngủ như chứng mất ngủ và chứng ngưng thở khi ngủ giữa các nhóm chất lượng giấc ngủ khác nhau cho thấy sự khác biệt đáng kể. Trong nhóm có chất lượng giấc ngủ bình thường, 65.82% mắc các rối loạn giấc ngủ, trong khi 34.18% có trạng thái giấc ngủ bình thường. Đối với nhóm có chất lượng giấc ngủ tốt, tỷ lệ mắc các rối loạn chỉ là 24.19%, và 75.81% duy trì giấc ngủ bình thường. Ngược lại, trong nhóm có chất lượng giấc ngủ rất tốt, tỷ lệ mắc các rối loạn giấc ngủ là 46.5%, với 53.5% có giấc ngủ bình thường.
Mức độ căng thẳng ảnh hưởng đến Trạng thái giấc ngủ, các nhóm cho thấy sự khác biệt rõ rệt. Trong nhóm có mức độ căng thẳng bình thường, 41.14% mắc các rối loạn giấc ngủ, còn 58.86% duy trì trạng thái giấc ngủ bình thường. Trong nhóm có mức độ căng thẳng nhẹ, chỉ 11.5% mắc rối loạn giấc ngủ, và 88.5% có giấc ngủ bình thường. Ngược lại, trong nhóm có mức độ căng thẳng nặng, tỷ lệ mắc rối loạn giấc ngủ lên đến 70%, trong khi 30% duy trì giấc ngủ bình thường.
Phân tích các mô hình
Mô hình tốt nhất của trạng thái giấc ngủ theo thời gian giấc ngủ là mô hình Logistic với mô hình Probit khi cả hai đều có chỉ số 400.6123
Mô hình tốt nhất của trạng thái giấc ngủ theo chất lượng giấc ngủ là mô hình Logistic với mô hình Probit khi cả hai đều có chỉ số 460.1947
Mô hình tốt nhất của trạng thái giấc ngủ theo mức độ căng thẳng là mô hình Logistic với mô hình Probit khi cả hai đều có chỉ số 424.2857
Chỉ số Brier Score càng thấp cho thấy mô hình dự đoán càng chính xác. Trong nghiên cứu, mô hình logistic đa biến đạt chỉ số Brier Score tốt nhất là 0.150239, cho thấy hiệu suất dự đoán tốt nhất. Xét theo từng biến, mô hình logistic dựa trên trạng thái giấc ngủ và thời gian ngủ có chỉ số Brier Score là 0.1728761, là mô hình đơn biến tốt nhất.
Kết quả từ ma trận nhầm lẫn của ba mô hình xác suất tuyến tính, logit và probit cho thấy sự tương đồng giữa các mô hình. Cả ba đều dự đoán chính xác 119 trường hợp có triệu chứng rối loạn giấc ngủ, nhưng có 36 trường hợp bị dự đoán sai là người có triệu chứng và khoảng 45 trường hợp bị dự đoán sai là người có trạng thái giấc ngủ bình thường. Số lần dự đoán đúng trạng thái giấc ngủ bình thường là cao nhất với 174 trường hợp. Tỷ lệ dự đoán đúng của các mô hình đạt 78.34%, dao động từ 73.89% đến 82.22%. Chỉ số Kappa là 0.5575, cho thấy mức độ đồng thuận vừa phải giữa dự đoán và thực tế. Mô hình nhận diện chính xác 76.77% các trường hợp trạng thái giấc ngủ bình thường và 79.45% các trường hợp triệu chứng rối loạn giấc ngủ.
Bộ dữ liệu cung cấp cơ hội đáng kể để khám phá mối quan hệ giữa giấc ngủ và lối sống, nhưng cũng phải đối mặt với những hạn chế rõ rệt. Đầu tiên, chất lượng dữ liệu là vấn đề then chốt, với một số lượng quan sát hạn chế không thể phản ánh đầy đủ các biến thể về giấc ngủ. Thứ hai, sự dựa vào báo cáo tự nguyện có thể dẫn đến sai số do sự không chính xác trong ghi nhớ hoặc sự từ chối tiết lộ thông tin cá nhân. Sự đại diện mẫu dữ liệu không phải của toàn bộ dân số cũng là một rào cản lớn, hạn chế tính tổng quát của kết quả. Cuối cùng, việc thiếu các biến quan trọng có thể làm suy giảm khả năng phân tích chi tiết và tìm hiểu các mối liên hệ phức tạp, dẫn đến những kết luận hạn chế về tính chính xác của nghiên cứu.
Để khắc phục các hạn chế hiện tại của việc phân tích bộ dữ liệu Sleep Health and Lifestyle Dataset và cung cấp kết quả chính xác hơn, hướng nghiên cứu tiếp theo nên tập trung vào một số điểm sau:
Tăng cường phương pháp thu thập dữ liệu: Để đảm bảo tính đầy đủ và chính xác, nên sử dụng các thiết bị theo dõi giấc ngủ và lối sống tự động thay vì chỉ dựa vào báo cáo tự nguyện của người tham gia. Điều này sẽ giúp giảm thiểu sai lệch do không nhớ chính xác hoặc không muốn tiết lộ thông tin thực tế.
Tích hợp thêm các biến quan trọng khác: Nên thu thập thêm dữ liệu về các biến như mức độ stress, tình trạng sức khỏe tổng quát, và các yếu tố môi trường. Điều này sẽ cho phép phân tích tác động riêng lẻ của từng yếu tố và giúp hiểu rõ hơn về mối quan hệ giữa giấc ngủ và lối sống.
Sử dụng các phương pháp phân tích nhân quả: Để tìm hiểu rõ hơn về mối quan hệ giữa giấc ngủ và lối sống, nghiên cứu nên sử dụng các phương pháp phân tích nhân quả thay vì chỉ dừng lại ở việc xác định các mối tương quan. Điều này sẽ giúp xác định được các nguyên nhân và hệ quả cụ thể trong mối quan hệ này.
Nghiên cứu theo nhóm đối tượng cụ thể: Phân tích dữ liệu dựa trên các nhóm đối tượng cụ thể như người làm việc theo ca, sinh viên, người cao tuổi, v.v. sẽ giúp hiểu rõ hơn về các nhu cầu và thách thức đặc thù của từng nhóm. Điều này cũng sẽ giúp đưa ra các giải pháp cụ thể và hiệu quả hơn cho từng nhóm đối tượng.