Phân tích dữ liệu và ứng dụng - Ứng dụng Mô hình hồi qui tuyến

• Mô hình hồi qui tuyến tính đa biến

• Ứng dụng 1: đánh giá mối liên quan (association / assessment)

• Ứng dụng 2: hiệu chỉnh cho yếu tố nhiễu (adjustment)

• Ứng dụng 3: mô hình tiên lượng (prediction)

pdf 35 trang dienloan 19500
Bạn đang xem 20 trang mẫu của tài liệu "Phân tích dữ liệu và ứng dụng - Ứng dụng Mô hình hồi qui tuyến", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Phân tích dữ liệu và ứng dụng - Ứng dụng Mô hình hồi qui tuyến

Phân tích dữ liệu và ứng dụng - Ứng dụng Mô hình hồi qui tuyến
Tuan 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
Nội dung
• Mô hình hồi qui tuyến tính đa biến
• Ứng dụng 1: đánh giá mối liên quan (association / assessment)
• Ứng dụng 2: hiệu chỉnh cho yếu tố nhiễu (adjustment)
• Ứng dụng 3: mô hình tiên lượng (prediction)
Mô hình hồi qui tuyến tính đa biến 
• Mô hình hồi qui tuyến tính đơn giản: 
Y = β0 + β1X1
• Mô hình hồi qui tuyến tính đa biến: 
Y = β0 + β1X1 + β2X2 + β3X3 + ... + βpXp 
• Các biến X có thể là biến liên tục hay phân nhóm 
Mô hình hồi qui tuyến tính đa biến
• Mô hình căn bản
ebbbb +++++= pp XXXY ...22110
• Y là biến phụ thuộc (dependent variable), biến liên tục
• X1, X2, X3, , Xp : biến tiên lượng
β1, β2, β3, ..., βp : regression coefficients (hệ số hồi qui )ε ~ phân bố chuẩn (normal), độc lập, trung bình 0, phương sai σ2ε ~ (0, σ2)
Hàm lm trong R
• Trong R, có hàm lm (linear models) 
– giải phương trình để ước tính tham số
– tính toán các chỉ số thống kê liên quan đến mô hình
– đánh giá sự thích hợp của mô hình
• Công thức chung
lm(y ~ x1 + x2 + x3 + ...)
Mục tiêu mô hình hồi qui đa biến 
• Hiểu và đánh giá tác động các yếu tố liên quan (assessment)
• Hiệu chỉnh (adjustment)
• Tiên lượng (prediction) 
Nghiên cứu thực tế: tìm mô hình tiên lượng tỉ trọng mỡ 
• Nghiên cứu béo phì trên 1217 người Việt 
• Đo tỉ trọng mỡ bằng máy DXA (pcfat)
• Mục tiêu
– Ảnh hưởng của tuổi đến tỉ trọng mỡ 
– Khác biệt về tỉ trọng mỡ giữa nam và nữ 
– Ảnh hưởng của tuổi có độc lập với giới tính
– Xây dựng mô hình dùng các số liệu nhân trắc để tiên lượng 
tỉ trọng mỡ 
> ob = read.csv("~/Dropbox/_Conferences and Workshops/Dai hoc Duoc 
6-2019/Datasets/obesity data.csv")
> head(ob)
id gender height weight bmi age WBBMC bmd fat lean pcfat
1 1 F 150 49 21.8 53 1312 0.88 17802 28600 37.3
2 2 M 165 52 19.1 65 1309 0.84 8381 40229 16.8
3 3 F 157 57 23.1 64 1230 0.84 19221 36057 34.0
4 4 F 156 53 21.8 56 1171 0.80 17472 33094 33.8
5 5 M 160 51 19.9 54 1681 0.98 7336 40621 14.8
6 6 F 153 47 20.1 52 1358 0.91 14904 30068 32.2
Câu hỏi nghiên cứu 
• Có mối liên quan giữa độ tuổi và cân nặng với mật độ xương (bmd)
• Yếu tố nào có liên quan đến mật độ xương
• Có thể xây dựng một mô hình tiên lượng tỉ trọng mỡ (pcfat) 
– Mô hình này gồm những biến nào? 
Ứng dụng mô hình HQTT 1:
đánh giá mối liên quan
Đánh giá mối liên quan 
• Mối liên quan giữa độ tuổi và cân nặng với bmd 
• Biến tiên lượng: age, bmi 
• Biến outcome: bmd
• Mô hình 
bmd = α + β1(age) + β2(bmi) 
• Triển khai R
m = lm(bmd ~ age + bmi, data=ob)
summary(m)
Ảnh hưởng của tuổi: mô hình HQTT đơn giản 
Mô hình (ý tưởng): 
bmd = α + β1(age) + β2(bmi) 
Thực tế:
bmd = 0.96 – 0.0032*age + 0.0089*bmi 
Coefficients:
Estimate Std. Error t value Pr(>|t|) 
(Intercept) 0.9613809 0.0210065 45.766 <2e-16 ***
age -0.0032540 0.0001671 -19.471 <2e-16 ***
bmi 0.0089660 0.0009446 9.492 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.09801 on 1214 degrees of freedom
Multiple R-squared: 0.2506, Adjusted R-squared: 0.2494 
Ảnh hưởng của tuổi: mô hình HQTT đơn giản 
Mô hình (ý tưởng): 
bmd = α + β1(age) + β2(bmi) 
Thực tế:
bmd = 0.96 – 0.0032*age + 0.0089*bmi 
Diễn giải: Tăng mỗi năm tuổi liên quan đến giảm 0.0032 g/cm2 mật độ 
xương (P < 0.0001). Ở mỗi tuổi, tăng 1 kg/m2 BMI liên quan đến tăng 
0.009 g/cm2 MĐX, và mối liên quan này có ý nghĩa thống kê (P < 0.0001). 
Hai yếu tố độ tuổi và BMI giải thích 25% phương sai của MĐX. 
Báo cáo 
m = lm(bmd ~ age + bmi, data=ob)
# Tóm tắt hệ số 
> coef(summary(m))
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.961380879 0.0210064697 45.76594 1.451241e-266
age -0.003254038 0.0001671193 -19.47135 1.056830e-73
bmi 0.008965966 0.0009445854 9.49196 1.155927e-20
# Phân tích phương sai
> anova(m)
Analysis of Variance Table
Response: bmd
Df Sum Sq Mean Sq F value Pr(>F) 
age 1 3.0339 3.03391 315.842 < 2.2e-16 ***
bmi 1 0.8655 0.86545 90.097 < 2.2e-16 ***
Residuals 1214 11.6614 0.00961 
Hiển thị mô hình hồi qui tuyến tính đa biến
library(visreg)
m = lm(bmd ~ age + bmi, data=ob)
# Chia window thành 2 cột 
par(mfrow=c(1,2))
visreg(m, xvar="age", gg=T, xlab="Age", ylab="BMD")
visreg(m, xvar="bmi", gg=T, xlab="BMI", ylab="BMD")
Dùng package "visreg"
Hàm chung: visreg(model, xvar, by, gg=TRUE)
20 40 60 80
0.7
0.8
0.9
1.0
1.1
1.2
1.3
Age
B
M
D
15 20 25 30 35
0.7
0.8
0.9
1.0
1.1
1.2
1.3
BMI
B
M
D
library(visreg)
m = lm(bmd ~ age + bmi, data=ob)
visreg2d(m, "age", "bmi", plot.type="image")
visreg2d(m, "age", "bmi", plot.type="persp")
0.8
0.9
1.0
1.1
1.2
20 30 40 50 60 70 80
15
20
25
30
35
bmd
age
bm
i
age
20
40
60
80bm
i
15
20
25
30
35
bm
d
0.9
1.0
1.1
1.2
Đánh giá tầm quan trọng
Câu hỏi quan trọng 
• Trong các biến có liên quan, biến nào quan trọng nhất? 
• Tiêu chuẩn nào để đánh giá? 
– Hệ số hồi qui trên mỗi SD (độ lệch chuẩn)
– R2 cho từng biến, nhưng tùy vào phân bố
• Phương pháp: "relative importance" 
Câu hỏi quan trọng 
Package “relaimpo” trong R
• relaimpo – có thể ước tính R2 cho từng biến
• Phương pháp bootstrap 
• lmg = Lindermann, Merenda, Gold (một thước đo mới
và tốt)
• Phương pháp lmg "tách" R2 cho từng biến tiên lượng 
summary(lm(pcfat ~ gender + age + bmi + height + weight, 
data=ob)) 
Coefficients:
Estimate Std. Error t value Pr(>|t|) 
(Intercept) 9.677701 15.611478 0.620 0.5354 
genderM -11.441050 0.343970 -33.262 < 2e-16 ***
age 0.054933 0.007404 7.420 2.2e-13 ***
bmi 0.858035 0.337409 2.543 0.0111 * 
height -0.010991 0.099609 -0.110 0.9122 
weight 0.093949 0.136641 0.688 0.4919 
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
m = lm(pcfat ~ gender + age + bmi + height + weight, data=ob)
library(relaimpo)
calc.relimp(m, type="lmg", rela=T, rank=T)
> calc.relimp(m, type="lmg", rela=T, rank=T)
Response variable: pcfat 
Total response variance: 51.5935 
Analysis based on 1217 observations 
5 Regressors: 
gender age bmi height weight 
Proportion of variance explained by model: 69.66%
Metrics are normalized to sum to 100% (rela=TRUE). 
Relative importance metrics: 
lmg
gender 0.50802351
age 0.05465515
bmi 0.19175889
height 0.15217127
weight 0.09339118
Đánh giá mô hình hồi qui tuyến tính 
• Sau khi mô hình đáp ứng các giả định (tuyến tính, phương sai bất 
biến, độc lập, phân bố chuẩn)
• Đánh giá dựa vào 3 chỉ số chính
– Hệ số xác định 
– Residual mean square (phương sai của mô hình)
– "Relative importance" của biến tiên lượng 
Ứng dụng mô hình HQTT 2:
hiệu chỉnh
Hiệu chỉnh 
• Câu hỏi nghiên cứu: mật độ xương có khác nhau giữa nam và nữ sau khi 
đã hiệu chỉnh cho độ tuổi và bmi?
• Biến outcome: bmd
• Biến so sánh: gender
• Biến covariates: age, bmi 
• Triển khai R
m1 = lm(bmd ~ gender, data=ob)
m2 = lm(bmd ~ gender + age + bmi, data=ob)
summary(m1); summary(m2)
Kiểm định giả thuyết nam = nữ (BMD)
m1 = lm(bmd ~ gender, data=ob)
summary(m1) 
Coefficients:
Estimate Std. Error t value Pr(>|t|) 
(Intercept) 0.987587 0.003687 267.85 <2e-16 ***
genderM 0.072526 0.006827 10.62 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1083 on 1215 degrees of freedom
Multiple R-squared: 0.085, Adjusted R-squared: 0.08424 
Diễn giải: Nam có mật độ xương (BMD) cao hơn nữ 0.07 (SE 0.0068) g/cm2 (P < 0.0001)
Hiệu chỉnh cho tuổi và BMI 
m2 = lm(bmd ~ gender + age + bmi, data=ob)
summary(m2)
Coefficients:
Estimate Std. Error t value Pr(>|t|) 
(Intercept) 0.9544702 0.0203807 46.832 <2e-16 ***
genderM 0.0538535 0.0060750 8.865 <2e-16 ***
age -0.0030380 0.0001638 -18.542 <2e-16 ***
bmi 0.0081182 0.0009208 8.817 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.09502 on 1213 degrees of freedom
Multiple R-squared: 0.2962, Adjusted R-squared: 0.2944 
Diễn giải: Nam có mật độ xương (BMD) cao hơn nữ 0.054 (SE 0.006) g/cm2 (P < 0.0001) 
sau khi đã điều chỉnh cho tuổi và BMI. 
Hiển thị mô hình hiệu chỉnh (visreg)
par(mfrow=c(1,2))
visreg(m2, xvar="age", by="gender", overlay=T, gg=T)
visreg(m2, xvar="bmi", by="gender", overlay=T, gg=T)
20 40 60 80
0.7
0.8
0.9
1.0
1.1
1.2
1.3
age
bm
d
F M
15 20 25 30 35
0.7
0.8
0.9
1.0
1.1
1.2
1.3
bmi
bm
d
F M
Ảnh hưởng tương tác 
Khái niệm "tương tác" (interaction)
Ở bất cứ ngưỡng thu nhập nào, nam 
hạnh phúc hơn nữ 
Ở bất cứ ngưỡng thu nhập <50K, nam 
hạnh phúc hơn nữ; ở ngưỡng >70K, nữ 
hạnh phúc hơn nam 
Khái niệm “interaction”
• “Differences in the relationship (slope) between two variables for 
each category of a third variable”
• Mối liên quan (thể hiện qua slope) giữa biến Y và X tùy thuộc vào
một biến thứ ba (tạm gọi là Z)
Nam: Happy = a1 + b1*income + e
Nữ: Happy = a2 + b2*income + f
Interaction xảy ra khi b1 khác với b2
Kiểm tra interaction giữa tuổi và giới tính trong pcfat 
m1 = lm(bmd ~ age + gender, data=ob)
m2 = lm(bmd ~ age + gender + age:gender, data=ob)
> summary(m2)
Coefficients:
Estimate Std. Error t value Pr(>|t|) 
(Intercept) 1.1561466 0.0102530 112.762 < 2e-16 ***
age -0.0034702 0.0002000 -17.352 < 2e-16 ***
genderM -0.0416291 0.0165213 -2.520 0.0119 * 
age:genderM 0.0022253 0.0003379 6.585 6.75e-11 ***
Hiển thị mô hình tương tác: package "visreg" 
m2 = lm(bmd ~ age + gender + age:gender, data=ob)
library(visreg)
visreg(m2, "age", by="gender", overlay=T, xlab="Age", ylab="BMD")
20 40 60 80
0.7
0.8
0.9
1.0
1.1
1.2
1.3
Age
B
M
D
F M
Hiển thị mô hình tương tác: package "visreg" 
m2 = lm(bmd ~ age + I(age^2) + gender + age:gender, data=ob)
visreg(m2, "age", by="gender", overlay=T, xlab="Age", ylab="BMD")
20 40 60 80
0.7
0.8
0.9
1.0
1.1
1.2
1.3
Age
B
M
D
F M

File đính kèm:

  • pdfphan_tich_du_lieu_va_ung_dung_ung_dung_mo_hinh_hoi_qui_tuyen.pdf