Phân tích hồi quy

Hồi quy thứ tự – Ordinal Regression

Hướng dẫn thực hiện hồi quy thứ tự trong SPSS

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ự

Hồi quy thứ tự là phương pháp thống kê được sử dụng để dự báo giá trị của một biến phụ thuộc dạng thứ tự dựa trên một hoặc nhiều biến độc lập. Đây có thể được xem là dạng tổng quát của hồi quy đa biến hoặc hồi quy logit truyền thống.

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:

Các giả thiết cần thỏa mãn:

  1. 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
  2. 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)
  3. 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
  4. 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ế.

Lưu ý về phần mềm: Trong SPSS, hồi quy thứ tự có thể được thực hiện bằng thủ tục 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ẫu

Hướ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.

Lưu ý quan trọng: Đảm bảo biến phụ thuộc được mã hóa đúng thứ tự (1 < 2 < 3) và SPSS nhận biết đây là biến thứ tự (ordinal), không phải biến định danh (nominal).

Bước 2: Truy cập menu hồi quy thứ tự

Để bắt đầu phân tích hồi quy thứ tự, thực hiện các bước sau:

Vào menu AnalyzeRegressionOrdinal…

Giao diện menu Analyze - Regression - Ordinal trong SPSS

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)

Giao diện thiết lập biến trong Ordinal Regression SPSS

Phân biệt Factor và Covariate:

  • 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ự.

Thiết lập Link Function Logit trong Options

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ĩ

Thiết lập Output cho hồi quy thứ tự

Ghi nhớ:

  • 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 Case Processing Summary trong hồi quy thứ tự

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 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ể
Giải thích: Với giá trị -2 LL = 284.187 và p-value < 0.001, cho thấy mô hình có ý nghĩa thống kê, tức là các biến độc lập có tác động đến biến phụ thuộc.

Bảng Test of Parallel Lines – Quan trọng nhất

Bảng Test of Parallel Lines

Đây là bảng quan trọng nhất cần kiểm tra trước khi diễn giải kết quả:

Nguyên tắc diễn giải:

  • 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 Parameter Estimates với các hệ số ước lượng

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:

Kết quả quan trọng:

  • 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

Các lỗi thường gặp:

  • 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()
Ghi chú về code tương đương:

  • 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
Xem thêm
Back to top button