Bài giảng nghiên cứu mô hình hồi quy Logistic; ứng dụng của mô hình hồi quy Logistic; thời điểm sử dụng mô hình hồi quy Logistic; một vài khái niệm cơ bản... Đặc tính của các nghiên cứu • Outcome (dependent) variable: biến nhị phân (binary variable), chỉ có 2 giá trị • Predictor (independent) variables: đa dạng (nhị phân, biến liên tục) Không thể dùng mô hình hồi qui tuyến tính
Trang 1Tuan V Nguyen
Senior Principal Research Fellow, Garvan Institute of Medical Research
Professor, UNSW School of Public Health and Community Medicine
Professor of Predictive Medicine, University of Technology Sydney
Adj Professor of Epidemiology and Biostatistics, School of Medicine Sydney, University of Notre Dame Australia
Phân tích dữ liệu và ứng dụng | Đại học Dược Hà Nội | 12/6 to 17/6/2019 © Tuan V Nguyen
Trang 2Mô hình hồi qui logistic (logistic regression)
• Ví dụ dẫn nhập
• Khái niệm odds, logit, và mô hình hồi qui logistic
• Ước tính và R
Trang 4The Challenger shuttle disaster
0, 0, 0, 0, 0, 1, 0, 1)
Trang 5Nghiên cứu bệnh tiểu đường (type 2 diabetes)
• Nghiên cứu cắt ngang trên 3155 cá nhân
• Outcome: chẩn đoán tiểu đường
• Yếu tố nguy cơ: tuổi, giới tính, huyết áp, vòng eo, vòng mông, cân nặng,
tỉ trọng cơ thể (BMI)
• Câu hỏi 1: BMI có liên quan đến bệnh tiểu đường?
• Câu hỏi 2: Yếu tố nào có liên quan đến tiểu đường?
• Câu hỏi 2: Có thể xây dựng mô hình tiên lượng nguy cơ mắc bệnh?
Trang 6> db = read.csv("~/Dropbox/_Conferences and Workshops/Dai hoc Duoc 6-2019/Datasets/Diabetes data.csv", header=T)
> head(db)
id age gender height weight waist hip sysbp diabp active hypertension
1 1 76 Female 163 53 90 93 160 90 0 1
2 1 40 Female 149 51 74 94 100 60 0 0
3 1 51 Female 151 55 91 100 120 80 0 0
4 1 43 Female 158 62 78 96 120 80 1 0
5 2 72 Female 148 47 91 95 130 60 1 0
6 2 44 Male 155 48 69 86 120 80 0 0
bmi whr diabetes
1 19.95 0.97 IFG
2 22.97 0.79 Normal
3 24.12 0.91 Normal
4 24.84 0.81 Normal
5 21.46 0.96 IFG
6 19.98 0.80 Normal
Trang 7Gian lận thẻ tín dụng (credit card)
• Nghiên cứu cắt ngang trên 284807 transactions
• Outcome: gian lận (yes / no)
• Yếu tố nguy cơ: Time, Amount, V1-V28
• Câu hỏi: Có thể xây dựng mô hình tiên lượng gian lận
Trang 8> cc = read.csv("~/Dropbox/_Conferences and Workshops/Dai hoc Duoc 2019/Datasets/Credit card data.csv", header=T)
Trang 9Đặc tính của các nghiên cứu
• Outcome (dependent) variable: biến nhị phân (binary variable), chỉ có
2 giá trị
• Predictor (independent) variables: đa dạng (nhị phân, biến liên tục)
Không thể dùng mô hình hồi qui tuyến tính!
Trang 10Ứng dụng của mô hình hồi qui logistic
• Mô tả mối liên quan giữa biến outcome và biến tiên lượng
• Kiểm soát các biến nhiễu (Controlling for confounders)
• Phát triển mô hình tiên lượng (Developing prognostic models)
Trang 11Ông "tổ" của mô hình hồi qui logistic
Professor David R Cox Imperial College, London 1970
Trang 12Khi nào cần sử dụng mô hình hồi qui logistic
• Logistic regression :
– outcome là biến phân loại (thường có 2 giá trị yes/no)
– biến tiên lượng có thể là biến phân loại hay liên tục
• Mô hình hồi qui tuyến tính (Linear regression )
– biến outcome là biến liên tục
– biến tiên lượng có thể là biến phân loại hay liên tục
Trang 13Vài khái niệm cơ bản
Trang 14Risk, probability và odds
• Risk : probability (P) of an event [during a period] – xác suất của
một biến cố trong một thời gian
• Odds : xác suất biến cố xảy ra chia cho xác suất biến cố không xảy
ra:
• n =5 bệnh nhân, 1 bệnh nhân bị đột quị:
P = 1/ 5 = 0.20 Odds = 0.2 / 0.8 = 0.25
Odds = P
1− P
Trang 15Probability và odds
• P = 1/5 = 0.2 or 20%
• Odds = (P) / (1-P)
• Odds = 0.2 / 0.8 hay 1:4
Trang 16Probability, odds, và logit
Trang 17Mô hình hồi qui logistic dựa trên logit
• Gọi X là biến tiên lượng
• Gọi P là xác suất của một biến cố (outcome)
• Mô hình hồi qui logistic phát biểu rằng:
Trang 18Mô hình hồi qui logistic
Điều này cũng có nghĩa là:
Trang 19Mối liên quan giữa X, p và logit(p) Logistic Regression Model
Trang 20Ý nghĩa của tham số mô hình logistic
• α là log odds của biến outcome khi X = 0
• β là log odds ratio (tỉ số) liên quan với một đơn vị tăng của X
• Odds ratio = exp(β )
Trang 22Giả định mô hình hồi qui logistic
• Mô hình cung cấp một sự "đại diện" tiêu biểu giữa outcome và X
• Outcomes độc lập với nhau
• Biến tiên lượng không có sai số ngẫu nhiên
Trang 23Advantages of logistic regression model
• Xác suất của outcome có thể thay đổi với giá trị của biến tiên
lượng
• Hệ số có thể diễn giải như là log odds ratio
• Có thể áp dụng cho nhiều mô hình nghiên cứu
• Nhiều software có thể dùng để ước tính tham số
Trang 24Ước tính tham số
• The maximum likelihood estimator (MLE) for (β0, β1) is obtained by
finding ( ) that maximizes
Trang 25Hàm glm trong base R
• Công thức chung:
m = glm(outcome ~ riskfactor, family = binomial)
outcome có giá trị (0, 1) riskfactor – bất cứ biến nào
• Có có khoảng tin cậy 95% OR:
library(epiDisplay) logistic.display(m)
Trang 26Hàm lrm trong rms package
• rms package – Frank Harrell (regression modeling strategies)
• lrm – logistic regression model
lrm(outcome ~ factor1 + factor2 + )
Trang 27Phân tích với R
Trang 28Tai nạn phi thuyền Challenger
temp = c(66, 70, 69, 80, 68, 67, 72, 73, 70, 57, 63, 70, 78,
67, 53, 67, 75, 70, 81, 76, 79, 75, 76, 58)
damage = c(0, 1, 0, NA, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 1)
dat = data.frame(temp, damage)
# hiển thị mối liên quan
Trang 30Tai nạn phi thuyền Challenger
temp = c(66, 70, 69, 80, 68, 67, 72, 73, 70, 57, 63, 70, 78,
67, 53, 67, 75, 70, 81, 76, 79, 75, 76, 58)
damage = c(0, 1, 0, NA, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 1)
dat = data.frame(temp, damage)
# mô hình hồi qui logistic
m = glm(damage ~ temp, family=binomial, data=dat)
summary(m)
Trang 31Null deviance: 28.267 on 22 degrees of freedom
Residual deviance: 20.315 on 21 degrees of freedom
(1 observation deleted due to missingness)
AIC: 24.315
Trang 32Nói cách khác: log(odds ratio) = -0.23
Odds ratio = exp(-0.23) = 0.79
Trang 33Tính toán OR – odds ratio
> library(epiDisplay)
> logistic.display(m)
Logistic regression predicting damage
OR(95%CI) P(Wald's test) P(LR-test)
temp (cont var.) 0.79 (0.64,0.98) 0.032 0.005
Log-likelihood = -10.1576
No of observations = 23
AIC value = 24.3152
Interpretation: Each degree F increase in temperature was associated with a 21% decrease in the
odds of being damage, and this association was statistically significant (P = 0.032)
Trang 34Hiển thị kết quả mô hình hồi qui logistic
Có thể dùng package " GGally " để vẽ biểu đồ odds ratio cho yếu tố nguy cơ
library(GGally); library(ggplot2)
ggcoef( m , exponentiate=T, exclude_intercept=T, vline_color =
"red", errorbar_color = "blue", errorbar_height = 0.10)
ggcoef( m , exponentiate = TRUE, exclude_intercept=T, mapping = aes(x = estimate, y = term, size = p.value)) +
scale_size_continuous(trans = "reverse")
Trang 36Mô hình hồi qui logistic: tóm tắt
• Tất cả mô hình nghiên cứu (cắt ngang, đoàn hệ, bệnh chứng)
• Mô hình hồi qui logistic rất có ích cho đánh giá mối liên quan
– mô tả mối liên quan giữa biến outcome và yếu tố nguy cơ
– phát triển mô hình tiên lượng
• Biến outcome: nhị phân (yes/no)
• Biến tiên lượng (predictor variables): tất cả các dạng liên tục, phân nhóm
• Mô hình logit(p) = α + βx
Trang 37Mô hình hồi qui logistic: tóm tắt
• Mô hình logit(p) = α + βx
• Hàm R
m = glm(y ~ x, family="binomial", data = xxx)
• Hiển thị kết quả (odds ratio)
library(GGally)
ggcoef( m , exponentiate=T, exclude_intercept=T, vline_color =
"red", errorbar_color = "blue", errorbar_height = 0.10)
Trang 38Thực hành
Trang 39WHR và tiểu đường
Câu hỏi: mối liên quan giữa WHR (tỉ số eo-mông) và tiểu đường
> db = read.csv("~/Dropbox/_Conferences and Workshops/Dai hoc Duoc 6-2019/Datasets/Diabetes data.csv", header=T)
> head(db)
id age gender height weight waist hip sysbp diabp active hypertension
1 1 76 Female 163 53 90 93 160 90 0 1
2 1 40 Female 149 51 74 94 100 60 0 0
3 1 51 Female 151 55 91 100 120 80 0 0
4 1 43 Female 158 62 78 96 120 80 1 0
bmi whr diabetes
1 19.95 0.97 IFG
2 22.97 0.79 Normal
3 24.12 0.91 Normal
4 24.84 0.81 Normal
Trang 40WHR và tiểu đường
# Vì biến diabetes có 3 giá trị (Normal, IFG, Yes), chúng ta cần tạo ra biến mới chỉ có
2 giá trị là 0=không tiểu đường, 1=tiểu đường
# Tìm hiểu xem có bao nhiêu nam và nữ mắc tiểu đường
library(DescTools)
Desc(db$diab ~ db$gender)
# Vẽ biểu đồ hộp WHR và tiểu đường theo giới tính
library(ggplot2)
p = ggplot(data=db, aes(x=factor(diab), y=whr, col=factor(diab)))
p + geom_boxplot() + geom_jitter(alpha=0.05) + facet_grid(~gender)
Trang 41# Vẽ biểu đồ logistic giữa whr và diab
p = ggplot(data=db, aes(x = whr, y = diab))
p + geom_point(alpha = 0.15) + geom_smooth(method = "glm", method.args = list(family = "binomial"))
# Triển khai câu hỏi nghiên cứu, ước tính tham số mô hình hồi qui logistic
m1 = glm(diab ~ whr, family = binomial, data = db)
# Khác biệt giữa nam và nữ?
m2 = glm(diab ~ gender, family = binomial, data = db)
logistic.display(m2)
Trang 42# Nhưng mối liên quan có thể bị confounded bởi giới tính Cần hiệu chỉnh
m3 = glm(diab ~ gender + I(whr/0.08), family = binomial, data = db)summary(m3)