Hồi qui
10 Phân tích hi qui tuyn tính Phân tích hi qui tuyn tính (linear regression analysis) có l là mt trong nhng phng pháp phân tích s liu thông dng nht trong thng kê hc. Anon tng vit “Cho con ngi 3 v khí – h s tng quan, hi qui tuyn tính và mt cây bút, con ngi s s dng c ba”! Trong chng này, tôi s gii thiu cách s dng R đ phân tích hi qui tuyn tính và các phng pháp liên quan nh h s tng quan và kim đnh gi thit thng kê. Ví d 1. minh ha cho vn đ, chúng ta th xem xét nghiên cu sau đây, mà trong đó nhà nghiên cu đo lng đ cholestrol trong máu ca 18 đi tng nam. T trng c th (body mass index) cng đc c tính cho mi đi tng bng công thc tính BMI là ly trng lng (tính bng kg) chia cho chiu cao bình phng (m 2 ). Kt qu đo lng nh sau: Bng 1. tui, t trng c th và cholesterol Mã s ID (id) tui (age) BMI (bmi) Cholesterol (chol) 1 46 25.4 3.5 2 20 20.6 1.9 3 52 26.2 4.0 4 30 22.6 2.6 5 57 25.4 4.5 6 25 23.1 3.0 7 28 22.7 2.9 8 36 24.9 3.8 9 22 19.8 2.1 10 43 25.3 3.8 11 57 23.2 4.1 12 33 21.8 3.0 13 22 20.9 2.5 14 63 26.7 4.6 15 40 26.4 3.2 16 48 21.2 4.2 17 28 21.2 2.3 18 49 22.8 4.0 Nhìn s qua s liu chúng ta thy ngi có đ tui càng cao đ cholesterol cng càng cao. Chúng ta th nhp s liu này vào R và v mt biu đ tán x nh sau: > age <- c(46,20,52,30,57,25,28,36,22,43,57,33,22,63,40,48,28,49) > bmi <-c(25.4,20.6,26.2,22.6,25.4,23.1,22.7,24.9,19.8,25.3,23.2, 21.8,20.9,26.7,26.4,21.2,21.2,22.8) > chol <- c(3.5,1.9,4.0,2.6,4.5,3.0,2.9,3.8,2.1,3.8,4.1,3.0, 2.5,4.6,3.2, 4.2,2.3,4.0) > data <- data.frame(age, bmi, chol) > plot(chol ~ age, pch=16) 20 30 40 50 60 2.0 2.5 3.0 3.5 4.0 4.5 age chol Biu đ 10.1. Liên h gia đ tui và cholesterol. Biu đ 10.1 trên đây gi ý cho thy mi liên h gia đ tui (age) và cholesterol là mt đng thng (tuyn tính). “đo lng” mi liên h này, chúng ta có th s dng h s tng quan (coefficient of correlation). 10.1 H s tng quan H s tng quan (r) là mt ch s thng kê đo lng mi liên h tng quan gia hai bin s, nh gia đ tui (x) và cholesterol (y). H s tng quan có giá tr t -1 đn 1. H s tng quan bng 0 (hay gn 0) có ngha là hai bin s không có liên h gì vi nhau; ngc li nu h s bng -1 hay 1 có ngha là hai bin s có mt mi liên h tuyt đi. Nu giá tr ca h s tng quan là âm (r <0) có ngha là khi x tng cao thì y gim (và ngc li, khi x gim thì y tng); nu giá tr h s tng quan là dng (r > 0) có ngha là khi x tng cao thì y cng tng, và khi x tng cao thì y cng gim theo. Thc ra có nhiu h s tng quan trong thng kê, nhng đây tôi s trình bày 3 h s tng quan thông dng nht: h s tng quan Pearson r, Spearman ρ, và Kendall τ. 10.1.1 H s tng quan Pearson Cho hai bin s x và y t n mu, h s tng quan Pearson đc c tính bng công thc sau đây: ()() ()() ∑ − ∑ − ∑ −− = == = n i i n i i n i ii yyxx yyxx r 1 2 1 2 1 Trong đó, nh đnh ngha phn trên, x và y là giá tr trung bình ca bin s x và y. c tính h s tng quan gia đ tui age và cholesterol, chúng ta có th s dng hàm cor(x,y) nh sau: > cor(age, chol) [1] 0.936726 Chúng ta có th kim đnh gi thit h s tng quan bng 0 (tc hai bin x và y không có liên h). Phng pháp kim đnh này thng da vào phép bin đi Fisher mà R đã có sn mt hàm cor.test đ tin hành vic tính toán. > cor.test(age, chol) Pearson's product-moment correlation data: age and chol t = 10.7035, df = 16, p-value = 1.058e-08 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.8350463 0.9765306 sample estimates: cor 0.936726 Kt qu phân tích cho thy kim đnh t = 10.70 vi tr s p = 1.058e-08; do đó, chúng ta có bng chng đ kt lun rng mi liên h gia đ tui và cholesterol có ý ngha thng kê. Kt lun này cng chính là kt lun chúng ta đã đi đn trong phn phân tích hi qui tuyn tính trên. 10.1.2 H s tng quan Spearman ρ H s tng quan Pearson ch hp lí nu bin s x và y tuân theo lut phân phi chun. Nu x và y không tuân theo lut phân phi chun, chúng ta phi s dng mt h s tng quan khác tên là Spearman, mt phng pháp phân tích phi tham s. H s này đc c tính bng cách bin đi hai bin s x và y thành th bc (rank), và xem đ tng quan gia hai dãy s bc. Do đó, h s còn có tên ting Anh là Spearman’s Rank correlation. R c tính h s tng quan Spearman bng hàm cor.test vi thông s method=”spearman” nh sau: > cor.test(age, chol, method="spearman") Spearman's rank correlation rho data: age and chol S = 51.1584, p-value = 2.57e-09 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.947205 Warning message: Cannot compute exact p-values with ties in: cor.test.default(age, chol, method = "spearman") Kt qu phân tích cho thy giá tr rho = 0.947, và tr s p = 2.57e-09. Kt qu t phân tích này cng không khác vi phân tích hi qui tuyn tính: mi liên h gia đ tui và cholesterol rt cao và có ý ngha thng kê. 10.1.3 H s tng quan Kendall τ H s tng quan Kendall (cng là mt phng pháp phân tích phi tham s) đc c tính bng cách tìm các cp s (x, y) “song hành" vi nhau. Mt cp (x, y) song hành đây đc đnh ngha là hiu (đ khác bit) trên trc hoành có cùng du hiu (dng hay âm) vi hiu trên trc tung. Nu hai bin s x và y không có liên h vi nhau, thì s cp song hành bng hay tng đng vi s cp không song hành. Bi vì có nhiu cp phi kim đnh, phng pháp tính toán h s tng quan Kendall đòi hi thi gian ca máy tính khá cao. Tuy nhiên, nu mt d liu di 5000 đi tng thì mt máy vi tính có th tính toán khá d dàng. R dùng hàm cor.test vi thông s method=”kendall” đ c tính h s tng quan Kendall: > cor.test(age, chol, method="kendall") Kendall's rank correlation tau data: age and chol z = 4.755, p-value = 1.984e-06 alternative hypothesis: true tau is not equal to 0 sample estimates: tau 0.8333333 Warning message: Cannot compute exact p-value with ties in: cor.test.default(age, chol, method = "kendall") Kt qu phân tích h s tng quan Kendall mt ln na khng đnh mi liên h gia đ tui và cholesterol có ý ngha thng kê, vì h s tau = 0.833 và tr s p = 1.98e- 06. Các h s tng quan trên đây đo mc đ tng quan gia hai bin s, nhng không cho chúng ta mt phng trình đ ni hai bin s đó vi nhau. Thành ra, vn đ đt ra là chúng ta tìm mt phng trình tuyn tính đ mô t mi liên h này. Chúng ta s ng dng mô hình hi qui tuyn tính. 10.2 Mô hình ca hi qui tuyn tính đn gin 10.2.1 vài dòng lí thuyt tin vic theo dõi và mô t mô hình, gi đ tui cho cá nhân i là x i và cholesterol là y i . đây i = 1, 2, 3, …, 18. Mô hình hi tuyn tính phát biu rng: iii yx α βε = ++ [1] Nói cách khác, phng trình trên gi đnh rng đ cholesterol ca mt cá nhân bng mt hng s α cng vi mt h s β liên quan đn đ tui, và mt sai s ε i . Trong phng trình trên, α là chn (intercept, tc giá tr lúc x i =0), và β là đ dc (slope hay gradient). Trong thc t, α và β là hai thông s (paramater, còn gi là regression coefficient hay h s hi qui), và ε i là mt bin s theo lut phân phi chun vi trung bình 0 và phng sai σ 2 . Các thông s α, β và σ 2 phi đc c tính t d liu. Phng pháp đ c tính các thông s này là phng pháp bình phng nh nht (least squares method). Nh tên gi, phng pháp bình phng nh nht tìm giá tr α, β sao cho () 2 1 n ii i yx αβ = −+ ∑ nh nht. Sau vài thao tác toán, có th chng minh d dàng rng, c s cho α và β đáp ng điu kin đó là: ()() () 1 2 1 ˆ n ii i n i i x xy y xx β = = − − = − ∑ ∑ [2] và yx α β =− ) ) [3] đây, x và y là giá tr trung bình ca bin s x và y. Chú ý, tôi vit α ) và β ) (vi du m phía trên) là đ nhc nh rng đây là hai c s (estimates) ca α và β, ch không phi α và β (chúng ta không bit chính xác α và β, nhng ch có th c tính mà thôi). Sau khi đã có c s α ) và β ) , chúng ta có th c tính đ cholesterol trung bình cho tng đ tui nh sau: ˆ ˆ ii yx α β =+ ) Tt nhiên, ˆ i y đây ch là s trung bình cho đ tui x i , và phn còn li (tc i y - ˆ i y ) gi là phn d (residual). Và phng sai ca phn d có th c tính nh sau: () 2 1 ˆ 2 n ii i yy s n = − = − ∑ [4] s 2 chính là c s ca σ 2 . Trong phân tích hi qui tuyn tính, thông thng chúng ta mun bit h s β = 0 hay khác 0. Nu β bng 0, thì cng có ngha là không có mi liên h gì gia x và y; nu β khác vi 0, chúng ta có bng chng đ phát biu rng x và y có liên quan nhau. kim đnh gi thit β = 0 chúng ta dùng xét nghim t sau đây: () ˆ ˆ t SE β β = [5] () ˆ SE β có ngha là sai s chun (standard error) ca c s β ) . Trong phng trình trên, t tuân theo lut phân phi t vi bc t do n-2 (nu tht s β = 0). 10.2.2 Phân tích hi qui tuyn tính đn gin bng R Hàm lm (vit tt t linear model) trong R có th tính toán các giá tr ca α ) và β ) , cng nh s 2 mt cách nhanh gn. Chúng ta tip tc vi ví d bng R nh sau: > lm(chol ~ age) Call: lm(formula = chol ~ age) Coefficients: (Intercept) age 1.08922 0.05779 Trong lnh trên, “chol ~ age” có ngha là mô t chol là mt hàm s ca age. Kt qu tính toán ca lm cho thy α ) = 1.0892 và β ) = 0.05779. Nói cách khác, vi hai thông s này, chúng ta có th c tính đ cholesterol cho bt c đ tui nào trong khong tui ca mu bng phng trình tuyn tính: ˆ i y = 1.08922 + 0.05779 x age Phng trình này có ngha là khi đ tui tng 1 nm thì đ cholesterol tng khong 0.058 mmol/L. Tht ra, hàm lm còn cung cp cho chúng ta nhiu thông tin khác, nhng chúng ta phi đa các thông tin này vào mt object. Gi object đó là reg, thì lnh s là: > reg <- lm(chol ~ age) > summary(reg) Call: lm(formula = chol ~ age) Residuals: Min 1Q Median 3Q Max -0.40729 -0.24133 -0.04522 0.17939 0.63040 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.089218 0.221466 4.918 0.000154 *** age 0.057788 0.005399 10.704 1.06e-08 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 0.3027 on 16 degrees of freedom Multiple R-Squared: 0.8775, Adjusted R-squared: 0.8698 F-statistic: 114.6 on 1 and 16 DF, p-value: 1.058e-08 Lnh th hai, summary(reg), yêu cu R lit kê các thông tin tính toán trong reg. Phn kt qu chia làm 3 phn: (a) Phn 1 mô t phn d (residuals) ca mô hình hi qui: Residuals: Min 1Q Median 3Q Max -0.40729 -0.24133 -0.04522 0.17939 0.63040 Chúng ta bit rng trung bình phn d phi là 0, và đây, s trung v là -0.04, cng không xa 0 bao nhiêu. Các s quantiles 25% (1Q) và 75% (3Q) cng khá cân đi chung quan s trung v, cho thy phn d ca phng trình này tng đi cân đi. (b) Phn hai trình bày c s ca α ) và β ) cùng vi sai s chun và giá tr ca kim đnh t. Giá tr kim đnh t cho β ) là 10.74 vi tr s p = 1.06e-08, cho thy β không phi bng 0. Nói cách khác, chúng ta có bng chng đ cho rng có mt mi liên h gia cholesterol và đ tui, và mi liên h này có ý ngha thng kê. Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.089218 0.221466 4.918 0.000154 *** age 0.057788 0.005399 10.704 1.06e-08 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (c) Phn ba ca kt qu cho chúng ta thông tin v phng sai ca phn d (residual mean square). đây, s 2 = 0.3027. Trong kt qu này còn có kim đnh F, cng ch là mt kim đnh xem có qu tht β bng 0, tc có ý ngha tng t nh kim đnh t trong phn trên. Nói chung, trong trng hp phân tích hi qui tuyn tính đn gin (vi mt yu t) chúng ta không cn phi quan tâm đn kim đnh F. Residual standard error: 0.3027 on 16 degrees of freedom Multiple R-Squared: 0.8775, Adjusted R-squared: 0.8698 F-statistic: 114.6 on 1 and 16 DF, p-value: 1.058e-08 Ngoài ra, phn 3 còn cho chúng ta mt thông tin quan trng, đó là tr s R 2 hay h s xác đnh bi (coefficient of determination). H s này đc c tính bng công thc: () () 2 2 1 2 1 ˆ n i i n i i yy R yy = = − = − ∑ ∑ [6] Tc là bng tng bình phng gia s c tính và trung bình chia cho tng bình phng s quan sát và trung bình. Tr s R 2 trong ví d này là 0.8775, có ngha là phng trình tuyn tính (vi đ tui là mt yu t) gii thích khong 88% các khác bit v đ cholesterol gia các cá nhân. Tt nhiên tr s R 2 có giá tr t 0 đn 100% (hay 1). Giá tr R 2 càng cao là mt du hiu cho thy mi liên h gia hai bin s đ tui và cholesterol càng cht ch. Mt h s cng cn đ cp đây là h s điu chnh xác đnh bi (mà trong kt qu trên R gi là “Adjusted R-squared”). ây là h s cho chúng ta bit mc đ ci tin ca phng sai phn d (residual variance) do yu t đ tui có mt trong mô hình tuyn tính. Nói chung, h s này không khác my so vi h s xác đnh bi, và chúng ta cng không cn chú tâm quá mc. 10.2.3 Gi đnh ca phân tích hi qui tuyn tính Tt c các phân tích trên da vào mt s gi đnh quan trng nh sau: (a) x là mt bin s c đnh hay fixed, (“c đnh” đây có ngha là không có sai sót ngu nhiên trong đo lng); (b) ε i phân phi theo lut phân phi chun; (c) ε i có giá tr trung bình (mean) là 0; (d) ε i có phng sai σ 2 c đnh cho tt c x i ; và (e) các giá tr liên tc ca ε i không có liên h tng quan vi nhau (nói cách khác, ε 1 và ε 2 không có liên h vi nhau). Nu các gi đnh này không đc đáp ng thì phng trình mà chúng ta c tính có vn đ hp lí (validity). Do đó, trc khi trình bày và din dch mô hình trên, chúng ta cn phi kim tra xem các gi đnh trên có đáp ng đc hay không. Trong trng hp này, gi đnh (a) không phi là vn đ, vì đ tui không phi là mt bin s ngu nhiên, và không có sai s khi tính đ tui ca mt cá nhân. i vi các gi đnh (b) đn (e), cách kim tra đn gin nhng hu hiu nht là bng cách xem xét mi liên h gia ˆ i y , i x , và phn d i e ( ˆ iii eyy = − ) bng nhng đ th tán x. Vi lnh fitted() chúng ta có th tính toán ˆ i y cho tng cá nhân nh sau (ví d đi vi cá nhân 1, 46 tui, đ cholestrol có th tiên đoán nh sau: 1.08922 + 0.05779 x 46 = 3.747). > fitted(reg) 1 2 3 4 5 6 7 8 3.747483 2.244985 4.094214 2.822869 4.383156 2.533927 2.707292 3.169600 9 10 11 12 13 14 15 16 2.360562 3.574118 4.383156 2.996234 2.360562 4.729886 3.400753 3.863060 17 18 2.707292 3.920849 Vi lnh resid() chúng ta có th tính toán phn d i e cho tng cá nhân nh sau (vi đi tng 1, e 1 = 3.5 – 3.74748 = -0.24748): > resid(reg) 1 2 3 4 5 6 -0.247483426 -0.344985415 -0.094213736 -0.222869265 0.116844338 0.466072660 7 8 9 10 11 12 0.192707505 0.630400424 -0.260562185 0.225881729 -0.283155662 0.003765579 13 14 15 16 17 18 0.139437815 -0.129885972 -0.200753116 0.336939804 -0.407292495 0.079151419 kim tra các gi đnh trên, chúng ta có th v mt lot 4 đ th mà tôi s gii thích sau đây: > op <- par(mfrow=c(2,2)) #yêu cu R dành ra 4 ca s > plot(reg) #v các đ th trong reg 2.5 3.0 3.5 4.0 4.5 -0.4 0.0 0.2 0.4 0.6 Fitted values Residuals Residuals vs Fitted 8 6 17 -2-1012 -1012 Theoretical Quantiles Standardized residuals Normal Q-Q 8 6 17 2.5 3.0 3.5 4.0 4.5 0.00.51.01.5 Fitted values Standardized residuals Scale-Location 8 6 17 0.00 0.05 0.10 0.15 0.20 0.25 -1 0 1 2 Leverage Standardized residuals Cook's distance 0.5 0.5 1 Residuals vs Leverage 6 2 8 Biu đ 10.2. Phân tích phn d đ kim tra các gi đnh trong phân tích hi qui tuyn tính. (a) th bên trái dòng 1 v phn d i e và giá tr tiên đoán cholesterol ˆ i y . th này cho thy các giá tr phn d tp chung quanh đng y = 0, cho nên gi đnh (c), hay ε i có giá tr trung bình 0, là có th chp nhn đc. (b) th bên phi dòng 1 v giá tr phn d và giá tr kì vng da vào phân phi chun. Chúng ta thy các s phn d tp trung rt gn các giá tr trên đng chun, và do đó, gi đnh (b), tc ε i phân phi theo lut phân phi chun, cng có th đáp ng. (c) th bên trái dòng 2 v cn s phn d chun (standardized residual) và giá tr ca ˆ i y . th này cho thy không có gì khác nhau gia các s phn d chun cho các giá tr ca ˆ i y , và do đó, gi đnh (d), tc ε i có phng sai σ 2 c đnh cho tt c x i , cng có th đáp ng.