d <- read.csv("D:\\Downloads\\StudentsPerformance.csv", header = T)

1 Tổng quan về bộ dữ liệu

str(d)
## 'data.frame':    1000 obs. of  8 variables:
##  $ gender                     : chr  "female" "female" "female" "male" ...
##  $ race.ethnicity             : chr  "group B" "group C" "group B" "group A" ...
##  $ parental.level.of.education: chr  "bachelor's degree" "some college" "master's degree" "associate's degree" ...
##  $ lunch                      : chr  "standard" "standard" "standard" "free/reduced" ...
##  $ test.preparation.course    : chr  "none" "completed" "none" "none" ...
##  $ math.score                 : int  72 69 90 47 76 71 88 40 64 38 ...
##  $ reading.score              : int  72 90 95 57 78 83 95 43 64 60 ...
##  $ writing.score              : int  74 88 93 44 75 78 92 39 67 50 ...

Bộ dữ liệu Student Performance in Exams là một tập dữ liệu giáo dục phổ biến, được đăng tải trên nền tảng Kaggle, ghi lại thông tin cá nhân cơ bản và kết quả học tập của học sinh trung học trong ba môn thi quan trọng: Toán (Math), Đọc hiểu (Reading) và Viết (Writing). Bộ dữ liệu này bao gồm 1000 học sinh và 8 biến đặc trưng (5 biến định tính và 3 biến định lượng), phản ánh tổng hợp các yếu tố liên quan đến học tập và điều kiện xã hội của từng học sinh.

Ý nghĩa các biến

  • gender: Giới tính của học sinh, gồm hai giá trị: male (nam) và female (nữ).

  • race/ethnicity: Nhóm dân tộc/xã hội của học sinh, được phân loại từ group A đến group E. Việc phân nhóm này tạo điều kiện cho việc phân tích xu hướng học tập giữa các nhóm xã hội khác nhau và đánh giá sự công bằng trong tiếp cận giáo dục.

  • Trình độ học vấn cao nhất của cha mẹ học sinh. Các giá trị gồm: some high school, high school, some college, associate’s degree, bachelor’s degree, master’s degree, Đây là yếu tố quan trọng phản ánh môi trường giáo dục gia đình và ảnh hưởng tiềm năng đến kết quả học tập của học sinh.

  • lunch: cho biết học sinh nhận được loại bữa trưa nào – standard (tiêu chuẩn) hoặc free/reduced (miễn/giảm giá). Đây là chỉ báo gián tiếp về tình trạng kinh tế xã hội của học sinh, giúp phân tích ảnh hưởng của điều kiện sống đến thành tích học tập.

  • test preparation course: ghi nhận học sinh có hoàn thành khóa luyện thi trước kỳ kiểm tra hay không (completed hoặc none). Đây là biến có thể phản ánh mức độ sẵn sàng và nỗ lực học tập, đồng thời cho phép đánh giá hiệu quả của các chương trình hỗ trợ học tập.

  • math score: điểm số môn Toán của học sinh, đánh giá năng lực tính toán và tư duy logic.

  • reading score: điểm đọc hiểu của học sinh, phản ánh khả năng tiếp nhận, phân tích và diễn giải thông tin văn bản.

  • writing score: điểm viết của học sinh, đánh giá trình độ ngôn ngữ, khả năng biểu đạt tư duy và sự phát triển toàn diện về mặt ngôn ngữ học thuật.

2 Thống kê mô tả cho một biến định tính

2.1 Biến gender

Thống kê tần suất

table(d$gender)
## 
## female   male 
##    518    482
table(d$gender)/length(d$gender)
## 
## female   male 
##  0.518  0.482

Trực quan hóa

gender_count <- d %>%
  count(gender) %>%
  mutate(prop = n / sum(n),
         label = paste0(gender, " (", scales::percent(prop)))

gender_percent <- gender_count %>%
  mutate(Percentage = round(prop * 100, 2))

