Kiểm định Nhị thức là một phương pháp kiểm định giả thuyết thống kê chính xác (exact test). Phương pháp này được sử dụng để xác định xem liệu tỉ lệ của một sự kiện “thành công” (ví dụ: tỉ lệ trả lời “Có”) trong một chuỗi các thử nghiệm Bernoulli độc lập có khác biệt so với một tỉ lệ giả định hay không. Nó tính toán xác suất trực tiếp từ phân phối Nhị thức, đảm bảo tính hợp lệ ngay cả với các trường hợp có kích thước mẫu nhỏ.
Bộ dữ liệu này có tên “Effects of Video Games on Aggression” (Tác động của Trò chơi điện tử đến sự Hung hăng), được thu thập bởi Muhammad Shamoeel Ul Naeem.
Chúng ta muốn kiểm định giả thuyết về mối liên hệ giữa việc chơi game bạo lực và suy nghĩ hung hăng, dựa trên 2 câu hỏi khảo sát:
Về Hành vi: Have you ever been involved in delinquent behaviour? like stealing, breaking things of others (Bạn đã bao giờ tham gia vào hành vi phạm pháp chưa? ví dụ như trộm cắp, phá hoại đồ đạc của người khác)
Về Niềm tin: Do you believe that playing violent video games can lead to aggressive behavior in real life? (Bạn có tin rằng việc chơi game bạo lực có thể dẫn đến hành vi hung hăng ngoài đời thực không?)
n
) và số người trong nhóm đó thừa nhận có hành
vi phạm pháp (x
).col_play_time
: “How much time do you play "violent"
video games specifically?”col_behavior
: “Have you ever been involved in
delinquent behaviour? like stealing, breaking things of others”# Đọc dữ liệu nếu chưa có
if (!exists("data_raw")) {
data_raw <- read_csv("aggression_data.csv")
col_play_time <- "How much time do you play \"violent\" video games specifically?"
col_behavior <- "Have you ever been involved in delinquent behaviour? like stealing, breaking things of others"
col_belief <- "Do you believe that playing violent video games can lead to aggressive behavior in real life?"
}
# Xử lý dữ liệu riêng cho Kiểm định 1
data_behavior <- data_raw %>%
# Chuẩn hóa cột thời gian chơi game và cột hành vi
mutate(
play_time_numeric = case_when(
str_detect(.data[[col_play_time]], "more than") ~ 1,
str_detect(.data[[col_play_time]], "less than 1 hour") ~ 0.5,
TRUE ~ 0
),
behavior_norm = str_to_lower(.data[[col_behavior]])
) %>%
# Lọc ra nhóm người chơi game bạo lực và đã trả lời
filter(play_time_numeric > 0 & !is.na(behavior_norm))
# Tính toán n và x cho Kiểm định 1
n_behavior <- nrow(data_behavior)
x_behavior <- data_behavior %>%
filter(behavior_norm == "yes") %>%
nrow()
# In kết quả chuẩn bị
cat("--- Dữ liệu đầu vào cho Kiểm định 1 (Hành vi) ---\n")
## --- Dữ liệu đầu vào cho Kiểm định 1 (Hành vi) ---
## Tổng số người chơi game bạo lực hợp lệ (n): 147
## Số người thừa nhận có hành vi phạm pháp (x): 42
# Chạy Kiểm định Nhị thức một phía
test_result_behavior <- binom.test(x = x_behavior,
n = n_behavior,
p = 0.10,
alternative = "greater")
# In kết quả kiểm định
print(test_result_behavior)
##
## Exact binomial test
##
## data: x_behavior and n_behavior
## number of successes = 42, number of trials = 147, p-value = 2.437e-10
## alternative hypothesis: true probability of success is greater than 0.1
## 95 percent confidence interval:
## 0.2247159 1.0000000
## sample estimates:
## probability of success
## 0.2857143
Kết luận (Bước 1 - Thống kê): Có bằng chứng thống kê đủ mạnh để kết luận rằng tỉ lệ người chơi game bạo lực thừa nhận có hành vi phạm pháp (28.6%) cao hơn một cách có ý nghĩa so với mức nền 10% (giả định).
n
) và số người trong nhóm đó tin rằng game gây
bạo lực (x
).col_play_time
: “How much time do you play "violent"
video games specifically?”col_belief
: “Do you believe that playing violent video
games can lead to aggressive behavior in real life?”# Xử lý dữ liệu riêng cho Kiểm định 2
data_belief <- data_raw %>%
# Chuẩn hóa cột thời gian chơi game và cột niềm tin
mutate(
play_time_numeric = case_when(
str_detect(.data[[col_play_time]], "more than") ~ 1,
str_detect(.data[[col_play_time]], "less than 1 hour") ~ 0.5,
TRUE ~ 0
),
belief_norm = str_to_lower(.data[[col_belief]])
) %>%
# Lọc ra nhóm người chơi game bạo lực và đã trả lời
filter(play_time_numeric > 0 & !is.na(belief_norm))
# Tính toán n và x cho Kiểm định 2
n_belief <- nrow(data_belief)
x_belief <- data_belief %>%
filter(belief_norm == "yes") %>%
nrow()
# In kết quả chuẩn bị
cat("--- Dữ liệu đầu vào cho Kiểm định 2 (Niềm tin) ---\n")
## --- Dữ liệu đầu vào cho Kiểm định 2 (Niềm tin) ---
## Tổng số người chơi game bạo lực hợp lệ (n): 147
## Số người tin game gây bạo lực (x): 95
# Chạy Kiểm định Nhị thức hai phía
test_result_belief <- binom.test(x = x_belief,
n = n_belief,
p = 0.40,
alternative = "two.sided")
# In kết quả kiểm định
print(test_result_belief)
##
## Exact binomial test
##
## data: x_belief and n_belief
## number of successes = 95, number of trials = 147, p-value = 1.934e-09
## alternative hypothesis: true probability of success is not equal to 0.4
## 95 percent confidence interval:
## 0.5632196 0.7232710
## sample estimates:
## probability of success
## 0.6462585
Kết luận (Bước 1 - Thống kê): Có bằng chứng thống kê rất mạnh mẽ để kết luận rằng tỉ lệ người chơi game bạo lực tin rằng game gây bạo lực (64.6%) khác biệt một cách có ý nghĩa so với tỉ lệ 40% của dân số chung (theo Pew Research). Cụ thể, tỉ lệ này trong mẫu của chúng ta cao hơn đáng kể.
Biểu đồ (Hình 1) so sánh tỉ lệ quan sát được (từ mẫu) với tỉ lệ nền (kỳ vọng) tương ứng của cả hai kiểm định.
# Gộp kết quả n, x, baseline, sample_prop từ hai kiểm định
all_results_summary <- data.frame(
Question_Label = c("Hành vi phạm pháp? (so với 10%)", "Tin game gây bạo lực? (so với 40%)"),
Sample_Proportion = c(x_behavior / n_behavior, x_belief / n_belief),
Baseline = c(0.10, 0.40)
)
# Chuẩn bị dữ liệu cho biểu đồ tổng hợp
plot_data_final <- all_results_summary %>%
pivot_longer(
cols = c(Sample_Proportion, Baseline),
names_to = "Loai_TyLe",
values_to = "GiaTri_TyLe"
) %>%
# Tạo nhãn phân loại
mutate(Loai_TyLe_Label = fct_recode(Loai_TyLe,
"Quan sát (Mẫu)" = "Sample_Proportion",
"Kỳ vọng (Nền)" = "Baseline"
))
# Vẽ biểu đồ so sánh
ggplot(plot_data_final, aes(x = Question_Label, y = GiaTri_TyLe, fill = Loai_TyLe_Label)) +
geom_col(position = position_dodge(width = 0.8), width = 0.7) +
geom_text(aes(label = percent(GiaTri_TyLe, accuracy = 0.1)),
position = position_dodge(width = 0.8),
vjust = -0.5, size = 4, fontface = "bold") +
scale_y_continuous(labels = percent_format(accuracy = 1)) +
scale_fill_manual(values = c("Kỳ vọng (Nền)" = "#F8766D", "Quan sát (Mẫu)" = "#00BFC4")) +
labs(
title = "So sánh Tỉ lệ Quan sát và Tỉ lệ Kỳ vọng",
subtitle = "Phân tích 2 câu hỏi trên nhóm chơi game bạo lực",
x = "Câu hỏi khảo sát",
y = "Tỉ lệ (%)",
fill = "Loại Tỉ lệ"
) +
theme_minimal(base_size = 13) +
theme(legend.position = "top")
Hình 1: So sánh Tỉ lệ Quan sát (Mẫu chơi game) với Tỉ lệ Kỳ vọng
Sau khi cả hai phép kiểm định đều xác nhận có sự bất thường thống kê (P-value < 0.05), chúng ta cần diễn giải ý nghĩa của chúng. Cần nhấn mạnh rằng mối liên hệ (correlation) không đồng nghĩa với quan hệ nhân quả (causation).
Kết luận tổng hợp: Phân tích này xác nhận rằng nhóm người chơi game bạo lực trong mẫu khảo sát có tỉ lệ hành vi phạm pháp và niềm tin về tác động của game cao hơn mức nền kỳ vọng.
Tuy nhiên, các phát hiện này, đặc biệt là phát hiện về niềm tin, không đủ để kết luận quan hệ nhân quả, mà gợi ý các giải thích tâm lý xã hội phức tạp hơn (như thiên kiến lựa chọn, sự hợp lý hóa, hoặc sự nhạy cảm tăng cao).