library(xlsx)
## Warning: package 'xlsx' was built under R version 4.4.3
# Đọc sheet đầu tiên
data <- read.xlsx(file = "C:/Users/Admin/Downloads/SAP-4000.xlsx", sheetIndex = 1, header = T)
head(data)
## Gender HoursStudied.Week Tutoring Region Attendance... Parent.Education
## 1 Male 5.5 No Urban 72.7 Tertiary
## 2 Female 6.8 No Urban 62.0 Primary
## 3 Female 9.7 No Rural 95.0 Secondary
## 4 Male 13.3 Yes Rural 52.9 None
## 5 Female 8.9 No Urban 50.8 None
## 6 Female 7.9 No Urban 73.7 Tertiary
## Exam_Score
## 1 43.5
## 2 51.7
## 3 70.1
## 4 79.5
## 5 52.2
## 6 58.8
str(data)
## 'data.frame': 4000 obs. of 7 variables:
## $ Gender : chr "Male" "Female" "Female" "Male" ...
## $ HoursStudied.Week: num 5.5 6.8 9.7 13.3 8.9 7.9 7.6 12.3 10.6 9.9 ...
## $ Tutoring : chr "No" "No" "No" "Yes" ...
## $ Region : chr "Urban" "Urban" "Rural" "Rural" ...
## $ Attendance... : num 72.7 62 95 52.9 50.8 73.7 79.5 98.4 72.3 73.2 ...
## $ Parent.Education : chr "Tertiary" "Primary" "Secondary" "None" ...
## $ Exam_Score : num 43.5 51.7 70.1 79.5 52.2 58.8 64.8 100 87.8 67 ...
summary(data)
## Gender HoursStudied.Week Tutoring Region
## Length:4000 Min. : 0.000 Length:4000 Length:4000
## Class :character 1st Qu.: 7.400 Class :character Class :character
## Mode :character Median : 9.900 Mode :character Mode :character
## Mean : 9.861
## 3rd Qu.:12.600
## Max. :16.000
## Attendance... Parent.Education Exam_Score
## Min. : 50.00 Length:4000 Min. : 16.60
## 1st Qu.: 62.60 Class :character 1st Qu.: 59.30
## Median : 75.60 Mode :character Median : 71.55
## Mean : 75.22 Mean : 71.11
## 3rd Qu.: 87.70 3rd Qu.: 83.50
## Max. :100.00 Max. :100.00
# Bước 2: Chuyển đổi các biến phân loại thành dạng factor
data$Gender <- as.factor(data$Gender)
data$Tutoring <- as.factor(data$Tutoring)
data$Region <- as.factor(data$Region)
data$Parent.Education <- as.factor(data$Parent.Education)
Bộ dữ liệu SAP-4000 gồm 4.000 quan sát, phản ánh thông tin học tập của học sinh thông qua nhiều khía cạnh như giới tính, thời gian học, tham gia học thêm, khu vực sinh sống, tỉ lệ chuyên cần, trình độ học vấn của phụ huynh và điểm thi. Đây là một tập dữ liệu giả lập (synthetic dataset) phù hợp cho các phân tích thống kê và mô hình hồi quy trong R.
Tên biến Kiểu dữ liệu Mô tả ngắn gọn Gender Nhân tố (chr) Giới tính của học sinh: “Male” hoặc “Female”. HoursStudied.Week Số thực (num) Số giờ học trung bình mỗi tuần. Tutoring Nhân tố (chr) Học sinh có tham gia học thêm hay không: “Yes” hoặc “No”. Region Nhân tố (chr) Khu vực cư trú của học sinh: “Urban” (thành thị) hoặc “Rural” (nông thôn). Attendance… Số thực (num) Tỷ lệ chuyên cần (%), phản ánh số buổi có mặt trên tổng số buổi học. Parent.Education Nhân tố (chr) Trình độ học vấn cao nhất của phụ huynh: “None”, “Primary”, “Secondary”, “Tertiary”. Exam_Score Số thực (num) Điểm thi cuối kỳ của học sinh (thang điểm 100).
Biến phụ thuộc chính: Exam_Score là biến mục tiêu, phản ánh kết quả học tập, được dự đoán dựa trên các yếu tố khác.
Tính đại diện: Với 4.000 quan sát, bộ dữ liệu đủ lớn để đảm bảo tính đại diện và ổn định trong phân tích thống kê.
# Kiểm tra lại kiểu dữ liệu sau khi chuyển đổi
str(data)
## 'data.frame': 4000 obs. of 7 variables:
## $ Gender : Factor w/ 2 levels "Female","Male": 2 1 1 2 1 1 1 1 1 1 ...
## $ HoursStudied.Week: num 5.5 6.8 9.7 13.3 8.9 7.9 7.6 12.3 10.6 9.9 ...
## $ Tutoring : Factor w/ 2 levels "No","Yes": 1 1 1 2 1 1 1 2 2 1 ...
## $ Region : Factor w/ 2 levels "Rural","Urban": 2 2 1 1 2 2 2 2 1 1 ...
## $ Attendance... : num 72.7 62 95 52.9 50.8 73.7 79.5 98.4 72.3 73.2 ...
## $ Parent.Education : Factor w/ 4 levels "None","Primary",..: 4 2 3 1 1 4 3 3 2 4 ...
## $ Exam_Score : num 43.5 51.7 70.1 79.5 52.2 58.8 64.8 100 87.8 67 ...
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
# Biểu đồ tần số giới tính
ggplot(data, aes(x = Gender)) +
geom_bar(fill = "steelblue") +
labs(title = "Phân bố giới tính", x = "Giới tính", y = "Tần số")
Biểu đồ cột đầu tiên thể hiện phân bố giới tính của đối tượng khảo sát. Kết quả cho thấy số lượng nữ giới (Female) cao hơn một chút so với nam giới (Male). Cụ thể, số nữ chiếm hơn 2.000 người trong khi nam giới là gần 2.000 người. Sự chênh lệch này không lớn, cho thấy dữ liệu có tính cân bằng giới tương đối tốt và có thể đại diện khá khách quan cho cả hai nhóm giới tính.
Sự cân bằng giới tính trong dữ liệu này là một yếu tố tích cực trong nghiên cứu xã hội học, vì nó giúp giảm thiểu sai lệch do giới và đảm bảo rằng các phân tích tiếp theo có thể phản ánh đúng thực trạng chung.
# Biểu đồ tròn theo khu vực
pie(table(data$Region), labels = paste0(names(table(data$Region)), ": ", round(prop.table(table(data$Region)) * 100, 1), "%"),
main = "Biểu đồ tròn phân bố khu vực")
Biểu đồ tròn thứ hai cho thấy sự phân bố theo khu vực sinh sống, cụ thể giữa hai nhóm: Urban (đô thị) và Rural (nông thôn). Theo biểu đồ, khoảng 60,6% đối tượng khảo sát sống ở khu vực đô thị, trong khi 39,4% còn lại sống ở nông thôn.
Điều này phản ánh một thực trạng phổ biến ở nhiều quốc gia đang phát triển: quá trình đô thị hóa nhanh chóng đã khiến dân số đô thị chiếm tỷ trọng lớn hơn. Tuy nhiên, tỷ lệ gần 40% ở nông thôn cũng cho thấy khu vực này vẫn đóng vai trò đáng kể và cần được chú trọng trong chính sách xã hội, đặc biệt trong giáo dục và phát triển cộng đồng.
# Biểu đồ cột trình độ học vấn của phụ huynh
ggplot(data, aes(x = Parent.Education)) +
geom_bar(fill = "coral") +
labs(title = "Trình độ học vấn của phụ huynh", x = "Trình độ", y = "Tần số")
Biểu đồ cột thứ ba thể hiện trình độ học vấn của phụ huynh. Các mức trình độ được chia thành bốn nhóm: None (không học), Primary (tiểu học), Secondary (trung học) và Tertiary (cao đẳng/đại học trở lên). Kết quả cho thấy:
Trình độ Secondary chiếm tỷ lệ cao nhất, với hơn 1.600 người.
Theo sau là trình độ Tertiary, với khoảng 1.200 người.
Trình độ Primary thấp hơn, khoảng 800 người.
Nhóm None có số lượng ít nhất, dưới 500 người.
Điều này cho thấy đa số phụ huynh có ít nhất trình độ trung học trở lên, điều này có thể liên quan mật thiết đến khả năng hỗ trợ con cái trong học tập cũng như tác động đến nhận thức giáo dục trong gia đình. Tuy nhiên, vẫn còn một bộ phận không nhỏ phụ huynh có trình độ học vấn thấp, điều này đặt ra yêu cầu cho các chương trình giáo dục cộng đồng và hỗ trợ phụ huynh trong việc đồng hành cùng con cái.
# Biểu đồ cột trình độ học vấn của phụ huynh
ggplot(data, aes(x = Tutoring)) +
geom_bar(fill = "blue") +
labs(title = "bieu do", x = "Hoc them", y = "Tần số")
Biểu đồ thể hiện sự phân bố số lượng học sinh theo hai nhóm: có học thêm (Yes) và không học thêm (No). Quan sát biểu đồ cho thấy:
Số lượng học sinh không học thêm chiếm tỷ lệ lớn hơn đáng kể, với khoảng gần 3.000 học sinh.
Trong khi đó, nhóm học sinh có học thêm chỉ chiếm khoảng hơn 1.000 học sinh.
Sự chênh lệch này cho thấy phần lớn học sinh trong tập dữ liệu không tham gia các lớp học thêm. Nhóm học thêm chỉ chiếm khoảng một phần ba so với nhóm không học thêm.
Dữ liệu này cho thấy một xu hướng rõ ràng về lựa chọn học thêm của học sinh trong phạm vi khảo sát.
ES <- table(data$Gender, data$Exam_Score)
chisq.test(ES)
## Warning in chisq.test(ES): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: ES
## X-squared = 653.92, df = 679, p-value = 0.7489
Nhận xét kết quả kiểm định Chi bình phương giữa giới tính và thu nhập Kết quả kiểm định Chi bình phương cho thấy:
Giá trị thống kê Chi-squared = 653.92
Bậc tự do (df) = 679
Giá trị p (p-value) = 0.7489
Với p-value = 0.7489, lớn hơn mức ý nghĩa thường dùng (ví dụ: 0.05), chúng ta không có đủ bằng chứng để bác bỏ giả thuyết H₀.
👉 Kết luận: Không có mối liên hệ có ý nghĩa thống kê giữa giới tính và thu nhập trong bộ dữ liệu này. Nói cách khác, thu nhập không có sự khác biệt đáng kể theo giới tính.
ET <- table(data$Tutoring, data$Exam_Score)
chisq.test(ET)
## Warning in chisq.test(ET): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: ET
## X-squared = 1211.9, df = 679, p-value < 2.2e-16
Kết quả kiểm định Chi bình phương cho thấy:
Giá trị thống kê Chi-squared = 1211.9
Bậc tự do (df) = 679
Giá trị p (p-value) < 2.2e-16
Với p-value rất nhỏ (gần bằng 0), nhỏ hơn rất nhiều so với mức ý nghĩa thường dùng (ví dụ: 0.05), chúng ta có đủ bằng chứng để bác bỏ giả thuyết H₀.
👉 Kết luận: Có mối liên hệ có ý nghĩa thống kê giữa việc học thêm và điểm số. Điều này cho thấy điểm số của học sinh có sự khác biệt rõ rệt giữa các nhóm học thêm và không học thêm.
# ước lượng khoảng tin cậy cho so gio hoc trung binh
gio_conf <- t.test(data$HoursStudied.Week, conf.level = 0.95)
gio_conf
##
## One Sample t-test
##
## data: data$HoursStudied.Week
## t = 167.93, df = 3999, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 9.74590 9.97615
## sample estimates:
## mean of x
## 9.861025
Giá trị trung bình mẫu: 9.861 giờ/tuần
Khoảng tin cậy 95% cho trung bình: từ 9.74590 đến 9.97615 giờ/tuần
Số quan sát (df = 3999) → cỡ mẫu là 4.000 học sinh
Giá trị t = 167.93 (rất lớn)
p-value < 2.2e-16 (rất nhỏ)
Trung bình số giờ học mỗi tuần của học sinh là khoảng 9.86 giờ. Với mức tin cậy 95%, chúng ta có thể nói rằng trung bình thực sự của toàn bộ quần thể học sinh nằm trong khoảng từ 9.75 đến 9.98 giờ mỗi tuần. Do p-value < 0.05, ta bác bỏ giả thuyết H₀ (mean = 0).
Như vậy, số giờ học trung bình mỗi tuần khác khác 0 một cách có ý nghĩa thống kê, điều hiển nhiên nhưng được xác nhận bằng kiểm định.
data$HoursStudied.Week <- as.numeric(data$HoursStudied.Week)
hours_test <- t.test(HoursStudied.Week ~ Gender, data = data)
hours_test
##
## Welch Two Sample t-test
##
## data: HoursStudied.Week by Gender
## t = -1.4366, df = 3973.3, p-value = 0.1509
## alternative hypothesis: true difference in means between group Female and group Male is not equal to 0
## 95 percent confidence interval:
## -0.39930265 0.06158556
## sample estimates:
## mean in group Female mean in group Male
## 9.778284 9.947143
Trung bình giờ học/tuần:
Nữ (Female): 9.778 giờ
Nam (Male): 9.947 giờ
Hiệu số trung bình: khoảng -0.17 giờ, tức nữ học ít hơn nam.
Khoảng tin cậy 95% cho hiệu số trung bình: Từ -0.3993 đến 0.0616 giờ
Giá trị t = -1.4366, bậc tự do ≈ 3973.3
p-value = 0.1509
Do p-value = 0.1509 > 0.05, ta không có đủ bằng chứng để bác bỏ giả thuyết H₀ (rằng không có sự khác biệt trung bình giữa hai nhóm).
Khoảng tin cậy cho hiệu số trung bình bao gồm giá trị 0, điều này càng củng cố kết luận rằng sự khác biệt giữa nam và nữ là không có ý nghĩa thống kê.
👉 Không có sự khác biệt có ý nghĩa thống kê về số giờ học trung bình mỗi tuần giữa nam và nữ trong tập dữ liệu này. Mặc dù nam học trung bình cao hơn nữ khoảng 0.17 giờ, nhưng sự chênh lệch này không đủ lớn để được xem là đáng kể về mặt thống kê.