Bài giảng Ứng dụng mô hình hồi quy tuyến tính: Tiên lượng
lượt xem 4
download
Nội dung của bài giảng trình bày xây dựng mô hình tiên lượng tỉ trọng mỡ; dùng BMA tìm mô hình tối ưu; xây dựng mô hình; kiểm tra mô hình tiên lượng, mô hình hồi quy tuyến tính đa biến.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Ứng dụng mô hình hồi quy tuyến tính: Tiên lượng
- 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)
- Xây dựng mô hình tiên lượng tỉ trọng mỡ • Để đo tỉ trọng mỡ (pcfat), cần phải có máy DXA (đắt tiền) • Có thể xây dựng một mô hình tiên lượng pcfat chỉ cần dùng các yếu tố 'thường qui' (có thể thu thập từ bệnh nhân) • Các biến thuờng qui: giới tính (gender), chiều cao (height), cân nặng (weight), tỉ trọng cơ thể (bmi), tuổi (age) • Giải pháp: mô hình hồi qui tuyến tính
- Xây dựng mô hình tiên lượng tỉ trọng mỡ • Bước 1: Phân tích khai thác (exploratory analysis) • Bước 2: Tìm các biến liên quan (có giá trị thống kê) • Bước 3: Chia dữ liệu thành 2 nhóm: development và validation • Bước 4: Phát triển mô hình dựa vào biến bước 2 trên nhóm development • Bước 5: Kiểm tra mô hình ở bước 5 trên nhóm validation
- Bước 1: Phân tích mô tả / khai thác # Các biến có thể liên quan dat = ob[, c("gender", "weight", "height", "bmi", "age", "pcfat")] library(GGally) ggpairs(dat)
- Bước 2: Dùng BMA tìm biến liên quan > head(ob) id gender height weight bmi age WBBMC wbbmd 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 library(BMA) yvar = ob[, ("pcfat")] xvars = ob[, c("gender", "height", "weight", "bmi", "age")] bma = bicreg(xvars, yvar, strict=FALSE, OR=20) summary(bma)
- Dùng BMA tìm mô hình tối ưu > summary(bma) 3 models were selected Best 3 models (cumulative posterior probability = 1 ): p!=0 EV SD model 1 model 2 model 3 Intercept 100.0 5.26146 4.582901 7.958e+00 -7.928e-01 8.137e+00 genderM 100.0 -11.25139 0.429659 -1.144e+01 -1.143e+01 -1.081e+01 height 31.4 0.01759 0.028494 . 5.598e-02 . weight 39.2 0.03102 0.042611 7.921e-02 . . bmi 100.0 1.01265 0.111625 8.942e-01 1.089e+00 1.089e+00 age 100.0 0.05259 0.008048 5.497e-02 5.473e-02 4.715e-02 nVar 4 4 3 r2 0.697 0.696 0.695 BIC -1.423e+03 -1.423e+03 -1.422e+03 post prob 0.392 0.314 0.294
- Diễn giải kết quả BMA: p!=0 > summary(bma) 3 models were selected Best 3 models (cumulative posterior probability = 1 ): p!=0 EV SD model 1 model 2 model 3 Intercept 100.0 5.26146 4.582901 7.958e+00 -7.928e-01 8.137e+00 genderM 100.0 -11.25139 0.429659 -1.144e+01 -1.143e+01 -1.081e+01 height 31.4 0.01759 0.028494 . 5.598e-02 . weight 39.2 0.03102 0.042611 7.921e-02 . . bmi 100.0 1.01265 0.111625 8.942e-01 1.089e+00 1.089e+00 age 100.0 0.05259 0.008048 5.497e-02 5.473e-02 4.715e-02 • Dùng 5 biến cung cấp (gender, height, weight, bmi và age) BMA tìm được 3 mô hình 'tối ưu'. • "p!=0" có nghĩa là xác suất biến số có 'ảnh hưởng'. Vd: xác suất mà height có ảnh hưởng đến pcfat là 31.4%, weight là 39.2%, và age là 100%
- Bước 3: Chia dữ liệu thành 2 nhóm Chúng ta chia dữ liệu thành 2 nhóm: development (60%) và validation (40%) Tổng số cỡ mẫu (n = 1217) Development / Training Validation / Testing (n = 1217*0.6) (n = 1217*0.4) Xây dựng mô hình tiên lượng Kiểm tra mô hình tiên lượng
- Bước 3: Chia dữ liệu thành 2 nhóm Tổng số cỡ mẫu (n = 1217) Development / Training Validation / Testing (n = 1217*0.6) (n = 1217*0.4) Dùng phương pháp "thủ công" Dùng "caret", hàm createDataPartition rows = nrow(ob) library(caret) prop = 0.6 sample = createDataPartition(ob$pcfat, upper = floor(prop*rows) p=0.6, list=F) permutation = ob[sample(rows), ] dev = ob[sample, ] dev = permutation[1:upper, ] val = permutation[(upper+1):rows, ] val = ob[-sample, ]
- Bước 4: Xây dựng mô hình (training) rows = nrow(ob) prop = 0.6 upper = floor(prop*rows) permutation = ob[sample(rows), ] dev = permutation[1:upper, ] val = permutation[(upper+1):rows, ] # Xây dựng mô hình dùng dữ liệu của dev m = lm(pcfat ~ gender + age + bmi + weight, data=dev) summary(m)
- Bước 4: Xây dựng mô hình (training) > m = lm(pcfat ~ gender + age + bmi + weight, data=dev) > summary(m) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 8.11642 1.13548 7.148 2.15e-12 *** genderM -12.03375 0.44972 -26.758 < 2e-16 *** age 0.06165 0.00955 6.456 1.97e-10 *** bmi 0.73709 0.10090 7.305 7.32e-13 *** weight 0.13856 0.03629 3.818 0.000146 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.997 on 725 degrees of freedom Multiple R-squared: 0.6885, Adjusted R-squared: 0.6868 F-statistic: 400.6 on 4 and 725 DF, p-value: < 2.2e-16
- Bước 5: Kiểm tra mô hình (validation) m = lm(pcfat ~ gender + age + bmi + weight, data = dev) # Kiểm tra mô hình dùng dữ liệu của val # Dùng hàm predict val$pred = predict(m, newdata = val) val$resid = val$pred-val$pcfat # Vẽ residuals vs giá trị tiên lượng plot(val$resid ~ val$pred) # Tính RMSE – residual mean square error sum(val$resid^2) / (nrow(val)-5) # Tính R-square cor(val$pred, val$pcfat)^2
- val$pred = predict(m, newdata = val) 15 val$resid = val$pred-val$pcfat 10 5 > sum(val$resid^2) / (nrow(val)-5) val$resid [1] 17.97093 0 -5 > cor(val$pred, val$pcfat)^2 -10 [1] 0.6565799 -15 20 30 40 50 val$pred
- Bước 5: Kiểm tra mô hình (validation) val$pred = predict(m, newdata = val) val$resid = val$pred-val$pcfat > sum(val$resid^2) / (nrow(val)-5) [1] 17.97093 > cor(val$pred, val$pcfat)^2 [1] 0.6565799
- Training và testing mô hình qua "caret" library(caret) # Chia mẫu thành development và validation sample = createDataPartition(ob$pcfat, p=0.6, list=F) dev = ob[sample, ] val = ob[-sample, ] # Huấn luyện mô hình: dùng hàm "train" control = trainControl(method="cv", number=10) training = train(pcfat ~ gender + age + bmi + weight, data=dev, method="lm", trControl=control, metric="Rsquared") summary(training)
- Kết quả training > summary(training) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 7.108911 1.113591 6.384 3.08e-10 *** genderM -11.987929 0.430910 -27.820 < 2e-16 *** age 0.054309 0.009447 5.749 1.32e-08 *** bmi 0.830378 0.101628 8.171 1.36e-15 *** weight 0.123183 0.036436 3.381 0.000762 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.895 on 726 degrees of freedom Multiple R-squared: 0.7152, Adjusted R-squared: 0.7136 F-statistic: 455.7 on 4 and 726 DF, p-value: < 2.2e-16
- Kiểm tra mô hình tiên lượng (caret) # Kiểm tra mô hình (val), tính giá trị tiên lượng pred = predict(training, newdata=val) model.values = data.frame(obs=val$pcfat, pred) plot(pred ~ ob$pcfat, pch=16) defaultSummary(model.values) 15 20 25 30 35 40 45 > defaultSummary(model.values) RMSE Rsquared pred 4.1844599 0.6483567 10 20 30 40 val$pcfat
- Tóm tắt
- Mô hình hồi qui tuyến tính đa biến • Biến outcome: liên tục; biến tiên lượng: liên tục và phân nhóm, định tính • Ứng dụng 1: đánh giá các mối liên quan – đánh giá ý nghĩa thống kê – đánh giá tầm quan trọng • Ứng dụng 2: hiệu chỉnh cho các 'covariates' – lưu ý đến ảnh hưởng tương tác • Ứng dụng 3: tiên lượng – training và testing
CÓ THỂ BẠN MUỐN DOWNLOAD
-
ỨNG DỤNG CÔNG NGHỆ THÔNG TIN
2 p | 375 | 112
-
Bài giảng: Kỹ thuật nâng cao trong xây dựng mô hình
20 p | 147 | 39
-
Bài giảng Mạng máy tính - Chương 2: Tầng ứng dụng
98 p | 181 | 29
-
Bài giảng Các mô hình và phần mềm tối ưu hoá và ứng dụng trong nông nghiệp - PGS.TS. Nguyễn Hải Thanh
97 p | 210 | 27
-
Bài giảng Mạng máy tính - Chương 2: Lớp ứng dụng (Application Layer)
47 p | 154 | 19
-
Bài giảng Hệ cơ sở tri thức: Tuần 2 - Phạm Văn Hải
4 p | 106 | 12
-
Bài giảng Mô hình hồi quy Logistic
42 p | 115 | 12
-
Bài giảng Phát triển ứng dụng: Chương 3.1
29 p | 72 | 8
-
Bài giảng Phát triển ứng dụng: Chương 3.3
14 p | 63 | 6
-
Bài giảng Ứng dụng nhận dạng tiếng Việt trong trích xuất thông tin từ căn cước công dân - Trịnh Tấn Đạt
21 p | 10 | 6
-
Bài giảng Công nghệ phần mềm: Chương 5 - ThS. Đinh Thị Lương
31 p | 13 | 6
-
Bài giảng Học sâu và ứng dụng: Bài 12 - ĐH Bách khoa Hà Nội
65 p | 45 | 5
-
Bài giảng Ứng dụng mô hình hồi quy Logistic
24 p | 77 | 5
-
Bài giảng Ứng dụng mô hình hồi quy tuyến tính: Đánh giá mối liên quan
35 p | 62 | 5
-
Bài giảng Mạng máy tính: Chương 2 - Nguyễn Hồng Sơn
47 p | 49 | 5
-
Bài giảng Học sâu và ứng dụng - Bài 12: Mô hình sinh dữ liệu
65 p | 17 | 4
-
Bài giảng Hướng dẫn sử dụng SPSS trong nghiên cứu marketing: Phân tích nhân tố EFA - Ngô Thái Hưng
25 p | 3 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn