Chuong 11 phan tich phuong sai

44 588 4
Chuong 11   phan tich phuong sai

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

11 Phân tích phng sai (Analysis of variance) Phân tích phng sai, nh tên gi, là mt s phng pháp phân tích thng kê mà trng đim là phng sai (thay vì s trung bình). Phng pháp phân tích phng sai nm trong “đi gia đình” các phng pháp có tên là mô hình tuyn tính (hay general linear models), bao gm c hi qui tuyn tính mà chúng ta đã gp trong chng trc. Trong chng này, chúng ta s làm quen vi cách s dng R trong phân tích phng sai. Chúng ta s bt đu bng mt phân tích đn gin, sau đó s xem đn phân tích phng sai hai chiu, và các phng pháp phi tham s thông dng. 11.1 Phân tích phng sai đn gin (one-way analysis of variance - ANOVA) Ví d 1. Bng thng kê 11.1 di đây so sánh đ galactose trong 3 nhóm bnh nhân: nhóm 1 gm 9 bnh nhân vi bnh Crohn; nhóm 2 gm 11 bnh nhân vi bnh viêm rut kt (colitis); và nhóm 3 gm 20 đi tng không có bnh (gi là nhóm đi chng). Câu hi đt ra là đ galactose gia 3 nhóm bnh nhân có khác nhau hay không? Gi giá tr trung bình ca ba nhóm là µ 1 , µ 2 , và µ 3 , và nói theo ngôn ng ca kim đnh gi thit thì gi thit đo là: H o : µ 1 = µ 2 = µ 3 Và gi thit chính là: H A : có mt khác bit gia 3 µ j (j=1,2,3) Bng 11.2.  galactose cho 3 nhóm bnh nhân Crohn, viêm rut kt và đi chng Nhóm 1: bnh Crohn Nhóm 2: bnh viêm rut kt Nhóm 3: đi chng (control) 1343 1393 1420 1641 1897 2160 2169 2279 2890 1264 1314 1399 1605 2385 2511 2514 2767 2827 2895 1809 2850 1926 2964 2283 2973 2384 3171 2447 3257 2479 3271 2495 3288 2525 3358 2541 3643 2769 3657 3011 n=9 Trung bình: 1910 SD: 516 n=11 Trung bình: 2226 SD: 727 n=20 Trung bình: 2804 SD: 527 Chú thích: SD là đ lch chun (standard deviation). Thot đu có l bn đc, sau khi đã hc qua phng pháp so sánh hai nhóm bng kim đnh t, s ngh rng chúng ta cn làm 3 so sánh bng kim đnh t: gia nhóm 1 và 2, nhóm 2 và 3, và nhóm 1 và 3. Nhng phng pháp này không hp lí, vì có ba phng sai khác nhau. Phng pháp thích hp cho so sánh là phân tích phng sai. Phân tích phng sai có th ng dng đ so sánh nhiu nhóm cùng mt lúc (simultaneous comparisons). 11.1.1 Mô hình phân tích phng sai  minh ha cho phng pháp phân tích phng sai, chúng ta phi dùng kí hiu. Gi đ galactose ca bnh nhân i thuc nhóm j (j = 1, 2, 3) là x ij . Mô hình phân tích phng sai phát biu rng: ij i ij x µ αε =+ + [1] Hay c th hn: x i1 = µ + α 1 + ε i1 x i2 = µ + α 2 + ε i2 x i3 = µ + α 3 + ε i3 Tc là, giá tr galactose c bt c bnh nhân nào bng giá tr trung bình ca toàn qun th (µ) cng/tr cho nh hng ca nhóm j đc đo bng h s nh hng i α , và sai s ij ε . Mt gi đnh khác là ij ε phi tuân theo lut phân phi chun vi trung bình 0 và phng sai σ 2 . Hai thông s cn c tính là µ và i α . Cng nh phân tích hi qui tuyn tính, hai thông s này đc c tính bng phng pháp bình phng nh nht; tc là tìm c s ˆ µ và ˆ j α sao cho () 2 ˆ ˆ ij j x µα −− ∑ nh nht. Quay li vi s liu nghiên cu trên, chúng ta có nhng tóm tt thng kê nh sau: Nhóm S đi tng (n j ) Trung bình Phng sai 1 – Crohn n 1 = 9 1 x = 1910 2 1 s = 265944 2 – Viêm rut kt n 2 = 11 2 x = 2226 2 2 s = 473387 3 – i chng n 3 = 20 3 x = 2804 2 3 s = 277500 Toàn bô mu n = 40 x = 2444 Chú ý rng: ( ) ( ) ij j ij j x xxx xx=+ − + − [2] Trong đó, x là s trung bình ca toàn mu, và j x là s trung bình ca nhóm j. Nói cách khác, phn ( ) j x x− phn ánh đ khác bit (hay cng có th gi là hiu s) gia trung bình trng nhóm và trung bình toàn mu, và phn ( ) ij j x x− phn ánh hiu s gia mt galactose ca mt đi tng và s trung bình ca tng nhóm. Theo đó, • tng bình phng cho toàn b mu là: () 2 ij ij SST x x=− ∑∑ = (1343–2444) 2 + (1393–2444) 2 + (1343 – 2444) 2 + … + (3657– 2444) 2 = 12133923 • tng bình phng vì khác nhau gia các nhóm: () 2 i ij SSB x x=− ∑∑ = () 2 jj j nx x− ∑ = 9(1910 – 2444) 2 + 11(2226 – 2444) 2 + 20(2804 – 2444) 2 = 5681168 • tng bình phng vì dao đng trong mi nhóm: () 2 ij j ij SSW x x=− ∑∑ = () 2 1 jj j ns− ∑ = (9-1)(265944) + (11-1)(473387) + (20-1)(277500) = 12133922 Có th chng minh d dàng rng: SST = SSB + SSW. SSW đc tính t mi bnh nhân cho 3 nhóm, cho nên trung bình bình phng cho tng nhóm (mean square – MSW) là: MSW = SSW / (N – k) = 12133922 / (40-3) = 327944 và trung bình bình phng gia các nhóm là: MSB = SSB / (k– 1) = 5681168 / (3-1) = 2841810 Trong đó N là tng s bnh nhân (N = 40) ca ba nhóm, và k = 3 là s nhóm bnh nhân. Nu có s khác bit gia các nhóm, thì chúng ta kì vng rng MSB s ln hn MSW. Thành ra, đ kim tra gi thit, chúng ta có th da vào kim đnh F: F = MSB / MSW = 8.67 [3] Vi bc t do k-1 và N-k. Các s liu tính toán trên đây có th trình bày trong mt bng phân tích phng sai (ANOVA table) nh sau: Ngun bin thiên (source of variation) Bc t do (degrees of freedom) Tng bình phng (sum of squares) Trung bình bình phng (mean square) Kim đnh F Khác bit gia các nhóm (between-group) 2 5681168 2841810 8.6655 Khác bit trong tng nhóm (with-group) 37 12133923 327944 Tng s 39 12133923 11.1.2 Phân tích phng sai đn gin vi R Tt c các tính toán trên tng đi rm rà, và tn khá nhiu thi gian. Tuy nhiên vi R, các tính toán đó có th làm trong vòng 1 giây, sau khi d liu đã đc chun b đúng cách. (a) Nhp d liu. Trc ht, chúng ta cn phi nhp d liu vào R. Bc th nht là báo cho R bit rng chúng ta có ba nhóm bnh nhân (1, 2 v ), nhóm 1 gm 9 ngi, nhóm 2 có 11 ngi, và nhóm 3 có 20 ngi: > group <- c(1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3)  phân tích phng sai, chúng ta phi đnh ngha bin group là mt yu t - factor. > group <- as.factor(group) Bc k tip, chúng ta np s liu galactose cho tng nhóm nh đnh ngha trên (gi object là galactose): > galactose <- c( 1343,1393,1420,1641,1897,2160,2169,2279,2890, 1264,1314,1399,1605,2385,2511,2514,2767,2827,2895,3011, 1809,2850,1926,2964,2283,2973,2384,3171,2447,3257,2479,3271,2495,3288, 2525,3358,2541,3643,2769,3657) a hai bin group và galactose vào mt dataframe và gi là data: > data <- data.frame(group, galactose) > attach(data) Sau khi đã có d liu sn sàng, chúng ta dùng hàm lm() đ phân tích phng sai nh sau: > analysis <- lm(galactose ~ group) Trong hàm trên chúng ta cho R bit bin galactose là mt hàm s ca group. Gi kt qu phân tích là analysis. (b) Kt qu phân tích phng sai. Bây gi chúng ta dùng lnh anova đ bit kt qu phân tích: > anova(analysis) Analysis of Variance Table Response: galactose Df Sum Sq Mean Sq F value Pr(>F) group 2 5683620 2841810 8.6655 0.0008191 *** Residuals 37 12133923 327944 Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Trong kt qu trên, có ba ct: Df (degrees of freedom) là bc t do; Sum Sq là tng bình phng (sum of squares), Mean Sq là trung bình bình phng (mean square); F value là giá tr F nh đnh ngha [3] va đ cp phn trên; và Pr(>F) là tr s P liên quan đn kim đnh F. Dòng group trong kt qu trên có ngha là bình phng gia các nhóm (between- groups) và residual là bình phng trong mi nhóm (within-group).  đây, chúng ta có: SSB = 5683620 và MSB = 2841810 và: MSB = 2841810 và MSB = 327944 Thành ra, F = 2841810 / 327944 = 8.6655. Tr s p = 0.00082 có ngha là tín hiu cho thy có s khác bit v đ galactose gia ba nhóm. (c) c s.  bit thêm chi tit kt qu phân tích, chúng ta dùng lnh summary nh sau: > summary(analysis) Call: lm(formula = galactose ~ group) Residuals: Min 1Q Median 3Q Max -995.5 -437.9 102.0 456.0 979.8 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1910.2 190.9 10.007 4.5e-12 *** group2 316.3 257.4 1.229 0.226850 group3 894.3 229.9 3.891 0.000402 *** Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 572.7 on 37 degrees of freedom Multiple R-Squared: 0.319, Adjusted R-squared: 0.2822 F-statistic: 8.666 on 2 and 37 DF, p-value: 0.0008191 Theo kt qu trên đây, intercept chính là ˆ µ trong mô hình [1]. Nói cách khác, ˆ µ = 1910 và sai s chun là 190.9.  c tính thông s ˆ j α , R đt 1 ˆ α =0, và 221 ˆˆˆ α αα = − = 316.3, vi sai s chun là 257, và kim đnh t = 316.3 / 257 = 1.229 vi tr s p = 0.2268. Nói cách khác, so vi nhóm 1 (bnh nhân Crohn), bnh nhân viêm rut kt có đ galactose trung bình cao hn 257, nhng đ khác bit này không có ý ngha thng kê. Tng t, 331 ˆˆˆ α αα =− = 894.3, vi sai s chun là 229.9, kim đnh t = 894.3/229.9=3.89, và tr s p = 0.00040. So vi bnh nhân Crohn, nhóm đi chng có đ galactose cao hn 894, và mc đ khác bit này có ý ngha thng kê. 11.2 So sánh nhiu nhóm (multiple comparisons) và điu chnh tr s p Cho k nhóm, chúng ta có ít nht là k(k-1)/2 so sánh. Ví d trên có 3 nhóm, cho nên tng s so sánh kh d là 3 (gia nhóm 1 và 2, nhóm 1 và 3, và nhóm 2 và 3). Khi k=10, s ln so sánh có th lên rt cao. Nh đã đ cp trong chng 7, khi có nhiu so sánh, tr s p tính toán t các kim đnh thng kê không còn ý ngha ban đu na, bi vì các kim đnh này có th cho ra kt qu dng tính gi (tc kt qu vi p<0.05 nhng trong thc t không có khác nhau hay nh hng). Do đó, trong trng hp có nhiu so sánh, chúng ta cn phi điu chnh tr s p sao cho hp lí. Có khá nhiu phng pháp điu chnh tr s p, và 4 phng pháp thông dng nht là: Bonferroni, Scheffé, Holm và Tukey (tên ca 4 nhà thng kê hc danh ting). Phng pháp nào thích hp nht? Không có câu tr li dt khoát cho câu hi này, nhng hai đim sau đây có th giúp bn đc quyt đnh tt hn: (a) Nu k < 10, chúng ta có th áp dng bt c phng pháp nào đ điu chnh tr s p. Riêng cá nhân tôi thì thy phng pháp Tukey thng rt hu ích trong so sánh. (b) Nu k>10, phng pháp Bonferroni có th tr nên rt “bo th”. Bo th  đây có ngha là phng pháp này rt ít khi nào tuyên b mt so sánh có ý ngha thng kê, dù trong thc t là có tht! Trong trng hp này, hai phng pháp Tukey, Holm và Scheffé có th áp dng.  đây, tôi s không gii thích lí thuyt đng sau các phng pháp này (vì bn đc có th tham kho trong các sách giáo khoa v thng kê), nhng s ch cách s dng R đ tin hành các so sánh theo phng pháp ca Tukey. Quay li ví d trên, các tr s p trên đây là nhng tr s cha đc điu chnh cho so sánh nhiu ln. Trong chng v tr s p, tôi đã nói các tr s này phóng đi ý ngha thng kê, không phn ánh tr s p lúc ban đu (tc 0.05).  điu chnh cho nhiu so sánh, chúng ta phi s dng đn phng pháp điu chnh Bonferroni. Chúng ta có th dùng lnh pairwise.t.test đ có đc tt c các tr s p so sánh gia ba nhóm nh sau: > pairwise.t.test(galactose, group, p.adj="bonferroni") Pairwise comparisons using t tests with pooled SD data: galactose and group 1 2 2 0.6805 - 3 0.0012 0.0321 P value adjustment method: bonferroni Kt qu trên cho thy tr s p gia nhóm 1 (Crohn) và viêm rut kt là 0.6805 (tc không có ý ngha thng kê); gia nhóm Crohn và đi chng là 0.0012 (có ý ngha thng kê), và gia nhóm viêm rut kt và đi chng là 0.0321 (tc cng có ý ngha thng kê). Mt phng pháp điu chnh tr s p khác có tên là phng pháp Holm: > pairwise.t.test(galactose, group) Pairwise comparisons using t tests with pooled SD data: galactose and group 1 2 2 0.2268 - 3 0.0012 0.0214 P value adjustment method: holm Kt qu này cng không khác so vi phng pháp Bonferroni. Tt c các phng pháp so sánh trên s dng mt sai s chun chung cho c ba nhóm. Nu chúng ta mun s dng cho tng nhóm thì lnh sau đây (pool.sd=F) s đáp ng yêu cu đó: > pairwise.t.test(galactose, group, pool.sd=FALSE) Pairwise comparisons using t tests with non-pooled SD data: galactose and group 1 2 2 0.2557 - 3 0.0017 0.0544 P value adjustment method: holm Mt ln na, kt qu này cng không làm thay đi kt lun. 11.2.1 So sánh nhiu nhóm bng phng pháp Tukey Trong các phng pháp trên, chúng ta ch bit tr s p so sánh gia các nhóm, nhng không bit mc đ khác bit cng nh khong tin cy 95% gia các nhóm.  có nhng c s này, chúng ta cn đn mt hàm khác có tên là aov (vit tt t analysis of variance) và hàm TukeyHSD (HSD là vit tt t Honest Significant Difference, tm dch nôm na là “Khác bit có ý ngha thành tht”) nh sau: > res <- aov(galactose ~ group) > TukeyHSD (res) Tukey multiple comparisons of means 95% family-wise confidence level Fit: aov(formula = galactose ~ group) $group diff lwr upr p adj 2-1 316.3232 -312.09857 944.745 0.4439821 3-1 894.2778 333.07916 1455.476 0.0011445 3-2 577.9545 53.11886 1102.790 0.0281768 Kt qu trên cho chúng ta thy nhóm 3 và 1 khác nhau khong 894 đn v, và khong tin cy 95% t 333 đn 1455 đn v. Tng t, galactose trong nhóm bnh nhân viêm rut kt thp hn nhóm đi chng (nhóm 3) khong 578 đn v, và khong tin cy 95% t 53 đn 1103. 0 500 1000 1500 3-2 3-1 2-1 95% family-wise confidence level Differences in mean levels of group Biu đ 11.1. Trung bình hiu và khong tin cy 95% gia nhóm 1 và 2, 1 và 3, và 3 và 2. Trc hoành là đ galactose, trc tung là ba so sánh. 11.2.2 Phân tích bng biu đ Mt phân tích thng kê không th nào hoàn tt nu không có mt đ th minh ha cho kt qu. Các lnh sau đây v đ th th hin đ galactose trung bình và sai s chun cho tng nhóm bnh nhân. Biu đ này cho thy, nhóm bnh nhân Crohn có đ galactose thp nht (nhng không thp hn nhóm viêm rut kt), và c hai nhóm thp hn nhóm đi chng và s khác bit này có ý ngha thng kê. > xbar <- tapply(galactose, group, mean) > s <- tapply(galactose, group, sd) > n <- tapply(galactose, group, length) > sem <- s/sqrt(n) > stripchart(galactose ~ group, “jitter”, jit=0.05, pch=16, vert=TRUE) > arrows(1:3, xbar+sem, 1:3, xbar-sem, angle=90, code=3, length=0.1) > lines(1:3, xbar, pch=4, type=”b”, cex=2) 123 1500 2000 2500 3000 3500 Biu đ 11.2.  galactose ca nhóm 1 (bnh nhân Crohn), nhóm 2 (bnh nhân viêm rut kt), và nhóm 3 (đi chng). 11.3 Phân tích bng phng pháp phi tham s Phng pháp so sánh nhiu nhóm phi tham s (non-parametric statistics) tng đng vi phng pháp phân tích phng sai là Kruskal-Wallis. Cng nh phng pháp Wilcoxon so sánh hai nhóm theo phng pháp phi tham s, phng pháp Kruskal-Wallis cng bin đi s liu thành th bc (ranks) và phân tích đ khác bit th bc này gia các nhóm. Hàm kruskal.test trong R có th giúp chúng ta trong kim đnh này: > kruskal.test(galactose ~ group) Kruskal-Wallis rank sum test data: galactose by group Kruskal-Wallis chi-squared = 12.1381, df = 2, p-value = 0.002313 Tr s p t kim đnh này khá thp (p = 0.002313) cho thy có s khác bit gia ba nhóm nh phân tích phng sai qua hàm lm trên đây. Tuy nhiên, mt bt tin ca kim đnh phi tham s Kruskal-Wallis là phng pháp này không cho chúng ta bit hai nhóm nào khác nhau, mà ch cho mt tr s p chung. Trong nhiu trng hp, phân tích [...]... abline(79.7, 0. 511) #line for males > abline(79.7+47.08, 0. 511- 0.399) #line for females parallel > par(mfrow=c(1,1)) Mo hinh 1 Mo hinh 2 1 1 2 2 130 1 110 115 1 120 125 150 1 2 2 1 2 130 1 1 1 135 140 2 2 1 110 115 1 1 2 2 2 2 2 2 1 130 1 2 2 2 2 1 2 2 1 1 11 1 1 140 1 1 1 1 2 2 height 150 1 2 2 1 1 11 1 1 140 height 160 1 160 1 1 120 125 2 2 1 2 130 age 140 age Mo hinh 3 135 Mo hinh 4 1 1 130 1 110 115 1 120... 5.0139 2.1 811 5.0139 2.1 811 0.7344 0.9074 “c i ti n” c a mô hình hi u h Và sau cùng, h s R2 i u ch nh ph n ánh 2 s này t t h n, chúng ta th y ph ng sai c a toàn b m u là s = (5.0139 + 2.1 811 + 0.7344) / 17 = 0.4644 Sau khi i u ch nh cho nh h ng c a i u ki n và v t li u, ph ng sai này còn 0.0525 (t c là residual mean square) Nh v y hai y u t này làm gi m ph ng sai kho ng 0.4644 – 0.0525 = 0. 4119 Và h... (parametric statistics) 11. 4 Phân tích ph variance - ANOVA) ng không có hi u qu nh các ph ng ng sai hai chi u (two-way analysis of Phân tích ph ng sai n gi n hay m t chi u ch có m t y u t (factor) Nh ng phân tích ph ng sai hai chi u (two-way ANOVA), nh tên g i, có hai y u t Ph ng pháp phân tích ph ng sai hai chi u ch n gi n khai tri n t ph ng pháp phân tích ph ng sai n gi n Thay vì c tính ph ng sai c a m t y... Mô hình phân tích ph ng sai hai chi u phát bi u r ng: xij i j [4] ij Hay c th h n: x11 = + 1 + 1 + 11 x12 = + 1 + 2 + 12 x13 = + 1 + 3 + 11 x21 = + 2 + 1 + 21 x22 = + 2 + 2 + 22 x23 = + 2 + 3 + 21 là s trung bình cho toàn qu n th , các h s i ( nh h h ng c a v t li u j) c n ph i c tính t s li u th c t phân ph i chu n v i trung bình 0 và ph ng sai 2 Trong phân tích ph ngu n: ng sai hai chi u, chúng ta... 1 2 130 age 140 age Mo hinh 3 135 Mo hinh 4 1 1 130 1 110 115 1 120 125 age 2 2 130 1 135 150 1 140 2 1 2 2 140 2 2 1 1 11 1 1 1 1 1 2 1 110 115 1 1 2 2 2 2 2 2 1 130 1 2 2 2 2 1 1 1 2 2 height 150 1 2 2 1 1 11 1 1 1 140 height 160 1 160 1 1 120 125 2 2 130 1 135 2 2 140 age Bi u 11. 6 Mô hình 1: chi u cao là hàm s c a n i trú ng , nh ng không có liên h v i tu i; Mô hình 2 gi thi t r ng chi u cao ph... group 1=urban 2=rural và c n ph i xác nh group là m t “factor” group group # nh p d li u > age height data analysis anova(analysis) Analysis of Variance Table Response: product Df Sum Sq Mean Sq F value Pr(>F) variety 2 2225.17 111 2.58 44.063 0.000259 *** pesticide 3 119 1.00 397.00 15.723 0.003008 ** Residuals 6 151.50 25.25 Signif codes: 0 '***'

Ngày đăng: 23/01/2014, 21:26

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan