
Tóm tắt: Hồi quy thứ tự là kỹ thuật quan trọng trong thực hành kinh tế lượng, cho phép phân tích mối quan hệ giữa biến phụ thuộc dạng thứ tự và các biến độc lập. Bài hướng dẫn này trình bày chi tiết cách thực hiện ordinal regression trong SPSS, từ kiểm tra giả thiết đến giải thích kết quả, kèm theo ví dụ minh họa về dự báo điểm số học tập theo các yếu tố ảnh hưởng.
Giới thiệu về hồi quy thứ tự
Nội dung chính
Trong bối cảnh kinh tế và giáo dục Việt Nam, hồi quy thứ tự thường được ứng dụng để:
- Dự báo mức độ hài lòng của khách hàng (rất không hài lòng, không hài lòng, bình thường, hài lòng, rất hài lòng)
- Phân tích các yếu tố ảnh hưởng đến xếp loại học tập (yếu, trung bình, khá, giỏi)
- Đánh giá tác động của chính sách đến mức thu nhập hộ gia đình (thấp, trung bình, cao)
- Nghiên cứu yếu tố quyết định đến quyết định đầu tư (không đầu tư, đầu tư ít, đầu tư nhiều)
Ví dụ cụ thể: Một nghiên cứu muốn tìm hiểu các yếu tố ảnh hưởng đến tình trạng sức khỏe của người dân (kém, trung bình, tốt) dựa trên các biến như tuổi tác, giới tính, thu nhập, và mức độ vận động. Trong trường hợp này, biến phụ thuộc “tình trạng sức khỏe” có thứ tự rõ ràng từ kém đến tốt.
Giả thiết của hồi quy thứ tự
Hồi quy thứ tự được thực hiện dựa trên bốn giả định cơ bản sau:- Biến phụ thuộc là biến dạng thứ tự: Các biến sử dụng thang đo Likert (3 bậc, 5 bậc hoặc 7 bậc) hoặc có thứ tự rõ ràng
- Tính chất của biến độc lập: Có thể là biến liên tục, thứ tự hoặc phân loại (bao gồm cả nhị phân)
- Không có đa cộng tuyến: Giữa các biến độc lập không tồn tại mối quan hệ tuyến tính mạnh
- Giả định tỉ lệ khả dĩ: Mối quan hệ giữa mỗi cặp trong các nhóm kết quả là như nhau
Trong đó, giả định về tỉ lệ khả dĩ là quan trọng nhất. Giả sử biến kết quả có 4 nhóm (1, 2, 3, 4) theo thứ tự từ thấp đến cao, hồi quy logit thứ tự giả định rằng các hệ số mô tả mối quan hệ giữa nhóm thấp nhất (1) với các nhóm cao hơn (2, 3, 4) tương tự như mối quan hệ giữa nhóm thấp kế tiếp với các nhóm cao hơn.
Điều này được gọi là giả định hồi quy song song. Nếu giả định này bị vi phạm, chúng ta cần sử dụng mô hình hồi quy logit thứ tự tổng quát thay thế.
PLUM
hoặc GENLIN
. Thủ tục PLUM thực hiện nhanh và đơn giản hơn so với GENLIN, nên được khuyến nghị cho người mới bắt đầu.Ví dụ thực tế từ dữ liệu giáo dục
Để minh họa, chúng ta sử dụng bộ dữ liệu giáo dục mô phỏng theo hệ thống giáo dục Việt Nam. Dữ liệu bao gồm thông tin về:
- Biến phụ thuộc:
math3
– Xếp loại điểm toán (1: Yếu ≤ 45 điểm, 2: Trung bình 46-59 điểm, 3: Khá/Giỏi ≥ 60 điểm) - Biến độc lập: Giới tính (
female
), điểm đọc (read
), điểm viết (write
), điểm khoa học (science
)
Mục tiêu nghiên cứu: Xác định các yếu tố nào ảnh hưởng đến khả năng đạt điểm toán cao của học sinh, từ đó đề xuất các biện pháp cải thiện chất lượng giáo dục.
Tải về dữ liệu mẫuHướng dẫn thực hành chi tiết
Bước 1: Chuẩn bị dữ liệu
Trước khi thực hiện phân tích, cần tạo biến math3
từ biến điểm toán gốc bằng cách sử dụng chức năng Recode into Different Variables trong SPSS.
Để bắt đầu phân tích hồi quy thứ tự, thực hiện các bước sau:
Vào menu Analyze → Regression → Ordinal…
Bước 3: Thiết lập các biến trong mô hình
Cửa sổ Ordinal Regression sẽ mở ra. Thực hiện các thiết lập sau:
- Đưa biến
math3
vào ô Dependent (biến phụ thuộc) - Đưa biến
female
vào ô Factor(s) (biến phân loại) - Đưa các biến
read
,write
,science
vào ô Covariate(s) (biến liên tục)
- Factor(s): Dành cho biến phân loại (categorical) như giới tính, nghề nghiệp
- Covariate(s): Dành cho biến liên tục (continuous) như tuổi, điểm số, thu nhập
Bước 4: Kiểm tra và thiết lập Link Function
Bấm vào nút Options và đảm bảo phương pháp Logit ở phần Link đã được chọn. Đây là Link Function phù hợp nhất cho hồi quy thứ tự.
Bước 5: Thiết lập Output
Bấm vào nút Output để cấu hình các kết quả hiển thị. Đối với phân tích cơ bản, chọn:
- Parameter Estimates: Hiển thị các hệ số ước lượng
- Test of parallel lines: Kiểm định giả định tỉ lệ khả dĩ
- Parameter Estimates: Cung cấp hệ số ước lượng, standard error, và mức ý nghĩa thống kê
- Test of parallel lines: Kiểm định giả định quan trọng nhất của mô hình hồi quy thứ tự
Bước 6: Chạy phân tích
Sau khi thiết lập xong tất cả các tùy chọn, bấm OK để chạy phân tích. SPSS sẽ tạo ra các bảng kết quả trong Output Viewer.
Giải thích kết quả chi tiết
Bảng Case Processing Summary
Bảng đầu tiên cung cấp thông tin tổng quan về dữ liệu:
Bảng này cho biết:
- Số lượng quan sát hợp lệ cho mỗi nhóm của biến phụ thuộc
- Tỷ lệ phần trăm của từng nhóm
- Số lượng giá trị missing (nếu có)
Bảng Model Fitting Information
Bảng này thể hiện thông tin về độ phù hợp của mô hình, bao gồm:
- -2 Log Likelihood: Thước đo độ phù hợp của mô hình (giá trị càng nhỏ càng tốt)
- Chi-Square: Kiểm định sự khác biệt giữa mô hình null và mô hình có biến độc lập
- Sig.: Mức ý nghĩa thống kê của mô hình tổng thể
Bảng Test of Parallel Lines – Quan trọng nhất
Đây là bảng quan trọng nhất cần kiểm tra trước khi diễn giải kết quả:
- Nếu Sig. > 0.05: Giả định tỉ lệ khả dĩ được thỏa mãn → Tiếp tục phân tích
- Nếu Sig. ≤ 0.05: Giả định bị vi phạm → Cần sử dụng mô hình khác
Trong ví dụ này, Sig. = 0.307 > 0.05, cho thấy giả định về tỉ lệ khả dĩ chưa bị vi phạm, mô hình hồi quy thứ tự phù hợp với dữ liệu.
Bảng Parameter Estimates – Kết quả chính
Bảng này cung cấp thông tin chi tiết về tác động của từng biến:
Diễn giải hệ số cho biến giới tính
Hệ số của biến female
= 0.239 với p-value > 0.05, cho thấy:
- Tỉ lệ khả dĩ (OR) = \(e^{0.239} = 1.27\)
- Học sinh nam có khả năng đạt điểm toán cao gấp 1.27 lần so với học sinh nữ
- Tuy nhiên, sự khác biệt này không có ý nghĩa thống kê ở mức 5%
Diễn giải hệ số cho các biến liên tục
Đối với các môn học khác:
- Môn đọc (read): Mỗi điểm tăng thêm làm tăng 9.1% (\(e^{0.087} – 1 = 0.091\)) tỉ lệ khả dĩ đạt điểm toán cao
- Môn viết (write): Tác động tích cực có ý nghĩa thống kê
- Môn khoa học (science): Tác động mạnh nhất đến kết quả toán
Tất cả các mối quan hệ này đều có ý nghĩa thống kê ở mức 1%, cho thấy tầm quan trọng của việc học tập toàn diện các môn học.
Lưu ý quan trọng khi thực hành
- Không kiểm tra giả định Test of Parallel Lines trước khi diễn giải
- Nhầm lẫn giữa hệ số ước lượng và Odds Ratio
- Không xem xét tính ý nghĩa thống kê của từng biến
- Diễn giải sai chiều tác động của biến độc lập
- Luôn kiểm tra giả định: Test of Parallel Lines là bước bắt buộc
- Chú ý đến Odds Ratio: Dễ hiểu hơn so với hệ số ước lượng thô
- Xem xét ý nghĩa thực tế: Không chỉ dựa vào ý nghĩa thống kê
- Kiểm tra multicollinearity: Giữa các biến độc lập trước khi phân tích
Ứng dụng trong nghiên cứu kinh tế Việt Nam
Hồi quy thứ tự có nhiều ứng dụng quan trọng trong nghiên cứu kinh tế và xã hội tại Việt Nam:
- Giáo dục: Phân tích yếu tố ảnh hưởng đến thành tích học tập của học sinh theo vùng miền
- Y tế: Đánh giá các yếu tố quyết định đến mức độ hài lòng của bệnh nhân với dịch vụ y tế
- Kinh doanh: Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua hàng của khách hàng
- Chính sách: Đánh giá tác động của chính sách đến mức độ ủng hộ của người dân
Tổng kết
Hồi quy thứ tự là công cụ mạnh mẽ trong thực hành kinh tế lượng, đặc biệt phù hợp cho việc phân tích các biến có thứ tự tự nhiên. Thành công của phân tích phụ thuộc vào việc kiểm tra kỹ càng các giả định, đặc biệt là giả định về tỉ lệ khả dĩ.
Trong ví dụ minh họa, chúng ta đã thấy rằng điểm số các môn học khác có tác động tích cực và có ý nghĩa đến khả năng đạt điểm toán cao, trong khi yếu tố giới tính không có tác động rõ rệt. Kết quả này có thể hướng dẫn các nhà giáo dục trong việc thiết kế chương trình học tích hợp giữa các môn học.
Key Points:
- Hồi quy thứ tự phù hợp cho biến phụ thuộc có thứ tự rõ ràng
- Giả định Test of Parallel Lines là quan trọng nhất cần kiểm tra
- Odds Ratio cung cấp cách diễn giải trực quan hơn hệ số ước lượng
- Cần xem xét cả ý nghĩa thống kê và ý nghĩa thực tế của kết quả
- SPSS cung cấp công cụ thân thiện cho việc thực hiện phân tích này
Phụ lục – Code tương đương cho các phần mềm khác
SPSS Syntax
SPSS Syntax (.sps)
* Tạo biến math3 từ biến math gốc
RECODE math (Lowest thru 45=1) (46 thru 59=2) (60 thru Highest=3) INTO math3.
VARIABLE LABELS math3 'Xếp loại điểm toán'.
VALUE LABELS math3 1 'Yếu' 2 'Trung bình' 3 'Khá/Giỏi'.
* Thực hiện hồi quy thứ tự
PLUM math3 WITH read write science BY female
/LINK=LOGIT
/PRINT=PARAMETER SUMMARY TPARALLEL
/CRITERIA=CIN(95) DELTA(0) LCONVERGE(0) MXITER(100) MXSTEP(5)
PCONVERGE(1.0E-6) SINGULAR(1.0E-8).
Stata
Code Stata (.do)
* Tạo biến math3 từ biến math gốc
recode math (min/45 = 1) (46/59 = 2) (60/max = 3), gen(math3)
label define math3_lbl 1 "Yếu" 2 "Trung bình" 3 "Khá/Giỏi"
label values math3 math3_lbl
label variable math3 "Xếp loại điểm toán"
* Thực hiện hồi quy thứ tự
ologit math3 read write science i.female
* Kiểm định giả định parallel regression
brant
* Hiển thị odds ratios
ologit, or
* Kiểm định tổng thể của mô hình
estat ic
R
Code R (.R)
# Load thư viện cần thiết
library(MASS) # Cho hàm polr
library(Hmisc) # Cho các tiện ích thống kê
library(brant) # Kiểm định parallel assumption
# Đọc dữ liệu (giả sử đã có file CSV)
data <- read.csv("hsb2.csv")
# Tạo biến math3
data$math3 <- cut(data$math,
breaks = c(-Inf, 45, 59, Inf),
labels = c("Yếu", "Trung bình", "Khá/Giỏi"),
ordered = TRUE)
# Chuyển female thành factor
data$female <- factor(data$female, levels = c(0, 1), labels = c("Nam", "Nữ"))
# Thực hiện hồi quy thứ tự
model <- polr(math3 ~ read + write + science + female,
data = data,
Hess = TRUE)
# Hiển thị kết quả
summary(model)
# Tính confidence intervals
confint(model)
# Kiểm định parallel assumption (Brant test)
brant(model)
# Tính odds ratios
exp(coef(model))
# Kiểm định tổng thể của mô hình
anova(model)
Python
Code Python (.py)
import pandas as pd
import numpy as np
from statsmodels.miscmodels.ordinal_model import OrderedModel
from scipy import stats
import matplotlib.pyplot as plt
# Đọc dữ liệu
data = pd.read_csv('hsb2.csv')
# Tạo biến math3
data['math3'] = pd.cut(data['math'],
bins=[-np.inf, 45, 59, np.inf],
labels=[1, 2, 3],
ordered=True)
# Chuẩn bị dữ liệu cho mô hình
y = data['math3'].astype(int)
X = data[['read', 'write', 'science', 'female']]
# Thực hiện hồi quy thứ tự
model = OrderedModel(y, X, distr='logit')
result = model.fit(method='bfgs')
# Hiển thị kết quả
print(result.summary())
# Tính odds ratios
odds_ratios = np.exp(result.params)
print("\nOdds Ratios:")
print(odds_ratios)
# Tính confidence intervals cho odds ratios
conf_int = np.exp(result.conf_int())
print("\nConfidence Intervals for Odds Ratios:")
print(conf_int)
# Dự báo xác suất
predictions = result.predict()
print("\nPredicted probabilities for first 10 observations:")
print(predictions[:10])
# Vẽ biểu đồ phân phối biến phụ thuộc
plt.figure(figsize=(8, 6))
data['math3'].value_counts().sort_index().plot(kind='bar')
plt.title('Phân phối xếp loại điểm toán')
plt.xlabel('Xếp loại')
plt.ylabel('Số lượng học sinh')
plt.xticks([0, 1, 2], ['Yếu', 'Trung bình', 'Khá/Giỏi'], rotation=0)
plt.show()
- Tất cả các phiên bản code đều thực hiện cùng một phân tích hồi quy thứ tự
- Kết quả có thể có sự khác biệt nhỏ do thuật toán tối ưu hóa khác nhau
- Trong Python, cần cài đặt thêm package để kiểm định Brant test
- R cung cấp nhiều package mở rộng cho hồi quy thứ tự như
ordinal
,VGAM