Kiểm định Chi bình phương
Kiểm định chi bình phương trong thực hành kinh tế lượng với SPSS

Tóm tắt: Kiểm định chi bình phương là công cụ quan trọng trong thực hành kinh tế lượng để phân tích mối quan hệ giữa hai biến phân loại. Bài viết hướng dẫn chi tiết cách thực hiện kiểm định này trên SPSS, từ kiểm tra các giả thiết đến phân tích kết quả. Ví dụ thực tế sử dụng dữ liệu lao động Việt Nam để phân tích mối quan hệ giữa giới tính và loại hình doanh nghiệp, kèm theo hướng dẫn sử dụng các phần mềm thay thế như R, Python và Stata.
Giới thiệu về kiểm định chi bình phương
Nội dung chính
- Giới thiệu về kiểm định chi bình phương
- Giả thiết của kiểm định chi bình phương
- Ví dụ thực tế trong kinh tế Việt Nam
- Hướng dẫn thực hành chi tiết trên SPSS
- Phân tích kết quả kiểm định
- Lưu ý quan trọng khi thực hiện kiểm định
- Ứng dụng mở rộng trong kinh tế
- Tổng kết
- Phụ lục: Code equivalents cho các phần mềm khác
- Tài liệu tham khảo
Trong thực hành kinh tế lượng, kiểm định chi bình phương được sử dụng để xác định xem liệu có mối quan hệ giữa hai biến phân loại (categorical variables) trong một tổng thể hay không. Đây là một trong những phương pháp kiểm định phi tham số phổ biến nhất trong nghiên cứu kinh tế và xã hội.
Kiểm định này đặc biệt hữu ích trong các nghiên cứu kinh tế khi chúng ta cần phân tích mối quan hệ giữa các yếu tố định tính như giới tính, loại hình doanh nghiệp, khu vực địa lý, trình độ học vấn, v.v.
Công thức toán học
Thống kê kiểm định chi bình phương được tính theo công thức:
$$ \chi^2 = \sum_{i=1}^{r} \sum_{j=1}^{c} \frac{(O_{ij} – E_{ij})^2}{E_{ij}} $$
Trong đó:
Tần suất kỳ vọng được tính theo công thức: $E_{ij} = \frac{R_i \times C_j}{N}$
Giả thiết của kiểm định chi bình phương
Để áp dụng kiểm định chi bình phương trong thực hành kinh tế lượng, dữ liệu phải thỏa mãn các giả thiết sau:
Giả thiết thống kê
Cặp giả thiết của kiểm định chi bình phương được phát biểu như sau:
- H0 (Giả thiết không): Hai biến phân loại độc lập với nhau
- H1 (Giả thiết đối): Hai biến phân loại không độc lập với nhau (có mối quan hệ)
Điều kiện áp dụng
- Lấy mẫu ngẫu nhiên: Dữ liệu phải được thu thập theo phương pháp lấy mẫu ngẫu nhiên từ tổng thể
- Biến phân loại: Các biến nghiên cứu phải là biến phân loại (định tính) có từ hai mức trở lên
- Tần suất kỳ vọng: Tần suất kỳ vọng trong mỗi ô của bảng chéo phải tối thiểu là 5
- Quan sát độc lập: Các quan sát phải độc lập với nhau
- Dữ liệu đầy đủ: Không có giá trị bị thiếu (missing values) trong các biến phân tích
Ví dụ thực tế trong kinh tế Việt Nam
Để minh họa ứng dụng kiểm định chi bình phương trong thực hành kinh tế lượng, chúng ta sử dụng bộ dữ liệu khảo sát lao động Việt Nam.
Bối cảnh nghiên cứu
Tình huống: Một nhà nghiên cứu kinh tế muốn phân tích mối quan hệ giữa giới tính của người lao động và loại hình doanh nghiệp họ làm việc. Điều này có ý nghĩa quan trọng trong việc đánh giá sự phân bố lao động theo giới tính giữa các khu vực kinh tế.
Thông tin dữ liệu:
- Tổng thể: Người lao động trên toàn quốc
- Cỡ mẫu: 7,287 quan sát
- Biến phụ thuộc: Giới tính (gender) – Nam/Nữ
- Biến độc lập: Loại hình doanh nghiệp (section) – DNNN, DNTN, FDI, HTX-hộ cá thể
- Dữ liệu mẫu: vietlod.sav
Các biến trong nghiên cứu
Bộ dữ liệu bao gồm các biến chính:
- gender: Giới tính (Nam = 1, Nữ = 2)
- age: Tuổi của người lao động
- ethnic: Dân tộc
- degree: Trình độ học vấn/bằng cấp
- region: Khu vực địa lý
- urban: Khu vực thành thị/nông thôn
- school: Số năm đi học
- exp: Số năm kinh nghiệm làm việc
- section: Loại hình doanh nghiệp
- structure: Lĩnh vực/ngành nghề
- earn: Thu nhập
Câu hỏi nghiên cứu: Có mối quan hệ giữa giới tính và loại hình doanh nghiệp mà người lao động tham gia làm việc không?
Hướng dẫn thực hành chi tiết trên SPSS
Phần này sẽ hướng dẫn từng bước thực hiện kiểm định chi bình phương trong thực hành kinh tế lượng sử dụng phần mềm SPSS.
Bước 1: Truy cập công cụ Crosstabs
Từ menu chính của SPSS, thực hiện trình tự sau:
Analyze → Descriptive Statistics → Crosstabs…
Bước 2: Thiết lập biến phân tích
Trong cửa sổ Crosstabs, thực hiện các bước sau:
- Đưa biến
gender
(giới tính) vào ô Row(s) - Đưa biến
section
(loại hình doanh nghiệp) vào ô Column(s) - Tích chọn Display clustered bar charts để hiển thị biểu đồ thanh
Bước 3: Chọn thống kê kiểm định
Nhấn nút Statistics… và chọn các tùy chọn:
- Chi-square: Để thực hiện kiểm định chi bình phương
- Cramer’s V: Để đo lường độ mạnh của mối quan hệ
- Phi and Cramer’s V: Các thống kê bổ sung về mối quan hệ
Nhấn Continue để quay lại cửa sổ chính.
Bước 4: Thiết lập hiển thị cells
Nhấn nút Cells… để thiết lập cách hiển thị thông tin trong từng ô:
- Observed: Tần suất quan sát thực tế
- Expected: Tần suất kỳ vọng
- Row: Phần trăm theo hàng
- Column: Phần trăm theo cột
- Total: Phần trăm tổng
Nhấn Continue và sau đó nhấn OK để thực hiện kiểm định.
Phân tích kết quả kiểm định
Kết quả kiểm định chi bình phương được hiển thị trong ba bảng chính, mỗi bảng cung cấp thông tin quan trọng cho việc phân tích mối quan hệ giữa hai biến.
Bảng 1: Crosstabulation (Bảng chéo)
Bảng Crosstabulation cung cấp thông tin tổng quan về phân bố dữ liệu:
Từ bảng này, chúng ta có thể rút ra các nhận xét quan trọng:
Kết quả phân tích mô tả:
- Lao động nữ: Chiếm 39.9% tổng số lao động, tập trung chủ yếu ở doanh nghiệp FDI và DNNN
- Lao động nam: Chiếm 60.1% tổng số lao động, tập trung ở HTX-hộ cá thể và DNTN
- Loại hình doanh nghiệp: HTX-hộ cá thể chiếm tỷ lệ áp đảo (46.3% tổng mẫu)
- Phân bố không đồng đều: Có sự khác biệt rõ ràng trong phân bố giới tính across các loại hình doanh nghiệp
Bảng 2: Chi-Square Tests
Bảng Chi-Square Tests chứa kết quả kiểm định chính:
Phân tích kết quả kiểm định:
- Pearson Chi-Square: χ² = 255.6
- Degrees of freedom (df): 3
- Mức ý nghĩa (Sig.): 0.000 < 0.05
- Điều kiện tần suất: Không có ô nào có tần suất kỳ vọng < 5
Kết luận kiểm định:
Với α = 0.05, ta có p-value = 0.000 < 0.05, do đó bác bỏ giả thuyết H0. Kết quả cho thấy có mối quan hệ có ý nghĩa thống kê giữa giới tính và loại hình doanh nghiệp mà người lao động tham gia làm việc.
Bảng 3: Symmetric Measures
Bảng này cung cấp thông tin về độ mạnh của mối quan hệ:
- Phi coefficient: 0.187
- Cramer’s V: 0.187
- Mức ý nghĩa: 0.000 < 0.01
Diễn giải độ mạnh mối quan hệ:
Giá trị Cramer’s V = 0.187 (18.7%) cho thấy mối quan hệ giữa giới tính và loại hình doanh nghiệp ở mức trung bình. Theo thang đo Cohen:
- Nhỏ: 0.10 – 0.30
- Trung bình: 0.30 – 0.50
- Lớn: > 0.50
Biểu đồ thanh (Bar Chart)
Biểu đồ thanh cung cấp cái nhìn trực quan về sự phân bố dữ liệu:
Biểu đồ cho thấy:
- Doanh nghiệp FDI: Tỷ lệ lao động nữ cao hơn nam
- Các loại hình khác: Lao động nam chiếm ưu thế
- HTX-hộ cá thể: Có số lượng lao động lớn nhất trong mẫu
- DNNN: Phân bố tương đối cân bằng giữa nam và nữ
Lưu ý quan trọng khi thực hiện kiểm định
Kiểm tra điều kiện áp dụng
Các điều kiện cần kiểm tra:
- Tần suất kỳ vọng: Tất cả các ô phải có tần suất kỳ vọng tối thiểu bằng 5
- Cỡ mẫu: Đủ lớn để đảm bảo tính đại diện
- Lấy mẫu ngẫu nhiên: Dữ liệu phải được thu thập ngẫu nhiên
- Độc lập quan sát: Các quan sát phải độc lập với nhau
Xử lý khi vi phạm điều kiện
Khi dữ liệu không thỏa mãn điều kiện áp dụng:
- Tần suất kỳ vọng nhỏ hơn 5: Sử dụng Fisher’s Exact Test hoặc gộp các nhóm có tần suất thấp
- Bảng 2×2: Có thể sử dụng Yates’ continuity correction
- Cỡ mẫu nhỏ: Xem xét sử dụng các phương pháp phi tham số khác
- Nhiều biến: Sử dụng các mô hình log-linear hoặc hồi quy logistic
Diễn giải kết quả
Lưu ý về hiển thị nhãn:
Để hiển thị giá trị nhãn của các biến (ví dụ: Nam/Nữ thay vì 1/2) trong các bảng kết quả và biểu đồ, cần thiết lập Value Labels trong Variable View hoặc sử dụng tùy chọn hiển thị nhãn trong Output. Tham khảo cách hiển thị giá trị nhãn để biết thêm chi tiết.
Ứng dụng mở rộng trong kinh tế
Kiểm định chi bình phương có nhiều ứng dụng quan trọng trong thực hành kinh tế lượng:
Các lĩnh vực ứng dụng
- Kinh tế lao động: Phân tích mối quan hệ giữa giới tính, trình độ học vấn và loại hình việc làm
- Marketing: Xác định mối quan hệ giữa đặc điểm khách hàng và sở thích sản phẩm
- Tài chính: Phân tích mối quan hệ giữa loại hình doanh nghiệp và hiệu quả kinh doanh
- Kinh tế vĩ mô: Nghiên cứu mối quan hệ giữa khu vực địa lý và cơ cấu kinh tế
- Phát triển kinh tế: Phân tích mối quan hệ giữa các yếu tố xã hội và tăng trưởng
Hạn chế và cách khắc phục
Các hạn chế cần lưu ý:
- Không xác định nhân quả: Chỉ cho biết mối quan hệ, không phải nguyên nhân
- Nhạy cảm với cỡ mẫu: Cỡ mẫu lớn có thể làm cho kết quả có ý nghĩa thống kê ngay cả khi mức ảnh hưởng (effect size) nhỏ
- Mất thông tin: Không thể phân tích mối quan hệ phi tuyến tính
- Giả định độc lập: Yêu cầu các quan sát phải độc lập
Tổng kết
Kiểm định chi bình phương là một công cụ mạnh mẽ trong thực hành kinh tế lượng để phân tích mối quan hệ giữa các biến phân loại. Trong ví dụ về lao động Việt Nam, chúng ta đã chứng minh được mối quan hệ có ý nghĩa thống kê giữa giới tính và loại hình doanh nghiệp với độ mạnh mối quan hệ ở mức trung bình.
Kết quả cho thấy sự phân bố không đồng đều của lao động nam và nữ giữa các loại hình doanh nghiệp khác nhau, với lao động nữ tập trung nhiều hơn ở doanh nghiệp FDI và DNNN, trong khi lao động nam chiếm ưu thế ở HTX-hộ cá thể và DNTN.
Phương pháp này không chỉ giúp xác định sự tồn tại của mối quan hệ mà còn cung cấp thông tin về độ mạnh của mối quan hệ đó, tạo cơ sở cho các phân tích sâu hơn trong nghiên cứu kinh tế.
Điểm quan trọng cần nhớ:
- Chi bình phương kiểm tra mối quan hệ giữa hai biến phân loại
- Cần kiểm tra đầy đủ các điều kiện áp dụng trước khi thực hiện
- Kết quả bao gồm cả mức ý nghĩa và độ mạnh mối quan hệ
- Sử dụng biểu đồ để trực quan hóa kết quả
- Cần diễn giải kết quả trong bối cảnh kinh tế cụ thể
- Có thể kết hợp với các phương pháp khác để phân tích sâu hơn
Phụ lục: Code equivalents cho các phần mềm khác
Ngoài SPSS, có thể thực hiện kiểm định chi bình phương bằng các phần mềm khác trong thực hành kinh tế lượng:
SPSS Syntax (.sps)
SPSS Syntax Code
* Kiểm định chi bình phương trong SPSS
* Tác giả: Hướng dẫn thực hành kinh tế lượng
* Mục đích: Phân tích mối quan hệ giữa giới tính và loại hình doanh nghiệp
* Mở file dữ liệu
GET FILE='/data/vietlod.sav'.
* Thực hiện kiểm định chi bình phương
CROSSTABS
/TABLES=gender BY section
/FORMAT=AVALUE TABLES
/STATISTICS=CHISQ PHI CC
/CELLS=COUNT EXPECTED ROW COLUMN TOTAL
/COUNT ROUND CELL
/BARCHART.
* Thống kê mô tả cho các biến
FREQUENCIES VARIABLES=gender section
/ORDER=ANALYSIS.
* Tạo bảng chéo chi tiết hơn
CROSSTABS
/TABLES=gender BY section
/FORMAT=AVALUE TABLES
/STATISTICS=CHISQ PHI CC LAMBDA CORR
/CELLS=COUNT EXPECTED ROW COLUMN TOTAL RESID SRESID
/COUNT ROUND CELL.
* Xuất kết quả ra file
OUTPUT EXPORT
/CONTENTS EXPORT=VISIBLE LAYERS=PRINTSETTING MODELVIEWS=PRINTSETTING
/HTML DOCUMENTFILE='chi_square_results.html'.
Stata (.do file)
Stata Code
* Kiểm định chi bình phương trong Stata
* Tác giả: Hướng dẫn thực hành kinh tế lượng
* Mục đích: Phân tích mối quan hệ giữa giới tính và loại hình doanh nghiệp
* Mở file dữ liệu
use "/data/vietlod.dta", clear
* Thống kê mô tả
tab gender, missing
tab section, missing
tab gender section, missing
* Tạo bảng chéo với thống kê chi bình phương
tab gender section, chi2 V exact
* Tạo bảng chéo chi tiết với tần suất kỳ vọng
tab gender section, chi2 expected
* Tạo bảng chéo với phần trăm
tab gender section, row col cell
* Kiểm định chi bình phương với correction
tab gender section, chi2 exact
* Tính Cramer's V
tab gender section, V
* Vẽ biểu đồ thanh
graph bar, over(section) over(gender) ///
title("Phân bố giới tính theo loại hình doanh nghiệp") ///
ylabel(, angle(0)) ///
legend(title("Giới tính"))
* Lưu biểu đồ
graph export "gender_section_bar.png", replace
* Kiểm tra điều kiện áp dụng
tab gender section, expected chi2
* Kiểm tra xem có ô nào có tần suất kỳ vọng < 5 không
* Tính các thống kê bổ sung
tab gender section, gamma taub
R Script (.R)
R Code
# Kiểm định chi bình phương trong R
# Tác giả: Hướng dẫn thực hành kinh tế lượng
# Mục đích: Phân tích mối quan hệ giữa giới tính và loại hình doanh nghiệp
# Cài đặt và load các package cần thiết
library(haven)
library(dplyr)
library(ggplot2)
library(vcd)
library(corrplot)
library(gmodels)
# Đọc dữ liệu
data <- read_sav("/data/vietlod.sav")
# Kiểm tra cấu trúc dữ liệu
str(data)
head(data[c("gender", "section")])
# Thống kê mô tả
table(data$gender, useNA = "always")
table(data$section, useNA = "always")
# Tạo bảng chéo
cross_table <- table(data$gender, data$section)
print(cross_table)
# Thực hiện kiểm định chi bình phương
chi_test <- chisq.test(cross_table)
print(chi_test)
# Tần suất kỳ vọng
print("Tần suất kỳ vọng:")
print(chi_test$expected)
# Residuals
print("Residuals:")
print(chi_test$residuals)
# Standardized residuals
print("Standardized residuals:")
print(chi_test$stdres)
# Tính Cramer's V
cramers_v <- sqrt(chi_test$statistic / (sum(cross_table) * (min(dim(cross_table)) - 1)))
print(paste("Cramer's V:", round(cramers_v, 3)))
# Tạo bảng chéo chi tiết với CrossTable
CrossTable(data$gender, data$section,
expected = TRUE,
prop.r = TRUE,
prop.c = TRUE,
prop.t = TRUE,
prop.chisq = FALSE,
chisq = TRUE,
fisher = TRUE,
format = "SPSS")
# Vẽ biểu đồ thanh
# Chuyển đổi dữ liệu
data_plot <- data %>%
count(gender, section) %>%
mutate(
gender = factor(gender, levels = c(1, 2), labels = c("Nam", "Nữ")),
section = factor(section, levels = c(1, 2, 3, 4),
labels = c("DNNN", "DNTN", "FDI", "HTX-hộ cá thể"))
)
# Tạo biểu đồ thanh
ggplot(data_plot, aes(x = section, y = n, fill = gender)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Phân bố giới tính theo loại hình doanh nghiệp",
x = "Loại hình doanh nghiệp",
y = "Số lượng",
fill = "Giới tính") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Lưu biểu đồ
ggsave("gender_section_bar.png", width = 10, height = 6, dpi = 300)
# Vẽ heatmap
library(reshape2)
cross_table_pct <- prop.table(cross_table, margin = 1) * 100
cross_table_melt <- melt(cross_table_pct)
ggplot(cross_table_melt, aes(Var2, Var1, fill = value)) +
geom_tile() +
scale_fill_gradient(low = "white", high = "steelblue") +
labs(title = "Phần trăm theo hàng - Giới tính vs Loại hình doanh nghiệp",
x = "Loại hình doanh nghiệp",
y = "Giới tính",
fill = "Phần trăm (%)") +
theme_minimal()
# Kiểm tra điều kiện áp dụng
min_expected <- min(chi_test$expected) print(paste("Tần suất kỳ vọng nhỏ nhất:", round(min_expected, 2))) if(min_expected >= 5) {
print("Điều kiện tần suất kỳ vọng ≥ 5 được thỏa mãn")
} else {
print("Cảnh báo: Có ô có tần suất kỳ vọng < 5")
}
# Kết luận
alpha <- 0.05
if(chi_test$p.value < alpha) {
print(paste("Kết luận: Với α =", alpha, ", p-value =", round(chi_test$p.value, 6)))
print("Bác bỏ H0. Có mối quan hệ giữa giới tính và loại hình doanh nghiệp")
} else {
print(paste("Kết luận: Với α =", alpha, ", p-value =", round(chi_test$p.value, 6)))
print("Chưa có đủ bằng chứng để bác bỏ H0")
}
Python Script (.py)
Python Code
# Kiểm định chi bình phương trong Python
# Tác giả: Hướng dẫn thực hành kinh tế lượng
# Mục đích: Phân tích mối quan hệ giữa giới tính và loại hình doanh nghiệp
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import chi2_contingency
from scipy.stats import chi2
import pyreadstat
# Đọc dữ liệu SPSS
data, meta = pyreadstat.read_sav('/data/vietlod.sav')
# Kiểm tra cấu trúc dữ liệu
print(data.info())
print(data[['gender', 'section']].head())
# Thống kê mô tả
print("Thống kê mô tả:")
print(data['gender'].value_counts())
print(data['section'].value_counts())
# Tạo bảng chéo
cross_table = pd.crosstab(data['gender'], data['section'], margins=True)
print("\nBảng chéo:")
print(cross_table)
# Thực hiện kiểm định chi bình phương
chi2_stat, p_value, dof, expected = chi2_contingency(cross_table.iloc[:-1, :-1])
print(f"\nKết quả kiểm định chi bình phương:")
print(f"Chi-square statistic: {chi2_stat:.3f}")
print(f"P-value: {p_value:.6f}")
print(f"Degrees of freedom: {dof}")
# Tần suất kỳ vọng
print("\nTần suất kỳ vọng:")
expected_df = pd.DataFrame(expected,
index=cross_table.index[:-1],
columns=cross_table.columns[:-1])
print(expected_df)
# Tính Cramer's V
n = cross_table.iloc[:-1, :-1].sum().sum()
cramers_v = np.sqrt(chi2_stat / (n * (min(cross_table.shape) - 2)))
print(f"\nCramer's V: {cramers_v:.3f}")
# Tạo bảng chéo với phần trăm
print("\nBảng chéo với phần trăm:")
cross_table_pct = pd.crosstab(data['gender'], data['section'],
normalize='index') * 100
print(cross_table_pct.round(1))
# Vẽ biểu đồ thanh
plt.figure(figsize=(12, 8))
# Chuẩn bị dữ liệu cho biểu đồ
data_plot = data.copy()
data_plot['gender'] = data_plot['gender'].map({1: 'Nam', 2: 'Nữ'})
data_plot['section'] = data_plot['section'].map({
1: 'DNNN', 2: 'DNTN', 3: 'FDI', 4: 'HTX-hộ cá thể'
})
# Tạo biểu đồ thanh
plt.subplot(2, 2, 1)
sns.countplot(data=data_plot, x='section', hue='gender')
plt.title('Phân bố giới tính theo loại hình doanh nghiệp')
plt.xlabel('Loại hình doanh nghiệp')
plt.ylabel('Số lượng')
plt.xticks(rotation=45)
plt.legend(title='Giới tính')
# Tạo heatmap
plt.subplot(2, 2, 2)
sns.heatmap(cross_table_pct, annot=True, fmt='.1f', cmap='Blues')
plt.title('Phần trăm theo hàng (%)')
plt.xlabel('Loại hình doanh nghiệp')
plt.ylabel('Giới tính')
# Biểu đồ residuals
residuals = (cross_table.iloc[:-1, :-1] - expected) / np.sqrt(expected)
plt.subplot(2, 2, 3)
sns.heatmap(residuals, annot=True, fmt='.2f', cmap='RdBu_r', center=0)
plt.title('Standardized Residuals')
plt.xlabel('Loại hình doanh nghiệp')
plt.ylabel('Giới tính')
# Biểu đồ tần suất kỳ vọng vs quan sát
plt.subplot(2, 2, 4)
observed = cross_table.iloc[:-1, :-1].values.flatten()
expected_flat = expected.flatten()
plt.scatter(expected_flat, observed, alpha=0.7)
plt.plot([0, max(expected_flat)], [0, max(expected_flat)], 'r--', label='y=x')
plt.xlabel('Tần suất kỳ vọng')
plt.ylabel('Tần suất quan sát')
plt.title('Tần suất kỳ vọng vs Quan sát')
plt.legend()
plt.tight_layout()
plt.show()
# Kiểm tra điều kiện áp dụng
min_expected = expected.min()
print(f"\nTần suất kỳ vọng nhỏ nhất: {min_expected:.2f}")
if min_expected >= 5:
print("Điều kiện tần suất kỳ vọng ≥ 5 được thỏa mãn")
else:
print("Cảnh báo: Có ô có tần suất kỳ vọng < 5")
# Kết luận
alpha = 0.05
if p_value < alpha:
print(f"\nKết luận: Với α = {alpha}, p-value = {p_value:.6f}")
print("Bác bỏ H₀. Có mối quan hệ giữa giới tính và loại hình doanh nghiệp")
print(f"Độ mạnh mối quan hệ (Cramer's V): {cramers_v:.3f}")
else:
print(f"\nKết luận: Với α = {alpha}, p-value = {p_value:.6f}")
print("Chưa có đủ bằng chứng để bác bỏ H₀")
# Tạo báo cáo tóm tắt
print("\n" + "="*50)
print("TÓM TẮT KẾT QUẢ KIỂM ĐỊNH CHI BÌNH PHƯƠNG")
print("="*50)
print(f"Cỡ mẫu: {n}")
print(f"Chi-square statistic: {chi2_stat:.3f}")
print(f"Degrees of freedom: {dof}")
print(f"P-value: {p_value:.6f}")
print(f"Cramer's V: {cramers_v:.3f}")
print(f"Tần suất kỳ vọng nhỏ nhất: {min_expected:.2f}")
print("\nKết luận:")
if p_value < alpha:
print("- Có mối quan hệ có ý nghĩa thống kê")
if cramers_v < 0.3:
strength = "yếu"
elif cramers_v < 0.5:
strength = "trung bình"
else:
strength = "mạnh"
print(f"- Độ mạnh mối quan hệ: {strength}")
else:
print("- Không có mối quan hệ có ý nghĩa thống kê")
Tài liệu tham khảo
Để nghiên cứu sâu hơn về kiểm định chi bình phương trong thực hành kinh tế lượng, bạn có thể tham khảo:
- IBM SPSS Documentation: Hướng dẫn chính thức về Crosstabs và Chi-Square Tests
- Agresti, A. (2018). An Introduction to Categorical Data Analysis. Wiley
- Field, A. (2018). Discovering Statistics Using IBM SPSS Statistics. SAGE Publications
- Pallant, J. (2020). SPSS Survival Manual: A Step by Step Guide to Data Analysis Using IBM SPSS. McGraw-Hill Education
- Tabachnick, B. G. & Fidell, L. S. (2019). Using Multivariate Statistics. Pearson Education
- Cochran, W. G. (1954). Some methods for strengthening the common χ² tests. Biometrics, 10(4), 417-451