Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 44 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
44
Dung lượng
474,98 KB
Nội dung
11
Phân tích phng sai
(Analysis of variance)
Phântích phng sai, nh tên gi, là mt s phng pháp phântích thng kê mà
trng đim là phng sai (thay vì s trung bình). Phng pháp phântích phng sai nm
trong “đi gia đình” các phng pháp có tên là mô hình tuyn tính (hay general linear
models), bao gm c hi qui tuyn tính mà chúng ta đã gp trong chng trc. Trong
chng này, chúng ta s làm quen vi cách s dng R trong phântích phng sai.
Chúng ta s bt đu bng mt phântích đn gin, sau đó s xem đn phântích phng
sai hai chiu, và các phng pháp phi tham s thông dng.
11.1 Phântích phng sai đn gin (one-way analysis of
variance - ANOVA)
Ví d 1. Bng thng kê 11.1 di đây so sánh đ galactose trong 3 nhóm bnh
nhân: nhóm 1 gm 9 bnh nhân vi bnh Crohn; nhóm 2 gm 11 bnh nhân vi bnh
viêm rut kt (colitis); và nhóm 3 gm 20 đi tng không có bnh (gi là nhóm đi
chng). Câu hi đt ra là đ galactose gia 3 nhóm bnh nhân có khác nhau hay không?
Gi giá tr trung bình ca ba nhóm là µ
1
, µ
2
, và µ
3
, và nói theo ngôn ng ca kim đnh
gi thit thì gi thit đo là:
H
o
: µ
1
= µ
2
= µ
3
Và gi thit chính là:
H
A
: có mt khác bit gia 3 µ
j
(j=1,2,3)
Bng 11.2. galactose cho 3 nhóm bnh nhân Crohn, viêm rut kt
và đi chng
Nhóm 1: bnh
Crohn
Nhóm 2: bnh viêm
rut kt
Nhóm 3: đi
chng (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à đ lch chun (standard deviation).
Thot đu có l bn đc, sau khi đã hc qua phng pháp so sánh hai nhóm bng
kim đnh t, s ngh rng chúng ta cn làm 3 so sánh bng kim đnh t: gia nhóm 1 và 2,
nhóm 2 và 3, và nhóm 1 và 3. Nhng phng pháp này không hp lí, vì có ba phng
sai khác nhau. Phng pháp thích hp cho so sánh là phântích phng sai. Phântích
phng sai có th ng dng đ so sánh nhiu nhóm cùng mt lúc (simultaneous
comparisons).
11.1.1 Mô hình phântích phng sai
minh ha cho phng pháp phântích phng sai, chúng ta phi dùng kí hiu.
Gi đ galactose ca bnh nhân i thuc nhóm j (j = 1, 2, 3) là x
ij
. Mô hình phântích
phng sai phát biu rng:
ij i ij
x
µ
αε
=+ + [1]
Hay c th hn:
x
i1
= µ + α
1
+ ε
i1
x
i2
= µ + α
2
+ ε
i2
x
i3
= µ + α
3
+ ε
i3
Tc là, giá tr galactose c bt c bnh nhân nào bng giá tr trung bình ca toàn
qun th (µ) cng/tr cho nh hng ca nhóm j đc đo bng h s nh hng
i
α
, và sai
s
ij
ε
. Mt gi đnh khác là
ij
ε
phi tuân theo lut phân phi chun vi trung bình 0 và
phng sai σ
2
. Hai thông s cn c tính là µ và
i
α
. Cng nh phântích hi qui tuyn
tính, hai thông s này đc c tính bng phng pháp bình phng nh nht; tc là tìm
c s
ˆ
µ
và
ˆ
j
α
sao cho
()
2
ˆ
ˆ
ij j
x
µα
−−
∑
nh nht.
Quay li vi s liu nghiên cu trên, chúng ta có nhng tóm tt thng kê nh sau:
Nhóm S đi
tng (n
j
)
Trung bình
Phng sai
1 – Crohn n
1
= 9
1
x
= 1910
2
1
s = 265944
2 – Viêm rut kt n
2
= 11
2
x
= 2226
2
2
s = 473387
3 – i chng n
3
= 20
3
x
= 2804
2
3
s = 277500
Toàn bô mu n = 40
x
= 2444
Chú ý rng:
(
)
(
)
ij j ij j
x
xxx xx=+ − + − [2]
Trong đó,
x
là s trung bình ca toàn mu, và
j
x
là s trung bình ca nhóm j. Nói cách
khác, phn
(
)
j
x
x− phn ánh đ khác bit (hay cng có th gi là hiu s) gia trung
bình trng nhóm và trung bình toàn mu, và phn
(
)
ij j
x
x− phn ánh hiu s gia mt
galactose ca mt đi tng và s trung bình ca tng nhóm. Theo đó,
• tng bình phng cho toàn b mu là:
()
2
ij
ij
SST x x=−
∑∑
= (1343–2444)
2
+ (1393–2444)
2
+ (1343 – 2444)
2
+ … + (3657– 2444)
2
= 12133923
• tng bình phng vì khác nhau gia 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
• tng bình phng vì dao đng trong mi 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 chng minh d dàng rng:
SST = SSB + SSW.
SSW đc tính t mi bnh nhân cho 3 nhóm, cho nên trung bình bình phng cho tng
nhóm (mean square – MSW) là:
MSW = SSW / (N – k) = 12133922 / (40-3) = 327944
và trung bình bình phng gia các nhóm là:
MSB = SSB / (k– 1) = 5681168 / (3-1) = 2841810
Trong đó
N là tng s bnh nhân (N = 40) ca ba nhóm, và k = 3 là s nhóm bnh nhân.
Nu có s khác bit gia các nhóm, thì chúng ta kì vng rng MSB s ln hn MSW.
Thành ra, đ kim tra gi thit, chúng ta có th da vào kim đnh F:
F = MSB / MSW = 8.67 [3]
Vi bc t do k-1 và N-k. Các s liu tính toán trên đây có th trình bày trong mt bng
phân tích phng sai (ANOVA table) nh sau:
Ngun bin thiên (source
of variation)
Bc t do
(degrees of
freedom)
Tng bình
phng
(sum of
squares)
Trung bình
bình phng
(mean
square)
Kim đnh
F
Khác bit gia các nhóm
(between-group)
2 5681168 2841810 8.6655
Khác bit trong tng
nhóm (with-group)
37 12133923 327944
Tng s 39 12133923
11.1.2 Phântích phng sai đn gin vi R
Tt c các tính toán trên tng đi rm rà, và tn khá nhiu thi gian. Tuy nhiên vi R,
các tính toán đó có th làm trong vòng 1 giây, sau khi d liu đã đc chun b đúng
cách.
(a) Nhp d liu. Trc ht, chúng ta cn phi nhp d liu vào R. Bc th nht là
báo cho R bit rng chúng ta có ba nhóm bnh nhân (1, 2 v ), nhóm 1 gm 9 ngi,
nhóm 2 có 11 ngi, và nhóm 3 có 20 ngi:
> 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ântích phng sai, chúng ta phi đnh ngha bin group là mt yu t - factor.
> group <- as.factor(group)
Bc k tip, chúng ta np s liu galactose cho tng nhóm nh đnh ngha trên (gi
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 bin group và galactose vào mt dataframe và gi là data:
> data <- data.frame(group, galactose)
> attach(data)
Sau khi đã có d liu sn sàng, chúng ta dùng hàm lm() đ phântích phng sai nh
sau:
> analysis <- lm(galactose ~ group)
Trong hàm trên chúng ta cho R bit bin galactose là mt hàm s ca group. Gi
kt qu phântích là analysis.
(b) Kt qu phântích phng sai. Bây gi chúng ta dùng lnh anova đ bit kt 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 kt qu trên, có ba ct: Df (degrees of freedom) là bc t do; Sum Sq là tng bình
phng (sum of squares), Mean Sq là trung bình bình phng (mean square); F
value là giá tr F nh đnh ngha [3] va đ cp phn trên; và Pr(>F) là tr s P liên
quan đn kim đnh F.
Dòng group trong kt qu trên có ngha là bình phng gia các nhóm (between-
groups) và residual là bình phng trong mi 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ó ngha là tín hiu cho thy có s khác bit v đ galactose gia ba
nhóm.
(c) c s. bit thêm chi tit kt qu phân tích, chúng ta dùng lnh 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 kt qu trên đây, intercept chính là
ˆ
µ
trong mô hình [1]. Nói cách khác,
ˆ
µ
=
1910 và sai s chun là 190.9.
c tính thông s
ˆ
j
α
, R đt
1
ˆ
α
=0, và
221
ˆˆˆ
α
αα
=
− = 316.3, vi sai s chun là 257,
và kim đnh t = 316.3 / 257 = 1.229 vi tr s p = 0.2268. Nói cách khác, so vi nhóm 1
(bnh nhân Crohn), bnh nhân viêm rut kt có đ galactose trung bình cao hn 257,
nhng đ khác bit này không có ý ngha thng kê.
Tng t,
331
ˆˆˆ
α
αα
=− = 894.3, vi sai s chun là 229.9, kim đnh t =
894.3/229.9=3.89, và tr s p = 0.00040. So vi bnh nhân Crohn, nhóm đi chng có đ
galactose cao hn 894, và mc đ khác bit này có ý ngha thng kê.
11.2 So sánh nhiu nhóm (multiple comparisons) và điu
chnh tr s p
Cho k nhóm, chúng ta có ít nht là k(k-1)/2 so sánh. Ví d trên có 3 nhóm, cho
nên tng s so sánh kh d là 3 (gia nhóm 1 và 2, nhóm 1 và 3, và nhóm 2 và 3). Khi
k=10, s ln so sánh có th lên rt cao. Nh đã đ cp trong chng 7, khi có nhiu so
sánh, tr s p tính toán t các kim đnh thng kê không còn ý ngha ban đu na, bi vì
các kim đnh này có th cho ra kt qu dng tính gi (tc kt qu vi p<0.05 nhng
trong thc t không có khác nhau hay nh hng). Do đó, trong trng hp có nhiu so
sánh, chúng ta cn phi điu chnh tr s p sao cho hp lí.
Có khá nhiu phng pháp điu chnh tr s p, và 4 phng pháp thông dng nht
là: Bonferroni, Scheffé, Holm và Tukey (tên ca 4 nhà thng kê hc danh ting).
Phng pháp nào thích hp nht? Không có câu tr li dt khoát cho câu hi này, nhng
hai đim sau đây có th giúp bn đc quyt đnh tt hn:
(a)
Nu k < 10, chúng ta có th áp dng bt c phng pháp nào đ điu
chnh tr s p. Riêng cá nhân tôi thì thy phng pháp Tukey thng
rt hu ích trong so sánh.
(b) Nu k>10, phng pháp Bonferroni có th tr nên rt “bo th”. Bo
th đây có ngha là phng pháp này rt ít khi nào tuyên b mt so
sánh có ý ngha thng kê, dù trong thc t là có tht! Trong trng
hp này, hai phng pháp Tukey, Holm và Scheffé có th áp dng.
đây, tôi s không gii thích lí thuyt đng sau các phng pháp này (vì bn đc
có th tham kho trong các sách giáo khoa v thng kê), nhng s ch cách s dng R đ
tin hành các so sánh theo phng pháp ca Tukey.
Quay li ví d trên, các tr s p trên đây là nhng tr s cha đc điu chnh cho
so sánh nhiu ln. Trong chng v tr s p, tôi đã nói các tr s này phóng đi ý ngha
thng kê, không phn ánh tr s p lúc ban đu (tc 0.05). điu chnh cho nhiu so
sánh, chúng ta phi s dng đn phng pháp điu chnh Bonferroni.
Chúng ta có th dùng lnh pairwise.t.test đ có đc tt c các tr s p so
sánh gia 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
Kt qu trên cho thy tr s p gia nhóm 1 (Crohn) và viêm rut kt là 0.6805 (tc không
có ý ngha thng kê); gia nhóm Crohn và đi chng là 0.0012 (có ý ngha thng kê), và
gia nhóm viêm rut kt và đi chng là 0.0321 (tc cng có ý ngha thng kê).
Mt phng pháp điu chnh tr s p khác có tên là phng 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
Kt qu này cng không khác so vi phng pháp Bonferroni.
Tt c các phng pháp so sánh trên s dng mt sai s chun chung cho c ba nhóm.
Nu chúng ta mun s dng cho tng nhóm thì lnh sau đây (pool.sd=F) s đáp ng
yêu cu đó:
> 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
Mt ln na, kt qu này cng không làm thay đi kt lun.
11.2.1 So sánh nhiu nhóm bng phng pháp Tukey
Trong các phng pháp trên, chúng ta ch bit tr s p so sánh gia các nhóm,
nhng không bit mc đ khác bit cng nh khong tin cy 95% gia các nhóm. có
nhng c s này, chúng ta cn đn mt hàm khác có tên là aov (vit tt t analysis of
variance) và hàm TukeyHSD (HSD là vit tt t Honest Significant Difference, tm dch
nôm na là “Khác bit có ý ngha thành tht”) 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
Kt qu trên cho chúng ta thy nhóm 3 và 1 khác nhau khong 894 đn v, và khong tin
cy 95% t 333 đn 1455 đn v. Tng t, galactose trong nhóm bnh nhân viêm rut
kt thp hn nhóm đi chng (nhóm 3) khong 578 đn v, và khong tin cy 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
Biu đ 11.1. Trung bình hiu và khong tin cy
95% gia nhóm 1 và 2, 1 và 3, và 3 và 2. Trc
hoành là đ galactose, trc tung là ba so sánh.
11.2.2 Phântích bng biu đ
Mt phântích thng kê không th nào hoàn tt nu không có mt đ th minh ha
cho kt qu. Các lnh sau đây v đ th th hin đ galactose trung bình và sai s chun
cho tng nhóm bnh nhân. Biu đ này cho thy, nhóm bnh nhân Crohn có đ
galactose thp nht (nhng không thp hn nhóm viêm rut kt), và c hai nhóm thp
hn nhóm đi chng và s khác bit này có ý ngha thng 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
Biu đ 11.2. galactose ca nhóm 1 (bnh nhân Crohn),
nhóm 2 (bnh nhân viêm rut kt), và nhóm 3 (đi chng).
11.3 Phântích bng phng pháp phi tham s
Phng pháp so sánh nhiu nhóm phi tham s (non-parametric statistics) tng
đng vi phng pháp phântích phng sai là Kruskal-Wallis. Cng nh phng pháp
Wilcoxon so sánh hai nhóm theo phng pháp phi tham s, phng pháp Kruskal-Wallis
cng bin đi s liu thành th bc (ranks) và phântích đ khác bit th bc này gia các
nhóm. Hàm kruskal.test trong R có th giúp chúng ta trong kim đ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 kim đnh này khá thp (p = 0.002313) cho thy có s khác bit gia
ba nhóm nh phântích phng sai qua hàm lm trên đây. Tuy nhiên, mt bt tin ca
kim đnh phi tham s Kruskal-Wallis là phng pháp này không cho chúng ta bit hai
nhóm nào khác nhau, mà ch cho mt tr s p chung. Trong nhiu trng hp, phântí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ântí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ântích ph ng sai n gi n hay m t chi u ch có m t y u t (factor) Nh ng phântí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ântích ph ng sai hai chi u ch n gi n khai tri n t ph ng pháp phântích ph ng sai n gi n Thay vì c tính ph ng sai c a m t y... Mô hình phântí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ântí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 '***'