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

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 + .)

pdf35 trang | Chia sẻ: thanhle95 | Lượt xem: 472 | Lượt tải: 1download
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