ggplot(gender_percent, aes(x = "", y = Percentage, fill = gender)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  geom_text(aes(label = paste0(Percentage, "%")), position = position_stack(vjust = 0.5)) +
  labs(title = "Tỷ lệ học sinh theo giới tính") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Nhận xét

Tỷ lệ học sinh nam (51.8%) và nữ (48.2%) gần như cân bằng, cho thấy sự phân bố khá đồng đều giữa hai giới tính trong tông số học sinh.

2.2 Biến race/ethnicity

Thống kê tần suất

table(d$race.ethnicity)
## 
## group A group B group C group D group E 
##      89     190     319     262     140
table(d$race.ethnicity)/length(d$race.ethnicity)
## 
## group A group B group C group D group E 
##   0.089   0.190   0.319   0.262   0.140

Trực quan hóa

ethnicity_count <- d %>%
  count(race.ethnicity) %>%
  mutate(prop = n / sum(n),
         label = paste0(race.ethnicity, " (", scales::percent(prop)))

ethnicity_percent <- ethnicity_count %>%
  mutate(Percentage = round(prop * 100, 2))

ggplot(ethnicity_percent, aes(x = "", y = Percentage, fill = race.ethnicity)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  geom_text(aes(label = paste0(Percentage, "%")), 
            position = position_stack(vjust = 0.5),
            size = 3) +  
  labs(title = "Tỷ lệ học sinh theo nhóm dân tộc") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Nhận xét

Tỷ lệ học sinh phân bố không đồng đều theo nhóm dân tộc, trong đó nhóm C chiếm tỷ lệ cao nhất (31.9%), tiếp theo là nhóm D (26.2%) và nhóm B (19%), trong khi nhóm E (14%) và nhóm A (8.9%) có tỷ lệ thấp hơn đáng kể. Sự chênh lệch này cho thấy đa số học sinh tập trung vào ba nhóm chính (C, D, B), chiếm tổng 77.1%, trong khi nhóm A là thiểu số rõ rệt (<10%)

2.3 Biến parental level of education

Thống kê tần suất

table(d$parental.level.of.education)
## 
## associate's degree  bachelor's degree        high school    master's degree 
##                222                118                196                 59 
##       some college   some high school 
##                226                179
table(d$parental.level.of.education)/length(d$parental.level.of.education)
## 
## associate's degree  bachelor's degree        high school    master's degree 
##              0.222              0.118              0.196              0.059 
##       some college   some high school 
##              0.226              0.179

Trực quan hóa

education_count <- d %>%
  count(parental.level.of.education) %>%
  mutate(prop = n / sum(n),
         label = paste0(parental.level.of.education, " (", scales::percent(prop)))

education_percent <- education_count %>%
  mutate(Percentage = round(prop * 100, 2))

# Tạo palette màu pastel
pastel_colors <- c("#FFD1DC", "#FFECB8", "#B5EAD7", "#C7CEEA", "#E2F0CB", "#FFDAC1")

ggplot(education_percent, aes(x = "", y = Percentage, fill = parental.level.of.education)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  geom_text(aes(label = paste0(Percentage, "%")), 
            position = position_stack(vjust = 0.5),
            size = 3, color = "gray30") +  # Màu chữ tối hơn để dễ đọc
  scale_fill_manual(values = pastel_colors) +  # Áp dụng màu pastel
  labs(title = "Tỷ lệ học sinh theo trình độ học vấn của phụ huynh",
       fill = "parental level of education") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"),
        legend.position = "right",
        legend.title = element_text(face = "bold"))

Nhận xét

Nhóm phụ huynh chưa tốt nghiệp đại học có tỷ lệ cao nhất (22.6%), tiếp theo đó là nhóm có bằng cao đẳng (22.2%). Tiếp theo là các phụ huynh tốt nghiệp trung học phổ thông (19.6%) và chưa hoàn thành chương trình trung học phổ thống (17.9%). Trong khi đó, tỷ lệ phụ huynh có bằng đại học chỉ chiếm 11.8% và thấp nhất là nhóm phụ huynh có bằng thạc sĩ (5.9%).

2.4 Biến lunch

Thống kê tần suất

table(d$lunch)
## 
## free/reduced     standard 
##          355          645
table(d$lunch)/length(d$lunch)
## 
## free/reduced     standard 
##        0.355        0.645

Trực quan hóa

# Xử lý dữ liệu
lunch_count <- d %>%
  count(lunch) %>%
  mutate(prop = n / sum(n),
         label = paste0(lunch, " (", scales::percent(prop)))

lunch_percent <- lunch_count %>%
  mutate(Percentage = round(prop * 100, 2))

# Màu pastel
pastel_colors <- c("#B5EAD7", "#FFDAC1") # Xanh pastel nhạt và cam pastel nhạt

# Vẽ biểu đồ
ggplot(lunch_percent, aes(x = "", y = Percentage, fill = lunch)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  geom_text(aes(label = paste0(Percentage, "%")), 
            position = position_stack(vjust = 0.5),
            size = 4, color = "gray30", fontface = "bold") +
  scale_fill_manual(values = pastel_colors,
                   labels = c("free/reduced", "standard")) + 
  labs(title = "Tỷ lệ học sinh theo loại bữa trưa được nhận",
       fill = "lunch") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
        legend.position = "right",
        legend.title = element_text(face = "bold"))

Nhận xét

Kết quả từ biểu đồ cho thấy 64.5% học sinh sử dụng bữa trưa tiêu chuẩn (standard), trong khi 35.5% thuộc diện được miễn/giảm giá (free/reduced).

2.5 Biến test preparation course

Thống kê tần suất

table(d$test.preparation.course)
## 
## completed      none 
##       358       642
table(d$test.preparation.course)/length(d$test.preparation.course)
## 
## completed      none 
##     0.358     0.642

Trực quan hóa

test_prep_count <- d %>%
  count(test.preparation.course) %>%
  mutate(prop = n / sum(n),
         label = paste0(test.preparation.course, " (", scales::percent(prop)))

test_prep_percent <- test_prep_count %>%
  mutate(Percentage = round(prop * 100, 2))

ggplot(test_prep_percent, aes(x = "", y = Percentage, fill = test.preparation.course)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  geom_text(aes(label = paste0(Percentage, "%")), position = position_stack(vjust = 0.5)) +
  labs(title = "Tỷ lệ học sinh theo việc hoàn thành khóa học luyện thi") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Nhận xét

Kết quả từ biểu đồ cho thấy chỉ 35.8% học sinh đã hoàn thành khóa học luyên thi, trong khi 64.2% học sinh chưa hoàn thành.

3 Phân tích mối quan hệ giữa hai biến định tính

3.1 Biến gender và test prepration course

Bảng tần suất chéo

table(d$gender,d$test.preparation.course)
##         
##          completed none
##   female       184  334
##   male         174  308
prop.table(table(d$gender,d$test.preparation.course), margin = 1)
##         
##          completed      none
##   female 0.3552124 0.6447876
##   male   0.3609959 0.6390041

Trực quan hóa

df_gender_prep <- d %>%
  count(gender, test.preparation.course) %>%
  group_by(gender) %>%
  mutate(Percent = n / sum(n) * 100)

ggplot(df_gender_prep, aes(x = gender, y = Percent, fill = test.preparation.course)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.7), width = 0.5) +
  geom_text(aes(label = paste0(round(Percent, 1), "%")), 
            position = position_dodge(width = 0.7), 
            vjust = -0.5, size = 3.5) +
  labs(title = "Tỷ lệ học sinh hoàn thành khóa luyện thi theo giới tính",
       x = "Giới tính",
       y = "Tỷ lệ phần trăm",
       fill = "test preparation course", ) +
  scale_fill_manual(values = c("#66C2A5", "#FC8D62"),
                   labels = c("none", "completed")) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
    legend.position = "right",
    axis.text = element_text(size = 11),
    panel.grid.major.x = element_blank()
  )

Nhận xét mô tả

Tỷ lệ học sinh nữ hoàn thành khóa học luyện thi là 35.5%, trong khi ở ở học sinh nam là 36.1%. Sự chênh lệch về tỷ lệ hoàn thành khóa học giữa nam và nữ là rất nhỏ, chỉ khoảng 0.6%, sư khác biệt này là không đáng kể và có thể coi như không có sự phân biệt về giới tính trong việc hoàn thành khóa học luyện thi.

Kiểm định thống kê

\[ \left\{ \begin{array}{ll} H_0: & \text{Giới tình và việc hoàn thành khóa học luyện thi là độc lập với nhau} \\\\ H_1: & \text{Giới tình và việc hoàn thành khóa học luyện thi có môi liên quan với nhau.} \ \end{array} \right. \]

chisq.test(table(d$gender,d$test.preparation.course))
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  table(d$gender, d$test.preparation.course)
## X-squared = 0.015529, df = 1, p-value = 0.9008
  • Giá trị thống kê Chi-bình phương: 0.015529

  • Bậc tự do (df): 1

  • Giá trị p: 0.9008

Nhận xét: Vì p_value > 5% nên chưa đủ điều cơ sở bác bỏ H0, hay với mức ý nghĩa 5% thì giới tính và việc hoàn thành khóa học luyện thi của học sinh là độc lập với nhau.

3.2 Biến race/ethnicity và lunch

Bảng tần suất chéo

table(d$race.ethnicity,d$lunch)
##          
##           free/reduced standard
##   group A           36       53
##   group B           69      121
##   group C          114      205
##   group D           95      167
##   group E           41       99
prop.table(table(d$race.ethnicity,d$lunch), margin = 1)
##          
##           free/reduced  standard
##   group A    0.4044944 0.5955056
##   group B    0.3631579 0.6368421
##   group C    0.3573668 0.6426332
##   group D    0.3625954 0.6374046
##   group E    0.2928571 0.7071429

Trực quan hóa

df_race_lunch <- d %>%
  count(race.ethnicity, lunch) %>%
  group_by(race.ethnicity) %>%
  mutate(Percent = n / sum(n) * 100)

ggplot(df_race_lunch, aes(x = race.ethnicity, y = Percent, fill = lunch)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.7), width = 0.5) +
  geom_text(aes(label = paste0(round(Percent, 1), "%")), 
            position = position_dodge(width = 0.7), 
            vjust = -0.5, size = 3) +
  labs(title = "Tỷ lệ loại bữa trưa được nhận theo nhóm dân tộc",
       x = "Nhóm dân tộc",
       y = "Tỷ lệ phần trăm",
       fill = "lunch") +
  scale_fill_manual(values = c("#4E79A7", "#F28E2B"),
                   labels = c("free/reduced", "standard")) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
    legend.position = "right",
    axis.text = element_text(size = 11),
    panel.grid.major.x = element_blank(),
    axis.text.x = element_text( hjust = 1) 
  )

