KTL cơ bảnPhân tích hồi quy

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

Hồi quy logit lặp được sử dụng trong trường hợp biến kết quả dạng nhị phân được lặp lại trên mỗi đối tượng nghiên cứu. Trong thực hành kinh tế lượng, phương pháp này đặc biệt hữu ích khi phân tích các hiện tượng kinh tế có tính lặp lại theo thời gian.

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ải pháp trong SPSS: Sử dụng lệnh GEE (Generalized Estimating Equations) và xác định phân phối nhị phân với mô hình logit để khắc phục vấn đề 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ẫu

Dữ 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.

Biến số trong nghiên cứu:

  • id: Mã số định danh đối tượng
  • highpulse: 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:

Bước 1: Truy cập menu Generalized Estimating Equations

Vào menu AnalyzeGeneralized Linear ModelsGeneralized Estimating Equations…

Giao diện menu Analyze - Generalized Linear Models - Generalized Estimating Equations trong SPSS

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

Thiết lập tab Repeated với biến id và cấu trúc Exchangeable

Lưu ý quan trọng: Cấu trúc Exchangeable phù hợp khi giả định rằng tương quan giữa các lần đo là như nhau.

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

Thiết lập Type of Model với Distribution Binomial và Link function Logit

Tab Response

Ở tab Response, đưa biến highpulse vào khung Dependent Variable

Thiết lập biến phụ thuộc highpulse trong tab Response

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)

Thiết lập biến độc lập diet trong tab Predictors với sắp xếp 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)Main effects

Thiết lập mô hình với biến diet và Main effects trong tab Model

Lưu ý: Các tab khác được giữ nguyên thiết lập mặc định. Có thể bấm nút Help ở mỗi cửa sổ để hiểu rõ hơn về cách thiết lập các thông số.

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:

Bảng Model Information tóm tắt thông tin mô hình hồi quy logit lặp

  • 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 Tests of Model Effects với kiểm định Chi bình phương

Kết quả quan trọng: Tham số ước lượng diet với giá trị chi bình phương = 1.562, bậc tự do = 1 và Sig. = 0.211 cho thấy kết quả ước lượng không có ý nghĩa thống kê ở mức 5%.

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

Các điều kiện cần kiểm tra:

  • 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
Ưu điểm của GEE so với hồi quy logit đơn giản:

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