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ómMô hình hồi qui tuyến tính đa biến
• Mô hình căn bản
Y = b 0 + b1X 1+ b 2X 2 +.+ b pX p + e
• Y là biến phụ thuộc (dependent variable), biến liên tục
• X
1, 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 + .)
35 trang |
Chia sẻ: thanhle95 | Lượt xem: 590 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Phân tích dữ liệu và ứng dụng - Bài 7c: Ứng dụng mô hình hồi quy tuyến tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trê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