Phân tích hồi quy Logit lặp
Hồi quy logit lặp trong SPSS cho thực hành kinh tế lượng

Tóm tắt: Hồi quy logit lặp là kỹ thuật thống kê quan trọng trong thực hành kinh tế lượng để phân tích biến kết quả nhị phân được lặp lại trên cùng đối tượng. Phương pháp này giúp tránh sai lầm loại I khi thực hiện nhiều lần hồi quy logit đơn giản, sử dụng SPSS với lệnh Generalized Estimating Equations (GEE) và phân phối nhị phân với hàm liên kết logit.
Giới thiệu về hồi quy logit lặp
Nội dung chính
Khi muốn tính toán tác động các lần đo trên mỗi đối tượng, chúng ta có thể thực hiện lặp lại hồi quy logit giản đơn. Tuy nhiên, quá trình thực hiện lặp lại nhiều lần như vậy sẽ làm tăng khả năng mắc sai lầm loại I.
Giả thiết của hồi quy logit lặp
- Biến phụ thuộc có dạng nhị phân (0/1, có/không)
- Các quan sát được lặp lại trên cùng đối tượng
- Mối quan hệ giữa biến độc lập và log-odds của biến phụ thuộc là tuyến tính
- Các quan sát độc lập giữa các đối tượng khác nhau
- Không có hiện tượng đa cộng tuyến nghiêm trọng
Ví dụ thực tế từ nghiên cứu y tế
Chúng ta đã biết, bên cạnh các vấn đề về tuổi tác, yếu tố di truyền thì bệnh cao huyết áp có quan hệ mật thiết với chế độ ăn uống và vận động thể thao hàng ngày. Đây là vấn đề sức khỏe quan trọng trong bối cảnh kinh tế xã hội Việt Nam hiện nay.
Một nghiên cứu thực nghiệm được thực hiện trên 30 đối tượng tình nguyện để xác định mối quan hệ này. Mỗi đối tượng sẽ yêu cầu thực hiện lần lượt chế độ ăn kiêng, và các chế độ tập luyện (1, 2, 3). Trước và sau mỗi giai đoạn nhóm nghiên cứu sẽ tiến hành ghi nhận chỉ số huyết áp ở từng đối tượng.
Kết quả được thể hiện ở file dữ liệu thực hành: hồi quy logit lặp
Tải về dữ liệu mẫuDữ liệu mẫu và thiết lập
Trong ví dụ này, chúng ta muốn biết mối quan hệ giữa chế độ ăn kiêng và bệnh cao huyết áp cũng như xác suất bị cao huyết áp ở nhóm này. Sử dụng số liệu trên với giả định rằng chỉ số huyết áp trên 100 được xem là bị cao huyết áp.
id
: Mã số định danh đối tượnghighpulse
: Biến nhị phân (1 = cao huyết áp, 0 = bình thường)diet
: Chế độ ăn kiêng (1 = có, 0 = không)
Hướng dẫn thực hành chi tiết trong SPSS
Quá trình thực hành hồi quy logit lặp trên SPSS như sau:
Vào menu Analyze → Generalized Linear Models → Generalized Estimating Equations…
Bước 2: Thiết lập các tab trong cửa sổ Generalized Estimating Equations
Cửa sổ Generalized Estimating Equations mở ra và thiết lập các tab như sau:
Tab Repeated
Ở tab Repeated thực hiện:
- Đưa biến id vào khung Subject variables
- Thiết lập lựa chọn Exchangeable cho Structure ở khung Working Correlation Matrix
Tab Type of Model
Ở tab Type of Model:
- Chọn phần Custom
- Thiết lập phân phối (Distribution) là Binomial
- Thiết lập hàm tham chiếu (Link function) là Logit
Tab Response
Ở tab Response, đưa biến highpulse vào khung Dependent Variable
Tab Predictors
Ở tab Predictors:
- Đưa biến diet vào khung Factors Variable
- Bấm nút Options… và thiết lập sắp xếp giảm dần (Descending)
Tab Model
Ở tab Model:
- Đưa biến diet vào khung Model
- Chọn loại tác động muốn tính toán ở phần Build Term(s) là Main effects
Giải thích kết quả hồi quy logit lặp
Sau khi chạy phân tích, SPSS sẽ xuất ra các bảng kết quả quan trọng trong thực hành kinh tế lượng:
Bảng Model Information
Bảng Model Information tóm tắt thông tin về mô hình như biến phụ thuộc, kiểu phân phối, hàm hồi quy, đối tượng nghiên cứu:
- Dependent Variable: Biến phụ thuộc được phân tích
- Probability Distribution: Phân phối xác suất sử dụng
- Link Function: Hàm liên kết trong mô hình
- Subject Effect: Biến định danh đối tượng
Bảng Tests of Model Effects
Bảng Tests of Model Effects cho biết kết quả kiểm định Chi bình phương về mức độ tin cậy của mô hình:
Bảng Parameter Estimates
Bảng Parameter Estimates cho biết kết quả chi tiết về các thông số ước lượng:
- Hệ số ước lượng (Estimate)
- Sai số chuẩn (Standard Error)
- Khoảng tin cậy (Confidence Interval)
- Kiểm định Chi bình phương
Với giá trị hệ số ứng với trường hợp ăn kiêng là -0.754 cho thấy việc thực hiện chế độ ăn kiêng có thể làm giảm nguy cơ cao huyết áp. Tuy nhiên, với mức ý nghĩa 5% thì chưa có đủ bằng chứng thống kê để khẳng định điều này.
Lưu ý quan trọng trong thực hành
- Kích thước mẫu đủ lớn (thường ≥ 10 quan sát cho mỗi tham số)
- Không có hiện tượng đa cộng tuyến nghiêm trọng
- Biến phụ thuộc phải có dạng nhị phân
- Lựa chọn cấu trúc tương quan phù hợp
- Xử lý được tương quan trong dữ liệu lặp lại
- Ước lượng hiệu quả hơn
- Kiểm soát được sai lầm loại I
- Vững (robust) với các vi phạm giả thiết nhất định
Tổng kết
Hồi quy logit lặp là công cụ mạnh mẽ trong thực hành kinh tế lượng để phân tích dữ liệu nhị phân được đo lặp lại. Phương pháp Generalized Estimating Equations trong SPSS cung cấp khả năng xử lý tương quan giữa các quan sát và đưa ra ước lượng chính xác hơn so với việc thực hiện nhiều lần hồi quy logit đơn giản.
Trong ví dụ nghiên cứu về mối quan hệ giữa chế độ ăn kiêng và cao huyết áp, mặc dù có xu hướng giảm nguy cơ nhưng kết quả chưa đạt ý nghĩa thống kê. Điều này cho thấy cần nghiên cứu thêm với mẫu lớn hơn hoặc xem xét các yếu tố khác.
Key Points:
- Hồi quy logit lặp phù hợp cho biến phụ thuộc nhị phân được đo lặp lại
- Sử dụng GEE để tránh sai lầm loại I khi có nhiều lần đo
- Cấu trúc tương quan Exchangeable phù hợp cho hầu hết trường hợp
- Phân phối Binomial và hàm liên kết Logit là lựa chọn chuẩn
- Kiểm định Chi bình phương đánh giá ý nghĩa thống kê
- Hệ số âm cho thấy tác động giảm xác suất xảy ra sự kiện
Phụ lục
SPSS Syntax
SPSS Syntax (.sps)
* Hồi quy logit lặp sử dụng GEE trong SPSS
* Cấu hình dữ liệu và chạy phân tích
GENLIN highpulse WITH diet
/MODEL diet INTERCEPT=YES
DISTRIBUTION=BINOMIAL LINK=LOGIT
/CRITERIA METHOD=FISHER(1) SCALE=1 MAXITERATIONS=100 MAXSTEPHALVING=5
PCONVERGE=1E-006(ABSOLUTE) SINGULAR=1E-012
/REPEATED SUBJECT=id WITHINSUBJECT=diet SORT=YES CORRTYPE=EXCHANGEABLE
MAXITERATIONS=100 PCONVERGE=1e-006(ABSOLUTE) UPDATECORR=1
/PRINT CPS DESCRIPTIVES MODELINFO FIT SUMMARY SOLUTION
/SAVE WORKINGCORR.
* Giải thích các tham số:
* - DISTRIBUTION=BINOMIAL: Phân phối nhị phân
* - LINK=LOGIT: Hàm liên kết logit
* - SUBJECT=id: Biến định danh đối tượng
* - CORRTYPE=EXCHANGEABLE: Cấu trúc tương quan có thể trao đổi
Code Stata
Stata Code (.do)
* Hồi quy logit lặp trong Stata
* Chuẩn bị dữ liệu
use "repeated-logit.dta", clear
* Mô tả dữ liệu
describe
summarize
* Thực hiện hồi quy logit lặp sử dụng GEE
xtset id
xtlogit highpulse i.diet, i(id) corr(exchangeable)
* Hoặc sử dụng lệnh xtgee
xtgee highpulse i.diet, i(id) family(binomial) link(logit) corr(exchangeable)
* Hiển thị kết quả
estimates store model1
estimates table model1, b(%9.3f) se(%9.3f) p(%9.3f)
* Tính toán odds ratio
xtlogit highpulse i.diet, i(id) corr(exchangeable) or
* Kiểm tra giả thiết mô hình
estat ic
estat correlation
Code R
R Code (.R)
# Hồi quy logit lặp trong R
# Cài đặt và tải các package cần thiết
install.packages(c("geepack", "foreign", "dplyr"))
library(geepack)
library(foreign)
library(dplyr)
# Đọc dữ liệu SPSS
data <- read.spss("repeated-logit.sav", to.data.frame = TRUE)
# Mô tả dữ liệu
summary(data)
str(data)
# Chuyển đổi biến phân loại
data$diet <- as.factor(data$diet)
data$id <- as.factor(data$id)
# Thực hiện hồi quy logit lặp sử dụng GEE
model_gee <- geeglm(highpulse ~ diet,
data = data,
family = binomial(link = "logit"),
id = id,
corstr = "exchangeable")
# Hiển thị kết quả
summary(model_gee)
# Tính toán odds ratio
exp(coef(model_gee))
exp(confint(model_gee))
# Kiểm tra mô hình
library(MuMIn)
QIC(model_gee)
# Vẽ biểu đồ residuals
plot(residuals(model_gee))
Code Python
Python Code (.py)
# Hồi quy logit lặp trong Python
import pandas as pd
import numpy as np
import pyreadstat
from statsmodels.genmod.families import Binomial
from statsmodels.genmod.dependence_structures import Exchangeable
from statsmodels.genmod.generalized_estimating_equations import GEE
# Đọc dữ liệu SPSS
df, meta = pyreadstat.read_sav("repeated-logit.sav")
# Mô tả dữ liệu cơ bản
print(df.describe())
print(df.info())
# Chuẩn bị dữ liệu
df['diet'] = df['diet'].astype('category')
df['id'] = df['id'].astype('category')
# Thực hiện hồi quy logit lặp sử dụng GEE
model = GEE(endog=df['highpulse'],
exog=pd.get_dummies(df[['diet']], drop_first=True),
groups=df['id'],
family=Binomial(),
cov_struct=Exchangeable())
# Fit mô hình
results = model.fit()
# Hiển thị kết quả
print(results.summary())
# Tính toán odds ratio
odds_ratios = np.exp(results.params)
print("Odds Ratios:")
print(odds_ratios)
# Khoảng tin cậy cho odds ratio
conf_int = np.exp(results.conf_int())
print("Confidence Intervals for Odds Ratios:")
print(conf_int)
# Kiểm tra mô hình
print("QIC:", results.qic)
print("P-values:", results.pvalues)
Tài liệu tham khảo
- IBM SPSS Statistics Documentation: Generalized Estimating Equations
- Agresti, A. (2018). An Introduction to Categorical Data Analysis. Wiley.
- Hardin, J. W., & Hilbe, J. M. (2013). Generalized Estimating Equations. CRC Press.
- Hosmer, D. W., Lemeshow, S., & Sturdivant, R. X. (2013). Applied Logistic Regression. Wiley.
- Zeger, S. L., & Liang, K. Y. (1986). Longitudinal data analysis for discrete and continuous outcomes. Biometrics, 42(1), 121-130.