Nhận xét mô tả

Nhóm A có tỷ lệ học sinh được hỗ trợ bữa trưa cao nhất (40.4%), tiếp theo là các nhóm B (36.3%), C (35.7%) và D (36.3%), trong khi nhóm E có tỷ lệ thấp nhất (29.3%). Khoảng cách 11.1% giữa nhóm A và E phản ánh sự khác biệt rõ rệt về điều kiện kinh tế-xã hội giữa các nhóm dân tộc.

Kiểm định thống kê

\[ \left\{ \begin{array}{ll} H_0: & \text{Nhóm dân tộc và loại bữa trưa được nhận là độc lập với nhau} \\\\ H_1: & \text{Nhóm dân tộc và loại bữa trưa được nhận có môi liên quan với nhau.} \ \end{array} \right. \]

chisq.test(table(d$race.ethnicity,d$lunch))
## 
##  Pearson's Chi-squared test
## 
## data:  table(d$race.ethnicity, d$lunch)
## X-squared = 3.4424, df = 4, p-value = 0.4867
  • Giá trị thống kê Chi-bình phương: 3.4424

  • Bậc tự do (df): 4

  • Giá trị p: 0.4867

Nhận xét: Vì p_value > 5% nên chưa đủ điều cơ sở bác bỏ H0, hay với mức ý nghĩa 5% thì nhóm dân tộc và loại bữa trưa được hưởng của học sinh là độc lập với nhau.

**Biến parental level of education và test preparation course

Bảng tần suất chéo

table(d$parental.level.of.education,d$test.preparation.course)
##                     
##                      completed none
##   associate's degree        82  140
##   bachelor's degree         46   72
##   high school               56  140
##   master's degree           20   39
##   some college              77  149
##   some high school          77  102
prop.table(table(d$parental.level.of.education,d$test.preparation.course), margin = 1)
##                     
##                      completed      none
##   associate's degree 0.3693694 0.6306306
##   bachelor's degree  0.3898305 0.6101695
##   high school        0.2857143 0.7142857
##   master's degree    0.3389831 0.6610169
##   some college       0.3407080 0.6592920
##   some high school   0.4301676 0.5698324

Trực quan hóa

df_parental_prep <- d %>%
  count(parental.level.of.education, test.preparation.course) %>%
  group_by(parental.level.of.education) %>%
  mutate(Percent = n / sum(n) * 100)

ggplot(df_parental_prep, aes(x = parental.level.of.education, y = Percent, fill = test.preparation.course)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.7), width = 0.5) +
  geom_text(aes(label = paste0(round(Percent, 1), "%")), 
            position = position_dodge(width = 0.7), 
            vjust = -0.5, size = 3) +
  labs(title = "Tỷ lệ hoàn thành khóa luyện thi theo trình độ học vấn phụ huynh",
       x = "Trình độ học vấn phụ huynh",
       y = "Tỷ lệ phần trăm",
       fill = "test.preparation.course") +
  scale_fill_manual(values = c("lightgreen", "lightblue"),
                   labels = c("completed", "none")) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
    legend.position = "top",
    axis.text = element_text(size = 7),
    panel.grid.major.x = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 0.8) 
  )

