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

Tóm tắt: Kiểm định độ phù hợp chi bình phương là một phương pháp thống kê phi tham số quan trọng trong thực hành kinh tế lượng, cho phép kiểm tra xem tỉ lệ các thành phần trong biến phân loại có khác ý nghĩa thống kê với các tỉ lệ giả định ban đầu hay không. Bài viết này hướng dẫn chi tiết cách thực hiện kiểm định trên SPSS thông qua giao diện người dùng, kèm theo các đoạn mã tương đương trong các phần mềm khác như Stata, R và Python.
Giới thiệu về kiểm định độ phù hợp chi bình phương
Nội dung chính
Trong thực hành kinh tế lượng, việc phân tích dữ liệu phân loại là một nhiệm vụ thường gặp. Khi chúng ta cần kiểm định sự khác biệt về hai tỉ lệ của một biến phân loại hai mức, chúng ta có thể sử dụng kiểm định khác biệt giữa hai tỉ lệ. Tuy nhiên, khi biến phân loại có nhiều hơn hai mức, việc kiểm định sự khác biệt giữa các tỉ lệ sẽ không thể thực hiện được bằng phương pháp truyền thống.
Trong trường hợp này, kiểm định độ phù hợp chi bình phương trở thành công cụ hữu ích. Kiểm định này cho phép chúng ta kiểm tra xem tỉ lệ các thành phần trong biến phân loại có khác ý nghĩa thống kê với các tỉ lệ giả định ban đầu hay không.
Ví dụ minh họa trong bối cảnh Việt Nam
Để dễ hiểu hơn, hãy xem xét một ví dụ về cơ cấu dân tộc trong một trường đại học ở Việt Nam. Giả sử theo báo cáo năm trước, tỉ lệ sinh viên theo dân tộc là: 85% Kinh, 8% Tày, 4% Thái, và 3% các dân tộc khác. Năm nay, nhà trường muốn kiểm tra xem cơ cấu dân tộc có thay đổi so với năm trước hay không. Đây chính là bài toán điển hình cho kiểm định độ phù hợp chi bình phương.
Xem thêm: Kiểm định tham số (Parametric tests)
Giả thiết và điều kiện áp dụng
Để sử dụng kiểm định độ phù hợp chi bình phương trong thực hành kinh tế lượng, dữ liệu phải thỏa mãn 4 điều kiện sau:
- Mẫu được chọn theo phương pháp chọn mẫu ngẫu nhiên
- Cỡ mẫu tối thiểu phải bằng 1/10 tổng thể
- Biến phân tích là biến phân loại (nhiều hơn hai mức). Tham khảo bài viết các loại thang đo trong phân tích dữ liệu
- Số quan sát trong mỗi nhóm tối thiểu phải bằng 5
Phát biểu giả thuyết thống kê
Kiểm định độ phù hợp chi bình phương có thể được phát biểu dưới dạng giả thuyết thống kê như sau:
- \({H_0}\): Dữ liệu thỏa mãn một phân phối cụ thể
- \({H_1}\): Dữ liệu không thỏa mãn một phân phối cụ thể
Ví dụ thực tế với dữ liệu mẫu
Trong bài hướng dẫn này, chúng ta sẽ sử dụng bộ dữ liệu hsb2.sav – một bộ dữ liệu điển hình trong thực hành kinh tế lượng. Bộ dữ liệu này chứa thông tin về 200 học sinh trung học với các biến chính bao gồm:
- Điểm số các môn: toán (math), đọc (read), viết (write)
- Thông tin cá nhân: chương trình học (prog), giới tính (female)
- Thông tin nhân khẩu học: sắc tộc (race)
Câu hỏi nghiên cứu
Dựa trên các nghiên cứu trước đây, người ta tin rằng tỉ lệ sắc tộc của học sinh trung học là:
- 10% TBN/BĐN (Hispanic)
- 10% Châu Á (Asian)
- 10% Mỹ gốc phi (African American)
- 70% Mỹ da trắng (White)
Chúng ta cần kiểm tra xem trong mẫu dữ liệu thu thập, tỉ lệ này có khác ý nghĩa thống kê với những gì đã được giả định ban đầu hay không.
Giả thuyết thống kê cụ thể được phát biểu như sau:
- \({H_0}\): Tỉ lệ sắc tộc của các học sinh trung học là 10% TBN/BĐN, 10% Châu Á, 10% Mỹ gốc phi và 70% Mỹ da trắng
- \({H_1}\): Tỉ lệ sắc tộc của các học sinh trung học không theo tỉ lệ trên
Hướng dẫn thực hành chi tiết trên SPSS
Phần này sẽ hướng dẫn các bạn từng bước thực hiện kiểm định độ phù hợp chi bình phương trong SPSS thông qua giao diện đồ họa. Đây là cách tiếp cận phù hợp nhất cho người mới bắt đầu học thực hành kinh tế lượng.
Để bắt đầu quá trình kiểm định, các bạn thực hiện theo trình tự sau:
Vào Analyze → Nonparametric Tests → Legacy dialogs → Chi-square…
Bước 2: Cấu hình kiểm định
Sau khi thực hiện bước 1, cửa sổ Chi-square Test sẽ mở ra. Tại đây, các bạn cần:
1. Đưa biến race vào khung Test Variable List
2. Tại ô Values, nhập lần lượt các tỉ lệ mong đợi tương ứng với từng nhóm sắc tộc
Chi tiết cách nhập giá trị:
- Nhập 1 cho Hispanic rồi bấm Add
- Nhập 1 cho Asian rồi bấm Add
- Nhập 1 cho African-American rồi bấm Add
- Nhập 7 cho White rồi bấm Add
Bước 3: Thực hiện kiểm định
Sau khi hoàn tất cấu hình, bấm OK để SPSS thực hiện kiểm định. Phần mềm sẽ tự động tính toán thống kê chi bình phương và p-value tương ứng.
Phân tích và diễn giải kết quả
Kết quả kiểm định độ phù hợp chi bình phương sẽ được hiển thị trong bảng output của SPSS như sau:
Phân tích chi tiết kết quả
Từ bảng kết quả trên, chúng ta quan sát thấy:
- Giá trị Sig. (p-value) = 0.170
- Mức ý nghĩa α = 0.05 (mức phổ biến trong thực hành kinh tế lượng)
- So sánh: 0.170 > 0.05
Diễn giải kết quả
Với p-value = 0.170 > 0.05, ở mức ý nghĩa 5%, chúng ta chưa có đủ bằng chứng thống kê để bác bỏ giả thuyết ban đầu \({H_0}\). Do đó, chúng ta có thể chấp nhận rằng tỉ lệ sắc tộc của các học sinh trung học trong tổng thể là 10% TBN/BĐN, 10% Châu Á, 10% Mỹ gốc phi và 70% Mỹ da trắng.
Lưu ý quan trọng và cảnh báo
Khi thực hiện kiểm định độ phù hợp chi bình phương trong thực hành kinh tế lượng, các bạn cần chú ý những điểm sau:
- Điều kiện áp dụng: Đảm bảo tất cả các ô có tần số mong đợi tối thiểu bằng 5
- Kích thước mẫu: Mẫu quá nhỏ có thể làm giảm độ tin cậy của kiểm định
- Tính độc lập: Các quan sát phải độc lập với nhau
- Phân phối chuẩn: Thống kê chi bình phương chỉ tuân theo phân phối chi bình phương khi các điều kiện được thỏa mãn
Các lỗi thường gặp
- Nhập sai tỉ lệ mong đợi (nhập phần trăm thay vì tỉ lệ)
- Không kiểm tra điều kiện tần số mong đợi tối thiểu bằng 5
- Diễn giải sai ý nghĩa của giá trị p (p-value)
- Không xem xét tính thực tiễn của kết quả
Mở rộng phân tích
Ngoài kiểm định cơ bản, các bạn có thể thực hiện thêm:
- Phân tích dư: Xem xét sự khác biệt giữa tần số quan sát và mong đợi
- Kiểm định post-hoc: Xác định nhóm nào có sự khác biệt lớn nhất
- Phân tích nhạy cảm: Kiểm tra tính ổn định của kết quả với các mức ý nghĩa khác nhau
Tổng kết
Kiểm định độ phù hợp chi bình phương là một công cụ mạnh mẽ và thiết yếu trong thực hành kinh tế lượng. Thông qua việc sử dụng SPSS, chúng ta có thể dễ dàng kiểm tra xem phân phối dữ liệu quan sát có phù hợp với phân phối lý thuyết hay không.
Trong ví dụ trên, kết quả kiểm định cho thấy tỉ lệ sắc tộc trong mẫu khảo sát không khác biệt ý nghĩa thống kê với tỉ lệ kỳ vọng ban đầu (p-value = 0.170 > 0.05). Điều này có nghĩa là chúng ta có thể tin tưởng vào tính đại diện của mẫu đối với tổng thể.
Phương pháp này đặc biệt hữu ích trong các nghiên cứu thị trường, khảo sát dư luận, và phân tích dữ liệu nhân khẩu học trong bối cảnh kinh tế Việt Nam.
Điểm chính cần nhớ:
- Kiểm định độ phù hợp chi bình phương phù hợp với biến phân loại có nhiều hơn 2 mức
- Điều kiện quan trọng: tần số mong đợi trong mỗi ô tối thiểu bằng 5
- P-value > α: không bác bỏ H0 (dữ liệu phù hợp với phân phối kỳ vọng)
- P-value ≤ α: bác bỏ H0 (dữ liệu không phù hợp với phân phối kỳ vọng)
- Kết quả cần được diễn giải trong bối cảnh thực tế của nghiên cứu

