Analýza rozptylu – ANOVA
Analýza rozptylu Statistika II
Jiří Neubauer Katedra ekonometrie FVL UO Brno kancelář 69a, tel. 973 442029 email:
[email protected]
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Analýza rozptylu – ANOVA
Analýza rozptylu je nástroj pro zkoumání vztahu mezi vysvětlovanými a vysvětlujícími proměnnými. Vysvětlované proměnné jsou vždy kvantitativní, u vysvětlujících proměnných (označují se jako faktory) na typu nezáleží. Faktory nabývají pouze malého počtu obměn (úrovní), podle nichž lze hodnoty vysvětlovaných proměnných třídit do skupin. jednofaktorová ANOVA – vliv jednoho faktoru na vysvětlovanou proměnnou vícefaktorová ANOVA – vliv více faktorů (dvojné, trojné třídění, atd.) vícerozměrná analýza rozptylu – MANOVA – vliv jednoho či více faktorů na několik vysvětlovaných proměnných současně
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA
Prokázat závislost vysvětlované proměnné Y (kvantitativní proměnná) na vysvětlujících proměnných (faktorech), znamená prokázat rozdílné úrovně proměnné Y v jednotlivých podsouborech – skupinách, vzniklých tříděním podle faktorů X . Označíme-li střední hodnoty veličiny Y v jednotlivých skupinách µ1 , µ2 , . . . , µk , testujeme hypotézu H : µ1 = µ2 = · · · = µ k
proti alternativě
A : non H,
která znamená, že alespoň některá rovnost mezi středními hodnotami neplatí. Východiskem jsou naměřené hodnoty proměnné Y roztříděné do k skupin podle úrovní – variant faktoru X ,
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA
Každý řádek korelační tabulky obsahuje rozdělení četností hodnot znaku Y za podmínky, že znak X nabyl určité obměny, tj. obsahuje podmíněné rozdělení četností hodnot znaku Y , které lze popsat pomocí tzv. podmíněných charakteristik Pi yij podmíněný průměr v i-té skupině yi = n1i nj=1 Pni 2 1 podmíněný rozptyl v i-té skupině sn,i (y ) = ni j=1 (yij − yi )2 P rozptyl podmíněných průměrů sn2 (yi ) = n1 ki=1 (yi − y )2 ni P 2 2 průměr podmíněných rozptylů sn,i (y ) = n1 ki=1 sn,i (y )ni P P k n 1 i celkový průměr y = n i=1 j=1 yij P Pi (yij − y )2 celkový rozptyl sn2 (y ) = n1 ki=1 nj=1
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA
Příklad: U 42 zákrsku jabloní bylo zaznamenáno stáří stromu v letech (znak X ) a roční sklizeň (znak Y ). xi 3 4 5 6 7 8 9 P
4 9 9 10 9 8 5
7 5 8 8 7 7 4
5 7 9 10 8 7 6
yj 5 6 10 10 9 8 7
5 8 7 10 10 6 6
7 7 9 9 10 8
Jiří Neubauer
8
ni 5 7 6 6 6 6 6 42
Analýza rozptylu
yi 5,200 7,143 8,333 9,500 8,667 7,667 6,000
2 sn,i (y ) 0,960 1,551 1,222 0,583 0,889 1,556 1,667
Si (y ) 4,800 10,857 7,333 3,500 5,333 9,333 10,000 51,157
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA Podstatou analýzy rozptylu je rozklad celkového rozptylu na složku objasněnou – známý zdroj variability, a na složku neobjasněnou – reziduální, chybovou, o níž se předpokládá, že je náhodná. Pro celkový rozptyl platí 2 sn2 (y ) = sn2 (yi ) + sn,i (y )
neboli Sc (y ) = Sm (y ) + Sv (y ), kde Sm (y ) = n · sn2 (yi ) je součet čtverců, který představuje meziskupinovou – vysvětlenou variabilitu proměnné Y , P P 2 Sv (y ) = ki=1 Si (y ) = ki=1 ni · sn,i (y ) je součet čtverců, který představuje vnitroskupinovou – nevysvětlenou, chybovou, reziduální variabilitu proměnné Y , Sc (y ) = n · sn2 (y ) je součet čtverců, který představuje celkovou variabilitu proměnné Y . Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA
Z analyzovaného datového souboru dostáváme: Sm (y ) = n · sn2 (yi ) = 77,248 P P 2 Sv (y ) = ki=1 Si (y ) = ki=1 ni · sn,i (y ) = 51,157 Sc (y ) = n · sn2 (y ) = 128,405
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA
Důležitým předpokladem použití analýzy rozptylu je, že každý z k nezávislých výběrů (což odpovídá k řádkům v korelační tabulce) proměnné Y pochází z normálního rozdělení N(µi , σ 2 ) se stejným rozptylem σ 2 . Předpoklad normality lze ověřit testy normality, avšak s přihlédnutím k rozsahům výběrů se v praxi se od toho často upouští a posuzuje se pouze, zda se ve skupinách hodnot proměnné Y , zjištěných na jednotlivých úrovních faktoru X , nevyskytují výslovně extrémní hodnoty a zda se hodnoty blízké podmíněným průměrům vyskytují častěji než hodnoty, jejichž vzdálenost od podmíněných průměrů je větší. K ověření hypotézy o stejných rozptylech k normálních rozdělení lze použít Bartlettův test (je velmi citlivý na porušení předpokladu normality), lze použít i jiné testy, např. Hartleyův nebo Cochranův test (předp. se stejné četnosti ve třídách) případně Fligner-Killeenův test.
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA Jestliže k nezávislých výběrů pochází z normálních rozdělení se stejnými rozptyly, lze kolísání -– variabilitu podmíněných průměrů interpretovat jako závislost proměnné Y na faktoru X , zatím co kolísání hodnot proměnné Y uvnitř jednotlivých skupin budeme vnímat jako závislosti proměnné Y na dalších činitelích (v analýze nesledovaných). Definice 2 Koeficient determinace pyx je definován vztahem 2 pyx =
sn2 (yi ) Sm (y ) = . sn2 (y ) Sc (y )
2 pyx ∈ h0, 1i,
udává, jaké % rozptylu závisle proměnné Y lze vysvětlit vlivem nezávisle proměnné X , neshoda mezi středními hodnotami µi , i = 1, . . . , k se považuje za tím 2 silnější, čím více se pyx blíží k 1 a naopak Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA
Test o shodě podmíněných středních hodnot: H : µ1 = µ2 = · · · = µk A : µi 6= µj pro nějaké i, j = 1, . . . , k, i 6= j Testové kritérium je statistika F =
Sm (y ) k−1 Sv (y ) n−k
=
(n − k) · Sm (y ) , (k − 1) · Sv (y )
které má při platnosti hypotézy H Fisherovo-Snedecorovo rozdělení F (k − 1, n − k). Kritický obor je dán Wα : F ≥ F1−α (k − 1, n − k).
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA Z analyzovaných dat (velikost sklizně v závislosti na stáří stromu) jsme získali následující údaje: n = 42, počet skupin (hodnot faktorů) k = 7, Sm (y ) = 77,248, Sv (y ) = 51,157 a Sc (y ) = 128, 405. Koeficient determinace má hodnotu 2 pyx =
Sm (y ) = 0,602. Sc (y )
Budeme testovat hypotézu (na hladině významnosti 0,05) H : µ1 = µ2 = · · · = µ7 A : µi 6= µj pro nějaké i, j = 1, . . . , 7, i 6= j F =
Sm (y ) k−1 Sv (y ) n−k
=
(n − k) · Sm (y ) (42 − 7) · 77,248 = = 8,808. (k − 1) · Sv (y ) (7 − 1) · 51,157
Kritický obor je Wα : 8,808 ≥ F0,95 (6, 35) = 2,372, na hladině významnosti 0,05 zamítáme nulovou hypotézu o rovnosti středních hodnot. S pravděpodobností 95 % můžeme tvrdit, že stáří stromu ovlivňuje velikost sklizně. Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA
Možnosti výpočtu: Excel – Analýza dat – Anova: jeden faktor R – funkce aov, (Bartlettův test – bartltett.test, Fligner-Killeenův test – fligner.test)
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA v Excelu
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA v R
Datový soubor anova sklizen.txt obsahuje 2 sloupce se záhlavím ”stari”a ”sklizen” > > > > >
data<-read.table("anova sklizen.txt",header=T) attach(data) names(data) stari<-factor(stari) summary(aov(sklizen ∼ stari)) stari Residuals
Df 6 35
Sum Sq 77.248 51.157
Mean Sq 12.875 1.462
Jiří Neubauer
F value 8.8084
Analýza rozptylu
Pr(>F) 7.104e-06
***
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA v R
Obrázek: Bodový diagram
Jiří Neubauer
Obrázek: Krabicové diagramy – boxplot
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Jednofaktorová ANOVA v R
Ověření předpokladu homoskedasticity (stejné rozptyly ve všech skupinách) je možné provést pomocí Bartlettova nebo Fligner-Killeenůvova testu. > bartlett.test(sklizen∼stari) Bartlett test of homogeneity of variances data: sklizen by stari Bartlett’s K-squared = 1.8159, df = 6, p-value = 0.9358 > fligner.test(sklizen∼stari) Fligner-Killeen test of homogeneity of variances data: sklizen by stari Fligner-Killeen:med chi-squared = 2.9335, df = 6, p-value = 0.8171 Předpoklad homoskedasticity je přijatelný.
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Mnohonásobné porovnávání v R – Tukeyho metoda Jedná se v podstatě o řadu dvouvýběrových t-testů, u nichž je upravena hladina významnosti > TukeyHSD(aov(sklizen∼stari)) > plot(TukeyHSD(aov(sklizen∼stari))) Tukey multiple comparisons of means 95% family-wise confidence level Fit: aov(formula = sklizen ∼ stari) 4-3 5-3 6-3 7-3 8-3 . . . 9-7 9-8
diff 1.9428571 3.1333333 4.3000000 3.4666667 2.4666667 . . . -2.6666667 -1.6666667
lwr -0.2700120 0.8449180 2.0115847 1.1782513 0.1782513 . . . -4.8485851 -3.8485851 Jiří Neubauer
upr 4.1557263 5.4217487 6.5884153 5.7550820 4.7550820 . . . -0.4847483 0.5152517 Analýza rozptylu
p adj 0.1169792 0.0024115 0.0000220 0.0006503 0.0277023 . . . 0.0085912 0.2339036
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Mnohonásobné porovnávání v R – Tukeyho metoda
Obrázek: Mnohonásobné porovnávání – Tukeyho metoda
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Dvoufaktorová ANOVA Často je třeba zkoumat závislost kvantitativní proměnné na více faktorech. omezíme se na případ dvou faktorů. Možnosti výpočtu: Excel – Analýza dat – Anova: dva faktory s opakováním, dva faktory bez opakování R – funkce aov Příklad: Cílem experimentu je zkoumat vliv dvou typů benzínu a tří různých aditiv na spotřebu automobilu. Výsledky jsou uvedeny v tabulce. Typ B1 B2
A1 8,58 8,22 7,06 6,82
Jiří Neubauer
Aditivum A2 A3 7,13 7,02 7,35 7,28 6,61 7,04 6,84 7,11
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Dvoufaktorová ANOVA
Budeme se zabývat vlivem dvou vysvětlujících proměnných (faktorů A, B) na proměnnou vysvětlovanou Y . Označme a počet úrovní faktoru A, podobně b bude označovat počet úrovní faktoru B. Předpokládejme, že pro každou dvojici hodnot faktorů máme r ≥ 2 pozorování. Pro pozorování s i-tou hodnotou faktoru A a j-tou hodnotou faktoru B platí Yij1 , . . . , Yijr ∼ N(µij , σ 2 ).
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Dvoufaktorová ANOVA
Označme: P y ij. = 1r rk=1 yijk , Pb Pr yijk , y i.. = br1 Paj=1 Prk=1 y y .j. = ar1 ijk , Pi=1 Pk=1 Pr a b 1 y ... = abr i=1 j=1 k=1 yijk Pro celkovou variabilitu lze psát Sc = SA + SB + SAB + Se , Pa Pb Pr kde Sc = i=1 j=1 k=1 (yijk − y ... )2 , P SA = br ai=1 (y i.. − y ... )2 , P SB = ar bj=1 (y .j. − y ... )2 , P P SAB = r ai=1 bj=1 (y ij. − y i.. − y .j. + y ... )2 , Pa Pb Pr Se = i=1 j=1 k=1 (yijk − y ij. )2 = Sc − SA − SB − SAB .
Jiří Neubauer
Analýza rozptylu
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Analýza rozptylu – ANOVA
Dvoufaktorová ANOVA
Při dvoufaktorové analýze rozptylu nás bude zajímat kromě vlivu faktorů A a B na vysvětlovanou proměnnou Y , také vliv interakce obou faktorů – viz tabulka. Zdroj variability
Součet čtverců
Faktor A Faktor B Interakce Reziduální Celkový
SA SB SAB Se Sc
Stupně volnosti
fAB
fA = a − 1 fB = b − 1 = (a − 1)(b − 1) fe = n − ab fc = n − 1
Testová statistika /fA FA = SSAe /f e SB /fB FB = Se /fe /fAB FAB = SAB Se /fe – –
Kritické hodnoty jednotlivých testů jsou kvantily rozdělení F . Vliv faktoru A je statisticky významný, je-li FA ≥ F1−α (fA , fe ), podobně vliv faktoru B je významný, pokud FB ≥ F1−α (fB , fe ). Mezi faktory A a B je významná interakce když FAB ≥ F1−α (fAB , fe ).
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Dvoufaktorová ANOVA
Pro data příkladu P zP P dostaneme (a = 3, b = 2, r = 2) Sc = ai=1 bj=1 rk=1 (yijk − y ... )2 = 3,650, P SA = br ai=1 (y i.. − y ... )2 = 1,067, P SB = ar bj=1 (y .j. − y ... )2 = 1,401, P P SAB = r ai=1 bj=1 (y ij. − y i.. − y .j. + y ... )2 = 1,006, Pa Pb Pr Se = i=1 j=1 k=1 (yijk − y ij. )2 = Sc − SA − SB − SAB = 0,181. Testovací statistiky: FA = 17,737, FB = 46, 565, FAB = 16,647. Kritické hodnoty pro hladinu významnosti 0,05 jsou postupně: F0,95 (2, 6) = 5,143, F0,95 (1, 6) = 5,987, F0,95 (2, 6) = 5,143.
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Dvoufaktorová ANOVA v Excelu
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Dvoufaktorová ANOVA v R
Datový soubor anova2 spotreba.txt obsahuje 3 sloupce se záhlavím ”typ”, ”aditivum”a ”spotreba” > > > >
data<-read.table("anova2 spotreba.txt",header=T) attach(data) names(data) tapply(spotreba,list(typ,aditivum),mean) A1 A2 A3 B1 8.40 7.240 7.150 B2 6.94 6.725 7.075 > tapply(spotreba,list(typ,aditivum),var) A1 A2 A3 B1 0.0648 0.02420 0.03380 B2 0.0288 0.02645 0.00245
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Dvoufaktorová ANOVA v R
Obrázek: Průměrná spotřeba benzínu v závislosti na typ benzínu a aditivu
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Dvoufaktorová ANOVA v R
> data<-read.table("anova2 spotreba.txt",header=T) > model <-aov(spotreba ∼ typ*aditivum) > summary(model)
typ aditivum typ:aditivum Residuals
Df 1 2 2 6
Sum Sq 1.40083 1.06715 1.00162 0.18050
Mean Sq 1.40083 0.53358 0.50081 0.03008
F value 46.565 17.737 16.647
Pr(>F) 0.0004861 0.0030280 0.0035600
*** ** **
Na základě vypočtených p-hodnot můžeme tvrdit, že vliv typu benzínu i aditiva na spotřebu byl prokázán. Vliv interakce byl také prokázán.
Jiří Neubauer
Analýza rozptylu
Analýza rozptylu – ANOVA
Jednofaktorová ANOVA Dvoufaktorová ANOVA
Dvoufaktorová ANOVA v R
Obrázek: Interakce dvou faktorů
Jiří Neubauer
Analýza rozptylu