library(ggplot2)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(DT)
## Warning: package 'DT' was built under R version 4.3.3
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
library(epitools)
Dữ liệu được sử dụng nghiên cứu trong bài tập này mang tên “Student Mental Health Analysis During Online Learning”, tạm dịch: Phân tích sức khỏe tâm thần của học sinh trong quá trình học trực tuyến
Dữ liệu được thu thập và công bố trên nền tảng Kaggle
Nguồn trích dẫn cụ thể của bộ dữ liệu: Student Mental Health Analysis During Online Learning
Dữ liệu trong bộ này chủ yếu được thu thập thông qua các cuộc khảo sát, với các phản hồi từ sinh viên về tình trạng sức khỏe tâm thần của họ trong thời đại học trực tuyến. Khảo sát tập trung vào nhiều khía cạnh tâm lý và hành vi khác nhau khi chịu ảnh hưởng của giáo dục từ xa.
Dữ liệu được tải từ trang Kaggle là file csv, vì thế ta tiến hành đọc dữ liệu vào với đuôi csv.
Ta gán bộ dữ liệu với tên smt - viết tắt của Student Mental Health
library(csv)
smt <- read.csv("D:/UFM/2025- Kì 2/Phân tích dữ liệu định tính - Trần Mạnh Tường/Data/Student Mental Health Analysis During Online Learning.csv", header = T)
datatable(smt)
Bộ dữ liệu “Student Mental Health Analysis During Online Learning” thu thập thông tin từ 1.000 học sinh và sinh viên với mục tiêu đánh giá tình trạng sức khỏe tâm thần của họ trong bối cảnh học trực tuyến kéo dài
Với bộ dữ liệu trên, kết quả có :
1000 quan sát - đại diện cho 1000 học sinh sinh viên (HSSV)
10 biến - đại diện cho các biến nhân khẩu học
dim(smt)
## [1] 1000 10
Ta sẽ sử dụng lệnh is.data.frame
để biết dữ liệu
có mang thông tin định tính hay không, kết quả trả về
TRUE hoặc FALSE.
Nếu kết quả là TRUE - bộ dữ liệu mang thông tin định tính
Nếu kết quả là FALSE - bộ dữ liệu mang thông tin định lượng
Với bộ dữ liệu smt, kết quả trả về là TRUE, đồng nghĩa là dữ liệu mang thông tin định tính
is.data.frame(smt)
## [1] TRUE
10 biến nhân khẩu học được đưa ra để khảo sát 1000 HSSV bao gồm:
names(smt)
## [1] "Name" "Gender"
## [3] "Age" "Education.Level"
## [5] "Screen.Time" "Sleep.Duration"
## [7] "Physical.Activity" "Stress.Level"
## [9] "Anxious.Before.Exams" "Academic.Performance.Change"
Tên và ý nghĩa cụ thể như sau:
Name: Tên của các HHSV
Gender: Giới tính, bao gồm (Male - nam/ Female - nữ/ Other - giới tính khác)
Age: Độ tuổi (được tính theo năm)
Education Level: Trình độ học vấn, kết quả sẽ bao gồm nhóm học sinh phổ thông, nhóm sinh viên đại học và học viên sau đại học:
Class 8 to 12 - Học sinh từ lớp 8, 9, 10, 11 và 12
BA - Bachelor of Arts (cử nhân nghệ thuật)
BSc - Bachelor of Science (cử nhân khoa học)
BTech - Bachelor of Technology (cử nhân công nghệ)
MA - Master of Arts (Thạc sĩ nghệ thuật)
MSc - Master of Science (Thạc sĩ khoa học)
MTech - Master of Technology (Thạc sĩ công nghệ)
Screen Time: Thời gian sử dụng màn hình trung bình mỗi ngày trong quá trình học trực tuyến (giờ/ngày)
Sleep Duration: Thời gian ngủ trung bình hàng ngày
Physical Activity: Thời gian tập thể dục hàng tuần
Stress Level: Mức độ căng thẳng
Low - Mức độ căng thẳng thấp
Medium - Mức độ căng thẳng trung bình (bình thường)
High - Mức độ căng thẳng cao
Anxious Before Exams: HSSV có cảm thấy lo lắng trước kỳ thi không
Yes - HSSV có cảm thấy lo lắng trước kỳ thi
No - HSSV không cảm thấy lo lắng trước kỳ thi
Academic Performance Change: Tự đánh giá sự thay đổi trong kết quả học tập
Declined - kết quả học tập giảm
Improved - kết quả học tập có cải thiện
Same - kết quả học tập không có gì thay đổi
Ta kiểm tra cấu trúc tổng quát của dữ liệu như sau:
str(smt)
## 'data.frame': 1000 obs. of 10 variables:
## $ Name : chr "Aarav" "Meera" "Ishaan" "Aditya" ...
## $ Gender : chr "Male" "Female" "Male" "Male" ...
## $ Age : int 15 25 20 20 17 23 22 25 20 16 ...
## $ Education.Level : chr "Class 8" "MSc" "BTech" "BA" ...
## $ Screen.Time : num 7.1 3.3 9.5 10.8 2.8 8.6 3.6 7 4.8 8.9 ...
## $ Sleep.Duration : num 8.9 5 5.4 5.6 5.4 8.4 6.6 4.7 5 8.4 ...
## $ Physical.Activity : num 9.3 0.2 6.2 5.5 3.1 0.1 0.5 4.5 7.9 7.8 ...
## $ Stress.Level : chr "Medium" "Medium" "Medium" "High" ...
## $ Anxious.Before.Exams : chr "No" "No" "No" "Yes" ...
## $ Academic.Performance.Change: chr "Same" "Same" "Same" "Same" ...
Các biến định tính có thể phân tích bao gồm:
Gender
Education.Level
Stress.Level
Anxious.Before.Exams
Academic.Performance.Change
Các biến định lượng có thể phân tích bao gồm:
Age
Screen.Time
Sleep.Duration
Physical.Activity
Ở bài tập này, ta sẽ chủ đích phân tích các biến định tính
Trong 1000 HSSV, thì sẽ bao gồm bao nhiêu người là nữ, bao nhiêu người là nam, bao nhiêu người là giới tính khác?, ta có thể coi kết quả thống kê sau:
table(smt$Gender)
##
## Female Male Other
## 475 475 50
table(smt$Gender)/sum(table(smt$Gender))
##
## Female Male Other
## 0.475 0.475 0.050
Từ kết quả ta thấy, dữ liệu được thu thập từ 475 người là nữ, 475 người là nam và 50 người thuộc giới tính khác. Phần trăm khảo sát giữa 2 giới tính nam và nữ là cân bằng nhau (47,5% cho mỗi bên). Còn với giới tính khác chỉ chiếm một phần nhỏ 5%.
Vậy ta thấy có sự cân bằng về giới tính giữa nam và nữ, ngoài ra còn có 1 nhóm nhỏ giới tính khác, lựa chọn này thể hiện tính toàn diện và tôn trọng sự đa dạng giới trong khảo sát.
Ta trực quan hóa kết quả thành biểu đồ như sau:
smt %>% group_by(Gender) %>% summarise(n = n()) %>%
ggplot(aes(x = Gender, y = n))+
geom_col(fill='pink')+
labs(x="Giới tính", y = "Số lượng")+
labs(caption = "Biểu đồ phân bổ giới tính của người khảo sát")+
geom_text(aes(label =n), vjust=0, color = 'black')
Và trong 1000 người khảo sát, sẽ bao gồm cả học sinh, sinh viên đại học lẫn học viên sau đại học, kết quả như sau:
table(smt$Education.Level)
##
## BA BSc BTech Class 10 Class 11 Class 12 Class 8 Class 9
## 62 85 84 87 88 47 50 87
## MA MSc MTech
## 129 138 143
table(smt$Education.Level)/sum(table(smt$Education.Level))
##
## BA BSc BTech Class 10 Class 11 Class 12 Class 8 Class 9
## 0.062 0.085 0.084 0.087 0.088 0.047 0.050 0.087
## MA MSc MTech
## 0.129 0.138 0.143
Dựa theo kết quả:
Nhóm học viên sau đại học chiếm tỷ trọng cao nhất, với 143 người theo học MTech, 138 người theo học MSc và 129 người học MA, cho thấy rằng hơn 40% người tham gia khảo sát đang theo học ở cấp độ thạc sĩ
Ở nhóm đại học, các chuyên ngành phổ biến như BSc (85 người), BTech (84 người) và BA (62 người) cũng có số lượng tương đối đồng đều, phần trăm số lượng các sinh viên đại học tham gia khảo sát chỉ dưới 10% với mỗi ngành
Nhóm học sinh là nhóm có số lượng tham gia khảo sát ít nhất, chỉ từ 4 - 8% cho mỗi khối
Nhìn chung, sức khỏe tâm thần khi học trực tuyến là vấn đề được quan tâm không chỉ ở bậc đại học mà còn ngay từ bậc trung học. Phân bố học vấn cho thấy khảo sát này bao phủ nhiều cấp học, tạo tiền đề thuận lợi để phân tích ảnh hưởng của học trực tuyến đến sức khỏe tâm thần ở các nhóm tuổi và trình độ khác nhau.
Ta trực quan hóa kết quả thành biểu đồ như sau:
smt %>% group_by(Education.Level) %>% summarise(n = n()) %>%
ggplot(aes(x = Education.Level, y = n))+
geom_col(fill='lightblue')+
labs(x="Trình độ học vấn của HSSV", y = "Số lượng")+
labs(caption = "Biểu đồ phân bổ trình độ học vấn của người khảo sát")+
geom_text(aes(label =n), vjust=0, color = 'black')
Khảo sát mức độ căng thằng của các HSSV như sau:
table(smt$Stress.Level)
##
## High Low Medium
## 181 327 492
table(smt$Stress.Level)/sum(table(smt$Stress.Level))
##
## High Low Medium
## 0.181 0.327 0.492
Kết quả thống kê mức độ căng thẳng như sau:
Có 492 người (49,2%) cho biết họ đang ở mức căng thẳng trung bình, cho thấy đây là trạng thái phổ biến nhất trong môi trường học tập trực tuyến
Có 181 người (18,1%) ghi nhận mức độ căng thẳng cao, phản ánh một bộ phận không nhỏ HSSV đang chịu áp lực đáng kể, có nguy cơ ảnh hưởng đến sức khỏe tâm thần nếu không được can thiệp kịp thời
Có 327 người (32,7%) báo cáo mức độ căng thẳng thấp
Phân bố này cho thấy rằng hơn 2/3 số người học trực tuyến đang trải qua mức độ căng thẳng từ trung bình đến cao, đặt ra một vấn đề đáng quan ngại về tác động tiêu cực của hình thức học online đối với sức khỏe tâm thần.
Ta trực quan hóa kết quả thành biểu đồ như sau:
smt %>% group_by(Stress.Level) %>% summarise(n = n()) %>%
ggplot(aes(x = '', y = n,fill = Stress.Level)) +
geom_col(color = 'black') +
coord_polar('y') +
geom_text(aes(x = 1.3, label = n),position = position_stack(vjust = .5)) +
labs(caption = "Biểu đồ tròn về số lượng người của các mức độ căng thẳng") +
theme_void()
Kết quả về mức độ lo lắng trước kỳ thi của 1000 người như sau:
table(smt$Anxious.Before.Exams)
##
## No Yes
## 487 513
table(smt$Anxious.Before.Exams)/sum(table(smt$Anxious.Before.Exams))
##
## No Yes
## 0.487 0.513
Trong số 1.000 người tham gia khảo sát:
Có 513 người (51,3%) cho biết họ cảm thấy lo lắng trước kỳ thi
Còn lại 487 người (48,7%) không gặp phải tình trạng này
Tỷ lệ này phản ánh một thực trạng phổ biến rằng lo âu trước kỳ thi là hiện tượng thường gặp ở hơn một nửa số người học, đặc biệt trong bối cảnh học tập trực tuyến – nơi người học có thể gặp khó khăn trong việc tiếp cận tài liệu, tương tác với giảng viên, hoặc thiếu kỹ năng quản lý thời gian. Sự chênh lệch không quá lớn giữa hai nhóm cho thấy vấn đề lo âu có tính phổ quát
Ta trực quan hóa kết quả thành biểu đồ như sau:
smt %>% group_by(Anxious.Before.Exams) %>% summarise(n = n()) %>%
mutate(perc = round(n / sum(n) * 100, 1)) %>%
ggplot(aes(x = "", y = perc, fill = Anxious.Before.Exams)) +
geom_col(color = 'black') +
coord_polar("y") +
geom_text(aes(x = 1.3, label = paste0(perc, "%")),
position = position_stack(vjust = 0.5)) +
labs(caption = "Biểu đồ tròn về tỷ lệ số người cảm thấy lo lắng trước kỳ thi") +
theme_void()
Kết quả tự đánh giá về sự thay đổi trong kết quả học tập của 1000 người là:
table(smt$Academic.Performance.Change)
##
## Declined Improved Same
## 298 303 399
table(smt$Academic.Performance.Change)/sum(table(smt$Academic.Performance.Change))
##
## Declined Improved Same
## 0.298 0.303 0.399
Kết quả thống kê cho thấy trong 1.000 người được khảo sát về sự thay đổi trong kết quả học tập khi học trực tuyến, có 39,9% cho biết kết quả học tập của họ giữ nguyên, trong khi 30,3% cảm thấy đã cải thiện và 29,8% cho rằng kết quả học tập của họ giảm sút
Tỷ lệ người học cảm thấy giữ vững kết quả học tập là cao nhất, cho thấy một bộ phận đáng kể có khả năng thích nghi tốt với hình thức học trực tuyến. Tuy nhiên, tỷ lệ giữa hai nhóm “Cải thiện” và “Giảm sút” là khá cân bằng, điều này phản ánh rõ sự phân hóa trong trải nghiệm học trực tuyến
Trong khi một số người tận dụng tốt thời gian linh hoạt và công nghệ để học hiệu quả hơn, thì ngược lại, không ít người lại gặp khó khăn trong việc tự học, thiếu tương tác và giảm động lực học tập. Sự phân bố này còn phụ thuộc vào khả năng thích nghi, điều kiện học tập cá nhân và các yếu tố tâm lý đi kèm như căng thẳng hay lo âu.
Ta trực quan hóa kết quả thành biểu đồ như sau:
smt %>% group_by(Academic.Performance.Change) %>% summarise(n = n()) %>%
mutate(perc = round(n / sum(n) * 100, 1)) %>%
ggplot(aes(x = "", y = perc, fill = Academic.Performance.Change)) +
geom_col(color = 'black') +
coord_polar("y") +
geom_text(aes(x = 1.3, label = paste0(perc, "%")),
position = position_stack(vjust = 0.5)) +
labs(caption = "Biểu đồ tròn về tỷ lệ thay đổi trong kết quả học tập") +
theme_void()
Sau khi đã thống kê tần số và tần suất của tất cả các biến định tính, ta sẽ tiến hành ước lượng khoảng cho 1 trong số các biến này. Ta chọn 2 hạng mục quan tâm từ 2 biến bao gồm:
Hạng mục “High” của biến Stress Level (Mức độ căng thẳng cao)
Hạng mục “Yes” của biến Anxious Before Exams (Có sự lo lắng trước kỳ thi)
Giả sử ta muốn kiểm định xem tỷ lệ người có mức độ căng thẳng cao có bằng 50% hay không trong tổng thể HSSV
Giả thuyết không H0: Tỷ lệ sinh viên có mức căng thẳng cao bằng 50%
Giả thuyết đối H1: Tỷ lệ sinh viên có mức căng thẳng cao khác 50%
prop.test(sum(smt$Stress.Level == "High"), nrow(smt), conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: sum(smt$Stress.Level == "High") out of nrow(smt), null probability 0.5
## X-squared = 405.77, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.1578994 0.2065931
## sample estimates:
## p
## 0.181
Kết quả kiểm định như sau:
Giá trị X-squared = 405.77 là rất lớn, cho thấy chênh lệch giữa tỷ lệ quan sát và giả định là đáng kể.
Giá trị p-value < 2.2e-16 là rất nhỏ, nhỏ hơn 5%, vì thế ta bác bỏ H0, có bằng chứng thống kê mạnh cho thấy tỷ lệ thực tế khác 50%.
Khoảng tin cậy 95% cho tỷ lệ sinh viên có mức stress cao là từ 15.79% đến 20.66%
Tỷ lệ mẫu ước lượng là 18,1%, tức là trong 1.000 sinh viên thì có 18.1% là thuộc nhóm stress ở mức cao
Thông qua kiểm định ước lượng khoảng với độ tin cậy 95%, ta thu được khoảng tin cậy cho tỷ lệ này là từ 15.79% đến 20.66%. Điều này cho thấy tỷ lệ sinh viên bị căng thẳng cao nằm trong khoảng từ 15.79% đến 20.66%**
Phần lớn sinh viên không rơi vào nhóm căng thẳng nghiêm trọng, tuy nhiên khoảng 1/5 sinh viên có mức độ căng thẳng cao — một tỷ lệ không nhỏ, đặc biệt trong bối cảnh học tập trực tuyến vốn tiềm ẩn nhiều yếu tố gây áp lực về tinh thần.
Đặt giả thuyết kiểm định:
Giả thuyết không H0: Tỷ lệ sinh viên lo lắng trước kỳ thi là bằng 50%
Giả thuyết đối H1: Tỷ lệ sinh viên lo lắng trước kỳ thi khác 50%
prop.test(sum(smt$Anxious.Before.Exams == "Yes"), nrow(smt), conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: sum(smt$Anxious.Before.Exams == "Yes") out of nrow(smt), null probability 0.5
## X-squared = 0.625, df = 1, p-value = 0.4292
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.4815314 0.5443675
## sample estimates:
## p
## 0.513
Kết quả kiểm định như sau:
Giá trị p-value = 0.4292 → Lớn hơn 5%, không đủ bằng chứng để bác bỏ giả thuyết H0
Khoảng tin cậy 95%: [0.4815 ; 0.5444], Với độ tin cậy 95%, tỷ lệ sinh viên lo lắng trước kỳ thi nằm trong khoảng từ 48.15% đến 54.44%.
Tỷ lệ mẫu là 0.513, có nghĩa có 51.3% sinh viên trả lời có, tức là lo lắng trước kỳ thi
Kết quả kiểm định cho thấy không có sự khác biệt có ý nghĩa thống kê giữa tỷ lệ sinh viên lo lắng trước kỳ thi và mốc giả định 50%. Với tỷ lệ mẫu là 51.3% và khoảng tin cậy khá hẹp, ta có thể kết luận rằng tỷ lệ sinh viên lo lắng trước kỳ thi là xấp xỉ 50%
Dù mức độ lo lắng không chênh lệch đáng kể với giả định trung lập, điều này vẫn cho thấy rằng cứ mỗi 2 sinh viên thì có 1 người cảm thấy lo lắng trước kỳ thi, đây là một tỉ lệ đáng quan tâm khi xem xét sức khỏe tâm thần trong môi trường học trực tuyến.
Ta chọn 2 cặp biến định tính để phân tích bao gồm:
Cặp biến Gender và Stress Level
Cặp biến Gender và Anxious Before Exams
Đầu tiên, ta sẽ lập bảng tần số 2 chiều cho 2 biến Gender và Stress Level. Việc lập bảng tần số sẽ giúp ta thấy rõ mức độ căng thẳng trong từng giới tính.
table(smt$Gender, smt$Stress.Level)
##
## High Low Medium
## Female 85 157 233
## Male 81 155 239
## Other 15 15 20
Nếu trong bảng tần số trên mà ta tính tổng theo hàng và theo cột thì ta gọi các tổng này là tần số biên - Marginal). Ta sẽ thực hiện như sau:
addmargins(table(smt$Gender, smt$Stress.Level))
##
## High Low Medium Sum
## Female 85 157 233 475
## Male 81 155 239 475
## Other 15 15 20 50
## Sum 181 327 492 1000
Dựa trên các con số hiển thị, ta có một số nhận xét như sau:
Về số người có mức độ căng thẳng cao, nhóm nữ có 85 người, nam có 81 người, và giới tính khác là 15 người
Đối với mức độ căng thẳng trung bình, nữ có 233 người, nam 239 người, và giới tính khác là 20 người
Với mức độ căng thẳng thấp, nữ và nam có số lượng gần bằng nhau lần lượt là 157 và 155, trong khi giới tính khác là 15 người.
Các con số này cho thấy mức độ căng thẳng là khá đều giữa nam và nữ, trong khi nhóm giới tính khác tuy ít người hơn nhưng vẫn có số lượng đáng kể ở tất cả các mức độ.
Bảng tần số biên được bổ sung thêm dòng và cột “Sum”, tức tổng theo hàng và cột, giúp ta hiểu tổng số người ở từng nhóm hoặc từng mức độ stress, rất hữu ích để tính tỷ lệ phần trăm và so sánh tổng thể.
prop.table(table(smt$Gender, smt$Stress.Level))
##
## High Low Medium
## Female 0.085 0.157 0.233
## Male 0.081 0.155 0.239
## Other 0.015 0.015 0.020
addmargins(prop.table(table(smt$Gender, smt$Stress.Level)))
##
## High Low Medium Sum
## Female 0.085 0.157 0.233 0.475
## Male 0.081 0.155 0.239 0.475
## Other 0.015 0.015 0.020 0.050
## Sum 0.181 0.327 0.492 1.000
Khi xét đến tần suất, tức tỷ lệ phần trăm trong mỗi nhóm giới tính, có thể thấy rằng:
Tỷ lệ người có mức độ căng thẳng cao trong nhóm giới tính khác là đáng chú ý nhất, chiếm 30% (15/50), trong khi tỷ lệ này ở nhóm nữ là khoảng 17.9% (85/475) và ở nhóm nam là 17.1% (81/475)
Tương tự,mức độ căng thẳng trung bình chiếm khoảng 49% ở cả nam và nữ, và 40% ở giới tính khác
Mức độ căng thẳng thấp chiếm khoảng 32-33% ở nam và nữ, trong khi ở giới tính khác là 30%.
Các tỷ lệ này cho thấy rằng mặc dù số lượng người thuộc nhóm giới tính khác ít hơn, họ lại có xu hướng đối mặt với mức độ căng thẳng cao hơn so với các nhóm còn lại. Điều này là dấu hiệu đáng quan tâm trong việc thiết kế các biện pháp hỗ trợ tâm lý phù hợp cho từng nhóm giới tính.
Ta có thể trực quan hóa kết quả thành biểu đồ cột đôi như sau:
ggplot(smt %>% group_by(Gender, Stress.Level) %>% summarise(count = n()) %>% ungroup(), aes(x = Gender, y = count, fill = Stress.Level)) +
geom_col(position = position_dodge()) +
geom_text(aes(label = count), position = position_dodge(width = 0.9), vjust = -0.5) +
labs(title = "Mức độ căng thẳng trong mỗi giới tính", y = "Số lượng", x = "Giới tính")
## `summarise()` has grouped output by 'Gender'. You can override using the
## `.groups` argument.
Tiếp theo, ta sẽ lập bảng tần số và tần suất 2 chiều cho 2 biến Gender và Anxious Before Exams. Liệu rằng trong mỗi giới tính thì sẽ có bao nhiêu người cảm thấy căng thẳng trước kỳ thi
table(smt$Gender, smt$Anxious.Before.Exams)
##
## No Yes
## Female 220 255
## Male 239 236
## Other 28 22
addmargins(table(smt$Gender, smt$Anxious.Before.Exams))
##
## No Yes Sum
## Female 220 255 475
## Male 239 236 475
## Other 28 22 50
## Sum 487 513 1000
Từ bảng tần số và tần số biên, ta có một số nhận xét sau:
Trong tổng số 475 nữ, có 255 người cảm thấy lo lắng trước kỳ thi, cao hơn một chút so với 220 người còn lại không cảm thấy lo lắng. Điều này cho thấy hơn một nửa số nữ sinh trong khảo sát có biểu hiện bất an hoặc áp lực trước các kỳ kiểm tra
Cũng với tổng số 475 nam, số người cảm thấy căng thẳng trước kỳ thi là 236 người, gần như ngang bằng với 239 người không cảm thấy lo lắng. Tỷ lệ này khá cân bằng và thấp hơn một chút so với nhóm nữ, cho thấy nam giới có xu hướng ít lo lắng hơn
Trong 50 người thuộc giới tính khác, có 22 người cảm thấy lo lắng trước kỳ thi, trong khi 28 người không lo lắng. So với nam và nữ, nhóm này có tỷ lệ lo lắng thấp nhất
prop.table(table(smt$Gender, smt$Anxious.Before.Exams))
##
## No Yes
## Female 0.220 0.255
## Male 0.239 0.236
## Other 0.028 0.022
addmargins(prop.table(table(smt$Gender, smt$Anxious.Before.Exams)))
##
## No Yes Sum
## Female 0.220 0.255 0.475
## Male 0.239 0.236 0.475
## Other 0.028 0.022 0.050
## Sum 0.487 0.513 1.000
Nữ giới là nhóm có tỷ lệ lo lắng trước kỳ thi cao nhất trong toàn bộ mẫu, chiếm 25.5% mẫu khảo sát, cao hơn so với nam giới (23.6%) và giới tính khác (2.2%). Điều này cho thấy nữ giới dễ bị căng thẳng hơn trước kỳ thi.
Ngược lại, nam giới lại có tỷ lệ không lo lắng cao nhất, chiếm 23.9% mẫu, nhỉnh hơn nữ (22.0%) và giới tính khác (2.8%). Điều này cho thấy nam giới có xu hướng ổn định tâm lý hơn một chút trong kỳ thi.
Tổng tỷ lệ những người cảm thấy lo lắng trước kỳ thi chiếm hơn nửa mẫu khảo sát (51.3%), cho thấy đây là một vấn đề phổ biến và cần được quan tâm trong toàn bộ sinh viên.
Ta có thể trực quan hóa kết quả thành biểu đồ cột đôi như sau:
ggplot(smt %>% group_by(Gender, Anxious.Before.Exams) %>% summarise(count = n()) %>% mutate(total = sum(count), pct = count / total) %>% ungroup(), aes(x = Gender, y = pct, fill = Anxious.Before.Exams)) +
geom_col(position = position_dodge()) +
geom_text(aes(label = scales::percent(pct, accuracy = 0.1)),
position = position_dodge(width = 0.9), vjust = -0.3, size = 3) +
scale_y_continuous(labels = scales::percent_format()) +
labs(title = "Tỷ lệ lo lắng trước kỳ thi ở các giới tính",
y = "Tỷ lệ",
x = "Giới tính")
## `summarise()` has grouped output by 'Gender'. You can override using the
## `.groups` argument.
Ta thực hiện kiểm định Chi-squared như sau:
chisq.test(table(smt$Gender, smt$Stress.Level))
##
## Pearson's Chi-squared test
##
## data: table(smt$Gender, smt$Stress.Level)
## X-squared = 5.3235, df = 4, p-value = 0.2557
Giả thuyết kiểm định:
Giả thuyết không H0: Không có mối liên hệ giữa giới tính và mức độ căng thẳng, hai biến độc lập nhau.
Giả thuyết đối H1: Có mối liên hệ giữa giới tính và mức độ căng thẳng, hai biến không độc lập.
Kết quả kiểm định:
X-squared = 5.3235
Số bậc tự do df = 4
Giá trị p-value = 0.2557
Kết luận: Vì p-value = 0.2557 > 0.05, không đủ bằng chứng để bác bỏ giả thuyết h0. Do đó, không có mối liên hệ có ý nghĩa thống kê giữa giới tính và mức độ căng thẳng.
Trong khảo sát này, giới tính không ảnh hưởng đáng kể đến mức độ căng thẳng của người tham gia. Có thể các yếu tố khác (không phải giới tính) mới là nguyên nhân ảnh hưởng đến mức độ stress.
Tương tự cặp biến trên, ta cũng có kết quả kiểm định Chi-squared của Gender và Anxious Before Exams như sau:
chisq.test(table(smt$Gender, smt$Anxious.Before.Exams))
##
## Pearson's Chi-squared test
##
## data: table(smt$Gender, smt$Anxious.Before.Exams)
## X-squared = 2.6437, df = 2, p-value = 0.2666
Giả thuyết kiểm định:
Giả thuyết không H0: Không có mối liên hệ giữa giới tính và cảm giác lo lắng trước kỳ thi.
Giả thuyết đối H1: Có mối liên hệ giữa giới tính và cảm giác lo lắng trước kỳ thi.
Kết quả kiểm định:
X-squared = 2.6437
Số bậc tự do df = 2
Giá trị p-value = 0.2666
Kết luận: Vì p-value = 0.2666 > 0.05, không đủ bằng chứng để bác bỏ giả thuyết h0. Vì thế, giới tính và sự lo lắng trước kỳ thi không có mối liên hệ có ý nghĩa thống kê
Cả 2 kiểm định đều cho ra p-value > 0.05, nên không có bằng chứng thống kê để kết luận rằng giới tính ảnh hưởng đến mức độ stress hay lo lắng trước kỳ thi trong mẫu dữ liệu này. Điều này có thể gợi ý rằng các chương trình giảm căng thẳng hay hỗ trợ tâm lý nên hướng đến tất cả sinh viên, không phân biệt giới tính.
Trong thống kê, Relative Risk (RR) chỉ được định nghĩa rõ ràng cho bảng 2x2, nên vì thế ta chỉ xét giới tính Nam/ Nữ và mức Stress Cao/ Thấp. Ta tiến hành lọc lại dữ liệu như sau:
Gen_Stress <- subset(smt, Gender %in% c("Male", "Female") & Stress.Level %in% c("High", "Low"))
table(Gen_Stress$Gender, Gen_Stress$Stress.Level)
##
## High Low
## Female 85 157
## Male 81 155
RelRisk(table(Gen_Stress$Gender, Gen_Stress$Stress.Level))
## [1] 1.023365
Sau khi lọc dữ liệu để chỉ xét hai nhóm giới tính Nam và Nữ và hai mức độ căng thẳng Cao và Thấp, kết quả tính toán Relative Risk cho thấy:
Hàm RelRisk()
trả về giá trị 1.023365, đây là
tỷ số nguy cơ của nữ giới so với nam giới về việc trải qua mức
độ căng thẳng cao.
Giá trị RR = 1.023 nghĩa là nữ giới có nguy cơ bị căng thẳng cao cao hơn nam giới khoảng 2.3% trong bối cảnh học tập trực tuyến
Tuy nhiên, giá trị này rất gần 1, cho thấy sự khác biệt về nguy cơ giữa hai giới không đáng kể. Nói cách khác, không có bằng chứng rõ ràng cho thấy giới tính là yếu tố quyết định mức độ căng thẳng trong mẫu khảo sát này.
Điều này phù hợp với kết quả kiểm định Chi-squared trước đó, vốn cũng cho thấy không có mối liên hệ có ý nghĩa giữa giới tính và mức độ căng thẳng.
Mặc dù nữ giới có chỉ số RR nhỉnh hơn một chút, nhưng vì sự chênh lệch nhỏ, ta không nên kết luận vội rằng nữ giới chịu căng thẳng cao hơn. Kết quả này có thể cho thấy rằng cả nam và nữ đều chịu ảnh hưởng gần như tương đương từ học trực tuyến.
riskratio(table(Gen_Stress$Gender, Gen_Stress$Stress.Level))
## $data
##
## High Low Total
## Female 85 157 242
## Male 81 155 236
## Total 166 312 478
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Female 1.000000 NA NA
## Male 1.012361 0.8882669 1.153791
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 0.8547156 0.9234815 0.8539248
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Ta có thể giải thích kết quả như sau:
Tỷ số nguy cơ (Risk Ratio) với khoảng tin cậy 95%
RR = 1.012361 Nam giới có mức stress thấp cao hơn một chút so với nữ giới, hay nói cách khác là Nam giới có xu hướng ít bị stress hơn nữ giới một chút, nhưng sự khác biệt này rất nhỏ.
Khoảng tin cậy 95%: [0.8883; 1.1538] bao gồm giá trị 1, điều này cho thấy không có sự khác biệt có ý nghĩa thống kê giữa hai giới về mức độ căng thẳng cao**.
Kiểm định ý nghĩa thống kê (p-value)
Các p-value đều lớn hơn 0.05
Điều này đồng nghĩa với không có bằng chứng thống kê để bác bỏ giả thuyết rằng nguy cơ căng thẳng thấp là như nhau giữa nam và nữ.
Do đó, các biện pháp hỗ trợ sức khỏe tinh thần trong giáo dục đại học nên được thiết kế trên cơ sở bao quát, không ưu tiên một giới nào cụ thể mà cần tập trung vào các yếu tố ảnh hưởng chung như điều kiện học tập, khả năng thích nghi với công nghệ, và hỗ trợ xã hội.
Tương tự với cặp biến trên, ta cũng sẽ tiến hành lọc dữ liệu để có thể tiến hành tính toán RR. Ta cũng sẽ chỉ xét trên giới tính nam và nữ (không có giới tính khác)
Ta lọc lại dữ liệu và tính toán như sau:
Gen_Anx <- subset(smt, Gender %in% c("Male", "Female"))
table(Gen_Anx$Gender, Gen_Anx$Anxious.Before.Exams)
##
## No Yes
## Female 220 255
## Male 239 236
RelRisk(table(Gen_Anx$Gender, Gen_Anx$Anxious.Before.Exams))
## [1] 0.9205021
Ta diễn giải kết quả giá trị RR = 0.92 như sau:
Nam giới có nguy cơ lo lắng trước kỳ thi thấp hơn khoảng 8% so với nữ giới, Nói cách khác, nam ít có khả năng lo lắng trước kỳ thi hơn nữ.
RR < 1 → đây là dấu hiệu cho thấy nam giới ít lo lắng hơn nữ giới trước kỳ thi.
Tuy nhiên, RR = 0.92 là một con số gần bằng 1, vì vậy mức độ chênh lệch là không đáng kể về mặt thực tiễn.
Mức độ lo lắng trước kỳ thi giữa hai giới cho thấy rằng nam giới có nguy cơ trải qua cảm giác lo lắng thấp hơn một chút so với nữ giới (RR = 0.92). Tuy nhiên, sự khác biệt chỉ ở mức 8% và không quá lớn để đưa ra kết luận chắc chắn về mối liên hệ mạnh giữa giới tính và cảm giác lo âu trước kỳ thi.
Kết quả này phản ánh một xu hướng thường thấy trong nhiều nghiên cứu trước đây, rằng nữ sinh có thể cảm nhận và phản ứng với áp lực thi cử nhạy cảm hơn. Tuy vậy, vì tỷ số nguy cơ khá gần với 1, nên kết luận mang tính thận trọng là sự khác biệt giữa hai giới là có thể có nhưng không rõ ràng.
riskratio(table(Gen_Anx$Gender, Gen_Anx$Anxious.Before.Exams))
## $data
##
## No Yes Total
## Female 220 255 475
## Male 239 236 475
## Total 459 491 950
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Female 1.0000000 NA NA
## Male 0.9254902 0.8182499 1.046786
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 0.2183064 0.2425268 0.2173584
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Ta có thể giải thích kết quả như sau:
Tỷ số nguy cơ (Risk Ratio) với khoảng tin cậy 95%
RR = 0.925 nghĩa là nam giới có nguy cơ cảm thấy lo lắng trước kỳ thi thấp hơn nữ giới khoảng 7.5%.
Do giá trị < 1, ta hiểu rằng giới tính nam có mức nguy cơ thấp hơn so với nữ (tức nữ có nguy cơ cao hơn một chút)
Khoảng tin cậy 95% [0.8182499; 1.046786] bao gồm giá trị 1, đồng nghĩa không có bằng chứng** thống kê đủ mạnh để khẳng định rằng nguy cơ lo lắng thực sự khác biệt giữa nam và nữ.
Kiểm định ý nghĩa thống kê (p-value)
Điều này cho thấy, mặc dù nữ giới có tỷ lệ lo lắng trước kỳ thi cao hơn một chút so với nam giới, nhưng sự khác biệt đó có thể là do ngẫu nhiên và không đáng kể về mặt thống kê. Do đó, trong quá trình thiết kế các chương trình hỗ trợ tâm lý học đường, không nên chỉ tập trung riêng vào giới tính mà cần hướng đến toàn thể sinh viên, vì cả nam và nữ đều có mức độ lo lắng tương đối giống nhau.
oddsratio(table(Gen_Stress$Gender, Gen_Stress$Stress.Level))
## $data
##
## High Low Total
## Female 85 157 242
## Male 81 155 236
## Total 166 312 478
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Female 1.000000 NA NA
## Male 1.035878 0.7101946 1.51163
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 0.8547156 0.9234815 0.8539248
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Diễn giải Tỷ số chênh Odds Ratio - OR như sau:
OR = 1.036, nam giới có khả năng bị căng thẳng cao hơn nữ giới khoảng 3.58%, nếu xét theo tỷ lệ chênh giữa nhóm căng thẳng cao và thấp.
Vì OR rất gần 1, chênh lệch rất nhỏ, cho thấy không có sự khác biệt đáng kể trong xác suất bị căng thẳng giữa nam và nữ.
Khoảng tin cậy 95%: [0.7101946; 1.51163] bao gồm giá trị 1.0, ta hiểu rằng không có bằng chứng thống kê đủ mạnh để khẳng định sự khác biệt thật sự giữa hai giới tính về mức độ căng thẳng.
Giá trị p-value
Tất cả các kiểm định đều có p-value > 0.05
Như vậy, ta không thể bác bỏ giả thuyết không, tức là không có sự khác biệt có ý nghĩa thống kê giữa nam và nữ về khả năng bị căng thẳng.
Kết luận này mang ý nghĩa thực tiễn trong nghiên cứu tâm lý học đường: thay vì tập trung vào sự khác biệt giới tính, các biện pháp hỗ trợ nên tiếp cận theo chiều rộng toàn bộ quần thể học sinh/sinh viên, vì căng thẳng có thể xảy ra ở cả hai giới với xác suất gần tương đương.
oddsratio(table(Gen_Anx$Gender, Gen_Anx$Anxious.Before.Exams))
## $data
##
## No Yes Total
## Female 220 255 475
## Male 239 236 475
## Total 459 491 950
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Female 1.0000000 NA NA
## Male 0.8521095 0.6601614 1.099371
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 0.2183064 0.2425268 0.2173584
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Kết quả phân tích cho thấy Odds Ratio = 0.8521, nghĩa là nam giới có khả năng cảm thấy lo lắng trước kỳ thi thấp hơn khoảng 14.8% so với nữ giới. Tuy nhiên:
Khoảng tin cậy 95% bao gồm giá trị 1, điều này cho thấy sự khác biệt về odds là không có ý nghĩa thống kê.
Các giá trị p đều lớn hơn 0.05, chứng tỏ không có bằng chứng thống kê rõ ràng để kết luận rằng giới tính có ảnh hưởng đến mức độ lo lắng trước kỳ thi.
Trong tập dữ liệu này, không tìm thấy mối liên hệ có ý nghĩa thống kê giữa giới tính và cảm giác lo lắng trước kỳ thi. Nói cách khác, nam và nữ có xác suất lo lắng tương đương nhau.