Nhận xét mô tả

Các học sinh có bố mẹ chưa tốt nghiệp THPT (some hight school) có tỷ lệ hoàn thành khóa luyện thi cao nhất (43.0%), trong khi nhóm phụ huynh tốt nghiệp “high school” (THPT) lại có tỷ lệ thấp nhất (28.6%). Các nhóm phụ huynh có trình độ cao hơn như “bachelor’s degree” (đại học: 39.0%) và “associate’s degree” (cao đẳng: 36.9%) có tỷ lệ con hoàn thành khóa luyện thi ở mức trung bình khá.

Kiểm định thống kê

\[ \left\{ \begin{array}{ll} H_0: & \text{Trình độ học vấn của phụ huynh và việc hoàn thành khóa luyện thi là độc lập với nhau} \\\\ H_1: & \text{Trình độ học vấn của phụ huynh và việc hoàn thành khóa luyện thi có môi liên quan với nhau.} \ \end{array} \right. \]

chisq.test(table(d$parental.level.of.education,d$test.preparation.course))
## 
##  Pearson's Chi-squared test
## 
## data:  table(d$parental.level.of.education, d$test.preparation.course)
## X-squared = 9.5441, df = 5, p-value = 0.08923
  • Giá trị thống kê Chi-bình phương: 9.5441

  • Bậc tự do (df): 5

  • Giá trị p: 0.08923

Nhận xét: Vì p_value = 0.08923 < 10% nên ta bác bỏ H0, hay với mức ý nghĩa 10% thì trình độ học vấn của phụ huynh và việc hoàn thành khóa luyện thi có môi liên quan với nhau.

4 Relative Risk và Odds Ratio

4.1 Biến gender và lunch

Bảng 2x2

standard free/reduced
male 316 166
female 329 189

Relative Risk

riskratio(table(d$gender,d$lunch))
## $data
##         
##          free/reduced standard Total
##   female          189      329   518
##   male            166      316   482
##   Total           355      645  1000
## 
## $measure
##         risk ratio with 95% C.I.
##          estimate     lower    upper
##   female 1.000000        NA       NA
##   male   1.032224 0.9415842 1.131589
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact chi.square
##   female         NA           NA         NA
##   male     0.500191    0.5090345  0.4991476
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Kết quả Relative Risk = 1.032224 > 1 cho thấy học sinh nam có tỷ lệ nhận bữa trưa tiêu chuẩn cao hơn học sinh nữ.

Odds Ratio

oddsratio(table(d$gender,d$lunch))
## $data
##         
##          free/reduced standard Total
##   female          189      329   518
##   male            166      316   482
##   Total           355      645  1000
## 
## $measure
##         odds ratio with 95% C.I.
##          estimate     lower    upper
##   female 1.000000        NA       NA
##   male   1.093412 0.8435212 1.418074
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact chi.square
##   female         NA           NA         NA
##   male     0.500191    0.5090345  0.4991476
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Kết quả Odds Ratio = 1.093412 > 1 cho thấy ở học sinh nam có tỷ lệ chênh lệch giữa việc nhận bữa trưa tiêu chuẩn và được miễn/giảm giá lớn hơn so với ở học sinh nữ.

4.2 Biến gender và test preparation course

Bảng 2x2

none completed
male 308 174
female 334 184

Relative Risk

riskratio(table(d$gender,d$test.preparation.course))
## $data
##         
##          completed none Total
##   female       184  334   518
##   male         174  308   482
##   Total        358  642  1000
## 
## $measure
##         risk ratio with 95% C.I.
##           estimate     lower   upper
##   female 1.0000000        NA      NA
##   male   0.9910304 0.9033178 1.08726
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact chi.square
##   female         NA           NA         NA
##   male    0.8489948    0.8949914  0.8488229
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Kết quả Relative Risk = 0.9910304 < 1 cho thấy học sinh nam có tỷ lệ hoàn thành khóa luyện thi thấp hơn học sinh nữ.

Odds Ratio

oddsratio(table(d$gender,d$test.preparation.course))
## $data
##         
##          completed none Total
##   female       184  334   518
##   male         174  308   482
##   Total        358  642  1000
## 
## $measure
##         odds ratio with 95% C.I.
##           estimate    lower    upper
##   female 1.0000000       NA       NA
##   male   0.9751644 0.752662 1.263585
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact chi.square
##   female         NA           NA         NA
##   male    0.8489948    0.8949914  0.8488229
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Kết quả Odds Ratio = 0.9751644 < 1 cho thấy ở học sinh nam có tỷ lệ chênh lệch giữa việc hoàn thành khóa luyện thi so với chưa hoàn thành thấp hơn so với ở học sinh nữ.

5 Ước lượng khoảng và kiểm định giả thuyết thống kê

5.1 Biến gender

Ước lượng khoảng tin cậy 95%

d_gender_m <- sum(d$gender == "male")
prop.test(d_gender_m, length(d$gender), conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_gender_m out of length(d$gender), null probability 0.5
## X-squared = 1.225, df = 1, p-value = 0.2684
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.4506615 0.5134785
## sample estimates:
##     p 
## 0.482

Với mức tin cậy 95%, tỷ lệ số học sinh nam nằm trong khoảng từ 45.07% đến 51.35%.

Bài toán kiểm định

\[ \left\{ \begin{array}{ll} H_0: & \text{Tỷ lệ số học sinh nam trong tổng số học sinh là 55% } \\\\ H_1: & \text{Tỷ lệ số học sinh nam trong tổng số học sinh khác 55%.} \ \end{array} \right. \]

prop.test(d_gender_m,length(d$gender), p = 0.55, alternative = "two.sided", conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_gender_m out of length(d$gender), null probability 0.55
## X-squared = 18.409, df = 1, p-value = 1.782e-05
## alternative hypothesis: true p is not equal to 0.55
## 95 percent confidence interval:
##  0.4506615 0.5134785
## sample estimates:
##     p 
## 0.482

Kết quả kiểm định cho thấy p_value < 0.05, ta bác bỏ giả thuyết H₀ hay với mức ý nghĩa 5%, tỷ lệ số học sinh nam trong tổng số học sinh là khác 55%.

5.2 Biến race/ethnicity

Ước lượng khoảng tin cậy 95%

d_groupA <- sum(d$race.ethnicity == "group A")
prop.test(d_groupA, length(d$race.ethnicity), conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_groupA out of length(d$race.ethnicity), null probability 0.5
## X-squared = 674.04, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.07243454 0.10879965
## sample estimates:
##     p 
## 0.089

Với mức tin cậy 95%, tỷ lệ số học sinh thuộc nhóm group A nằm trong khoảng từ 7.24% đến 10.88%.

Bài toán kiểm định

\[ \left\{ \begin{array}{ll} H_0: & \text{Tỷ lệ số học sinh thuộc group A trong tổng số học sinh là 10%. } \\\\ H_1: & \text{Tỷ lệ số học sinh thuộc group A trong tổng số học sinh khác 10%.} \ \end{array} \right. \]

prop.test(d_groupA,length(d$race.ethnicity), p = 0.1, alternative = "two.sided", conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_groupA out of length(d$race.ethnicity), null probability 0.1
## X-squared = 1.225, df = 1, p-value = 0.2684
## alternative hypothesis: true p is not equal to 0.1
## 95 percent confidence interval:
##  0.07243454 0.10879965
## sample estimates:
##     p 
## 0.089

Kết quả kiểm định cho thấy p_value > 0.05, chưa đủ cơ sở thống kê bác bỏ giả thuyết H₀ hay với mức ý nghĩa 5%, tỷ lệ số học sinh thuộc group A trong tổng số học sinh là 10%.

5.3 Biến parental level of education

Ước lượng khoảng tin cậy 95%

d_bachelor <- sum(d$parental.level.of.education == "bachelor's degree")
prop.test(d_bachelor, length(d$parental.level.of.education), conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_bachelor out of length(d$parental.level.of.education), null probability 0.5
## X-squared = 582.17, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.09898992 0.14000650
## sample estimates:
##     p 
## 0.118

Với mức tin cậy 95%, tỷ lệ số học sinh có bố mẹ tốt nghiệp đại học nằm trong khoảng từ 9.9% đến 14%.

Bài toán kiểm định

\[ \left\{ \begin{array}{ll} H_0: & \text{Tỷ lệ số học sinh có bố mẹ tốt nghiệp đại học trong tổng số học sinh ít nhất 15%. } \\\\ H_1: & \text{Tỷ lệ số học sinh có bố mẹ tốt nghiệp đại học trong tổng số học sinh nhỏ hơn 15%.} \ \end{array} \right. \]

prop.test(d_bachelor,length(d$parental.level.of.education), p = 0.15, alternative = "less", conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_bachelor out of length(d$parental.level.of.education), null probability 0.15
## X-squared = 7.7824, df = 1, p-value = 0.002638
## alternative hypothesis: true p is less than 0.15
## 95 percent confidence interval:
##  0.0000000 0.1363494
## sample estimates:
##     p 
## 0.118

Kết quả kiểm định cho thấy p_value < 0.05, ta bác bỏ giả thuyết H₀ hay với mức ý nghĩa 5%, tỷ lệ số học sinh có bố mẹ tốt nghiệp đại học trong tổng số học sinh nhỏ hơn 15%.

5.4 Biến lunch

Ước lượng khoảng tin cậy 95%

d_lunch_standard <- sum(d$lunch == "standard")
prop.test(d_lunch_standard, length(d$lunch), conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_lunch_standard out of length(d$lunch), null probability 0.5
## X-squared = 83.521, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.6143313 0.6745403
## sample estimates:
##     p 
## 0.645

Với mức tin cậy 95%, tỷ lệ số học sinh sử dụng bữa trưa tiêu chuẩn nằm trong khoảng từ 61.43% đến 67.45%.

Bài toán kiểm định

\[ \left\{ \begin{array}{ll} H_0: & \text{Tỷ lệ số học sinh thuộc sử dụng bữa trưa tiêu chuẩn trong tổng số học sinh không vượt quá 60%. } \\\\ H_1: & \text{Tỷ lệ số học sinh thuộc sử dụng bữa trưa tiêu chuẩn trong tổng số học sinh lớn hơn 60%.} \ \end{array} \right. \]

prop.test(d_lunch_standard,length(d$lunch), p = 0.15, alternative = "greater", conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_lunch_standard out of length(d$lunch), null probability 0.15
## X-squared = 1917.9, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is greater than 0.15
## 95 percent confidence interval:
##  0.619243 1.000000
## sample estimates:
##     p 
## 0.645

Kết quả kiểm định cho thấy p_value < 0.05, ta bác bỏ giả thuyết H₀ hay với mức ý nghĩa 5%, tỷ lệ số học sinh sử dụng bữa trưa tiêu chuẩn trong tổng số học sinh lớn 60%.

5.5 Biến test preparation course

Ước lượng khoảng tin cậy 95%

d_completed <- sum(d$test.preparation.course == "completed")
prop.test(d_completed, length(d$test.preparation.course), conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_completed out of length(d$test.preparation.course), null probability 0.5
## X-squared = 80.089, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.3283927 0.3887124
## sample estimates:
##     p 
## 0.358

Với mức tin cậy 95%, tỷ lệ số học sinh đã hoàn thành khóa luyện thi nằm trong khoảng từ 32.84% đến 38.87%.

Bài toán kiểm định

\[ \left\{ \begin{array}{ll} H_0: & \text{Tỷ lệ số học sinh thoàn thành khóa luyện thi trong tổng số học sinh không vượt quá 40%. } \\\\ H_1: & \text{Tỷ lệ số học sinh thoàn thành khóa luyện thi trong tổng số học sinh lớn hơn 40%.} \ \end{array} \right. \]

prop.test(d_completed,length(d$test.preparation.course), p = 0.4, alternative = "greater", conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  d_completed out of length(d$test.preparation.course), null probability 0.4
## X-squared = 7.176, df = 1, p-value = 0.9963
## alternative hypothesis: true p is greater than 0.4
## 95 percent confidence interval:
##  0.3329864 1.0000000
## sample estimates:
##     p 
## 0.358

Kết quả kiểm định cho thấy p_value > 0.05, chưa đủ cơ sở thống kê bác bỏ giả thuyết H₀ hay với mức ý nghĩa 5%, tỷ lệ số học sinh hoàn thành khóa luyện thi trong tổng số học sinh không vượt quá 40%.