Phụ lục: Code tương đương trong các phần mềm khác
Để hỗ trợ các bạn làm quen với nhiều công cụ phân tích khác nhau trong thực hành kinh tế lượng, phần này cung cấp code tương đương cho kiểm định độ phù hợp chi bình phương trong SPSS Syntax, Stata, R và Python.
SPSS Syntax
SPSS Syntax (.sps)
* Mở file dữ liệu
GET FILE='/data/hsb2.sav'.
* Thực hiện kiểm định độ phù hợp chi bình phương
* Tỉ lệ mong đợi: Hispanic=1, Asian=1, African-American=1, White=7
NPAR TESTS
/CHISQUARE=race
/EXPECTED=1 1 1 7
/STATISTICS DESCRIPTIVES
/MISSING ANALYSIS.
* Hiển thị bảng tần số để kiểm tra
FREQUENCIES VARIABLES=race
/ORDER=ANALYSIS.
Stata
Stata (.do)
* Mở file dữ liệu
use "/data/hsb2.dta", clear
* Tạo bảng tần số cho biến race
tab race
* Thực hiện kiểm định độ phù hợp chi bình phương
* Tỉ lệ mong đợi: Hispanic=0.1, Asian=0.1, African-American=0.1, White=0.7
* Tính tần số mong đợi dựa trên cỡ mẫu
quietly count
local n = r(N)
local exp_hisp = `n' * 0.1
local exp_asian = `n' * 0.1
local exp_afram = `n' * 0.1
local exp_white = `n' * 0.7
* Thực hiện kiểm định
tab race, chi2
R
R (.R)
# Cài đặt và tải các package cần thiết
if (!require(foreign)) install.packages("foreign")
library(foreign)
# Đọc dữ liệu SPSS
data <- read.spss("/data/hsb2.sav", to.data.frame = TRUE)
# Kiểm tra cấu trúc dữ liệu
str(data)
table(data$race)
# Định nghĩa tỉ lệ mong đợi
# Hispanic=10%, Asian=10%, African-American=10%, White=70%
expected_props <- c(0.1, 0.1, 0.1, 0.7)
# Tính tần số quan sát
observed_freq <- table(data$race)
# Tính tần số mong đợi
n <- sum(observed_freq)
expected_freq <- expected_props * n
# Thực hiện kiểm định độ phù hợp chi bình phương
chi_test <- chisq.test(observed_freq, p = expected_props)
# Hiển thị kết quả
print(chi_test)
print(paste("Chi-square statistic:", round(chi_test$statistic, 4)))
print(paste("p-value:", round(chi_test$p.value, 4)))
print(paste("Degrees of freedom:", chi_test$parameter))
# Hiển thị bảng so sánh tần số quan sát và mong đợi
comparison <- data.frame(
Group = names(observed_freq),
Observed = as.numeric(observed_freq),
Expected = round(expected_freq, 2),
Residual = round(chi_test$residuals, 2)
)
print(comparison)
Python
Python (.py)
# Import các thư viện cần thiết
import pandas as pd
import numpy as np
from scipy import stats
import pyreadstat
# Đọc dữ liệu SPSS
data, meta = pyreadstat.read_sav('/data/hsb2.sav')
# Kiểm tra cấu trúc dữ liệu
print("Cấu trúc dữ liệu:")
print(data.info())
print("\nTần số các nhóm sắc tộc:")
print(data['race'].value_counts())
# Tính tần số quan sát
observed_freq = data['race'].value_counts().sort_index()
print("\nTần số quan sát:")
print(observed_freq)
# Định nghĩa tỉ lệ mong đợi
# Hispanic=10%, Asian=10%, African-American=10%, White=70%
expected_props = np.array([0.1, 0.1, 0.1, 0.7])
# Tính tần số mong đợi
n = len(data)
expected_freq = expected_props * n
# Thực hiện kiểm định độ phù hợp chi bình phương
chi2_stat, p_value = stats.chisquare(observed_freq, expected_freq)
# Hiển thị kết quả
print(f"\nKết quả kiểm định độ phù hợp chi bình phương:")
print(f"Chi-square statistic: {chi2_stat:.4f}")
print(f"p-value: {p_value:.4f}")
print(f"Degrees of freedom: {len(observed_freq) - 1}")
# Tạo bảng so sánh
comparison_df = pd.DataFrame({
'Group': ['Hispanic', 'Asian', 'African-American', 'White'],
'Observed': observed_freq.values,
'Expected': expected_freq,
'Residual': observed_freq.values - expected_freq
})
print("\nBảng so sánh tần số quan sát và mong đợi:")
print(comparison_df)
# Diễn giải kết quả
alpha = 0.05
if p_value > alpha:
print(f"\nKết luận: p-value ({p_value:.3f}) > α ({alpha})")
print("Không bác bỏ H0. Dữ liệu phù hợp với phân phối kỳ vọng.")
else:
print(f"\nKết luận: p-value ({p_value:.3f}) ≤ α ({alpha})")
print("Bác bỏ H0. Dữ liệu không phù hợp với phân phối kỳ vọng.")
Tài liệu tham khảo
Để nắm vững hơn về kiểm định độ phù hợp chi bình phương trong thực hành kinh tế lượng, các bạn có thể tham khảo:
- IBM SPSS Statistics Documentation – Nonparametric Tests
- Gujarati, D. N. & Porter, D. C. (2009). Basic Econometrics. McGraw-Hill
- Field, A. (2013). Discovering Statistics Using IBM SPSS Statistics. Sage Publications
- Wooldridge, J. M. (2020). Introductory Econometrics: A Modern Approach. Cengage Learning
- Các bài viết chuyên sâu về kiểm định phi tham số trên trang web thực hành kinh tế lượng