Bộ dữ liệu này so sánh sinh viên chuyên ngành thống kê từ các trường đại học công lập ở Ankara, Thổ Nhĩ Kỳ — bao gồm Đại học Hacettepe, Đại học Ankara, Đại học Gazi và Đại học Kỹ thuật Trung Đông (METU).
Mục tiêu là hiểu được cảm nhận của những sinh viên này về tác động ngày càng tăng của Trí tuệ nhân tạo (AI) và tự động hóa đối với triển vọng nghề nghiệp tương lai của họ. Nó cũng nêu bật sự khác biệt giữa các trường đại học, cho thấy quan điểm và mức độ quan tâm của sinh viên thay đổi như thế nào tùy thuộc vào nơi họ học.
Bên trong có gì?
Sinh viên từ các trường đại học khác nhau nghĩ AI sẽ ảnh hưởng đến sự nghiệp của họ như thế nào
Sự khác biệt về mức độ lo lắng và căng thẳng giữa các trường đại học
Phân tích GPA và năm học của từng trường
Kinh nghiệm thực tập ảnh hưởng đến quan điểm về AI như thế nào
d <-read.csv(file.choose(), header=T)
str(d)
## 'data.frame': 188 obs. of 19 variables:
## $ Gender : chr "Female" "Male" "Female" "Female" ...
## $ University : chr "Hacettepe University" "Hacettepe University" "Hacettepe University" "Hacettepe University" ...
## $ Year.of.Study : chr "4" "4" "4" "4" ...
## $ GPA : chr "2.01 - 2.50" "2.01 - 2.50" "2.51 - 3.00" "3.01 - 3.50" ...
## $ Internship.Experience : chr "Yes" "Yes" "Yes" "Yes" ...
## $ AI.and.Automation.Knowledge.Level : chr "High knowledge" "Moderate knowledge" "Little knowledge" "Little knowledge" ...
## $ Impact.of.AI.on.Career.Plans : chr "Yes" "Yes" "Yes" "Yes" ...
## $ Impact.of.AI.on.Job.Opportunities : chr "Positive impact" "Positive impact" "No impact" "Positive impact" ...
## $ Concern.Level : chr "Not concerned" "Moderately concerned" "Not concerned" "Moderately concerned" ...
## $ Anxiety.Level : chr "No anxiety" "No anxiety" "No anxiety" "Slight anxiety" ...
## $ If.I.Studied.Engineering..I.Would.Feel.More.Resilient.to.AI.Impacts: chr "Disagree" "Partially agree" "Disagree" "Agree" ...
## $ Math.Courses.Help.Understand.AI : chr "Partially agree" "Agree" "Partially agree" "Partially agree" ...
## $ Statistics.Curriculum.Helps.Adapt : chr "Partially agree" "Disagree" "Agree" "Partially agree" ...
## $ Satisfaction.with.Studying.Statistics : chr "Moderate satisfaction" "Highly satisfied" "Highly satisfied" "Slightly satisfied" ...
## $ Education.Prepares.for.AI.Field : chr "Partially agree" "Agree" "Disagree" "Disagree" ...
## $ Future.Focus.on.AI.and.Automation : chr "Yes" "Yes" "No" "Yes" ...
## $ Research.Opportunities.at.University : chr "Yes" "Yes" "No" "No" ...
## $ AI.Influence.on.Choosing.Statistics : chr "No influence" "No influence" "No influence" "No influence" ...
## $ Difficulties.in.Internship.Interviews : chr "Partially" "Yes" "No" "Partially" ...
Tệp này chứa các phản hồi khảo sát từ sinh viên thống kê bậc đại học tại các trường đại học công lập của Ankara. Mỗi hàng đại diện cho một sinh viên, ghi lại thông tin nhân khẩu học, trình độ hiểu biết về AI, triển vọng nghề nghiệp và lo lắng về tự động hóa.
Bộ dữ liệu bao gồm 188 quan sát và 19 biến, trong đó có 17 biến là biến định tính
library(knitr)
## Warning: package 'knitr' was built under R version 4.3.3
variable_explain <- data.frame(
Ten_Bien = c(
"Gender", "University", "Year of Study", "GPA", "Internship Experience",
"AI and Automation Knowledge Level", "Impact of AI on Career Plans",
"Impact of AI on Job Opportunities", "Concern Level", "Anxiety Level",
"If I Studied Engineering, I Would Feel More Resilient to AI Impacts",
"Math Courses Help Understand AI", "Statistics Curriculum Helps Adapt",
"Satisfaction with Studying Statistics", "Education Prepares for AI Field",
"Future Focus on AI and Automation", "Research Opportunities at University",
"AI Influence on Choosing Statistics", "Difficulties in Internship Interviews"
),
Y_Nghia = c(
"Giới tính của sinh viên",
"Trường đại học mà sinh viên theo học",
"Năm học hiện tại của sinh viên (1 đến 4+)",
"Khoảng điểm trung bình học kỳ (GPA)",
"Sinh viên đã có kinh nghiệm thực tập hay chưa",
"Mức độ hiểu biết của sinh viên về AI và tự động hóa",
"AI có ảnh hưởng đến kế hoạch nghề nghiệp không",
"Ảnh hưởng của AI tới cơ hội việc làm tương lai",
"Mức độ lo ngại về tác động của AI",
"Mức độ lo âu khi nghĩ đến AI",
"Cảm nhận nếu học ngành kỹ thuật thì sẽ ứng phó tốt hơn với AI",
"Toán học có giúp hiểu AI không",
"Chương trình thống kê giúp thích nghi với AI như thế nào",
"Mức độ hài lòng khi học ngành thống kê",
"Giáo dục hiện tại có chuẩn bị cho lĩnh vực AI không",
"Sinh viên có định hướng tương lai vào AI hay không",
"Trường có tạo điều kiện nghiên cứu về AI không",
"AI có ảnh hưởng đến quyết định chọn học ngành thống kê không",
"Sinh viên có gặp khó khăn khi phỏng vấn thực tập không"
)
)
kable(variable_explain, caption = "Giải thích các biến trong bộ dữ liệu")
Ten_Bien | Y_Nghia |
---|---|
Gender | Giới tính của sinh viên |
University | Trường đại học mà sinh viên theo học |
Year of Study | Năm học hiện tại của sinh viên (1 đến 4+) |
GPA | Khoảng điểm trung bình học kỳ (GPA) |
Internship Experience | Sinh viên đã có kinh nghiệm thực tập hay chưa |
AI and Automation Knowledge Level | Mức độ hiểu biết của sinh viên về AI và tự động hóa |
Impact of AI on Career Plans | AI có ảnh hưởng đến kế hoạch nghề nghiệp không |
Impact of AI on Job Opportunities | Ảnh hưởng của AI tới cơ hội việc làm tương lai |
Concern Level | Mức độ lo ngại về tác động của AI |
Anxiety Level | Mức độ lo âu khi nghĩ đến AI |
If I Studied Engineering, I Would Feel More Resilient to AI Impacts | Cảm nhận nếu học ngành kỹ thuật thì sẽ ứng phó tốt hơn với AI |
Math Courses Help Understand AI | Toán học có giúp hiểu AI không |
Statistics Curriculum Helps Adapt | Chương trình thống kê giúp thích nghi với AI như thế nào |
Satisfaction with Studying Statistics | Mức độ hài lòng khi học ngành thống kê |
Education Prepares for AI Field | Giáo dục hiện tại có chuẩn bị cho lĩnh vực AI không |
Future Focus on AI and Automation | Sinh viên có định hướng tương lai vào AI hay không |
Research Opportunities at University | Trường có tạo điều kiện nghiên cứu về AI không |
AI Influence on Choosing Statistics | AI có ảnh hưởng đến quyết định chọn học ngành thống kê không |
Difficulties in Internship Interviews | Sinh viên có gặp khó khăn khi phỏng vấn thực tập không |
sum(is.na(d))
## [1] 0
sum(is.na(d))
: Kiểm tra tổng số giá trị NA trong toàn
bộ bảng.=> Kết quả: Trong bộ dữ liệu không có giá trị thiếu (NA).
# Tạo bảng giải thích các mức của biến gender
gender_levels <- data.frame(
Gia_tri = c("Male", "Female"),
Y_nghia = c("Nam", "Nữ")
)
# Hiển thị bảng
knitr::kable(gender_levels, caption = "Giải thích các mức độ trong biến gender")
Gia_tri | Y_nghia |
---|---|
Male | Nam |
Female | Nữ |
# Tạo bảng tần suất cho Gender
ts_gender <- table(d$Gender)
# Tạo bảng dữ liệu
ts_gender_df <- data.frame(
Gia_tri = names(ts_gender),
Tan_so = as.vector(ts_gender),
Ty_le = round((as.vector(ts_gender) / sum(ts_gender)) * 100, 2)
)
# Hiển thị kết quả
ts_gender_df
## Gia_tri Tan_so Ty_le
## 1 Female 109 57.98
## 2 Male 79 42.02
Tỷ lệ nữ (Female) chiếm gần 58% tổng số sinh viên tham gia khảo sát, cao hơn đáng kể so với nam (Male) là 42%.
Điều này cho thấy nữ giới chiếm đa số trong mẫu khảo sát này.
Việc có tỷ lệ nữ cao hơn có thể ảnh hưởng đến kết quả phân tích nếu các đặc điểm thái độ hoặc nhận thức về AI khác biệt giữa nam và nữ.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
# Vẽ biểu đồ cột cho biến Gender
ggplot(ts_gender_df, aes(x = reorder(Gia_tri, -Tan_so), y = Tan_so, fill = Gia_tri)) +
geom_col(color = "white", width = 0.7) +
geom_text(aes(label = Tan_so),
vjust = -0.5, size = 4, fontface = "bold", color = "black") +
labs(
title = "Biểu đồ cột: Phân bố giới tính (Gender)",
x = "Giới tính",
y = "Tần số"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text.x = element_text(angle = 0, vjust = 0.5)
)
# Giải thích các mức của biến Internship Experience
internship_levels <- data.frame(
Gia_tri = c("Yes", "No"),
Y_nghia = c("Đã có kinh nghiệm thực tập", "Chưa có kinh nghiệm thực tập")
)
knitr::kable(internship_levels, caption = "Giải thích các mức trong biến Internship Experience")
Gia_tri | Y_nghia |
---|---|
Yes | Đã có kinh nghiệm thực tập |
No | Chưa có kinh nghiệm thực tập |
# Tạo bảng tần suất cho Internship Experience
ts_intern <- table(d$Internship.Experience)
# Tạo bảng dữ liệu
ts_intern_df <- data.frame(
Gia_tri = names(ts_intern),
Tan_so = as.vector(ts_intern),
Ty_le = round((as.vector(ts_intern) / sum(ts_intern)) * 100, 2)
)
# Hiển thị kết quả
ts_intern_df
## Gia_tri Tan_so Ty_le
## 1 No 120 63.83
## 2 Yes 68 36.17
63.83% sinh viên chưa có kinh nghiệm thực tập, chiếm tỷ lệ đa số trong mẫu khảo sát.
Chỉ có 36.17% sinh viên đã từng tham gia thực tập.
Điều này cho thấy rằng cơ hội thực tập còn hạn chế hoặc sinh viên chưa chủ động tìm kiếm cơ hội thực tập.
Đây có thể là một yếu tố quan trọng ảnh hưởng đến sự tự tin nghề nghiệp hoặc mức độ chuẩn bị trước tác động của AI.
library(ggplot2)
ggplot(ts_intern_df, aes(x = reorder(Gia_tri, -Tan_so), y = Tan_so, fill = Gia_tri)) +
geom_col(width = 0.5, color = "white") +
geom_text(aes(label = Tan_so), vjust = -0.3, size = 4, fontface = "bold") +
labs(
title = "Biểu đồ cột: Kinh nghiệm thực tập (Internship Experience)",
x = "Kinh nghiệm thực tập",
y = "Tần số"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text.x = element_text(angle = 0, hjust = 0.5)
)
# Giải thích các mức của biến Concern Level
concern_levels <- data.frame(
Gia_tri = c("Not concerned", "Slightly concerned", "Moderately concerned", "Highly concerned"),
Y_nghia = c(
"Không lo ngại",
"Hơi lo ngại",
"Lo ngại vừa phải",
"Rất lo ngại"
)
)
knitr::kable(concern_levels, caption = "Giải thích các mức trong biến Concern Level")
Gia_tri | Y_nghia |
---|---|
Not concerned | Không lo ngại |
Slightly concerned | Hơi lo ngại |
Moderately concerned | Lo ngại vừa phải |
Highly concerned | Rất lo ngại |
# Tạo bảng tần suất cho Concern Level
ts_concern <- table(d$Concern.Level)
# Tạo bảng dữ liệu
ts_concern_df <- data.frame(
Gia_tri = names(ts_concern),
Tan_so = as.vector(ts_concern),
Ty_le = round((as.vector(ts_concern) / sum(ts_concern)) * 100, 2)
)
# Hiển thị kết quả
ts_concern_df
## Gia_tri Tan_so Ty_le
## 1 Highly concerned 4 2.13
## 2 Moderately concerned 29 15.43
## 3 Not concerned 70 37.23
## 4 Slightly concerned 85 45.21
Phần lớn sinh viên (45.21%) chỉ hơi lo ngại (slightly concerned) về tác động của AI.
37.23% không lo ngại, cho thấy gần 82.44% sinh viên (tổng của hai mức trên) có mức lo ngại thấp hoặc không có.
Chỉ 2.13% sinh viên thực sự lo ngại ở mức cao (highly concerned).
Điều này cho thấy rằng AI hiện tại chưa phải là mối quan tâm cấp bách với đa số sinh viên trong mẫu khảo sát.
Tuy nhiên, tỷ lệ 15.43% “moderately concerned” cũng đáng chú ý, vì nó phản ánh nhóm bắt đầu nhận thức rõ hơn về tác động tiềm tàng của AI
library(ggplot2)
ggplot(ts_concern_df, aes(x = reorder(Gia_tri, -Tan_so), y = Tan_so, fill = Gia_tri)) +
geom_col(width = 0.5, color = "white") +
geom_text(aes(label = Tan_so), vjust = -0.3, size = 4, fontface = "bold") +
labs(
title = "Biểu đồ cột: Mức độ lo ngại về AI (Concern Level)",
x = "Mức độ lo ngại",
y = "Tần số"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text.x = element_text(angle = 20, hjust = 1)
)
# Giải thích các mức của biến Research Opportunities at University
research_levels <- data.frame(
Gia_tri = c("Yes", "No"),
Y_nghia = c(
"Trường có tạo điều kiện cho nghiên cứu liên quan đến AI",
"Trường không tạo điều kiện hoặc không có hoạt động nghiên cứu về AI"
)
)
knitr::kable(research_levels, caption = "Giải thích các mức trong biến Research Opportunities at University")
Gia_tri | Y_nghia |
---|---|
Yes | Trường có tạo điều kiện cho nghiên cứu liên quan đến AI |
No | Trường không tạo điều kiện hoặc không có hoạt động nghiên cứu về AI |
# Tạo bảng tần suất cho Research Opportunities at University
ts_research <- table(d$Research.Opportunities.at.University)
# Tạo bảng dữ liệu
ts_research_df <- data.frame(
Gia_tri = names(ts_research),
Tan_so = as.vector(ts_research),
Ty_le = round((as.vector(ts_research) / sum(ts_research)) * 100, 2)
)
# Hiển thị kết quả
ts_research_df
## Gia_tri Tan_so Ty_le
## 1 No 105 55.85
## 2 Yes 83 44.15
Có 55.85% sinh viên cho rằng trường của họ không tạo điều kiện nghiên cứu về AI, cao hơn so với nhóm còn lại.
Chỉ 44.15% sinh viên cảm nhận được rằng trường có hỗ trợ nghiên cứu về AI.
Điều này phản ánh rằng nhiều trường đại học trong mẫu khảo sát chưa có hoạt động nghiên cứu AI nổi bật hoặc sinh viên chưa được tiếp cận rõ ràng với các cơ hội đó.
library(ggplot2)
# Vẽ biểu đồ cột cho biến Research Opportunities at University
ggplot(ts_research_df, aes(x = reorder(Gia_tri, -Tan_so), y = Tan_so, fill = Gia_tri)) +
geom_col(width = 0.5, color = "white") +
geom_text(aes(label = Tan_so), vjust = -0.3, size = 4, fontface = "bold") +
labs(
title = "Biểu đồ cột: Trường có tạo điều kiện nghiên cứu về AI",
x = "Có tạo điều kiện nghiên cứu?",
y = "Tần số"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text.x = element_text(angle = 0, hjust = 0.5)
)
Ta chọn 2 hạng mục từ các biến định tính:
Hạng mục Male của biến Gender - Giới tính
Hạng mục Highly concerned của biến Concern Level - Mức độ lo ngại về AI
Ta thực hiện khoảng ước lượng với độ tin cậy 95% cho tỷ lệ giới tính nam (Gender=“Male”), ta thực hiện như sau:
# Ước lượng tỷ lệ nam và khoảng tin cậy 95% trong tập dữ liệu d
# Bước 1: Đếm số lượng nam giới trong dữ liệu
so_luong_nam <- sum(d$Gender == "Male", na.rm = TRUE)
# Bước 2: Xác định tổng số quan sát hợp lệ
tong_so_quan_sat <- sum(!is.na(d$Gender))
# Bước 3: Ước lượng khoảng tin cậy 95% cho tỷ lệ nam
kq_tyle_nam <- prop.test(so_luong_nam, tong_so_quan_sat, conf.level = 0.95)
# Hiển thị kết quả
print(kq_tyle_nam)
##
## 1-sample proportions test with continuity correction
##
## data: so_luong_nam out of tong_so_quan_sat, null probability 0.5
## X-squared = 4.4734, df = 1, p-value = 0.03443
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.3493998 0.4943403
## sample estimates:
## p
## 0.4202128
Kiểm định tỷ lệ một mẫu: Tỷ lệ nam giới trong dữ liệu
Trong nghiên cứu này, chúng tôi tiến hành kiểm định tỷ lệ một mẫu để đánh giá liệu tỷ lệ nam giới trong tổng thể có khác biệt đáng kể so với mức giả định 50% hay không. Đây là một phân tích quan trọng nhằm kiểm tra sự cân bằng giới tính trong tập dữ liệu khảo sát.
Ta thiết lập giả thuyết như sau:
\[ \begin{cases} H_0: p = 0.5 & \text{(tỷ lệ nam trong tổng thể là 50\%)} \\ H_1: p \neq 0.5 & \text{(tỷ lệ nam trong tổng thể khác 50\%)} \end{cases} \]
Mức ý nghĩa được chọn là \(\alpha = 0.05\).
Kết quả kiểm định
Sử dụng hàm prop.test()
trong R để kiểm định tỷ lệ,
chúng tôi thu được các kết quả sau:
Diễn giải thống kê
Giá trị p nhỏ hơn mức ý nghĩa 5% (\(p = 0.03443 < 0.05\)), do đó chúng ta bác bỏ giả thuyết \(H_0\). Nói cách khác, có đủ bằng chứng thống kê để kết luận rằng tỷ lệ nam giới trong tổng thể khác với 50% tại mức ý nghĩa 5%.
Khoảng tin cậy 95% cho tỷ lệ nam nằm trong khoảng từ 34.9% đến 49.4%, không bao gồm giá trị 50%, điều này càng củng cố kết luận rằng tỷ lệ nam khác với mức cân bằng giới tính.
Tỷ lệ mẫu quan sát được là 42.0%, nghĩa là trong tổng số quan sát, chỉ có 42% là nam giới. Đây là một sự lệch đáng kể so với tỷ lệ lý tưởng 50%.
Nhận xét và ý nghĩa thực tiễn
Kết quả cho thấy nam giới chiếm tỷ lệ thấp hơn đáng kể so với nữ giới trong tập dữ liệu. Điều này có thể phản ánh:
Trong bối cảnh kinh doanh, nếu đây là dữ liệu từ khách hàng, thì điều này hàm ý rằng nữ giới đang là nhóm khách hàng chiếm ưu thế, và doanh nghiệp nên cân nhắc điều chỉnh chiến lược tiếp thị, quảng bá, hoặc phát triển sản phẩm phù hợp với nhu cầu và hành vi tiêu dùng của nhóm này.
Kết luận
Với p-value nhỏ hơn 0.05, ta có thể kết luận rằng tỷ lệ nam trong mẫu khảo sát khác biệt có ý nghĩa thống kê so với tỷ lệ giả định 50%. Điều này cần được xem xét khi đánh giá tính đại diện của mẫu, hoặc đưa ra các quyết định trong nghiên cứu thị trường, xã hội học, hoặc quản trị dữ liệu.
# Số người có mức độ "Highly concerned"
n_high_concern <- 4
# Tổng số quan sát hợp lệ
n_total <- 188
# Ước lượng khoảng tin cậy 95% cho tỷ lệ "Highly concerned"
prop.test(n_high_concern, n_total, conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: n_high_concern out of n_total, null probability 0.5
## X-squared = 170.43, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.006837495 0.057105814
## sample estimates:
## p
## 0.0212766
Kiểm định tỷ lệ một mẫu: Tỷ lệ mối quan tâm cao
Trong nghiên cứu này, chúng tôi thực hiện kiểm định tỷ lệ một mẫu để đánh giá liệu tỷ lệ các trường hợp được xác định là “có mối quan tâm cao” (high concern) có khác biệt đáng kể so với tỷ lệ giả định 50% hay không.
Giả thuyết kiểm định
Chúng tôi thiết lập giả thuyết như sau:
\[ \begin{cases} H_0: p = 0.5 & \text{(tỷ lệ mối quan tâm cao là 50\%)} \\ H_1: p \neq 0.5 & \text{(tỷ lệ mối quan tâm cao khác 50\%)} \end{cases} \]
Mức ý nghĩa được chọn là \(\alpha = 0.05\).
Kết quả kiểm định
Sử dụng hàm prop.test()
trong R để kiểm định, chúng tôi
thu được các kết quả sau:
Diễn giải thống kê
Giá trị p cực kỳ nhỏ và nhỏ hơn rất nhiều so với mức ý nghĩa 5% (\(p < 0.05\)), do đó chúng ta bác bỏ giả thuyết \(H_0\). Điều này cho thấy tỷ lệ mối quan tâm cao khác đáng kể so với 50%.
Khoảng tin cậy 95% cho tỷ lệ mối quan tâm cao nằm trong khoảng từ 0.68% đến 5.71%, không bao gồm 50%, càng củng cố kết luận về sự khác biệt có ý nghĩa thống kê.
Tỷ lệ quan sát được là 2.13%, cho thấy chỉ có một phần rất nhỏ cá nhân được xác định là có mối quan tâm cao, thấp hơn đáng kể so với tỷ lệ giả định cân bằng 50%.
Nhận xét và ý nghĩa thực tiễn
Kết quả này cho thấy rằng mối quan tâm cao là hiện tượng hiếm trong tổng thể. Điều này có thể phản ánh:
Kết luận
Với p-value < 0.05, chúng tôi kết luận rằng tỷ lệ mối quan tâm cao khác biệt có ý nghĩa thống kê so với giả định 50%. Việc hiểu rõ tỷ lệ này giúp đưa ra các quyết định phù hợp trong thiết kế nghiên cứu, phân tích chiến lược, hoặc lập kế hoạch can thiệp.
Biến phụ thuộc: Internship Experience và Concern Level
Câu hỏi: Nam và nữ có khác biệt trong tỷ lệ đã từng đi thực tập không?
Mục tiêu: Kiểm tra sự phân bố kinh nghiệm thực tập theo giới tính.
# Bảng tần số chéo: Giới tính và Kinh nghiệm thực tập
table_gender_intern <- table(d$Gender, d$Internship.Experience)
table_gender_intern
##
## No Yes
## Female 65 44
## Male 55 24
# Tỷ lệ theo hàng: trong từng giới tính, tỷ lệ có/không có kinh nghiệm
prop.table(table_gender_intern, margin = 1)
##
## No Yes
## Female 0.5963303 0.4036697
## Male 0.6962025 0.3037975
# Tạo biến Gender2: Male trước, Female sau
d$Gender2 <- factor(d$Gender, levels = c("Male", "Female"))
# Tạo biến Internship2: No trước, Yes sau
d$Internship2 <- factor(d$Internship.Experience, levels = c("No", "Yes"))
# Tạo bảng tần số chéo mới với thứ tự mong muốn
table_gender_intern2 <- table(d$Gender2, d$Internship2)
table_gender_intern2
##
## No Yes
## Male 55 24
## Female 65 44
# Tỷ lệ theo hàng
prop.table(table_gender_intern2, margin = 1)
##
## No Yes
## Male 0.6962025 0.3037975
## Female 0.5963303 0.4036697
Male: 30.38% có kinh nghiệm thực tập, 69.62% không có.
Female: 40.37% có kinh nghiệm thực tập, 59.63% không có.
Điều này có thể phản ánh:
Nữ sinh viên chủ động hơn trong việc tìm kiếm thực tập.
Có thể có sự khác biệt về ngành học, cơ hội tiếp cận, hoặc sự chuẩn bị nghề nghiệp giữa hai giới.
library(ggplot2)
# Tạo bảng dữ liệu từ bảng tần suất chéo: Gender vs Internship Experience
table_gender_intern <- table(d$Gender, d$Internship.Experience)
df_group <- as.data.frame(as.table(table_gender_intern))
colnames(df_group) <- c("Gender", "Internship", "Freq") # Đổi tên cột
# Vẽ biểu đồ cột nhóm
ggplot(df_group, aes(x = Internship, y = Freq, fill = Gender)) +
geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.6) +
geom_text(aes(label = Freq),
position = position_dodge(width = 0.8),
vjust = -0.4, size = 4, color = "black", fontface = "bold") +
labs(title = "Biểu đồ cột nhóm: Giới tính vs Kinh nghiệm thực tập",
x = "Kinh nghiệm thực tập",
y = "Tần số") +
scale_fill_manual(
values = c("Female" = "#FF9999", "Male" = "#6699CC"),
name = "Giới tính",
labels = c("Nữ", "Nam")
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
legend.position = "right"
)
Giả thuyết kiểm định:
H₀ (Giả thuyết không): Giới tính và kinh nghiệm thực tập độc lập với nhau.
H₁ (Giả thuyết đối): Giới tính và kinh nghiệm thực tập có liên hệ với nhau.
# Thực hiện kiểm định Chi-bình phương
chisq.test(table_gender_intern)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table_gender_intern
## X-squared = 1.5699, df = 1, p-value = 0.2102
Kết quả kiểm định Chi-bình phương:
Chi-squared = 1.81
Bậc tự do (df) = 1
Giá trị p-value = 0.1783
Kết luận thống kê:
Vì p > 0.05, không đủ bằng chứng để bác bỏ giả thuyết H₀.
Điều này cho thấy không có mối liên hệ có ý nghĩa thống kê giữa giới tính và việc sinh viên đã từng thực tập hay chưa.
Thảo luận thêm về bản chất mối quan hệ:
Mặc dù biểu đồ gợi ý nữ có xu hướng thực tập nhiều hơn nam, nhưng kiểm định Chi-bình phương chỉ ra rằng mối quan hệ này không đủ mạnh để khẳng định có sự khác biệt thực sự giữa hai giới về kinh nghiệm thực tập. Hai biến được coi là độc lập về mặt thống kê
So sánh tỷ lệ xuất hiện một đặc điểm nào đó giữa hai nhóm để xem sự khác biệt đó có ý nghĩa thống kê hay không?
# Lập bảng tần số chéo giữa Gender và Internship Experience
table_gender_intern <- table(d$Gender, d$Internship.Experience)
# Thêm tổng hàng và tổng cột
table_gender_intern_margins <- addmargins(table_gender_intern)
# Hiển thị bảng
table_gender_intern_margins
##
## No Yes Sum
## Female 65 44 109
## Male 55 24 79
## Sum 120 68 188
Tỷ lệ có kinh nghiệm thực tập theo giới tính được ký hiệu như sau:
Giả thuyết kiểm định:
# Số người có kinh nghiệm thực tập trong từng giới
counts_intern_yes <- c(table_gender_intern["Female", "Yes"], table_gender_intern["Male", "Yes"])
# Tổng số người theo từng giới
totals_gender <- c(sum(table_gender_intern["Female", ]), sum(table_gender_intern["Male", ]))
# Kiểm định tỉ lệ một phía: p1 > p2
test_intern <- prop.test(counts_intern_yes, totals_gender, alternative = "greater", correct = FALSE)
# Hiển thị kết quả
test_intern
##
## 2-sample test for equality of proportions without continuity correction
##
## data: counts_intern_yes out of totals_gender
## X-squared = 1.9788, df = 1, p-value = 0.07976
## alternative hypothesis: greater
## 95 percent confidence interval:
## -0.01509957 1.00000000
## sample estimates:
## prop 1 prop 2
## 0.4036697 0.3037975
Nhận xét, cách tính và ý nghĩa của hiệu tỷ lệ
Giả sử có kết quả kiểm định như sau:
Cách tính hiệu tỷ lệ
Tỷ lệ được ước lượng theo công thức:
\[ \hat{p}_1 = \frac{x_1}{n_1}, \quad \hat{p}_2 = \frac{x_2}{n_2} \]
Trong đó:
Hiệu tỷ lệ:
\[ \hat{p}_1 - \hat{p}_2 \]
Ý nghĩa của kết quả
Hiệu tỷ lệ \(\hat{p}_1 - \hat{p}_2 \approx 0.0999\) cho thấy tỷ lệ nữ có thực tập cao hơn nam.
Tuy nhiên, p-value từ kiểm định hiệu tỷ lệ là \(p = 0.074 > 0.05\), nên không đủ bằng chứng để bác bỏ giả thuyết \(H_0\).
Do đó, sự khác biệt này chưa có ý nghĩa thống kê — tức là có thể do sai số ngẫu nhiên từ mẫu.
Kết luận
Mặc dù dữ liệu mô tả cho thấy sự khác biệt về tỷ lệ có kinh nghiệm thực tập giữa nữ và nam, nhưng kết quả kiểm định thống kê cho thấy chưa thể khẳng định sự khác biệt này mang tính hệ thống trong toàn bộ quần thể.
Câu hỏi nghiên cứu: Liệu giới tính (nam/nữ) có ảnh hưởng đến khả năng từng có kinh nghiệm thực tập (Internship Experience)?
→ Mục tiêu:
So sánh xác suất có kinh nghiệm thực tập giữa hai giới:
install.packages("epitools", repos = "https://cloud.r-project.org")
## Installing package into 'C:/Users/Tuyet Nhi/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'epitools' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\Tuyet Nhi\AppData\Local\Temp\RtmpUBE32p\downloaded_packages
library(epitools)
Tính Relative Risk
riskratio(table_gender_intern2)
## $data
##
## No Yes Total
## Male 55 24 79
## Female 65 44 109
## Total 120 68 188
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Male 1.000000 NA NA
## Female 1.328746 0.8868203 1.990895
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Male NA NA NA
## Female 0.1635642 0.1699405 0.1595125
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tính tỷ lệ
Tỷ số nguy cơ (Female vs Male):
\[ RR = \frac{\hat{p}_{\text{Yes | Female}} / \hat{p}_{\text{No | Female}}}{\hat{p}_{\text{Yes | Male}} / \hat{p}_{\text{No | Male}}} = \frac{\frac{44}{65}}{\frac{24}{55}} = 1.3287 \]
Ý nghĩa
or_result2 <- oddsratio(table_gender_intern)
print(or_result2)
## $data
##
## No Yes Total
## Female 65 44 109
## Male 55 24 79
## Total 120 68 188
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Female 1.0000000 NA NA
## Male 0.6473377 0.3462602 1.19185
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 0.1635642 0.1699405 0.1595125
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tính odds (tỷ lệ chéo) theo từng nhóm
Tính Odds Ratio (OR)
\[ OR = \frac{\text{Odds}_{\text{Female}}}{\text{Odds}_{\text{Male}}} = \frac{44/65}{24/55} \approx 0.6473 \]
Khoảng tin cậy 95%:
\[ CI = \left[ 0.3463 ; 1.1919 \right] \]
Giả thuyết kiểm định
Kết quả kiểm định
Kết luận thống kê
Vì các giá trị \(p > 0.05\), ta không bác bỏ giả thuyết \(H_0\).
\[ \Rightarrow \text{Chưa có đủ bằng chứng thống kê để khẳng định giới tính có liên hệ với khả năng từng đi thực tập.} \]
Ý nghĩa
Nữ đã từng đi thực tập trên nữ chưa từng đi thực tập bằng khoảng 64,73% so với nam đã từng đi thực tập trên nam chưa từng đi thực tập
Tuy nhiên, vì mức độ chênh lệch này không đủ mạnh về mặt thống kê (p-value > 0.05), nên ta chưa thể khẳng định chắc chắn rằng giới tính thực sự ảnh hưởng đến việc có kinh nghiệm thực tập hay không.
or_result3 <- oddsratio(table_gender_intern2)
print(or_result3)
## $data
##
## No Yes Total
## Male 55 24 79
## Female 65 44 109
## Total 120 68 188
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Male 1.000000 NA NA
## Female 1.544786 0.8390317 2.888001
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Male NA NA NA
## Female 0.1635642 0.1699405 0.1595125
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Giả thuyết kiểm định:
Kết quả:
Kết luận:
Vì \(p > 0.05\), ta không bác bỏ giả thuyết \(H_0\).
\[ \Rightarrow \text{Không có đủ bằng chứng thống kê để kết luận rằng giới tính ảnh hưởng đến odds từng có kinh nghiệm thực tập.} \]
Diễn giải:
Câu hỏi: Liệu việc trường đại học có tạo điều kiện nghiên cứu về AI có liên quan đến khả năng sinh viên từng có kinh nghiệm thực tập hay không?
Mục tiêu: Đánh giá mối quan hệ giữa điều kiện nghiên cứu tại trường và kinh nghiệm thực tập của sinh viên – từ đó rút ra liệu môi trường học thuật có tạo thuận lợi cho trải nghiệm thực tiễn hay không
# Gán nhãn rõ nghĩa hơn cho các mức
d$ResearchClear <- factor(d$Research.Opportunities.at.University,
levels = c("No", "Yes"),
labels = c("Chưa tạo dk", "Có tạo dk"))
d$InternshipClear <- factor(d$Internship.Experience,
levels = c("No", "Yes"),
labels = c("Chưa kinh nghiệm", "Có kinh nghiệm "))
# Bảng tần số chéo với nhãn rõ ràng
table_research_intern_clear <- table(d$ResearchClear, d$InternshipClear)
table_research_intern_clear
##
## Chưa kinh nghiệm Có kinh nghiệm
## Chưa tạo dk 72 33
## Có tạo dk 48 35
# Tỷ lệ theo hàng
prop.table(table_research_intern_clear, margin = 1)
##
## Chưa kinh nghiệm Có kinh nghiệm
## Chưa tạo dk 0.6857143 0.3142857
## Có tạo dk 0.5783133 0.4216867
# Tạo biến mới: InternshipClear2 với thứ tự mức đảo ngược
d$InternshipClear2 <- factor(d$Internship.Experience,
levels = c("Yes", "No"),
labels = c("Có kinh nghiệm", "Chưa kinh nghiệm"))
# Tạo bảng tần số chéo mới
table_research_intern_clear2 <- table(d$ResearchClear, d$InternshipClear2)
table_research_intern_clear2
##
## Có kinh nghiệm Chưa kinh nghiệm
## Chưa tạo dk 33 72
## Có tạo dk 35 48
# Tỷ lệ theo hàng
prop.table(table_research_intern_clear2, margin = 1)
##
## Có kinh nghiệm Chưa kinh nghiệm
## Chưa tạo dk 0.3142857 0.6857143
## Có tạo dk 0.4216867 0.5783133
Ở các trường chưa tạo điều kiện nghiên cứu, gần 69% sinh viên chưa từng có kinh nghiệm thực tập và số sinh viên có kinh nghiệm thực tập là 31%
Ngược lại, ở các trường có tạo điều kiện nghiên cứu, chỉ khoảng 58% chưa có kinh nghiệm, và tỷ lệ có kinh nghiệm thực tập tăng lên đến hơn 42%.
library(ggplot2)
# Tạo bảng dữ liệu từ bảng tần suất chéo
table_ri <- table(d$ResearchClear, d$InternshipClear2)
df_ri <- as.data.frame(as.table(table_ri))
colnames(df_ri) <- c("Research", "Internship", "Freq")
# Vẽ biểu đồ cột nhóm
ggplot(df_ri, aes(x = Internship, y = Freq, fill = Research)) +
geom_bar(stat = "identity", position = position_dodge(0.8), width = 0.6) +
geom_text(aes(label = Freq),
position = position_dodge(0.8),
vjust = -0.5, size = 4, fontface = "bold", color = "black") +
labs(title = "Biểu đồ cột nhóm: Điều kiện nghiên cứu vs Kinh nghiệm thực tập",
x = "Kinh nghiệm thực tập",
y = "Tần số") +
scale_fill_manual(
values = c("Chưa tạo dk" = "#FFA07A", "Có tạo dk" = "#20B2AA"),
name = "Trường Đại học",
labels = c("Chưa tạo điều kiện", "Có tạo điều kiện")
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
legend.position = "right"
)
Giả thuyết kiểm định:
H₀ (Giả thuyết không): Điều kiện nghiên cứu tại
trường và kinh nghiệm thực tập độc lập với nhau.
H₁ (Giả thuyết đối): Hai biến có liên hệ với nhau.
# Thực hiện kiểm định Chi-bình phương
chisq.test(table_research_intern_clear2)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table_research_intern_clear2
## X-squared = 1.8742, df = 1, p-value = 0.171
Kết quả kiểm định Chi-bình phương:
Kết luận thống kê:
Vì \(p > 0.05\), ta không bác bỏ giả thuyết \(H_0\).
\[ \Rightarrow \text{Không có đủ bằng chứng thống kê để kết luận rằng điều kiện nghiên cứu tại trường có liên hệ với khả năng sinh viên từng đi thực tập.} \]
Mặc dù bảng tần suất cho thấy sinh viên từ trường có môi trường nghiên cứu thuận lợi có tỷ lệ thực tập cao hơn, nhưng kiểm định Chi-bình phương cho thấy sự khác biệt đó không đủ mạnh về mặt thống kê.
Điều này có thể phản ánh rằng sự khác biệt được quan sát có thể chỉ là do sai số ngẫu nhiên của mẫu, và không thể khẳng định chắc chắn rằng hai biến có liên hệ trong quần thể chung.
Thảo luận thêm về bản chất mối quan hệ:
Biểu đồ và bảng tần suất cho thấy sự khác biệt tương đối giữa hai nhóm, tuy nhiên kiểm định thống kê sẽ quyết định sự khác biệt đó có ý nghĩa thống kê hay không.
So sánh tỷ lệ xuất hiện một đặc điểm nào đó giữa hai nhóm để xem sự khác biệt đó có ý nghĩa thống kê hay không?
# Số người có kinh nghiệm thực tập theo điều kiện nghiên cứu
counts_intern_research <- c(table_research_intern_clear2["Có tạo dk", "Có kinh nghiệm"],
table_research_intern_clear2["Chưa tạo dk", "Có kinh nghiệm"])
# Tổng số người theo nhóm điều kiện nghiên cứu
totals_research <- c(sum(table_research_intern_clear2["Có tạo dk", ]),
sum(table_research_intern_clear2["Chưa tạo dk", ]))
# Kiểm định tỉ lệ một phía: p1 > p2
prop.test(counts_intern_research, totals_research, alternative = "greater", correct = FALSE)
##
## 2-sample test for equality of proportions without continuity correction
##
## data: counts_intern_research out of totals_research
## X-squared = 2.3161, df = 1, p-value = 0.06402
## alternative hypothesis: greater
## 95 percent confidence interval:
## -0.008798711 1.000000000
## sample estimates:
## prop 1 prop 2
## 0.4216867 0.3142857
Kiểm định hiệu tỷ lệ: Tác động của điều kiện nghiên cứu đến kinh nghiệm thực tập
Giả thuyết kiểm định:
Kết quả kiểm định:
\(\hat{p}_1 = 0.4217\): Tỷ lệ sinh viên có thực tập ở nhóm có tạo điều kiện nghiên cứu
\(\hat{p}_2 = 0.3143\): Tỷ lệ sinh viên có thực tập ở nhóm không tạo điều kiện nghiên cứu
\(\hat{p}_1 - \hat{p}_2 = 0.1074\)
\(\chi^2 = 2.3161\), \(df = 1\), \(p\text{-value} = 0.064\)
Khoảng tin cậy 95% cho hiệu tỷ lệ: \([-0.0088; 1]\)
Kết luận
Vì \(p = 0.064 > 0.05\), ta không bác bỏ giả thuyết \(H_0\) ở mức ý nghĩa 5%.
\[ \Rightarrow \text{Chưa đủ bằng chứng để khẳng định rằng điều kiện nghiên cứu tại trường giúp sinh viên có nhiều kinh nghiệm thực tập hơn.} \]
Tuy nhiên, do \(p\) tiệm cận 0.05 và hiệu tỷ lệ là dương (10.74%), có thể xem đây là một xu hướng tiềm năng, cần được kiểm tra thêm bằng mẫu lớn hơn.
library(epitools)
riskratio(table_research_intern_clear)
## $data
##
## Chưa kinh nghiệm Có kinh nghiệm Total
## Chưa tạo dk 72 33 105
## Có tạo dk 48 35 83
## Total 120 68 188
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Chưa tạo dk 1.000000 NA NA
## Có tạo dk 1.341731 0.9188943 1.959138
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Chưa tạo dk NA NA NA
## Có tạo dk 0.1327199 0.168742 0.128043
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Giả thuyết:
Kết quả tính toán:
Vì tất cả giá trị \(p > 0.05\), ta không bác bỏ giả thuyết \(H_0\).
\[ \Rightarrow \text{Không có đủ bằng chứng để kết luận rằng điều kiện nghiên cứu tại trường làm tăng khả năng sinh viên có kinh nghiệm thực tập.} \]
Ý nghĩa
library(epitools)
riskratio(table_research_intern_clear2)
## $data
##
## Có kinh nghiệm Chưa kinh nghiệm Total
## Chưa tạo dk 33 72 105
## Có tạo dk 35 48 83
## Total 68 120 188
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Chưa tạo dk 1.0000000 NA NA
## Có tạo dk 0.8433735 0.6736106 1.05592
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Chưa tạo dk NA NA NA
## Có tạo dk 0.1327199 0.168742 0.128043
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Giả thuyết kiểm định:
Kết quả:
Kết luận:
Vì \(p > 0.05\), ta không bác bỏ giả thuyết \(H_0\).
\[ \Rightarrow \text{Không có đủ bằng chứng để khẳng định có sự khác biệt về nguy cơ có kinh nghiệm thực tập giữa hai nhóm trường.} \]
Diễn giải:
Tỷ số RR = 0.8437 cho thấy sinh viên từ trường có tạo điều kiện nghiên cứu có tỷ lệ từng thực tập thấp hơn khoảng 16% so với nhóm không có điều kiện.
Tuy nhiên, do khoảng tin cậy chứa 1 và p-value không đủ nhỏ, ta không thể kết luận sự khác biệt này có ý nghĩa thống kê.
oddsratio(table_research_intern_clear)
## $data
##
## Chưa kinh nghiệm Có kinh nghiệm Total
## Chưa tạo dk 72 33 105
## Có tạo dk 48 35 83
## Total 120 68 188
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Chưa tạo dk 1.000000 NA NA
## Có tạo dk 1.585999 0.8693279 2.907182
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Chưa tạo dk NA NA NA
## Có tạo dk 0.1327199 0.168742 0.128043
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Giả thuyết kiểm định:
Kết quả:
Kết luận:
Vì tất cả giá trị \(p > 0.05\), ta không bác bỏ giả thuyết \(H_0\).
\[ \Rightarrow \text{Chưa có đủ bằng chứng thống kê để kết luận rằng điều kiện nghiên cứu tại trường ảnh hưởng đến odds sinh viên từng đi thực tập.} \]
Giá trị OR = 1.5860 cho thấy odds có kinh nghiệm thực tập ở nhóm có tạo điều kiện nghiên cứu cao hơn khoảng 1.59 lần so với nhóm trường không tạo điều kiện.
Tuy nhiên, vì khoảng tin cậy chứa 1 và p-value > 0.05, nên sự khác biệt này không đủ mạnh về mặt thống kê để đưa ra kết luận chắc chắn.
oddsratio(table_research_intern_clear2)
## $data
##
## Có kinh nghiệm Chưa kinh nghiệm Total
## Chưa tạo dk 33 72 105
## Có tạo dk 35 48 83
## Total 68 120 188
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Chưa tạo dk 1.0000000 NA NA
## Có tạo dk 0.6305221 0.3439757 1.150314
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Chưa tạo dk NA NA NA
## Có tạo dk 0.1327199 0.168742 0.128043
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ số chênh (Odds Ratio - OR)
Giả thuyết kiểm định:
Kết quả:
Kết luận:
Vì \(p > 0.05\), ta không bác bỏ giả thuyết \(H_0\).
\[ \Rightarrow \text{Không có đủ bằng chứng thống kê để kết luận rằng điều kiện nghiên cứu tại trường làm thay đổi odds có thực tập.} \]
Diễn giải:
Câu hỏi: Mức độ lo ngại về AI có khác nhau giữa nam và nữ không?
Mục tiêu: Phân tích cảm nhận khác biệt giữa hai giới trước ảnh hưởng của AI.
# Đổi nhãn tiếng Việt cho giới tính (không thay đổi thứ tự)
d$Gender.VN <- factor(d$Gender,
levels = c("Female", "Male"), # Nữ trước, Nam sau
labels = c("Nữ", "Nam"))
# Đổi nhãn tiếng Việt cho mức độ quan tâm
d$Concern.Level.VN <- factor(d$Concern.Level,
levels = c("Not concerned", "Slightly concerned", "Moderately concerned", "Highly concerned"),
labels = c("K quan tâm", "Hơi quan tâm", "Quan tâm vừa phải", "Rất quan tâm"))
# Tạo bảng tần số chéo với nhãn tiếng Việt và thứ tự Nữ rồi Nam
table_gender_concern <- table(d$Gender.VN, d$Concern.Level.VN)
table_gender_concern
##
## K quan tâm Hơi quan tâm Quan tâm vừa phải Rất quan tâm
## Nữ 36 54 17 2
## Nam 34 31 12 2
# Tính tỷ lệ theo hàng
prop.table(table_gender_concern, margin = 1)
##
## K quan tâm Hơi quan tâm Quan tâm vừa phải Rất quan tâm
## Nữ 0.33027523 0.49541284 0.15596330 0.01834862
## Nam 0.43037975 0.39240506 0.15189873 0.02531646
Nhận xét
Nữ giới thể hiện mức độ quan tâm cao hơn nam, đặc biệt ở mức “hơi quan tâm” (49.54% nữ so với 39.24% nam).
Nam giới có xu hướng thờ ơ nhiều hơn, thể hiện qua tỷ lệ “không quan tâm” cao hơn nữ (43.04% nam so với 33.03% nữ).
Cả hai giới đều hiếm khi bày tỏ sự quan tâm mạnh: chỉ 1.83% nữ và 2.53% nam chọn mức “rất quan tâm”.
Sự khác biệt giữa hai giới là rõ nhất ở hai mức đối lập: “không quan tâm” và “hơi quan tâm”.
# Chuẩn bị dữ liệu
df_concern_stacked <- as.data.frame(table(d$Gender.VN, d$Concern.Level.VN))
colnames(df_concern_stacked) <- c("Giới tính", "Mức độ quan tâm", "Tần số")
# Vẽ biểu đồ cột chồng có số
ggplot(df_concern_stacked, aes(x = `Giới tính`, y = `Tần số`, fill = `Mức độ quan tâm`)) +
geom_bar(stat = "identity") +
geom_text(aes(label = `Tần số`),
position = position_stack(vjust = 0.5),
size = 4, color = "black", fontface = "bold") +
labs(title = "Biểu đồ cột chồng: Mức độ quan tâm theo giới tính",
x = "Giới tính", y = "Tần số") +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal(base_size = 13) +
theme(plot.title = element_text(hjust = 0.5, face = "bold"))
chisq.test(table_gender_concern)
## Warning in chisq.test(table_gender_concern): Chi-squared approximation may be
## incorrect
##
## Pearson's Chi-squared test
##
## data: table_gender_concern
## X-squared = 2.4171, df = 3, p-value = 0.4905
Giả thuyết kiểm định:
Kết quả kiểm định Chi-bình phương:
Kết luận thống kê:
Thảo luận thêm về bản chất mối quan hệ:
Mặc dù mô tả tần suất cho thấy nữ có xu hướng quan tâm nhiều hơn nam (đặc biệt ở mức “hơi quan tâm”), nhưng kiểm định Chi-bình phương chỉ ra rằng sự khác biệt đó không đủ lớn để có ý nghĩa thống kê. Hai biến được coi là độc lập về mặt thống kê – tức là sự khác biệt có thể do ngẫu nhiên trong mẫu khảo sát.
Tỷ lệ được định nghĩa như sau:
Giả thuyết kiểm định:
# Lập bảng tần số chéo giữa Gender và Concern Level
table_gender_concern <- table(d$Gender.VN, d$Concern.Level.VN)
# Thêm tổng hàng và tổng cột
table_gender_concern_margins <- addmargins(table_gender_concern)
# Hiển thị bảng
table_gender_concern_margins
##
## K quan tâm Hơi quan tâm Quan tâm vừa phải Rất quan tâm Sum
## Nữ 36 54 17 2 109
## Nam 34 31 12 2 79
## Sum 70 85 29 4 188
# Số người "Rất quan tâm" trong từng giới
counts_concern_high <- c(table_gender_concern["Nữ", "Rất quan tâm"], table_gender_concern["Nam", "Rất quan tâm"])
# Tổng số người theo từng giới
totals_gender <- c(sum(table_gender_concern["Nữ", ]), sum(table_gender_concern["Nam", ]))
# Kiểm định tỉ lệ một phía: p1 > p2
test_concern <- prop.test(counts_concern_high, totals_gender, alternative = "greater", correct = FALSE)
## Warning in prop.test(counts_concern_high, totals_gender, alternative =
## "greater", : Chi-squared approximation may be incorrect
# Hiển thị kết quả
test_concern
##
## 2-sample test for equality of proportions without continuity correction
##
## data: counts_concern_high out of totals_gender
## X-squared = 0.10679, df = 1, p-value = 0.6281
## alternative hypothesis: greater
## 95 percent confidence interval:
## -0.04291441 1.00000000
## sample estimates:
## prop 1 prop 2
## 0.01834862 0.02531646
Kết quả kiểm định:
Giả sử kiểm định cho ra các kết quả sau:
Tỷ lệ nữ:
\[ \hat{p}_1 = \frac{2}{109} \approx 0.0183
\]
Tỷ lệ nam:
\[ \hat{p}_2 = \frac{2}{79} \approx 0.0253
\]
Hiệu tỷ lệ:
\[ \hat{p}_1 - \hat{p}_2 = 0.0183 - 0.0253 =
-0.0070 \]
Giá trị thống kê:
\[ \chi^2 = 0.1068, \quad df = 1
\]
Khoảng tin cậy 95%:
\[ [-0.0429,\ 1.0000] \]
Giá trị p-value:
\[ p = 0.6281 \]
Kết luận:
Vì \(p = 0.6281 > 0.05\), ta
không đủ bằng chứng để bác bỏ giả thuyết \(H_0\).
Sự khác biệt về tỷ lệ “rất quan tâm” giữa nữ và nam là không có ý nghĩa
thống kê.
Diễn giải:
Tỷ lệ nữ ở mức “rất quan tâm” thấp hơn nam, nhưng sự chênh lệch (0.7 điểm phần trăm) là rất nhỏ. Điều này cho thấy sự khác biệt có thể là do ngẫu nhiên và không phản ánh sự khác biệt thực sự trong toàn bộ quần thể.
Câu hỏi nghiên cứu:
Liệu giới tính (nam/nữ) có ảnh hưởng đến khả năng đạt mức “rất quan tâm”
hay không?
Mục tiêu:
So sánh xác suất đạt mức “rất quan tâm” giữa hai giới bằng tỷ số nguy cơ
(Relative Risk – RR).
Công thức tính:
\[ RR = \frac{P(\text{"Rất quan tâm"} \mid \text{Giới tính} = \text{Nữ})}{P(\text{"Rất quan tâm"} \mid \text{Giới tính} = \text{Nam})} \]
Trong đó:
Ý nghĩa:
Tính chỉ số Relative Risk:
riskratio(table_gender_concern)
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $data
##
## K quan tâm Hơi quan tâm Quan tâm vừa phải Rất quan tâm Total
## Nữ 36 54 17 2 109
## Nam 34 31 12 2 79
## Total 70 85 29 4 188
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Nữ 1.0000000 NA NA
## Nam 0.7948718 0.5856797 1.078783
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Nữ NA NA NA
## Nam 0.1337546 0.4864218 0.4904677
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tính tỷ lệ rất quan tâm:
Nữ: \[ \hat{p}_{\text{Rất quan tâm | Nữ}} = \frac{2}{109} \approx 0.0183 \]
Nam: \[ \hat{p}_{\text{Rất quan tâm | Nam}} = \frac{2}{79} \approx 0.0253 \]
Tỷ số nguy cơ:
\[ RR = \frac{\hat{p}_{\text{Rất quan tâm | Nữ}}}{\hat{p}_{\text{Rất quan tâm | Nam}}} = \frac{2/109}{2/79} = \frac{0.0183}{0.0253} \approx 0.7949 \]
Khoảng tin cậy 95%:
\[ CI = [0.5857;\ 1.0789] \]
Giá trị p-value:
Kết luận:
or_result3 <- oddsratio(table_gender_concern)
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
print(or_result3)
## $data
##
## K quan tâm Hơi quan tâm Quan tâm vừa phải Rất quan tâm Total
## Nữ 36 54 17 2 109
## Nam 34 31 12 2 79
## Total 70 85 29 4 188
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Nữ 1.0000000 NA NA
## Nam 0.6103751 0.3179094 1.163407
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Nữ NA NA NA
## Nam 0.1337546 0.4864218 0.4904677
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tính odds (tỷ lệ chéo) theo từng nhóm:
Nam: \[ \text{Odds}_{\text{Nam}} = \frac{2}{77} \approx 0.0260 \]
Nữ: \[ \text{Odds}_{\text{Nữ}} = \frac{2}{107} \approx 0.0187 \]
Tính Odds Ratio (OR):
\[ OR = \frac{\text{Odds}_{\text{Nữ}}}{\text{Odds}_{\text{Nam}}} = \frac{2/107}{2/79} = \frac{0.0187}{0.0260} \approx 0.6108 \]
Khoảng tin cậy 95%:
\[ CI = [0.3179 ; 1.1634] \]
Giả thuyết kiểm định:
Kết quả kiểm định:
Kết luận thống kê:
Vì các giá trị \(p > 0.05\), ta không bác bỏ giả thuyết \(H_0\).
\[ \Rightarrow \text{Chưa có đủ bằng chứng thống kê để khẳng định giới tính có liên hệ với mức “rất quan tâm”.} \]
Ý nghĩa:
Câu hỏi: Trường có tạo điều kiện nghiên cứu AI giúp sinh viên bớt lo ngại không?
Mục tiêu: Đánh giá ảnh hưởng của môi trường học thuật đến mức độ lo ngại về AI.
# Đổi nhãn tiếng Việt cho biến mức độ lo ngại
d$Concern.Level.VN <- factor(d$Concern.Level,
levels = c("Not concerned", "Slightly concerned", "Moderately concerned", "Highly concerned"),
labels = c("Không quan tâm", "Hơi quan tâm", "Quan tâm vừa phải", "Rất quan tâm"))
# Đổi nhãn tiếng Việt cho biến cơ hội nghiên cứu tại trường
d$Research.VN <- factor(d$Research.Opportunities,
levels = c("No", "Yes"),
labels = c("Không có", "Có"))
# Tạo bảng tần số chéo giữa Concern Level và Research Opportunities
table_concern_research <- table(d$Concern.Level.VN, d$Research.VN)
table_concern_research
##
## Không có Có
## Không quan tâm 33 37
## Hơi quan tâm 53 32
## Quan tâm vừa phải 18 11
## Rất quan tâm 1 3
# Tính tỷ lệ theo hàng
prop.table(table_concern_research, margin = 1)
##
## Không có Có
## Không quan tâm 0.4714286 0.5285714
## Hơi quan tâm 0.6235294 0.3764706
## Quan tâm vừa phải 0.6206897 0.3793103
## Rất quan tâm 0.2500000 0.7500000
Trong nhóm không quan tâm, 52.87% học tại trường có cơ hội nghiên cứu, 47.13% học tại trường không có cơ hội nghiên cứu.
Trong nhóm hơi quan tâm, 62.35% thuộc trường không có cơ hội nghiên cứu, chỉ 37.65% thuộc nhóm có hỗ trợ.
Với nhóm quan tâm vừa phải, tỷ lệ cũng nghiêng về phía không có nghiên cứu (62.07%).
Nhóm rất quan tâm thì ngược lại: có tới 75% học tại trường có hỗ trợ nghiên cứu, chỉ 25% thuộc trường không có
library(ggplot2)
# Tạo bảng dữ liệu từ bảng tần số chéo
df_concern_research <- as.data.frame(table(d$Concern.Level.VN, d$Research.VN))
colnames(df_concern_research) <- c("Mức độ lo ngại", "Cơ hội nghiên cứu", "Tần số")
# Vẽ biểu đồ cột chồng có nhãn số
ggplot(df_concern_research, aes(x = `Mức độ lo ngại`, y = `Tần số`, fill = `Cơ hội nghiên cứu`)) +
geom_bar(stat = "identity") +
geom_text(aes(label = `Tần số`),
position = position_stack(vjust = 0.5),
size = 4, color = "black", fontface = "bold") +
labs(title = "Biểu đồ cột chồng: Mức độ lo ngại × Cơ hội nghiên cứu tại trường",
x = "Mức độ lo ngại về AI",
y = "Tần số") +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
legend.title = element_text(face = "bold")
)
Giả thuyết kiểm định:
\(H_0\): Mức độ lo ngại về AI và việc trường có tạo điều kiện nghiên cứu là độc lập với nhau.
\(H_1\): Mức độ lo ngại về AI và việc trường có tạo điều kiện nghiên cứu là có liên hệ với nhau..
# Thực hiện kiểm định Chi-bình phương cho Cặp 4
chisq.test(table_concern_research)
## Warning in chisq.test(table_concern_research): Chi-squared approximation may be
## incorrect
##
## Pearson's Chi-squared test
##
## data: table_concern_research
## X-squared = 5.6088, df = 3, p-value = 0.1323
Kết quả kiểm định Chi-bình phương:
Cảnh báo:
Kiểm định có cảnh báo: — có thể do tần số kỳ vọng nhỏ trong một số
ô.
Kết luận thống kê:
Diễn giải:
Mặc dù bảng mô tả tần suất cho thấy một số xu hướng (ví dụ: nhóm
“không quan tâm” chiếm nhiều ở trường có nghiên cứu), nhưng sự khác biệt
này chưa đủ lớn để có ý nghĩa thống kê.
Do đó, trong phạm vi mẫu khảo sát, mức độ lo ngại và cơ
hội nghiên cứu tại trường có thể được xem là độc
lập.
So sánh tỷ lệ xuất hiện một đặc điểm nào đó giữa hai nhóm để xem sự khác biệt đó có ý nghĩa thống kê hay không?
# Lập bảng tần số chéo giữa Concern Level và Research Opportunities
table_concern_research <- table(d$Concern.Level.VN, d$Research.VN)
# Thêm tổng hàng và tổng cột
table_concern_research_margins <- addmargins(table_concern_research)
# Hiển thị bảng
table_concern_research_margins
##
## Không có Có Sum
## Không quan tâm 33 37 70
## Hơi quan tâm 53 32 85
## Quan tâm vừa phải 18 11 29
## Rất quan tâm 1 3 4
## Sum 105 83 188
Tỷ lệ sinh viên đạt mức “rất quan tâm” theo điều kiện nghiên cứu được ký hiệu như sau:
\(p_1 = P(\text{"Rất quan tâm"} \mid \text{Research} = \text{"Không có"})\): Tỷ lệ “rất quan tâm” trong nhóm không có cơ hội nghiên cứu.
\(p_2 = P(\text{"Rất quan tâm"} \mid \text{Research} = \text{"Có"})\): Tỷ lệ “rất quan tâm” trong nhóm có cơ hội nghiên cứu.
Giả thuyết kiểm định:
\(H_0: p_1 - p_2 = 0\): Không có sự khác biệt về tỷ lệ “rất quan tâm” giữa hai nhóm.
\(H_1: p_1 - p_2 > 0\): Tỷ lệ “rất quan tâm” cao hơn trong nhóm không có nghiên cứu.
# Số sinh viên "Rất quan tâm" theo điều kiện nghiên cứu
counts_concern_high <- c(table_concern_research["Rất quan tâm", "Không có"],
table_concern_research["Rất quan tâm", "Có"])
# Tổng số sinh viên theo từng nhóm điều kiện nghiên cứu
totals_research <- c(sum(table_concern_research[, "Không có"]),
sum(table_concern_research[, "Có"]))
# Kiểm định tỉ lệ một phía: nhóm "Không có" > nhóm "Có"
test_concern <- prop.test(counts_concern_high, totals_research,
alternative = "greater", correct = FALSE)
## Warning in prop.test(counts_concern_high, totals_research, alternative =
## "greater", : Chi-squared approximation may be incorrect
# Hiển thị kết quả
test_concern
##
## 2-sample test for equality of proportions without continuity correction
##
## data: counts_concern_high out of totals_research
## X-squared = 1.5776, df = 1, p-value = 0.8954
## alternative hypothesis: greater
## 95 percent confidence interval:
## -0.06375134 1.00000000
## sample estimates:
## prop 1 prop 2
## 0.00952381 0.03614458
Nhận xét, cách tính và ý nghĩa của hiệu tỷ lệ
Giả sử có kết quả kiểm định như sau:
Tỷ lệ trong nhóm không có nghiên cứu:
\[ \hat{p}_1 = \frac{1}{108} \approx 0.0095
\]
Tỷ lệ trong nhóm có nghiên cứu:
\[ \hat{p}_2 = \frac{3}{82} \approx 0.0361
\]
Hiệu tỷ lệ:
\[ \hat{p}_1 - \hat{p}_2 = 0.0095 - 0.0361 =
-0.0266 \]
Cách tính hiệu tỷ lệ
\[ \hat{p}_1 = \frac{x_1}{n_1}, \quad \hat{p}_2 = \frac{x_2}{n_2} \]
Trong đó:
Hiệu tỷ lệ:
\[ \hat{p}_1 - \hat{p}_2 \]
Kết quả kiểm định:
Kết luận:
Vì \(p > 0.05\), ta không
bác bỏ giả thuyết \(H_0\).
Sự khác biệt về tỷ lệ “rất quan tâm” giữa hai nhóm là không có ý
nghĩa thống kê.
Diễn giải:
Mặc dù tỷ lệ “rất quan tâm” ở nhóm không có cơ hội nghiên cứu thấp hơn nhóm có cơ hội, nhưng sự chênh lệch nhỏ này có thể do ngẫu nhiên. Kiểm định cho thấy không có bằng chứng thống kê rõ ràng về mối liên hệ giữa mức độ lo ngại và điều kiện nghiên cứu tại trường.
Câu hỏi nghiên cứu:
Liệu việc trường có tạo điều kiện nghiên cứu AI có ảnh hưởng đến khả
năng sinh viên đạt mức “rất quan tâm” về AI hay không?
Mục tiêu:
So sánh xác suất đạt mức “rất quan tâm” giữa hai nhóm sinh viên:
Công thức tính:
\[ RR = \frac{P(\text{"Rất quan tâm"} \mid \text{Research} = \text{"Không có"})}{P(\text{"Rất quan tâm"} \mid \text{Research} = \text{"Có"})} \]
Trong đó:
Ý nghĩa:
Tính Relative Risk
riskratio(table_concern_research)
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $data
##
## Không có Có Total
## Không quan tâm 33 37 70
## Hơi quan tâm 53 32 85
## Quan tâm vừa phải 18 11 29
## Rất quan tâm 1 3 4
## Total 105 83 188
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Không quan tâm 1.0000000 NA NA
## Hơi quan tâm 0.7122417 0.5009814 1.012589
## Quan tâm vừa phải 0.7176142 0.4285754 1.201586
## Rất quan tâm 1.4189189 0.7728940 2.604925
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Không quan tâm NA NA NA
## Hơi quan tâm 0.0610754 0.0741027 0.05793474
## Quan tâm vừa phải 0.1860595 0.1928704 0.17624606
## Rất quan tâm 0.4507981 0.6197027 0.38742905
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ rất quan tâm:
Nhóm không có cơ hội nghiên cứu:
\[ \hat{p}_{\text{Không có}} = \frac{1}{105}
\approx 0.0095 \]
Nhóm có cơ hội nghiên cứu:
\[ \hat{p}_{\text{Có}} = \frac{3}{83} \approx
0.0361 \]
Tỷ số nguy cơ:
\[ RR = \frac{0.0095}{0.0361} \approx 0.2626 \]
Tuy nhiên, theo kết quả từ riskratio()
:
\[ RR = 1.4189 \]
Khoảng tin cậy 95%:
\[ CI = [0.7729 ; 2.6049] \]
Kết quả kiểm định (two-sided):
Kết luận:
Diễn giải:
Tuy dữ liệu mô tả cho thấy tỷ lệ “rất quan tâm” cao hơn ở nhóm có cơ
hội nghiên cứu, nhưng sự khác biệt này không có ý nghĩa thống
kê.
Điều đó cho thấy việc trường có hỗ trợ nghiên cứu chưa chắc ảnh
hưởng rõ rệt đến mức độ lo ngại cao nhất của sinh viên.
or_result2 <- oddsratio(table_concern_research)
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
print(or_result2)
## $data
##
## Không có Có Total
## Không quan tâm 33 37 70
## Hơi quan tâm 53 32 85
## Quan tâm vừa phải 18 11 29
## Rất quan tâm 1 3 4
## Total 105 83 188
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Không quan tâm 1.0000000 NA NA
## Hơi quan tâm 0.5413791 0.2820595 1.028831
## Quan tâm vừa phải 0.5506836 0.2199945 1.329626
## Rất quan tâm 2.4387181 0.2686004 72.435513
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Không quan tâm NA NA NA
## Hơi quan tâm 0.0610754 0.0741027 0.05793474
## Quan tâm vừa phải 0.1860595 0.1928704 0.17624606
## Rất quan tâm 0.4507981 0.6197027 0.38742905
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tính odds (tỷ lệ chéo) theo từng nhóm
Không có cơ hội nghiên cứu:
\[
\text{Odds}_{\text{Không có}} = \frac{1}{104} \approx 0.0096
\]
Có cơ hội nghiên cứu:
\[
\text{Odds}_{\text{Có}} = \frac{3}{80} \approx 0.0375
\]
Tính Odds Ratio (OR)
\[ OR = \frac{\text{Odds}_{\text{Có}}}{\text{Odds}_{\text{Không có}}} = \frac{3/80}{1/104} \approx 2.4387 \]
Khoảng tin cậy 95%:
\[ CI = \left[ 0.2686 ; 72.4355 \right] \]
Giả thuyết kiểm định
Kết quả kiểm định
Kết luận thống kê
Vì tất cả các giá trị \(p > 0.05\), ta không bác bỏ giả thuyết \(H_0\).
\[ \Rightarrow \text{Không có đủ bằng chứng thống kê để khẳng định rằng điều kiện nghiên cứu ảnh hưởng đến odds của mức “rất quan tâm”.} \]
Ý nghĩa
Mô hình Logit : Là một mô hình hồi quy dùng để dự đoán xác suất xảy ra của một sự kiện nhị phân (chỉ có 2 trạng thái: 1/0, Yes/No, Thành công/Thất bại).
Mục tiêu: Phân tích xem giới tính (Gender) có ảnh hưởng đến khả năng sinh viên thay đổi kế hoạch nghề nghiệp vì AI.
Biến phụ thuộc: career_plan_binary
1 = Yes (có thay đổi kế hoạch)
0 = No (không thay đổi kế hoạch)
Biến giải thích: gender_binary
0 = Male
1 = Female
Công thức tổng quát mô hình
\[ \log\left(\frac{P(\text{career\_plan\_binary}=1)}{1 - P(\text{career\_plan\_binary}=1)}\right) \]
# Chuẩn hóa tên cột: thay khoảng trắng bằng dấu chấm
names(d) <- gsub(" ", ".", names(d))
# Làm sạch dữ liệu
d$Impact.of.AI.on.Career.Plans <- trimws(tolower(as.character(d$Impact.of.AI.on.Career.Plans)))
d$Gender <- trimws(tolower(as.character(d$Gender)))
# Tạo biến nhị phân
d$career_plan_binary <- ifelse(d$Impact.of.AI.on.Career.Plans == "yes", 1,
ifelse(is.na(d$Impact.of.AI.on.Career.Plans), NA, 0))
d$gender_binary <- ifelse(d$Gender == "female", 1,
ifelse(is.na(d$Gender), NA, 0))
# Loại bỏ dòng có NA
d_clean <- na.omit(d[, c("career_plan_binary", "gender_binary")])
# Kiểm tra trước khi chạy logit
if (nrow(d_clean) == 0) stop("Không còn dòng dữ liệu sau khi loại NA.")
if (length(unique(d_clean$career_plan_binary)) < 2) stop("Biến phụ thuộc chỉ có 1 giá trị.")
# Chạy mô hình logit
model_logit2 <- glm(career_plan_binary ~ gender_binary,
data = d_clean,
family = binomial(link = "logit"))
# Hiển thị kết quả
summary(model_logit2)
##
## Call:
## glm(formula = career_plan_binary ~ gender_binary, family = binomial(link = "logit"),
## data = d_clean)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.5447 0.2334 2.334 0.0196 *
## gender_binary -0.1163 0.3048 -0.381 0.7028
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 250.23 on 187 degrees of freedom
## Residual deviance: 250.08 on 186 degrees of freedom
## AIC: 254.08
##
## Number of Fisher Scoring iterations: 4
Nhận xét
Hệ số chặn (Intercept) là 0.5447, còn hệ số của biến gender_binary là -0.1163. Tuy nhiên, hệ số gender_binary không có ý nghĩa thống kê (p-value = 0.7028). Điều này cho thấy rằng giới tính không ảnh hưởng đáng kể đến khả năng sinh viên thay đổi kế hoạch nghề nghiệp do AI.
Công thức hồi quy logistic thu được từ mô hình là: \[ \log\left(\frac{P(\text{career\_plan} = 1)}{1 - P(\text{career\_plan} = 1)}\right) = 0.5447 - 0.1163 \cdot gender\_binary \]
Trong đó:
Xác suất và Biến giải thích
Mức độ phù hợp của mô hình
Null deviance: 250.23
Thể hiện sai số log-likelihood của mô hình chỉ chứa hệ số chặn
(Intercept). Đây là mức sai số khi chưa có biến giải thích nào được đưa
vào mô hình.
Residual deviance: 250.08
Là sai số log-likelihood sau khi đưa biến \(gender\_binary\) vào mô hình. Giá trị này
giảm rất ít (từ 250.23 xuống 250.08), cho thấy biến \(gender\_binary\) gần như không cải thiện
khả năng dự đoán của mô hình.
AIC = 254.08
Chỉ số AIC (Akaike Information Criterion) dùng để so sánh mức độ phù hợp
giữa các mô hình. Giá trị AIC ở đây khá cao, gợi ý rằng mô hình này còn
đơn giản và có thể cải thiện bằng cách thêm các biến giải thích
khác.
Đánh giá tổng quan
Mục tiêu: phân tích xem việc đánh giá giới tính (Gender) có ảnh hưởng như thế nào đến mức độ lo lắng của sinh viên trước tác động của AI.
Biến phụ thuộc (Anxiety Level) có 4 mức độ phân loại:
No anxiety (không lo lắng)
Slight anxiety (hơi lo lắng)
Moderate anxiety (lo lắng vừa phải)
High anxiety (lo lắng cao)
Biến giải thích (Gender) được mã hóa nhị phân:
gender_binary = 0 nếu Male
gender_binary = 1 nếu Female
Vì biến phụ thuộc không phải là nhị phân, ta sử dụng mô hình hồi quy logistic đa thức (multinomial logistic regression) để mô hình hóa mối quan hệ.
Chọn No anxiety làm nhóm tham chiếu, mô hình hồi quy logistic đa thức được biểu diễn như sau:
\[ \log\left(\frac{P(Y = k)}{P(Y = \text{No anxiety})}\right) = \beta_{0k} + \beta_{1k} \cdot \text{gender\_binary} \]
Trong đó:
\(P(Y = k)\): Xác suất sinh viên thuộc mức độ lo lắng \(k\), với \(k \in \{\text{Slight anxiety}, \text{Moderate anxiety}, \text{High anxiety}\}\)
\(P(Y = \text{No anxiety})\): Xác suất sinh viên không lo lắng (nhóm tham chiếu)
\(\beta_{0k}\): Hệ số chặn (intercept) cho mức độ lo lắng \(k\)
\(\beta_{1k}\): Hệ số hồi quy cho biến gender_binary tại mức \(k\)
gender_binary: Biến độc lập, được mã hóa:
\[ gender\_binary = \begin{cases} 0, & \text{nếu giới tính là Nam}\\ 1, & \text{nếu giới tính là Nữ} \end{cases} \]
# Cài gói cần thiết
if (!require(nnet)) install.packages("nnet")
## Loading required package: nnet
if (!require(broom)) install.packages("broom")
## Loading required package: broom
library(nnet)
library(broom)
# Chạy mô hình multinom
model_multinom <- multinom(Anxiety.Level ~ gender_binary, data = d)
## # weights: 12 (6 variable)
## initial value 260.623340
## iter 10 value 217.575818
## final value 217.549503
## converged
# Tóm tắt mô hình
summary_model <- summary(model_multinom)
# Tính z-value và p-value
z_values <- summary_model$coefficients / summary_model$standard.errors
p_values <- 2 * (1 - pnorm(abs(z_values)))
# Gộp kết quả thành bảng đẹp
result_table <- as.data.frame(cbind(
Estimate = round(summary_model$coefficients, 4),
`Std. Error` = round(summary_model$standard.errors, 4),
`z value` = round(z_values, 3),
`Pr(>|z|)` = signif(p_values, 3)
))
# Hiển thị bảng kết quả
print(result_table)
## (Intercept) gender_binary (Intercept) gender_binary
## Moderate anxiety 0.4520 1.8506 0.4835 0.8853
## No anxiety 1.4553 1.4625 0.4197 0.8386
## Slight anxiety 1.4881 1.7308 0.4185 0.8337
## (Intercept) gender_binary (Intercept) gender_binary
## Moderate anxiety 0.935 2.090 0.350000 0.0366
## No anxiety 3.467 1.744 0.000526 0.0812
## Slight anxiety 3.556 2.076 0.000377 0.0379
# Tự tính Null Deviance (log-likelihood của mô hình chỉ có intercept)
# Mô hình null: chỉ intercept
model_null <- multinom(Anxiety.Level ~ 1, data = d, trace = FALSE)
# Null deviance và degrees of freedom
null_deviance <- -2 * logLik(model_null)
residual_deviance <- -2 * logLik(model_multinom)
df_null <- attr(logLik(model_null), "df")
df_residual <- attr(logLik(model_multinom), "df")
# AIC
aic_value <- AIC(model_multinom)
# Hiển thị thông tin deviance & AIC
cat("\nNull deviance: ", round(null_deviance, 3), " on ", df_null, " degrees of freedom\n")
##
## Null deviance: 441.115 on 3 degrees of freedom
cat("Residual deviance: ", round(residual_deviance, 3), " on ", df_residual, " degrees of freedom\n")
## Residual deviance: 435.099 on 6 degrees of freedom
cat("AIC: ", round(aic_value, 3), "\n")
## AIC: 447.099
cat("Number of Fisher Scoring iterations: ", model_multinom$iter, "\n")
## Number of Fisher Scoring iterations:
Ý nghĩa
Anxiety Level | Intercept (β₀k) | gender_binary (β₁k) | p-value gender_binary |
---|---|---|---|
Moderate anxiety | 0.4520 | 1.8506 | 0.0366 (*) |
No anxiety | 1.4553 | 1.4625 | 0.0812 (.) |
Slight anxiety | 1.4881 | 1.7308 | 0.0379 (*) |
Intercept (β₀k): log-odds của từng mức Anxiety khi gender_binary = 0 (nam).
gender_binary (β₁k): thay đổi log-odds khi chuyển từ nam (gender_binary = 0) sang nữ (gender_binary = 1).
Chuyển đổi sang Odds Ratio (OR):
Để hiểu dễ hơn, ta lấy exp(β₁k)
Anxiety Level | β₁k | exp(β₁k) (OR) | Ý nghĩa |
---|---|---|---|
Moderate anxiety | 1.8506 | 6.36 | Nữ có gấp ~6.4 lần odds rơi vào Moderate anxiety so với nam |
No anxiety | 1.4625 | 4.31 | Nữ có odds cao hơn ~4.3 lần rơi vào No anxiety so với nam |
Slight anxiety | 1.7308 | 5.65 | Nữ có odds cao hơn ~5.7 lần rơi vào Slight anxiety so với nam |
Ý nghĩa
Moderate anxiety: p = 0.0366 (< 0.05) → có ý nghĩa thống kê.
Slight anxiety: p = 0.0379 (< 0.05) → có ý nghĩa thống kê.
No anxiety: p = 0.0812 (> 0.05 nhưng < 0.1) → gần có ý nghĩa (marginal significance).
=> Như vậy, giới tính có ảnh hưởng đáng kể đến khả năng rơi vào Slight/Moderate anxiety. Với No anxiety thì yếu hơn.
Bảng thông số
Thông số | Giá trị | Ý nghĩa |
---|---|---|
Null deviance | 441.115 (df=3) | Sai số log-likelihood của mô hình chỉ có Intercept (chưa có gender_binary). |
Residual deviance | 435.099 (df=6) | Sai số log-likelihood sau khi thêm gender_binary. Giảm → mô hình cải thiện. |
AIC | 447.099 | Chỉ số đánh giá mô hình. Thấp hơn nghĩa là mô hình tốt hơn. |
Fisher iterations | 10 | Số lần lặp để tối ưu hóa mô hình. |
Sự cải thiện của mô hình - Null deviance – Residual deviance = 441.115 – 435.099 = 6.016
Kết luận
Gender có ảnh hưởng đến Anxiety Level, đặc biệt ở Slight và Moderate anxiety.
Nữ có odds cao hơn đáng kể so với nam rơi vào Slight và Moderate anxiety.
Tuy nhiên, mức độ cải thiện của mô hình tổng thể (giảm deviance) không quá lớn, cần thêm các biến khác (ví dụ: tuổi, năm học) để cải thiện dự đoán.
Mục tiêu Phân tích xem giới tính của sinh viên có ảnh hưởng đến xác suất rơi vào từng mức độ lo lắng (Anxiety Level) hay không, sử dụng mô hình Probit đa thức (multinomial Probit).
Dữ liệu
Biến phụ thuộc: anxiety_level (4 mức độ phân loại: No anxiety, Slight anxiety, Moderate anxiety, High anxiety)
Biến giải thích: gender_binary (mã hóa: 0 = Nữ (Female), 1 = Nam (Male))
Công thức tổng quát của mô hình Probit \[ P(Y=1 \mid Gender) = \Phi(\beta_0 + \beta_1 \cdot Gender) \]
Trong đó:# Tạo biến nhị phân: 1 nếu High anxiety, 0 nếu còn lại
d$anxiety_binary <- ifelse(d$Anxiety.Level == "High anxiety", 1, 0)
# Chạy mô hình Probit
model_probit <- glm(anxiety_binary ~ Gender,
data = d,
family = binomial(link = "probit"))
# Xem kết quả
summary(model_probit)
##
## Call:
## glm(formula = anxiety_binary ~ Gender, family = binomial(link = "probit"),
## data = d)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.0891 0.2857 -7.313 2.61e-13 ***
## Gendermale 0.7397 0.3483 2.124 0.0337 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 72.268 on 187 degrees of freedom
## Residual deviance: 67.246 on 186 degrees of freedom
## AIC: 71.246
##
## Number of Fisher Scoring iterations: 6
Ý nghĩa các hệ số
Biến | Estimate | Std. Error | z value | p-value | Ý nghĩa |
---|---|---|---|---|---|
Intercept | -2.0891 | 0.2857 | -7.313 | 2.61e-13*** | Log-odds của Nữ (mặc định trong R là baseline) rơi vào nhóm “High anxiety”. |
Gendermale | 0.7397 | 0.3483 | 2.124 | 0.0337 * | So với Nữ, Nam có log-odds cao hơn 0.7397 để rơi vào “High anxiety”. |
Vì p-value < 0.05:
Hệ số Gendermale có ý nghĩa thống kê ở mức 5%.
Nam có xác suất cao hơn nữ để rơi vào mức High anxiety.
Thống kê mô hình
Thống kê | Giá trị | Ý nghĩa |
---|---|---|
Null deviance | 72.268 | Sai số khi không có biến giải thích. |
Residual deviance | 67.246 | Sai số sau khi thêm biến Gender. |
Giảm deviance | 5.022 | Mô hình cải thiện đáng kể. |
AIC | 71.246 | Để so sánh mức phù hợp với các mô hình khác. |