Bài giảng trình bày đánh giá mô hình hồi quy tuyến tính; mô hình hồi quy tuyến tính; phương pháp Least square; Residuals – độ dao động từ; phân tích phương sai; hai thước đo đánh giá mô hình hồi quan tuyến tính; hệ số xác định; diễn giải hệ số xác đị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 2Nộ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)
Trang 3Mô 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:
Trang 4Mô hình hồi qui tuyến tính đa biến
• Mô hình căn bản
e b
b b
Y 0 1 1 2 2
• 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)
Trang 5Hà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 + )
Trang 6Mụ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 )
Trang 7Nghiê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ỡ
Trang 8> ob = read.csv("~/Dropbox/_Conferences and Workshops/Dai hoc Duoc 6-2019/Datasets/obesity data.csv")
Trang 9Câ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?
Trang 10Ứng dụng mô hình HQTT 1:
đánh giá mối liên quan
Trang 11Đá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
Trang 12Ảnh hưởng của tuổi: mô hình HQTT đơn giản
Residual standard error: 0.09801 on 1214 degrees of freedom
Multiple R-squared: 0.2506, Adjusted R-squared: 0.2494
Trang 13Ả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
Trang 14# Phân tích phương sai
Trang 15Hiể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)
Trang 1620 40 60 80 0.7
0.8 0.9 1.0 1.1 1.2 1.3
BMI
Trang 17m = 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
bmd
0.9 1.0 1.1 1.2
Trang 18Đánh giá tầm quan trọng
Trang 19Câ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)
• Phương pháp: "relative importance"
Trang 20Câu hỏi quan trọng …
Trang 21Package “relaimpo” trong R
• relaimpo – có thể ước tính R2 cho từng biến
Trang 22summary( lm(pcfat ~ gender + age + bmi + height + weight, data=ob) )
Trang 23m = 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
Trang 24Đá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
Trang 25Ứng dụng mô hình HQTT 2:
hiệu chỉnh
Trang 26Hiệ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?
Trang 27Kiểm định giả thuyết nam = nữ (BMD)
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)
Trang 28Hiệu chỉnh cho tuổi và BMI
m2 = lm(bmd ~ gender + age + bmi, data=ob)
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
Trang 29Hiể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
bmi
F M
Trang 30Ảnh hưởng tương tác
Trang 31Khá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
Trang 32Khá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
Trang 33Kiể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 *
Trang 34Hiể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")
0.7 0.8 0.9 1.0 1.1 1.2 1.3
Age
F M
Trang 35Hiể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")
0.7 0.8 0.9 1.0 1.1 1.2 1.3
Age
F M