Rukovet ke GIS GRASS - Les-ejk

Transkript

Rukovet ke GIS GRASS - Les-ejk
Poznámky z kurzu statistiky
Jak to udělat v Rku
Statistikem? Těžko, ale rychle.
Jáchym Čepický
16. března 2006
Tento text vznikl z poznámek ze statistického kurzu, vedeného panem Ing. Karlem Drápelou, CSc., který proběl v lednu roku 2005. Řešení jednotlivých úloh statistické analýzy jsem se
pokusil ukázat na statistickém programu R. I když v textu přímo necituji, uvádím na koncii
seznam použité literatury.
Tento text je uvolněn pod licencí GNU/FDL:
Copyright (c) 2005 Jáchym Čepický Je povoleno kopírovat, šířit a/nebo upravovat
tento dokument za podmínek GNU Free Documentation License, verze 1.2 nebo
jakékoli další verze vydané nadací Free Software Foundation; bez neměnných oddílů, bez textů předních desek a bez textů zadních desek. Kopie této licence je
zahrnuta v oddílu jménem ”GNU Free Documentation License”.
k
c
Jáchym
Čepický 2005 [email protected]
domovská stránka Les-ej (http://les-ejk.cz)
Obsah
1 Základní pojmy
1
2 Postup statistické analýzy
3
3 Metody průzkumové analýzy dat
3.1 Metody grafické . . . . . . . . . . . . .
3.1.1 Krabicový „box“ graf . . . . .
3.1.2 Kvantil-kvantilový graf „Q-Q“
3.1.3 Histogram . . . . . . . . . . . .
3.1.4 Autokorelace . . . . . . . . . .
3.2 Metody početní - testy . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Odhad parametrů základního souboru
4.1 Bodový odhad . . . . . . . . . . . . . . . . . . . . .
4.1.1 Odhad střední hodnoty . . . . . . . . . . . .
4.2 Intervalový odhad . . . . . . . . . . . . . . . . . . .
4.2.1 Střední hodnota . . . . . . . . . . . . . . . .
4.2.2 Faktory ovlivňující interval spolehlivosti . . .
4.2.3 Interval spolehlivosti směrodatné odchylky σ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
6
6
7
9
10
.
.
.
.
.
.
13
13
13
13
13
14
14
5 Transformace
17
6 Práce s malými výběry
19
7 Výběry
7.1 Metody výběru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Zjišťování velikosti výběrů . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
21
21
8 Testy
8.1 Testové kritérium . .
8.2 Postup testu . . . .
8.3 P-hodnota . . . . . .
8.4 Neparametrické testy
.
.
.
.
25
25
25
26
31
9 Síla testu
9.1 Analýza síly testu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.1 Postup analýzy síly testu . . . . . . . . . . . . . . . . . . . . . . . . .
33
34
34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9.2
9.3
Pro statistické testy o střední hodnotě . . . . . . . . . . . . . . . . . . . . . .
Testy – přehled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Korelační a regresní analýza
10.1 Korelace . . . . . . . . . . . . . . . . . . . . . . . .
10.1.1 Míra korelační závislosti . . . . . . . . . . .
10.1.2 Korelační koeficient . . . . . . . . . . . . .
10.2 Regrese . . . . . . . . . . . . . . . . . . . . . . . .
10.2.1 Příklady regresních modelů . . . . . . . . .
10.2.2 Postup regresní analýzy . . . . . . . . . . .
10.2.3 Předpoklady metody . . . . . . . . . . . . .
10.2.4 Multikolinearita . . . . . . . . . . . . . . .
10.2.5 Řešení multikolinearity . . . . . . . . . . . .
10.2.6 Homoskedasticita a Heteroskedasticita . . .
10.2.7 Postup regresní analýzy (lineární model) . .
10.2.8 Postup regresní analýzy (nelineární model)
11 Anova
11.0.9
11.1 Model
11.2 Model
11.3 Model
Podmínky použití . . . . . . . . .
jednofaktorové anovy . . . . . . . .
vícefaktorové anovy bez opakování
vícefaktorové anovy s opakováním .
ii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
39
.
.
.
.
.
.
.
.
.
.
.
.
41
41
41
42
45
46
46
47
47
48
48
48
59
.
.
.
.
65
66
67
68
69
Seznam obrázků
3.1
3.2
3.3
3.4
Čtyři různé „boxploty“ prvních čtyř sloupců
Různé průběhy Q-Q grafu. . . . . . . . . . .
Různé histogramy . . . . . . . . . . . . . .
Graf autokorelace . . . . . . . . . . . . . . .
ze souboru x.
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
8
9
10
8.1
Znázornění kritického bodu a chyby prvního řádu . . . . . . . . . . . . . . . .
26
10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
Princip regresní analýzy . . . . . . . . . . . . . .
Regresní model . . . . . . . . . . . . . . . . . . .
Homo- a heteroskedasticita . . . . . . . . . . . .
Graf regresní přímky a dat . . . . . . . . . . . .
Několik důležitých diagnostických grafů . . . . .
Různé tvary rozložení reziduí . . . . . . . . . . .
Interval spolehlivosti pro lineární model a interval
Graf Michajlovovy růstové funkce . . . . . . . . .
42
46
49
50
51
56
59
62
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
spolehlivosti predikce modelu.
. . . . . . . . . . . . . . . .
11.1 Znázornění rozdílů mezi zásahy pomocí boxplotu . . . . . . . . . . . . . . . .
iii
67
iv
1 Základní pojmy
Základní soubor
• Skládá se ze všech prvků
• Je to to, co zkoumám, soubor, jehož charakteristiky mě zajímají.
• Jeho popisem se zabývá popisná statistika
• Musí být jasně definován
Základní soubor může mít nekonečně mnoho prvků.
Výběrový soubor
• Jedná se podmnožinu základního souboru.
• Prvky jsou vybrány náhodným výběrem
• Výběrový soubor je pouze prostředek k poznání základního souboru (V S → ZS).
• Používá se statistická indukce.
• Jako nástroj se používá matematická statistika – pravděpodobností počet.
Výběrové statistiky
• Charakteristické vlastnosti výběrového souboru.
• Parametry základního souboru se odhadují na základě charakteristik souboru výběrového.
1. ZS → VZ → Výb. statistiky → OdhadparametrůZS
Momentové charakteristiky (σ, σ 2 , µ, koef. špičatosti, koef. nesouměrnosti, . . .)
Aby
mělo smysl počítat momentové charakteristiky, musí výběrový soubor splňovat několik
podmínek:
1. Musí se jednat o normální rozdělení
2. Nesmí obsahovat extrémní hodnoty
3. Data musí být navzájem nezávislá
4. Musí jich být nějaký minimální počet
Při splnění těchto podmínek můžeme získat dobré popisné vlastnosti souboru.
V případě, že tyto podmínky splněny nejsou, musíme použít kvantilové charakteristiky.
1
Kvantilové charakteristiky jsou závislé na pořadí prvků v souboru. Jedná se zejména o
x̂, kvartily, kvantilové odchylky.
• Výhodou je nezávislost na na podmínkách, které musí splňovat momentové charakteristiky, takže soubor dat může vypadat v podstatě jakkoliv.
• Nevýhodou je, že nevychází ze všech prvků v souboru, ale pouze z jejich pořadí.
2
2 Postup statistické analýzy
Každá statistická analýza se musí sestávat z následujících kroků:
1. Stanovení cíle analýzy
2. Získání dat
3. Jejich zpracování
4. Statistické vyhodnocení výsledků
5. Interpretace výsledků z hlediska statistické analýzy s ohledem na cíl analýzy.
Abychom mohli rozhodnout, jaké charakteristiky použijeme, musíme provést následující
kroky:
1. Průzkumovou analýzu dat, ze které se získají hodnoty jako stupeň špičatosti, stupeň
symetrie, odlehlost dat, porovnání s rozděleními (hlavně s normálním).
2. Ověření předpokladů o datech, hlavně ověření jejich normality, nezávislosti prvků
výběru, homogenity, potřebné velikosti výběru.
3. Odhad parametrů ZS, zejména výpočet charakteristiky, bodových odhadů parametrů
a intervalových odhadů parametrů.
4. Testování hypotéz, což znamená především jejich formulaci, potvrzení nebo zamítnutí,
a ověření síly testu.
3
4
3 Metody průzkumové analýzy dat
3.1
Metody grafické
• ⊕ výsledky jsou „dobře vidět“
• ⊖ ale neřeknou nic jednoznačně.
Načtení dat do programu R
Mějme např. soubor data.txt, který obsahuje ve sloupcích dvoje různé hodnoty:
tloustky
42.9
36.1
46.7
53.9
53.4
57.1
29.7
43.4
52.7
37.4
40.2
33.2
...
studny
32
75
16
99
80
78
28
29
170
86
80
81
letokruhy
2.1
2.8
2.5
3.3
3.3
1.9
3.1
2.5
2.6
3.2
3.8
2.9
med
1.098
1.876
2.149
0.904
1.128
0.468
0.428
0.175
0.05
0.074
0.05
0.64
zinek
1.231
0.654
5.8
0.963
1.795
3.808
0.982
0.191
0.161
0.56
0.295
0.435
kadmium
0.08
0.018
0.015
0.052
0.08
0.02
0.036
0.013
0.032
0.06
0.07
0.019
ovzdusi
4.61
3.8
10.53
34.4
31.48
109.58
16.34
0.5
13.07
18.31
22.39
23.36
BSK
6.5
5.8
16.7
6.4
7
6.3
7
9.2
6.7
6.7
Tabulka 3.1: Soubor data.txt, obsahuje sloupce hodnot. Sloupce jsou od sebe odděleny
znakem <TAB>. Čísla jsou oddělena desetinnou tečkou (ne čárkou).
$ # spuštění programu R se děje příkazem
$ R
[...]
R> # načtení hodnot do proměnné ’x’
R> # soubor se jmenuje ’data1.txt’, má hlavičku a jednotlivé hodnoty jsou
R> # odděleny znakem tabulátoru
R> x <- as.matrix(read.table("data1.txt",header=T,sep="\t"))
R>
R> # na data se můžeme podívat příkazem
5
R> x
[...]
R>
R> # všechny prvky z prvního sloupce si vypíšeme příkazem
R> x[,1]
[...]
R>
R> # třetí prvek druhého sloupce si můžeme nechat zobrazit příkazem
R> x[3,2]
[1] 16
R>
R> # prvky 1 až 10 z pátého sloupce získáme
R> x[1:10,5]
1
2
3
4
5
6
7
8
9
10
1.231 0.654 5.800 0.963 1.795 3.808 0.982 0.191 0.161 0.560
R>
R> # celkovou charakteristiku dat získáme příkazem
R> summary(x)
[...]
R> summary(x[,1])
Min. 1st Qu. Median
Mean 3rd Qu.
Max.
27.00
39.25
44.40
44.72
50.08
61.60
3.1.1
Krabicový „box“ graf
Krabicový graf ukazuje základní charakteristiku sbíraného souboru dat. Krabicový graf ukazuje základní charakteristiku dat. Krabice („box“) obsahuje horní a dolní kvantil dat (tedy
25% a 75% všech dat). Střední osa je medián, „nožičky“ ukazují tzv. rozsah nevybočujících
hodnot. „Kolečka“ jsou hodnoty odlehlé. Extrémní hodnoty bývají kandidáty na vyřazení.
R>
R>
R>
R>
R>
R>
R>
R>
R>
R>
R>
R>
# vytištění boxplotu z dat prvního sloupce:
boxplot(x[,1],horizontal=T,main="Tloustky x[,1]")
boxplot(x[,2],horizontal=T,main="Tloustky x[,1]")
#...
# všechny grafy do jednoho okna
par(mfrow=c(2,2)) # nastavení okna na 2x2 buněk
boxplot(x[,1],horizontal=T,main="Tloustky x[,1]")
boxplot(x[,2],horizontal=T,main="Studny x[,2]")
boxplot(x[,3],horizontal=T,main="Letokruhy x[,3]")
boxplot(x[,4],horizontal=T,main="Med x[,4]")
par(mfrow=c(1,1)) # nastavení okna zpět na jedno velké
3.1.2
Kvantil-kvantilový graf „Q-Q“
Ukazuje na ose seřazení hodnot podle velikosti jejich výskytu (vzestupně uspořádána). Tyto
hodnoty bývají zobrazovány bodově. V grafu bývá linie teoretického ideálního rozdělení.
6
Tloustky x[,1]
30
40
50
Studny x[,2]
60
0
100
Letokruhy x[,3]
300
500
Med x[,4]
2.0 2.5 3.0 3.5 4.0 4.5
0
2
4
6
8
Obrázek 3.1: Čtyři různé „boxploty“ prvních čtyř sloupců ze souboru x.
R>
R>
R>
R>
R>
# vytištění qqplotu
qqplot(x[,1],main="Normální Q-Q plot Tloustek")
# zobrazení linie teoretického rozdělení
qqline(x[,1])
Na Q-Q grafu je dobře vidět, o jaká data se vlastně jedná. Jsou-li data „normální“, následují
skoro přesně teoretickou přímku. Druhý graf ukazuje průběh, jaký mají data pravostranná
(viz část 3.1.3), třetí graf, s průběhem okolo teoretické linie ve tvaru písmena „S“ ukazuje
data špičatá, pokud by se jednalo o tvar obráceného „S“, jednalo by se o data plochá.
3.1.3
Histogram
Histogram ukazuje rozdělení dat do jednotlivých tříd podle četnosti. Ideální počet tříd lze
vypočítat podle vzorců
L = 2, 46 · (n − 1)0,4
√
L=2· n
(3.1)
(3.2)
V obou případech L – počet tříd, n – počet prvků. Je na čase, seznámit se s příkazem ’help’,
se kterým se většinou člověk dobere toho, co vlastně potřebuje Jelikož chceme vytisknout
’histogram’, necháme si toto slovo najít
7
0
200
400
600
Normální Q−Q plot Studny
Sample Quantiles
60
50
40
30
Sample Quantiles
Normální Q−Q plot Tloustek
−1
0
1
2
−2
−1
0
1
2
Normální Q−Q plot Letokruhy
Normální Q−Q plot Med
6
4
0
2
4.0
3.0
8
Theoretical Quantiles
Sample Quantiles
Theoretical Quantiles
2.0
Sample Quantiles
−2
−2
−1
0
1
2
−2
Theoretical Quantiles
−1
0
1
2
Theoretical Quantiles
Obrázek 3.2: Různé průběhy Q-Q grafu.
R> help.search(’histogram’)
[...]
hist.scott(MASS)
Plot a Histogram with Automatic Bin Width
Selection
ldahist(MASS)
Histograms or Density Plots of Multiple Groups
truehist(MASS)
Plot a Histogram
hist.POSIXt(graphics)
Histogram of a Date or Date-Time Object
hist(graphics)
Histograms
nclass.Sturges(graphics)
Compute the Number of Classes for a Histogram
plot.histogram(graphics)
Plot Histograms
[...]
Ukazuje se, že pro vytisknutí histogramu existuje celá řada funkcí. Každá funkce má
v závorce napsáno, v jakém balíku se vyskytuje. Použijeme základní funkci ’hist’ z balíku
’graphics’, která vytiskne pouze základní histogram. Funkce ’truehist’ z balíku ’MASS’ umí
histogramy o poznání lepší. O instalaci balíku MASS viz Google, alespoň prozatím. . .
Když už víme, jakou funkci chceme, zobrazíme si nápovědu, která nám napíše jak se daná
funkce vlastně používá. Možností máme několik. Jednak praktický příklad:
R> example(hist)
8
Histogram Studen
20
40
Cetnost
10
0
0
5
Cetnost
20
60
80
Histogram Tloustek
30
40
50
60
0
100
300
500
Studny
Histogram Letokruhu
Histogram Medu
15
5
10
Cetnost
4
3
2
0
0
1
Cetnost
5
20
6
Tloustky
1.5
2.5
3.5
4.5
0
Letokruhy
2
4
6
8
10
Med
Obrázek 3.3: Různé histogramy
A jednak vlastní popis funkce s vysvětlením parametrů:
R> help(hist)
R> # alternativně a rychleji
R> ?hist
R>
Zobrazí krátký popis funkce (Description), použití (Usage), podrobný popis argumentů pro
použití (Arguments) a další a další text.
My si z toho vezmeme následující
R>
R>
R>
R>
hist(x[,1],main="Histogram
hist(x[,2],main="Histogram
hist(x[,3],main="Histogram
hist(x[,4],main="Histogram
Tloustek",xlab="Tloustky",ylab="Cetnost")
Studen",xlab="Tloustky",ylab="Cetnost")
Letokruhu",xlab="Tloustky",ylab="Cetnost")
Medu",xlab="Tloustky",ylab="Cetnost")
Na obrázcích histogramech (obrázek 3.3) je dobře patrno to, co jsme už mohli usoudit na
základě Q-Q plotu. Jsou vidět rozdělení silně levostranná a plochá.
3.1.4
Autokorelace
Při autokorelaci data „sami se sebou“ korelují. Hovoříme o korelaci řádu n. Jedná-li se např.
o autokorelaci prvního řádu, pak je prvek x + 1 závislý na prvku x. Autokorelaci můžeme
9
Series x[1:99, 2]
0.6
−0.2
5
10
15
20
0
5
10
15
Lag
Lag
Series x[1:38, 3]
Series x[1:34, 4]
−0.2
0.2
−0.2
0.2
ACF
0.6
0.6
1.0
1.0
0
ACF
0.2
ACF
0.2
−0.2
ACF
0.6
1.0
1.0
Series x[1:100, 1]
0
5
10
15
0
Lag
5
10
15
Lag
Obrázek 3.4: Graf autokorelace pro první čtyři sloupce dat.
odhalit např. pomocí grafu (obrázek 3.4). Na ose x je časová řád autokorelace a na ose y její
stupeň. Přesáhne-li hodnota stupně hranice, vyjádřené modrou čárkovanou čárou, jedná se
o autokorelaci řádu n. Takže na příklad u letokruhů dochází k autokorelaci druhého řádu.
Ostatní data vypadají bez problémů.
Grafy vznikly následujícím způsobem:
R> acf(x[1:34,3] # je potřeba specifikovat rozsah dat, pro další parametry
R>
# viz ?acf
Zvláštním příkladem je analýza časových řad, při které se předpokládá autokorelace.
3.2
Metody početní - testy
Stanovíme si hypotézu H0 : Výběr pochází z normálního rozdělení.. Provedeme některé testy,
které nám ji buď potvrdí nebo vyvrátí. Mezi použitelné testy patří např. KolmogorovSmirnovův test, Shapiro-Wilkokův test a další.
V Rku najdeme například právě Shapiro-Wilkokův test normality. Ověříme si jej na našich
datech:
R> help.search(’normality’)
R> ?shapiro.test
R> shapiro.test(x[,1])
10
Shapiro-Wilk normality test
data: x[, 1]
W = 0.9916, p-value = 0.7886
R> shapiro.test(x[,2])
Shapiro-Wilk normality test
data: x[, 2]
W = 0.6361, p-value = 2.616e-14
R>
Nyní máme ověřeno i početně, co již tušíme graficky (viz obrázky 3.3 a 3.2). Všechny testy
musíme číst následně: Porovnáváme hodnotu p-value (pravděpodobnost, že jev nastane) s
hraniční testovou hodnotou, tzv. hladinou významnosti α, která bývá obvykle volena jako
0.05. α vyjadřuje pravděpodobnost, že jev nenastane. V tomto případě tedy můžeme tvrdit,
že s pravděpodobností 1 − α, tedy 95%, se jedná o normální rozdělení.
11
12
4 Odhad parametrů základního souboru
Parametry základního souboru jsou odvozeny z parametrů výběrového souboru. Jedná se o
bodový a intervalový odhad.
4.1
4.1.1
Bodový odhad
Odhad střední hodnoty
¯ = µ. Tedy že odhad středí hodnoty se rovná průměru.
Odhad středí hodnoty E(x)
Odhad rozptylu se spočítá jako
S2 ·
n
= σ2
n−1
(4.1)
n
je korekce vychýlení.
kde S 2 je rozptyl výběru a n−1
Charakteristiky základního souboru σ, µ jsou nazývány parametry, charakteristiky výběrového souboru S, x̄ jsou nazývány statistikami.
Vlastnosti bodových souborů:
• nespornost
• nevychýlenost
• vydatnost
4.2
4.2.1
Intervalový odhad
Střední hodnota
Pro interval spolehlivosti T1 , T2 pro parametr τ při hladině významnosti α ∈ (0, 1) platí
P (T1 ≤ τ T2 ) = 1 − α
(4.2)
kde α je pravděpodobnost, že parametr v intervalu ležet nebude. Parametr bude ležet v daném
intervalu s pravděpodobností P = 1 − α.
Zatímco pro charakteristiku výběrového souboru stačí bodové odhady, pro jejich vztažení
na základní soubor potřebujeme intervalové odhady. Pro symetrické rozdělení je intervalový
odhad symetrický, pro nesymetrické nesymetrický.
Jednostranné odhady se používají při šetření o překročení nějaké hraniční hodnoty.
Existují v dva základní přístupy k určení intervalového intervalu:
13
1. Pro velký počet prvků, což se obvykle bere jako > 30. Odhad se provede z kvantilu
normálního rozdělení.
σ
σ
x̄ − zα/2 · √ ≤ µ ≤ x̄ + zα/2 · √
n
n
(4.3)
2. Pro malý počet prvků, (< 30) se používá Studentovo T-rozdělení.
S
S
x̄ − t(α/2,n−1) · √ ≤ µ ≤ x̄ + t(α/2,n−1) · √
n
n
Veličina
4.2.2
x̄−µ
√
S/ n
(4.4)
má T rozdělení s k = (n − 1) stupni volnosti.
Faktory ovlivňující interval spolehlivosti
Mezi faktory ovlivňující velikost výběru patří zejména
• velikost výběru
• hladina významnosti α
• variabilita
• použitý vzorec
Rozdělení T funguje vždy.
4.2.3
Interval spolehlivosti směrodatné odchylky σ
1. Pro malé výběry < 30 prvků platí rozdělení χ2 , které je nesouměrné.
v
u
u n · S2
t
≤σ≤
2
χα/2
v
u
u n · S2
t
χ21−α/2
(4.5)
2. Pro malé výběry > 30 prvků platí
S
σ = S ± zα/2 · √
2n
Jak na to v Rku
Zjišťování základních charakteristik souboru:
R> # standardní odchylka S sloupce ’studny’
R> sd(x[,1])
[1] 7.596336
R>
R> # rozptyl S^2
R> var(x[,1])
[1] 57.70432
R>
14
(4.6)
R> # středí hodnota
R> mean(x[,1])
[1] 44.715
R>
R> # počet prvků
R> length(x[,1])
[1] 100
R>
Podle rovnice 4.3 se interval spolehlivosti pro µ spočítá
R> # z-kvantil z(alpha/2) dostaneme příkazem
R> qnorm(p=0.975)
[1] 1.959964
R>
R> # vlastní interval je
R> qnorm(p=0.975) * sd(x[,1])/sqrt(length(x[,1]))
[1] 1.488854
R>
α je 0.05. Protože funkce qnorm() počítá s pravděpodobností a ne s αou, a protože pravděpodobnost P = 1 − α, tak 1 − α/2 = 0.975, za předpokladu, že α = 0.05. Stejného výsledku
bychom dosáhli obráceně:
R> qnorm(p=0.025) * sd(x[,1])/sqrt(length(x[,1]))
[1] -1.488854
Takže interval spolehlivosti pro µ je 44.715 ± 1.488854.
Pro případy, kdy pracujeme s méně, než 30 prvky, pracujeme se Studentovým T rozdělením
(rovnice 4.4).
R> # hodnota pro T rozdělení potřebuje znát počet stupňů volnosti
R> # což je vždy n-1:
R> qt(p=0.975,df=length(x[,1]))
[1] 1.983972
R>
R> # a nyní interval spolehlivosti:
R> qt(p=0.975,df=length(x[,1]))*sd(x[,1])/sqrt(length(x[,1]))
[1] 1.507091
R> qt(p=0.025,df=length(x[,1]))*sd(x[,1])/sqrt(length(x[,1]))
[1] -1.507091
Při výpočtu tiše předpokládáme, že prvků je méně, než 30. Důvod je ten, že při 30-ti prvcích
se hodnoty T a normálního rozdělení začínají vyrovnávat.
Pro výpočet intervalu σ postupujeme stejně. Nejdříve pro méně, než 30 prvků (rovnice
4.5):
R> # hodnota chi^2 pro n-1 stupňů volnosti a prst alfa/2:
R> qchisq(p=0.05/2, df=length(x[,1])-1)
[1] 73.36108
15
R>
R> #hodnotu chi^2 můžeme uložit do proměnné ’chi.t’
R> chi.t <- qchisq(p=0.05/2, df=length(x[,1])-1)
R> chi.t
[1] 73.36108
R>
R> # a proměnnou ’chi.t’ můžeme hned použít při výpočtu horní hranice:
R> sqrt(length(x[,1])*var(x[,1])/(chi.t))
[1] 8.868931
R>
R> # spodní hranice se vypočítá podobně:
R> chi.t <- qchisq(p=(1-0.05/2), df=99)
R> chi.t
[1] 128.422
R> sqrt(length(x[,1])*var(x[,1])/(chi.t))
[1] 6.703235
Takže s pravděpodobností 95% je σ ∈ (6.703235, 8.868931).
Pro velký počet prvků (30 <) se postupuje podobně podle rovnice 4.6:
R> hranice <- qnorm(p=0.025)*sd(x[,1])/sqrt(2*length(x[,1]))
R> hranice
[1] -1.052779
R>
R> # horní hranice
R> sd(x[,1]) - hranice
[1] 8.649115
R>
R> # dolní hranice
R> sd(x[,1]) + hranice
[1] 6.543557
σ je tak s pravděpodobností 95% ∈ (6.543557, 8.649115). Všimněme si, že intervaly odvozené
pomocí normálního i podle rozdělení χ2 se skoro rovnají.
16
5 Transformace
Na transformaci je dobrá funkce box.cox(), ale zatím jsem nepřišel na to, jak na ní.
17
18
6 Práce s malými výběry
Pro práci s malými výběry, tedy výběry do deseti prvků, se používají jiné funkce. Pro malé výběry lze těžko ověřit předpoklady normality a homogenity. Používá se Hornův test. Používají
se tzv. pivoty. Mějme 10 prvků: 5.8, 6.3, 6.4, 6.5, 6.7, 6.7, 7, 7, 9.2, 16.7
H=
int( n+1
int 10+1
2 + 1)
2 +1
=
=3
2
2
(6.1)
Určí se horní a dolní pivot, což jsou třetí prvky (podle 6.1) se shora a ze zdola, takže 6.4 a 7.
V dalším kroku se počítá pivotová polosuma:
PL = (6.4 + 7)/2 = 6.7
(6.2)
RL = (7 − 6.4) = 0.6
(6.3)
A pivotové rozpětí
Nakonec interval spolehlivosti
PL − RL · tL, 1−α ,n ≤ µ ≤ PL − RL · tL, 1−α ,n
2
2
Používá se speciální testovací statistika t, což není žádné běžné rozdělení.
Google mlčí. . .
19
(6.4)
20
7 Výběry
Vlastnosti, které by měl každý representativní výběr mít, jsou zejména
1. homogenní výběr
2. normální rozdělení
3. prvky jsou vzájemně nezávislé
4. všechny prvky základního souboru mají stejnou pravděpodobnost, že budou vybrány
7.1
Metody výběru
Jednoduchý výběr je nejpoužívanější pro soubory se známým a relativně malým počtem
prvků.
Systematický zvolí se náhodný počátek a náhodná velikost kroku. Následně se systematicky
vyberou prvky.
Oblastí výběr pokud lze soubor rozlišit na oblasti. Tento výběr se ještě dělí na
úměrný kde počet prvků je úměrný velikosti oblasti a
variabilní kde se zohledňuje variabilita jednotlivých oblastí.
Vícestupňový . . .
Vícefázový kdy se používají ještě jiné metody.
7.2
Zjišťování velikosti výběrů
Snažíme se odpovědět na otázku, jakou minimální velikost výběru potřebujeme vzhledem k
účelu analýzy a požadované vypovídací hodnoty základního souboru?
1. Jaká bude přesnost odhadu?
2. Jakou požaduji spolehlivost, ze skutečné vzdálenosti mezi odhadem a skutečným parametrem bude menší než D, tedy spolehlivost odhadu?
3. Jaká je variabilit základního souboru? Ta se získá pomocí rozptylu S 2 nebo variačního
koeficientu S.
21
Příklad 1.
1. Přesnost odhadu: tloušťka s přesností 3 cm, tedy ±1 cm → D = ±1.
2. Spolehlivost odhadu 95% → α = 0.05.
3. S = 18.04
4. n =?
Jakou velikost výběru potřebují, abych zjistil, že µ bude x̄ ± D?
S2
D2
S%
n = t2α/2;n−1 ∗ 2
D
n = t2α/2;n−1 ∗
(7.1)
kde t – kvantil Studentova rozdělení pro hladinu významnosti α. Pokud je výběr větší, než
30, lze použít normální rozdělení zα/2 .
Postupuje se aproximačně:
1. V prvním kroku se odhadne velikost výběru n a z toho se určí testovací statistika pro
Studentovo rozdělení tα/2;n−1 .
2. Spočítá se podle vzorce 7.1 přesnější velikost výběru. Celý postup se opakuje, dokud se
n mění.
Pokud se očekává více, než 30 prvků, postupuje se okamžitě bez iterací.
R> n_odh <- 5 # odhad
R> D <- 1.5
# přesnost
R> S2 <- 18.04
# směr. odchylka
R> n <- 0
# výsledný počet prvků
R>
R> # výpočet provedeme automaticky pomocí smyčky typu ’for’
R> # ’tiše’ předpokládáme, že požadovaná přesnost bude dosažena v pěti krocích
R>
R> for(i in c(1:5)) {
+
n <- qt(p=1-0.025, df=n_odh-1)^2*S2/D^2
+
print(n);
+
n_odh<-n;
+}
[1] 61.80622
[1] 32.06317
[1] 33.34537
[1] 33.23870
[1] 33.24723
R>
R> # stejná úloha při použití normálního rozdělení:
R> qnorm(p=1-0.025)^2*S2/D^2
[1] 30.79996
R>
22
Příklad 2.
S jakou přesností jsem schopen určit interval odhadu střední hodnoty, když mám změřeno 15
stromů?
Počet prvků n získáme z rovnice 7.1:
D=
S · tα/2 ; n − 1
√
n
R> alpha <- 0.05
R> # směrodatná odchylka je známa z předchozího příkladu
R> sqrt(S2)*qt(p=1-alpha/2, df=15-1)/sqrt(15)
[1] 2.352105
R>
Výslednou střední hodnotu jsem schopen určit s přesností ±2.35cm.
23
(7.2)
24
8 Testy
Na základně údajů zjištěných z náhodného výběru ověřujeme, má-li být hypotéza potvrzena
nebo zamítnuta. Pro každý test tedy musí být formulovány dvě hypotézy:
H0: Nulová hypotéza. Např. že střední hodnota je rovna 50. Předpokládáme že platí, dokud
test neprokáže něco jiného.
H1: Alternativní hypotéza. Jedná se o opak. Platí, pokud je H0 zamítnuta.
Hypotézy jsou buď jedno- nebo dvou stranné. O jednostrannou hypotézu se jedná, jde-li
o překonání nějaké hranice (≤, ≥). O oboustrannou hypotézu se jedná, jde-li o rozhodnutí, že
se něco rovná něčemu (=).
8.1
Testové kritérium
Je to obor možných hodnot. Hranici pro obor přijatých čísel je kritický bod, který je určen na
základě α.
8.2
Postup testu
1. Formulace nulové hypotézy a alternativní hypotézy
2. Zvolíme hladinu významnosti α (chyba prvního druhu)
3. Zvolíme druh testu, v závislosti na rozdělení.
4. Určíme kritický bod, na jeho základě rozhodneme o přijetí H0 nebo jejím zamítnutí
(obr. 8.1.).
Výsledek testu je signifikantní na hladině významnosti α, pokud jeho výsledek vede k
zamítnutí hypotézy.
Příklad
Srovnání měření dvou výškoměrů. Máme 15 měření jedné výšky. Hodnota výšky je (zjištěno
pásmem) 20 m. Průměr všech výšek je 19.2 m a směrodatná odchylka S=1.1 m. Měří výškoměr
správně?
1. H0: Pro výběrový soubor o parametrech x̄, S 2 platí, že µ0 = µ. H1: Výšky neměří
správně. . .
25
obsah = 1
obsah = alpha/2
Obor pøijetí
obor
zamítnutí
krit
krit
Obrázek 8.1: Znázornění kritického bodu a chyby prvního řádu
2. Stanovení hladiny významnosti, že test rozhodne špatně α = 0.05. Pravděpodobnost
zamítnutí hypotézy je 1 − α.
3. Výběr testu. Vybereme test střední hodnoty pro jeden výběr: jednovýběrový t-test. Testovací statistika má tvar
√
n−1
tkrit = (x̄ − µ0 )
(8.1)
S
Což je v podstatě upravená rovnice pro intervalový odhad 6.4.
√
n−1
= −2.72
t = (19.2 − 20)
1.1
4. Stanovení kritické hodnoty qt(1-0.05/2, 14) = 2.145
5. Posouzení: Je kritická hodnota <> než testovací statistika? 2.145 < 2.72 → t − krit <
t → H0 se zamítá: Odchylka naměřených hodnot je statisticky významná.
nebo
R> dt((19.2-20)*sqrt(14)/1.1,df=14) # pt(t,n-1) = p-value
[1] 0.008277159
0.008 < 0.025 → p − value < α/2 → H0 se zamítá.
S jakou pravděpodobností by se nezamítla?
1-pt((19.2-20)*sqrt(14)/1.1,df=14), 99%.
8.3
S pravděpodobností 1-p-value:
P-hodnota
Nebo taky p-value je pravděpodobnost, že získáme stejné nebo vyšší kritérium než
vypočítané za předpokladu, že platí H0. Viz také obrázek 8.1. P-hodnotu dostaneme v Rku funkcí dt(kritická hodnota, počet stupňů volnosti) pro Studentovo a
dnorm(kritická hodnota) pro normální rozdělení. Z předchozího příkladu bereme vstupní
hodnoty:
26
R> pt(2.72,df=14)
[1] 0.9834754
(V sešitě se to počítalo poněkud jinak, nevyšla hodnota 0.98, ale 1-0.98) S pravděpodobností
98.34% zamítáme hypotézu, že výškoměr měří správně.
Hodnota p závisí zejména na
• rozdíl mezi testovanou a skutečnou hodnotou
• na velikosti výběru (protože stupeň volnosti je roven n − 1)
Srovnávat má smysl pouze stejné velikosti výběru.
Statistická významnost (p)
Praktická důležitost pozoro- nevýznamná
významná
vaného rozdílu H0 − H1
nedůležitý
n je OK
n je velké
důležitý
n je malé
n je OK
Např. rozdíl mezi průměrnou výškou dvou porostů je 2mm. Před pokusem je potřeba
udělat analýzu síly testu.
P-hodnota může jen v omezené míře sloužit ke srovnání dvou výsledků a musíme rozlišovat mezi statistickou a reálnou významností testu. Buď bychom dostali zbytečně přesný
výsledek (nákladný sběr dat) nebo naopak neprůkazný.
Příklady
Příklad 1.
Při zkoušce správnosti měření novým typem výškoměru byla 30 x změřena kontrolní výška,
jejíž správná hodnota byla 20 m. Posuďte, zda výškoměr měří správně.
Jedná se o jednovýběrový t-test. Testujeme hypotézu H0: x̄ = 20:
R>
R>
R>
R>
R>
# načteme data
vysky <- read.table("vyska.txt")
# střední hodnota
mean(vysky)
V1
20.22
R>
R> # jednovýběrový t-test
R> ?t.test
R> t.test(vysky, alternativ="two.sided", mu=20)
One Sample t-test
data: vysky
t = 1.7514, df = 29, p-value = 0.09045
alternative hypothesis: true mean is not equal to 20
95 percent confidence interval:
27
19.96309 20.47691
sample estimates:
mean of x
20.22
R>
Ve výpisu vidíme několik důležitých řádků:
Testovací statistika t, počet stupňů volnosti df a p-hodnota p-value.
t = 1.7514, df = 29, p-value = 0.09045
95-ti procentní interval spolehlivosti pro data vysky:
19.96309 20.47691
A průměr dat 20.22.
Spočítali-li bychom si kritickou hodnotu tkrit (viz. např. strana ??):
R> qt(1-0.05/2,29)
[1] 2.045230
Můžeme nyní na základě všech těchto údajů říct:
1. p-hodnota ¿ α/2 (0.09 ¿ 0.025)
2. tkrit > t (2.054 ¿ 1.75)
3. interval spolehlivosti µ ∈ (19.96309; 20.47691),
že H0 se nezamítá na hladině významnosti α = 0.05. Tedy že rozdíl není statisticky významný.
Příklad 2.
Variabilita teploty vzduchu v laboratoři je stanovena směrodatnou odchylkou S0 = 3◦ C. Při
kontrole laboratorních podmínek bylo provedeno 20 měření teploty a ze zjištěných údajů byla
vypočtena výběrová směrodatná odchylka S = 3,27 ◦ C. Je třeba posoudit, zda tato hodnota
nesignalizuje zvýšení variability teploty vzduchu.
Směrodatná odchylka má rozdělení χ2 . Posuzujeme jednostranně, zda-li není směrodatná
odchylka S0 větší, než určitá hodnota. Hodnota χ2 se vypočítá podle vzorce
χ2 =
tedy
(n − 1) · S 2
,
σ02
(20−1)·3.272
32
R> (20-1)*3.27^2/3^2
[1] 22.5739
Stanovení kritické hodnoty pro rozdělení χ2 :
28
(8.2)
R> qchisq(1-0.05, 19)
[1] 30.14353
R>
R> # p-hodnota
R> pchisq(30.14353, 19)
[1] 0.95
(V sešitě to mám p-hodnotu jako 0.256)
Závěr: p-hodnota ¿ α, t ¡ tk rit → H0 se nezamítá, kolísání směrodatné odchylky je statisticky nevýznamné.
Příklad 3.
Ve dvou porostech byly měřeny výčetní tloušťky v cm. Posuďte, zda jsou oba porosty stejně
tloušťkově vyspělé.
Jedná se o dvouvýběrový t-test. Ještě před vlastním testem musíme rozhodnout, mají-li
výběry stejné rozptyly či ne. K tomuto testu se používá tzv. F-test. Nulová hypotéza říká, že
rozptyly jsou shodné:
R>
R>
R>
R>
R>
# načteme data
porosty <- read.table("porosty1.txt",header=T,sep="\t")
# f-test
var.test(vysky[,1],vysky[,2])
F test to compare two variances
data: vysky[, 1] and vysky[, 2]
F = 2.4411, num df = 24, denom df = 19, p-value = 0.05114
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.9954193 5.7247255
sample estimates:
ratio of variances
2.441087
R>
Testovací statistika F se rovná 2.4411, Fkrit má hodnotu 2.441087, p-hodnota má hodnotu
0.05112/2 = 0.02556. (Proč děleno 2?). Takže p-hodnota ¡ α, F ¿ Fk rit → hypotéza H0 se
zamítá a rozdíl je statisticky významný.
Nyní můžeme přikročit k vlastnímu t-testu. Jedná se tedy o oboustranný párový t-test s
nestejnými rozptyly:
R> t.test(vysky[,1],vysky[,2], alternative = c("two.sided"), paired = TRUE)
Paired t-test
data:
vysky[, 1] and vysky[, 2]
29
t = 5.2608, df = 19, p-value = 4.455e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
4.34148 10.07852
sample estimates:
mean of the differences
7.21
R>
T = 7.21, Tkrit = 5.2608 → T > Tkrit , p − hodnota = 0, α = 0.05, α > p − hodnota. Zamítáme
hypotézu H0, rozdíl středních hodnot je statisticky významný.
Příklad 4.
Při zkoušce přesnosti výškoměrů byly při 15 kontrolních měřeních získány následující hodnoty.
Posuďte, zda oba výškoměry měří stejně.
Jedná se o párový t-test s nezávislými výběry. Zatímco v předchozím případě byla data
sbírána ve dvou různých porostech na zcela různých stromech, v tomto případě porovnáváme
stejné výšky dvěma různými výškoměry. Nulová hypotéza říká, že rozdíl středních hodnot je
nulový.
R> vyskomery <- read.table("poznamky/data/vyskomery1.txt",header=T,sep="\t")
R> t.test(vyskomery[,1],vyskomery[,2], alternative = c("two.sided"), paired = TRUE)
Paired t-test
data: vyskomery[, 1] and vyskomery[, 2]
t = -1.5671, df = 14, p-value = 0.1394
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.33160704 0.05160704
sample estimates:
mean of the differences
-0.14
R>
P-hodnota ¿ α, interval spolehlivosti pro rozdíl je (-0.33160704, 0.05160704): Rozdíl je statisticky nevýznamný.
Příklad 5.
Testy shody testují hypotézu, že experimentální data jsou ve shodě s nějakým rozdělením.
Jedná se o jedno a vícevýběrové testy.
V porostu borovice bylo změřeno 98 výšek a roztříděno do 2 m tříd. Řešila se otázka, zda
pro rozdělení výšek v porostu je vhodným teoretickým modelem normální rozdělení.
Na to se používá Kolmogorov-Smirnovův test. V Rku je na to funkce ks.test().
30
Ručně to lze spočítat tak, že se data rozdělí do tříd a následně se vypočítá testovací
statistika a kritická hodnota
1
max|Ne1 i − Ne2 i |
n
r
1
1 α
D1,α = √ · − ln
n
2 2
(8.3)
D1 =
(8.4)
V souboru shoda1.txt jsou data normálního rozdělení a data z měření. Data nelze přímo
použít pro ks.test() protože jsou zapsána v distribučním pořadí a ne jako jednotlivé hodnoty.
Příklad 6.
Testování, zda-li se dvě rozdělení rovnají lze provést pomocí rovnic pro testovací statistiku a
kritickou hodnotu
D2 = max|We1 i − We2 i |D2,α,krit =
1 α
− ln
2 2
r
s
n1 + n2
n1 · n2
(8.5)
Soubor s daty je shoda2.txt. A zadání úkolu zní Ve dvou porostech byly měřeny výčetní
tloušťky ve 4-cm tloušťkových třídách. Zjištěné počty v jednotlivých tloušťkových třídách jsou
uvedeny v tabulce. Posuďte, zda lze rozdělení tlouštěk v obou porostech považovat za shodné.
8.4
Neparametrické testy
Doposud jsme používaly parametrické testy, které testovali parametry σ, µ,. . . Tyto testy fungují pouze za předpokladu splnění podmínek pro normální rozdělení. Co dělat, když tyto
podmínky splněny nejsou?
Použijí se neparametrické testy. Ty testují shodu rozdělení, nejsou na ničem závislé, ale
mají menší sílu testu. Spíš se H0 nezamítne. Každý test má svou neparametrickou obdobu:
T-test – Mann-Whiteyův
Párový t-test – Willcoxův.
Pokud to lze, měly by se používat parametrické testy.
31
32
9 Chyby testování a síla testu
Chyba I druhu je pravděpodobnost, že test zamítne hypotézu, která skutečně platí α
Chyba II druhu je pravděpodobnost, že test nezamítne hypotézu, která ve skutečnosti neplatí β.
Síla testu je pravděpodobnost, že test správně zamítne hypotézu, která skutečně neplatí
1 − β.
skutečnost
testy
platí
neplatí
platí
správně p = 1 − α chyba II druhu β
neplatí chyba I druhu α správně s = 1 − β
Pokud test nezamítne nulovou hypotézu, může se dopustit chyby druhého druhu. Chybu
druhého druhu nelze určiti před testem, protože je určena již chyba druhého druhu.
β = Prst (t < C|H0neplat)
β je pravděpodobnost, že (t-test ¡ kritická hodnota, za předpokladu, že H0 neplatí). C je
kritický bod a t je hodnota testovacího kritéria.
Příklad
H0: µ = 60
H1: µ = 65
n = 100
σ = 20 Stanovení kritického bodu:
σ
C = µ0 + zα · √ =
n
20
= 60 + 1.1645 ·
= 63.29
10
(9.1)
(9.2)
R> 60 + qnorm(0.95)*20/sqrt(100)
[1] 63.28971
>
Výpočet pravděpodobnosti odpovídající hodnotě β:
β = Prst
c−µ
x̄ − n
√ < √ 1
σ n
σ n
33
(9.3)
Standardizací dostaneme
z=
x−µ
σ
(9.4)
což je převod na standardizované normální rozdělení.
Prst
x̄ − µ1
C −µ
√ < √ 1
σ n
σ n
= Prst
63, 29 − 65
Z<
20/10
= P (Z < −0.855) = 0.1963
(9.5)
(Rovnice 9.1 až 9.5 bych asi potřeboval vysvětlit ještě jednou.)
Síla testu závisí na
1. Velikosti efektu – jak daleko je od sebe H0 a H1
2. Variabilitě ZS
3. α+ → β−
α− → β+
4. Typ testu (parametrický/neparametrický)
9.1
Analýza síly testu
1. Apriorní analýza – před vlastním provedením pokusu. Zjišťuje se, jak veliký musí být
výběr n, když známe α a sílu testu (1 − β) a známe velikost efektu, který chceme testem
detekovat (např. přesnost přístroje).
2. Aposteriorní analýza – po měření. Zjišťuje skutečnou sílu testu 1 − β, s jakou pravděpodobností bude test schopen zamítnout hypotézu, které neplatí.
Napevno se určí vždycky ta chyba, jejíž důsledky jsou závažnější.
9.1.1
Postup analýzy síly testu
1. Formulace problému a určení testovaných hypotéz
2. Určení optimálního uspořádání experimentu
3. Stanovení variability ZS. Určení kritické velikosti efektu, stanovení požadovaného poměru chyb α : β
4. Upřesnění experimentu: stanovení přijatelných hodnot α β.
5. Stanovení potřebné velikosti výběru na základě údajů stanovených v bodech 3 a 4.
6. Je stanovená velikost výběru přijatelná? Pokud ne a nižší hodnoty α a β jsou nežádoucí,
musíme se vrátit zpět k bodům 1 a 2.
Pokud nižší hodnoty akceptovatelné jsou a nebo pokud je stanovená velikost výběru
přijatelná, pokračujeme dalším krokem:
7. Naměření potřebných dat a provedení testu nulové hypotézy
34
8. Je-li nulová hypotéza zamítnuta máme výsledek testu. Je-li potvrzena, musíme provést
post hoc (následnou) analýzu síly testu.
9. Pokud je síla testu přijatelná, máme výsledek. Pokud není, musíme si opět položit
otázku, je-li možné akceptovat nižší hodnoty α a β (bod 6).
Příklad 1.
Byl sledován obsah v pitné vodě. Povolený obsah chlóru je 0.3 mg.l−1 . Určete, zda norma
není překročena. Dále chceme zjistit, kolik vzorků je potřeba odebrat, aby možná chyba testu
nepřesáhla 5%. Předběžně bylo odebráno 23 vzorků (soubor chlor1.txt):
0.1 0.15 0.25 0.15 0.3 0.25 0.25 0.3 0.35 0.55 0.7 0.7
0.25 0.2 0.15 0.65 0.55 0.5
0.3 0.35 0.3 0.25 0.8
Tato hodnota je typický jednostranný t-test, protože nás zajímá pouze překročení normy.
Formulace hypotéz je tedy následující:
H0: Cl ≤ 0.3
H1: Cl > 0.3
Chyba I druhu znamená zamítnutí platné nulové hypotézy. V tomto případě bychom tedy
řekli, že obsah chlóru je překročen, i když by byl v pořádku. To by znamenalo další náklady
na čištění vody. Při chybě II druhu by ve vodě byl vyšší, než povolený obsah chlóru a přitom
by test doporučil nulovou hypotézu nezamítnout. Zde jsou následky vážnější.
Testovat budeme klasickým t-testem. Několik základních údajů o vzorcích:
R> chlor <- read.table("poznamky/data/chlor1.txt",)
R> summary(chlor)
V1
Min.
:0.1000
1st Qu.:0.2500
Median :0.3000
Mean
:0.3630
3rd Qu.:0.5250
Max.
:0.8000
R> sd(chlor)
V1
0.2023821
R>
Testujeme hypotézu, že obsah chlóru není překročen:
R> t.test(chlor,alternative = c("less"),mu=0.3)
One Sample t-test
data: chlor
t = 1.4939, df = 22, p-value = 0.9253
alternative hypothesis: true mean is less than 0.3
95 percent confidence interval:
-Inf 0.4355062
sample estimates:
35
mean of x
0.3630435
R>
Hodnota testovacího kritéria t je tedy 1.4939 a kritická hodnota je
qt(0.95,df=22)
[1] 1.717144
Test tedy neumožnil zamítnou nulovou hypotézu a tak bychom se přiklonili k názoru, že
voda je v pořádku.
Nyní ovšem zjistíme sílu testu. V Rku jsou to tradičně moduly s označením power před
názvem testu. power.t.test potřebuje pro svou práci následující argumenty:
• počet prvků n, v našem případě 23
• velikost efektu delta, 0.3-0.363 = 0.063
• standardní odchylku, sd 0.202
• hladina významnosti α sig.level, 0.05
• sílu testu, power
• typ testu type: dvouvýběrový, jednovýběrový, párový
• alternativa: dvoustranný, jednostranný
• ...
Vynechán musí být jeden z argumentů n, delta, sig.level nebo power, který je z ostatních
argumentů dopočítán.
Nyní nás zajímá síla testu:
R> power.t.test(n=23,sd=sd(chlor),type="one.sample", delta=0.063, alternative="one.sided")
One-sample t test power calculation
n
delta
sd
sig.level
power
alternative
=
=
=
=
=
=
23
0.063
0.2023821
0.05
0.4215251
one.sided
R>
Nyní již víme, že síla testu je 0.412 – tedy chyba II druhu je 0.579. Jinými slovy, test nesprávně
zamítne nulovou hypotézu téměř v 60% případů. Test by téměř vždy ohlásil bezproblémový
obsah chlóru, zatímco ve skutečnosti by to nebyla pravda.
Musíme tedy určit velikost výběru takovou, aby se tato chyba minimalizovala. Při 95%
síle testu potřebujeme
36
R> power.t.test(power=0.95,n=NULL,sd=sd(chlor),type="one.sample", delta=0.063, alternative
One-sample t test power calculation
n
delta
sd
sig.level
power
alternative
=
=
=
=
=
=
113.0484
0.063
0.2023821
0.05
0.95
one.sided
R>
tedy 114 vzorků. To by bylo příliš drahé a tak, protože chyba I druhu pro nás nemá takové
důsledky, snížíme její možnou úroveň na hodnotu 0.15 (v 15% případů připustíme, že test
nesprávně zamítne nulovou hypotézu a bud nám „vnucovat“, že voda obsahuje příliš vysoký
obsah chloru):
R> power.t.test(power=0.95,sig.level=0.15,n=NULL,sd=sd(chlor),type="one.sample", delta=0.0
One-sample t test power calculation
n
delta
sd
sig.level
power
alternative
=
=
=
=
=
=
74.7377
0.063
0.2023821
0.15
0.95
one.sided
R>
Výsledkem jsou tedy 75 měření.
Nejčastější akceptovatelná síla testu je 80%. Na této úrovni začíná počet potřebných prvků
prudce stoupat.
Můžeme ještě použít kompromisní volbu poměru chyb vzhledem k jejich závažnosti, tedy
β : α = 1 : 2 a zvolíme počet prvků např. 30. Tady to ale s Rkem tak lehce nejde. . . asi to
chce pokusem a omylem (výsledek má být 30 měření).
Příklad 2.
Mějme 20 měření tlouštěk dvou porostů. Chceme odpovědět na otázku, mají-li oba porosty
stejné střední tloušťky. (Soubor vseobec data.txt, sloupce Tloušťka1 a Tloušťka2.
R> obecdata <- read.table("vseobec_data.txt",header=T,sep="\t")
R> summary(obecdata[,7:8])
Tloušťka1
Tloušťka2
Min.
:17.60
Min.
:20.70
1st Qu.:22.82
1st Qu.:23.40
Median :24.20
Median :26.10
37
Mean
:24.61
Mean
:26.34
3rd Qu.:26.48
3rd Qu.:29.10
Max.
:30.90
Max.
:32.20
NA’s
:13.00
NA’s
:13.00
R> sd(obecdata[1:20,7:8])
Tloušťka1 Tloušťka2
3.529559 3.364720
>
Testujme nulovou hypotézu, že střední hodnoty jsou si rovné:
1. F-test, mají-li oba porosty stejnou směrodatnou odchylku:
R> > var.test(obecdata[1:20,7],obecdata[1:20,8])
F test to compare two variances
data: obecdata[1:20, 7] and obecdata[1:20, 8]
F = 1.1004, num df = 19, denom df = 19, p-value = 0.837
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.4355442 2.7800585
sample estimates:
ratio of variances
1.100381
R>
Jejich rozptyly se rovnají
2. Dvouvýběrový párový t-test s rovností rozptylů
R> t.test(obecdata[1:20,7],obecdata[1:20,8],paired =T)
Paired t-test
data: obecdata[1:20, 7] and obecdata[1:20, 8]
t = -1.5208, df = 19, p-value = 0.1448
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-4.099058 0.649058
sample estimates:
mean of the differences
-1.725
R>
(Jiné hodnoty, než v souboru testy 1 a 2 výběry příklady.xls). Rozdíl v průměrech je statisticky nevýznamný.
38
Nyní je čas na analýzu síly testu. K tomu si nejdříve potřebujeme spočítat průměrnou
směrodatnou odchylku σ:
σ=
q
2 + σ 2 − 2Rσ σ
σA
A B
B
(9.6)
Kde R je korelační koeficient obou výběrů.
(Poje poznámky, strana 27/z druhé strany. Korelační koeficient mi vychází
cor(obecdata[1:20,7],obecdata[1:20,8])
[1] -0.08219599
což je něco úplně jiného, než se uvádí v souboru testy 1 a 2 . . .
9.2
Pro statistické testy o střední hodnotě
Pro situace, kdy není žádný statistický software k dispozici, následuje několik vzorců:
Pro jeden výběr HO : µ = µ0
n=
2
s2 t
+
t
α,n−1
β(1),n−1
σ2 s
δ=
s2 tα,v + tβ(1),v
n
(9.7)
(9.8)
Pro dva výběry HO : µ1 = µ2
2
2s2p n = 2 tα,v + tβ(1),v
sδ
δ=
2s2p tα,v + tβ(1),v
n
(9.9)
(9.10)
Kde: n – je velikost výběru
s2 – bodový odhad rozptylu základního souboru
δ – požadovaná přesnost → µ0 − µ1
α, β – chyba I a II druhu. Chyba II druhu β má vždy jednostranné rozdělení. (2 × β).
9.3
Testy – přehled
Kromě T testů t.test() a jeho neparametrické varianty wilcox.test() disponuje R ve svém
základu následujícími testy:
binom.test
friedman.test
prop.test
– test parametru binomické distribuce
– neparametrický test pro „complete block design“ bez opakování
– test hody poměrů, výpočet konfidenčního intervalu pro
pravděpodobnost úspěchu
39
– test χ2 pro dvourozměrnou kontingenční tabulku s možností tzv.
Yatesovy korelace
kruskal.test
– neparametrický test pro jednoduché třídění
cor.test
– testuje hypotézu o nulové hodnotě korelačního koeficientu – Pearsonovou,
Kendallovou nebo Spearmanovou metodou
mantelhaen.test – Mantel-Haenzselův χ2 test pro trojrozměrné kontingenční tabulky
var.test
– F test srovnávající variance dvou výběrů
barlett.test
– porovnávání variance pro více než dva výběry
fisher.tets
– Fischerův exaktní test pro dvourozměrnou kontingenční tabulku
mcnemar.test
– χ2 test hypotéz o symetrii pro dvourozměrné kontingenční tabulky
chisq.test
40
10 Korelační a regresní analýza – Statistické modely
Vzorce udávají závislou („vysvětlovanou“) a nezávislou („vysvětlující“) proměnné a charakter
vztahu mezi nezávislými proměnnými. Jedná se o vícerozměrné statistiky a souvisí s anovou
(více rozměrnou analýzou).
Statistická závislost znamená, že pokud znaku x přísluší libovolné hodnoty všech ostatních
znaků, nazýváme znaky x1 , x2 , . . . , xn statisticky nezávislé. Data, která nekorelují, jsou
bez trendu.
Stochastická závislost znamená, že existuje jakýsi trend. Pro hodnoty x existuje přesnější
určení hodnoty y, než je x̄. Hodnoty y můžeme přiřadit na základě určité pravděpodobnosti.
Funkční závislost každé hodnotě x odpovídá právě jedna hodnota y.
Korelace popisuje vliv změny úrovně jednoho znaku na změnu úrovně jiných znaků kvantitativních (měřených) dat.
Kontingence popisuje vliv změny kvalitativních znaků (např. „druh“)
Asociace popisuje vliv změny alternativních znaků (boolean).
10.1
Korelace
Podle počtu korelovaných znaků rozlišujeme
Jednoduchou korelaci, kde se shodují 2 znaky
Mnohonásobnou korelaci, kde zkoumáme 3 a více znaků
Parciální , kde zkoumáme dva znaky ve vícerozměrném souboru s vyloučením ostatních
znaků.
Dále může být korelace kladná, záporná, lineární, nelineární, . . .
Při korelační analýze zjišťujeme těsnost závislosti, existuje-li jaká. Při regresní analýze se
snažíme vytvořit vhodný model a stanovit jeho parametry.
10.1.1
Míra korelační závislosti
Celkovou variabilitu tvoří odchylky od průměru. Dělí se na část vysvětlenou modelem a na část
reziduální (zbytkovou, viz obr 10.1). Těsnost závislosti se hodnotí poměrem části vysvětlené
modelem a částí nevysvětlenou (jako ANOVA). ANOVA se používá pro test významnosti
41
Reziduum
Cást vysvìtlená modelem
Obrázek 10.1: Princip regresní analýzy
regresního modelu. Jako míra korelace se používá koeficient determinace (rovnice 10.1), což
je poměr variance vysvětlené modelem a celkovému rozptylu, tedy podíl celkové variability
vysvětlené regresním modelem.
R2 =
s2x′
2
s2x2
=1−
s2x1 x2
s2x2
(10.1)
Dále používáme koeficient korelace
R=
10.1.2
v
u 2
u sx′
t 2
s2x2
v
u
u
s2
= t1 − x21 x2
sx2
(10.2)
Korelační koeficient
Pro jednoduchou korelaci se používá tzv. párový korelační koeficient. Je to zvláštní případ
vícenásobného korelačního koeficientu, vyjadřuje míru lineární stochastické závislosti mezi
náhodnými veličinami xi a xj .
Máme dva:
Pearsonův , pokud je splněna podmínka dvojrozměrného normálního rozdělení a
Spearmanův , pokud není.
Pro vícenásobnou korelaci se používá koeficient
vícenásobný , který definuje míru lineární stochastické závislosti mezi náhodnou veličinou
x1 a nejlepší lineární kombinací složek x2 , x3 , . . . , xm náhodného vektoru x a
parciální , který definuje míru lineární stochastické závislosti mezi náhodnými veličinami xi
a xj při zkonstantnění dalších složek vektoru x.
42
Pearsonův korelační koeficient r
Používá se, mají-li obě proměnné normální rozdělení.
covx1,x2
rx1 ,x2 = rx2 ,x1 =
sx1 · sx2
(10.3)
kde covx1 x2 je normovaná kovariance.
Kovariance
• je míra intenzity vztahu mezi složkami vícerozměrného souboru
• je mírou intenzity lineární závislosti,
• je vždy nezáporná,
• její limitou je součin směrodatných odchylek
• je symetrickou funkcí svých argumentů
covx1 x2 =
2
1X
(x1i − x1 )(x2i − x2 )
n i=1
(10.4)
Mezi základní včasnosti Pearsonova korelačního koeficientu patří
• že je to bezrozměrná míra lineární korelace
• nabývá proto hodnot od 0 - 1 pro kladnou a 0 - -1 pro zápornou korelaci
• hodnota korelačního koeficientu je stejná pro obě proměnné
Příklad
Mějme datové soubory x1 a x2. Zjistíme jejich korelační koeficient:
R> x1<-c(5,2,4,5,6,2,4)
R> x2<-c(5,2,5,1,5,4,1)
R> ?var
R> cor(x1, x2,method="pearson")
[1] 0.2309401
R>
Korelační koeficient je tedy 0.23.
Spearmanův korelační koeficient r
Je neparametrický, nevychází z hodnot, ale z jejich pořadí. Používá se, pokud není splněna
podmínka normality.
6 · ni=1 d2i
rs = 1 −
n3 − n
P
Kde d2i je diference mezi pořadími hodnot x a y v jednom řádu.
R> cor(x1, x2,method="spearman")
[1] 0.3077492
R>
43
(10.5)
Mnohonásobný korelační koeficient
Mezi základní vlastnosti mnohonásobného korelačního koeficientu patří:
• 0‘R‘1
• pokud R = 1 znamená to, že závislá proměnná x1 je přesně lineární kombinací veličin
x2 , . . . , xm .
• pokud je R = 0, potom jsou také všechny párové korelační koeficienty nulové
• s růstem počtu vysvětlujících (nezávislých) proměnných hodnota vícenásobného korelačního koeficientu neklesá, R1(2) ‘R1(2,...,m) .
R1(2,...,m) =
s
1−
det(R)
det(R(11)
(10.6)
kde det(R) je determinant korelační matice a det(R(11) ) je determinant korelační matice s
vypuštěným sloupcem a řádkem odpovídajícím té proměnné, jejíž závislost na zbytku matice
se vypočítává.
Jako příklad si zkusíme vypočítat mnohonásobný korelační koeficient koncentrace kadmia
v různých částech rostli. Zjistíme, zda-li obsahy kadmia v různých částech spolu navzájem
korelují:
R> kadmium<-read.table("kadmium.txt",sep="\t",header=T)
R> kadmium
[...]
R> # korelační matici získáme funkcí cor()
R> kadmium.cor<-cor(kadmium)
R> kadmium.cor
zrno
otruby
stonek
kořen
zrno
1.0000000 0.9836940 0.9934748 0.9948218
otruby 0.9836940 1.0000000 0.9934409 0.9869345
stonek 0.9934748 0.9934409 1.0000000 0.9884743
kořen 0.9948218 0.9869345 0.9884743 1.0000000
R>
R> # Mnohonásobný korelační koeficient pro zrno:
R> sqrt(1-det(kadmium.cor)/det(kadmium.cor[2:4,2:4]))
[1] 0.9985795
R>
R> # Mnohonásobný korelační koeficient pro stonek:
R> sqrt(1-det(kadmium.cor)/det(kadmium.cor[c(1,2,4),c(1,2,4)]))
[1] 0.9985228
R>
Parciální korelační koeficient
Používá se k posouzení síly závislosti dvou veličin ve vícerozměrném souboru při vyloučení
vlivu ostatních veličin. Podle počtu vyloučených proměnných se stanovují řády parciálního
R. Parciální korelační koeficient III. řádu má tedy tři vyloučené proměnné.
44
Výpočet vychází z korelační matice, ze které se počítají parciální korelace I. řádu s jednou
vyloučenou proměnnou, z nich II. řádu (dvě vyloučené proměnné) atd. až do potřebného řádu.
−1j · det R(ij)
Rij(1,2,...,m) = r
det R(ii) · det R(jj)
(10.7)
Na našem příkladu s kadmiem v různých částech rostliny, chceme zjistit parciální korelační
koeficient pro zrno a otruby (1,2). Protože chceme vyloučit stonek a kořen, jedná se parciální
derivaci II. řádu:
R> # korelační matice
R> kadium.cor<-cor(kadmium)
R>
R> R11 <- kadmium.cor[2:4,2:4]
R> R22 <- kadmium.cor[c(1,3:4),c(1,3:4)]
R> R12 <- kadmium.cor[c(2:4),c(1,3:4)]
R>
R> # vlastní parciální korelační koeficient
R> (-1^2*det(R12))/sqrt(det(R11)*det(R22))
[1] 0.7181145
R>
Můžeme tedy říct, že mezi zrnem a otrubami je korelace 0.71 s vyloučením stonku a kořene.
10.2
Regrese
Základní úlohou regresní analýzy je nalezení vhodného modelu studované závislosti. Snažíme
se nahradit každou meřenou (empirickou) hodnotu závislé proměnné y hodnotou teoretickou (modelovou), t.j hodnotou ležící na spojité funkci nezávislé proměnné x. Regresní model
předpokládá, že nezávislá proměnná je nenáhodná a závislá proměnná je náhodná. Tento předpoklad nebývá v praxi striktně naplněn. Často je náhodně měřená proměnná i ta nezávislá.
Pak se hovoří o tzv. korelačním modelu.
Regresní modely jsou
lineární , jejichž parametry jsou v vzájemném lineárním postavení a
nelineární , jejichž parametry jsou v nelineárním postavení.
45
Regresní parametr
1
Absolutni clen
Obrázek 10.2: Regresní model
10.2.1
Příklady regresních modelů
Matematická rovnice
Lineární modely
y = a + bx
y = a + bx + cx2
y = a + b/x
Nelineární modely
x = a · xb
...
10.2.2
kód pro modul lm() v Rku a poznámky
Rovnice přímky. y~1+x nebo y~
x Absolutní člen a může
být nastaven na hodnotu 0 pomocí y~0+x
Parabola. y~1+x+I(x^2) nebo y~poly(x,2). V Rku lze
provést i regresi matice X: y~X + poly(x,2).
Hyperbola. y~1 + 1/x.
Postup regresní analýzy
• Najít nejvhodnější tvar regresního modelu (tedy určit příslušnou rovnici, která bude
popisovat závislost y na x).
• Stanovit jeho parametry
• Stanovit statistickou významnost modelu
• Výsledky dané modelem interpretovat z hlediska zadání
Stanovení vhodného tvaru modelu
1. Najít množinu modelů, které svými vlastnostmi vyhovují řešenému problému (např.
růstové funkce)
2. Teprve mezi nimi najít podle statistických kritérií ten model, který nejlépe vyhovuje
měřeným datům.
46
Jedna z nejčastěji používaných metod je metoda nejmenších čtverců. Řeší se rovnice
X
(yi + yˆi )2 = min
(10.8)
Obecný vztah pro výpočet regresních parametrů
b = (xT · x)−1 · xT · y
(10.9)
kde
xT –
x –
−1 –
y –
transponovaná matice x
normální matice
inverze
závislá proměnná
Obecný vztah pro výpočet predikovaných (modelových) hodnot lineárního modelu
ŷ = x(xT · x) · xT · y
(10.10)
kde vztah x(xT · x) · xT je projekční matice H.
10.2.3
Předpoklady metody
• Regresní parametr b může nabývat jakékoliv hodnoty
• Regresní model je lineární v parametrech
• nezávislé proměnné jsou skutečně vzájemně nezávislé, dochází ke kolinearitě
• podmíněný rozptyl D(y/x) = σ 2 je konstantní (tzv. podmínka homoskedasticity).
• ...
10.2.4
Multikolinearita
Každý sloupec by měl být nezávislý na ostatních. Multikolinearita způsobuje
početní problémy , hlavně špatnou podmíněnost matice a problém při inverzi matice
statistické problémy , jako že nelze odděleně sledovat vliv jednotlivých nezávislých proměnných na závislou, nespolehlivé parametry, nestabilita odhadů regresních parametrů
– malá změna hodnot způsobí velkou změnu parametrů
Příčiny multikolinearity
Mezi příčiny paří zejména
• přeurčenost regresního modul (zbytečně moc nezávislých proměnných)
• nevhodné rozmístění experimentálních bodů
• povaha modelu (např. polynomu)
47
Testování multikolinearity
VIF – variance inflation factor – diagonální prvky inverzní matice ke korelační matici nezávisle proměnných. Kritická hodnota je 10. Pokud je hodnota větší, než 10, dochází k multikolinearitě.
Postup
1. Vytvoří se korelační matice
2. Provede se její inverze
3. Sledují se hodnoty na diagonále. Kde je VIF větší, než 10, dochází k multikolinearitě.
R>
R>
R>
R>
R>
R>
R>
R>
R>
# Můžeme použít buď funkci solve() nebo ginv() z balíku MASS,
# použijeme standardní funkci solve(). Viz nápověda k funkci solve()
# Použijeme data kadmium, které již máme načtena
# Nejdříve korelační matice
R<-cor(kadmium)
# zbývá i invertovat
solve(R)
zrno
otruby
stonek
kořen
zrno
352.2457 176.7276 -293.4094 -234.8127
otruby 176.7276 171.9395 -212.1790 -135.7720
stonek -293.4094 -212.1790 338.7247 166.4761
kořen -234.8127 -135.7720 166.4761 204.0375
R>
Na příkladu vidíme, že všechna data mezi sebou vykazují značnou multikolinearitu.
10.2.5
Řešení multikolinearity
K odstranění nebo snížení multikolinearity lze použít snížení nezávislých proměnných, použití
jiného modelu nebo použití metody PCR – principal component regression.
10.2.6
Homoskedasticita a Heteroskedasticita
Homoskedasticita znamená, že hodnoty závislé proměnné y mají všechny hodnoty nezávislé
proměnné x konstantní rozptyl. Heteroskedasticita se testuje buď pomocí trendu reziduí nebo
pomocí Cookova-Weisbergova testu.
Nejobvyklejším řešením je použití metody vážených nejmenších čtverců, kdy se podmínka
sumy reziduí násobí vhodně zvolenými váhami.
10.2.7
Postup regresní analýzy (lineární model)
Mějme soubor listy1.txt, obsahující dva sloupce: šířku a délku listu. Pokusíme se ukázat
si několik analýz a výstupů které by neměly chybět jejich interpretaci.
48
Závislá promìnná
Závislá promìnná
Nezávislá promìnná
Nezávislá promìnná
Homoskedasticita
Heteroskedasticita
Obrázek 10.3: Homo- a heteroskedasticita
1. Vlastní regresní model je jednoduchý. Budeme zkoumat závislost šířky listů na jejich
délce. Chceme použít lineární model a na to je v Rku funkce lm(). Zkrátka:
R> # načteme data
R> listy<-read.table("poznamky/data/listy1.txt", header=T, sep="\t")
R> listy
délka šířka
1
24
14
2
29
19
3
30
14
4
33
22
[...]
R>
R> # lineární model uděláme pomocí funkce lm()
R> lm(listy$šířka ~ listy$délka)
Call:
lm(formula = listy$šířka ~ listy$délka)
Coefficients:
(Intercept) listy$délka
-2.7521
0.6763
R>
Mohlibychom tedy jednoduše uzavřít, že datům odpovídá model šířka = −2.752 +
0.6763 × délka.
Nyní několik grafů (obrázky 10.4, 10.5):
49
R>
R>
R>
R>
R>
R>
R>
R>
R>
# graf prměnných, tak jak jsou
plot(listy$délka,listy$šířka)
výroba hodnot X a Y pro model
xfit <- c(min(listy$délka):max(listy$délka))
yfit <- -2.752+0.6763*xfit
# vytiskneme linii do grafu
lines(xfit,yfit)
30
15
20
25
listy$šířka
35
40
Délka / Šířka listů
30
40
50
60
listy$délka
Obrázek 10.4: Graf regresní přímky a dat
R>
R>
R>
R>
R>
R>
R>
R>
# nastavení rozdělení okna pro grafy na 4 části:
par(mfrow=c(2,2))
# několik důležitých diagnostických grafů pomocí funkce lm() vnořené
# ve funkci plot()
plot(lm(listy$šířka~listy$délka))
par(mfrow=c(1,1))
Obrázek 10.5 ukazuje několik zajímavých analytických grafů dat. Jako první je graf
reziduí okolo regresní linie modelu. Jejich hodnoty můžeme získat pomocí funkce
residuals(objekt()), v našem případě tedy
50
Normal Q−Q plot
6
Residuals vs Fitted
19
9
1
0
−1
2
0
−4
−2
Residuals
4
Standardized residuals
2
19
9
−6
12
12
15
20
25
30
35
40
−2
−1
Fitted values
1
2
Theoretical Quantiles
Cook’s distance plot
0.5
Scale−Location plot
1.5
0
19
19
0.4
0.3
0.2
3
12
0.0
0.1
0.5
1.0
Cook’s distance
9
0.0
Standardized residuals
12
15
20
25
30
35
40
5
Fitted values
10
Obs. number
Obrázek 10.5: Několik důležitých diagnostických grafů
51
15
20
R> residuals(lm(listy$šířka~listy$délka))
1
2
3
4
5
6
7
0.5197185 2.1379734 -3.5383756 2.4325774 3.4325774 -1.2437716 -2.2728187
8
9
10
11
12
13
14
3.3744833 -3.9782147 0.3454363 2.3163892 -5.0363088 -1.7126578 2.2873422
15
16
17
18
19
20
-1.3890068 -1.0944029 -2.4471009 -0.1234499 5.8475031 0.1421070
R>
Číslem jsou označeny tzv. vlivné body, body vírazně ovlivňující model. Jsou to horcí
kandidáti na vymazání ze souboru a tím by se mělo dosáhnout přesnějšího modelu. O
vlivných bodech (snad) viz níže.
Druhý graf je již známý Kvantil-kvantilový graf ovšem reziduí.
Zajímavý je také graf Cookovy vzdálenosti. Cook-Weisbergův test se používá pro test
heteroskedasticity (část 10.2.6.).
Kromě grafů potřebujeme znát také nějaké číselné statistiky o lineárním modelu. Celkový přehled získáme pomocí funkce summary()
R> summary(lm(listy$šířka~listy$délka))
Call:
lm(formula = listy$šířka ~ listy$délka)
Residuals:
Min
1Q
-5.036309 -1.852698
Median
0.009329
3Q
2.294604
Max
5.847503
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.7521
2.7293 -1.008
0.327
listy$délka
0.6764
0.0613 11.034 1.93e-09 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.9 on 18 degrees of freedom
Multiple R-Squared: 0.8712,
Adjusted R-squared: 0.864
F-statistic: 121.7 on 1 and 18 DF, p-value: 1.925e-09
R>
Postupně jsme dostali přehled kvantilových charakteristik reziduí. Dále jsme dostali
charakteristiku jednotlivých parametrů modelu. (Předpokládáme formu rovnice y =
ax + b). Parametr b (Intercept) má p-hodnotu 0.33, která je větší, než hodnota α 0.05.
Hypotéza H0 zní: parametr a je roven 0. Můžeme tedy na hladině významnosti α = 0.05
parametr b vynechat.
52
P-hodnota parametru a (1.93 · 10−9 ) je poměrně nízká a my můžeme říci, že zamítáme
nulovou hypotézu, že parametru a = 0 (což se jaksi předpokládalo. . . ).
Hodnota koeficientu determinace (R2 ) 0.87 říká, že 87% všech hodnot je vysvětleno
modelem a 13% jsou rezidua.
F-test testuje koeficient determinace – test významnosti R.
P-hodnota celého testu (1.925 · 10−9 ) nám říká, že test je významný. Celý test ještě
budeme testovat pomocí anovy.
R> anova(lm(listy$šířka~listy$délka))
Analysis of Variance Table
Response: listy$šířka
Df Sum Sq Mean Sq F value
Pr(>F)
listy$délka 1 1023.65 1023.65 121.75 1.925e-09 ***
Residuals
18 151.35
8.41
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R>
Anova testuje významnost regresního modelu. Stejně jako u anovy testuje celkový rozptyl, tedy rozptyl vysvětlený faktorem + rezidua. Významnost testu je podle p-hodnoty
anovy poměrně vysoká (0.001). Protože p-hodnota ¡ α, zamítáme hypotézu H0, že průměry jsou si rovné – tedy v případě modelu, že koeficienty rovnice a a b jsou si rovné.
2. Ok, rozhodli jsme, že koeficient b je zbytečný, protože na základě testu se ukazuje, že
by s pravděpodobností 0.95% mohl být 0:
R> lm(listy$šířka~ 0 + listy$délka)
Call:
lm(formula = listy$šířka ~ 0 + listy$délka)
Coefficients:
listy$délka
0.6163
R>
Model vychází tedy y = 0.6163 · x. A nyní tesy:
R> summary(lm(listy$šířka~ 0 + listy$délka))
Call:
lm(formula = listy$šířka ~ 0 + listy$délka)
Residuals:
53
Min
1Q Median
-4.9665 -1.9113 -0.2746
3Q
1.8129
Max
6.6378
Coefficients:
Estimate Std. Error t value Pr(>|t|)
listy$délka 0.61631
0.01457
42.3
<2e-16 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.901 on 19 degrees of freedom
Multiple R-Squared: 0.9895,
Adjusted R-squared: 0.9889
F-statistic: 1790 on 1 and 19 DF, p-value: < 2.2e-16
R>
R> anova(lm(listy$šířka~ 0 + listy$délka))
Analysis of Variance Table
Response: listy$šířka
Df Sum Sq Mean Sq F value
Pr(>F)
listy$délka 1 15060.1 15060.1 1789.6 < 2.2e-16 ***
Residuals
19
159.9
8.4
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R>
Kvalita modelu poněkud poklesla (např. viz suma koeficient determinace R2 ), ale model
se zjednodušil. Podle testu anovy vychází celková významnost modelu pořád poměrně
dobře.
3. Celkovou charakteristiku lineárního modelu získáme pomocí funkce profile(). Místo
funkce lm() (lineární modely) použijeme ale funkci glm() (obecné lineární modely):
R> profile(glm(listy$šířka~listy$délka))
$"(Intercept)"
tau par.vals.(Intercept) par.vals.listy$délka
1 -4.558368
-15.1930477
0.9477663
2 -3.798640
-13.1195556
0.9025301
3 -3.038912
-11.0460634
0.8572939
4 -2.279184
-8.9725712
0.8120577
5 -1.519456
-6.8990791
0.7668214
6 -0.759728
-4.8255869
0.7215852
7
0.000000
-2.7520947
0.6763490
8
0.759728
-0.6786026
0.6311128
9
1.519456
1.3948896
0.5858766
10 2.279184
3.4683818
0.5406404
11 3.038912
5.5418739
0.4954041
12 3.798640
7.6153661
0.4501679
54
$"listy$délka"
tau par.vals.(Intercept) par.vals.listy$délka
1 -3.798640
7.3185527
0.4435017
2 -3.038912
5.3044232
0.4900711
3 -2.279184
3.2902937
0.5366406
4 -1.519456
1.2761643
0.5832101
5 -0.759728
-0.7379652
0.6297795
6
0.000000
-2.7520947
0.6763490
7
0.759728
-4.7662242
0.7229185
8
1.519456
-6.7803537
0.7694879
9
2.279184
-8.7944832
0.8160574
10 3.038912
-10.8086127
0.8626269
11 3.798640
-12.8227422
0.9091964
12 4.558368
-14.8368717
0.9557658
attr(,"original.fit")
Call:
glm(formula = listy$šířka ~ listy$délka)
Coefficients:
(Intercept) listy$délka
-2.752095
0.676349
Degrees of Freedom: 19 Total (i.e. Null); 18 Residual
Null Deviance:
1175
Residual Deviance: 151.3458
AIC: 103.2342
attr(,"summary")
Call:
glm(formula = listy$šířka ~ listy$délka)
Deviance Residuals:
Min
1Q
-5.036308792 -1.852698023
Median
0.009328567
3Q
2.294603955
Max
5.847503072
Coefficients:
Estimate Std. Error t value
Pr(>|t|)
(Intercept) -2.75209474 2.72925573 -1.00837
0.32664
listy$délka 0.67634901 0.06129755 11.03387 1.9251e-09 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 8.408098)
Null deviance: 1175.00000
Residual deviance: 151.34577
on 19
on 18
55
degrees of freedom
degrees of freedom
AIC: 103.23424
Number of Fisher Scoring iterations: 2
attr(,"class")
[1] "profile.glm" "profile"
R>
Hlášek je již podstatně více. Kromě koeficientů a a b (Coefficients) a charakteristik
reziduí zde máme i podstatnou charakteristiku Akaikovo informační kritérium AIC =
103.23. Tato statistika se používá při porovnávání různých modelů mezi sebou. Platí,
že čím vyšší hodnota AIC, tím lepší model. Můžeme také porovnat druhý model, který
zkoušíme, kdy b = 0:
R> profile(glm(listy$šířka~ 0 + listy$délka))
[...]
AIC: 102.33327
[...]
R>
A skutečně, víme, že tento model by měl být poněkud horší, než předchozí.
4. Ještě k obrázku 10.5, konkrétně ke grafu reziduí. Rozložení reziduí – jejich trend –
ukazuje na kvalitu modelu. Má několik charakteristických tvarů rozložení reziduí (obr.
10.6). První graf ukazuje situaci tak, jak to má být. Rezidua bez výrazného trendu.
Obrázek 10.6: Různé tvary rozložení reziduí
Druhý graf ukazuje rezidua tak, jak by vypadaly při použití nevhodného modelu. Některé hodnoty „prostě nesedly“. Třetí graf ukazuje situaci, kdy závislá proměnná nemá
konstatntí rozpty. Nastává heteroskedasticita – porušení jedné z podmínek pro metodu
nejmenších čtverců. Jedním z řešní je použít váženou metodu nejmenších čverců a jako
váhu lze použít např. hodnotu 1/y 2 . Tím se oslabí váha hodnot s velkou variabilitou.
5. Interval spolehlivosti parametrů lineárního modelu lze spočítat jednoduše pomocí funkce
confint() z balíku MASS. To je asi poprvé, co použijeme nějaký jiný balík, než standardní funkce z Rka. Do R přispívá mnoho lidí svými vlastními funkcemi a tím je R obohacováno. Knihova MASS slouží k různým pokročilým statistickým analýzám. Nejdříve
56
ji musíme nainstalovat a následně natáhnout do R. Poněkud matoucí je, že knihovna
MASS se skrývá v balíku „VR“:
R> install.packages("VR")
[...] # hlášky o stahování a instalaci
R> # natažení knihovny MASS
R> library(MASS)
R> ?confint
R> confint(lm(listy$šířka~listy$délka))
2.5 %
97.5 %
(Intercept) -8.4860483 2.9818588
listy$délka 0.5475676 0.8051304
R>
Vidíme, že interval spolehlivosti pro parametr b (y = ax + b) obsahuje 0 a tak se bez
něj s 95% pravděpodobností obejdeme (stejně tak jsme rozhodli i výše).
6. Ještě musíme udělat intervalový odhad všech prvků a modelu jako celku. Ten se počítá
pomocí Fisherovy transformace, která má přibližně normální rozdělení:
1
z(R) ± z1−α/2 · √
n−3
(10.11)
kde z je kvantil normovaného normálního rozdělení. Musí se určit horní a dolní hranice
a následně provést retransformace zpět. Interval spolehlivosti je nesymetrický.
Nám ale postačí Fisherova testovací statistika z bodu 2.
7. Dále je potřeba udělat intervalový odhad spolehlivosti jednotlivých hodnot. K tomu
slouží rovnice (pro model přímky)
σ
My′ = y1 ± tα/2;n−2 · √
·
n−2
′′
s
Kde
n(xi − x̄)2
1 + Pn
2
i=1 (xi − x̄)
(10.12)
tα/2 – směrodatná odchylka
yi′ – modelovaná hodnota
σ – směrodatná odchylka reziduí
8. A neškodil by ani interval spolehlivosti odhadovaných hodnot
yi′ ± tα/2;n−m σ
(10.13)
kde m je počet parametrů (např. pro rovnici y = ax + b platí, že m = 2.
Oba poslední body získáme následovně: Nejdříve si uložíme model do nové proměnné
lm.vs (lineární model výška-šířka).
R>
lm.vs<-(glm(listy$délka ~ listy$šířka))
57
Kromě toho, že nyní můžeme opět vytisknout charakteristické grafy a získávat souhrny
o takto vytvořeném modelu
R> plot(lm.vs)
R> summary(lm.vs)
[...]
Můžeme nyní jednoduše spočítat intervalové odhady pro jednotlivé hodnoty modelu. To
se dělá pomocí funkce predict()
R> predict.lm(lm.vs,interval="confidence")
fit
lwr
upr
1 27.14894 23.55272 30.74515
2 33.58936 30.95924 36.21948
3 27.14894 23.55272 30.74515
[...]
20 60.63915 56.83169 64.44661
R>
pro interval spolehlivosti těchto hodnot a
R> predict.lm(lm.vs,interval="prediction")
fit
lwr
upr
1 27.14894 18.00498 36.29289
2 33.58936 24.78046 42.39826
3 27.14894 18.00498 36.29289
[...]
20 60.63915 51.41007 69.86823
R>
pro interval spolehlivosti předpovězených hodnot.
Tyto hodnoty si můžeme vytisknout do grafu (obr. 10.7):
R>
R>
R>
R>
R>
R>
R>
R>
R>
# tisk závislosti délky na šířce:
plot(listy$šířka, listy$délka, main="Graf závislosti délky listu na jeho šířce")
# tisk funkce ’předpovědi’ jako linie: nejdříve interval spolehlivosti
matlines(listy$šířka,predict.lm(lm.vs,interval="c"),lty=c(1,2,2),col=’blue’)
# a dále interval předpovědi
matlines(listy$šířka,predict.lm(lm.vs,interval="p"), lty=c(1,9,9),col=c(’black’,’r
Více o analýze reziduí (Jack-Knife rezidua atd.) viz. (Faraway 02).
58
60
Graf závislosti délky listu na jeho šířce
40
30
listy$délka
50
délka = −2.752 + 0.676*šířka
Interval spolehlivosti
Interval predikce
15
20
25
30
35
40
listy$šířka
Obrázek 10.7: Interval spolehlivosti pro lineární model a interval spolehlivosti predikce modelu.
Postup regresní analýzy při mnohonásobné regresi
1. Nejdříve ověříme, nedochází-li k multikolinearitě. K tomu použijeme VIF (viz 10.2.4)
transpozici korelační matice. Kritická hodnota je 10 na ose matice.
R> # použijeme pouze sloupečky d13, h, koruna a V..1000.m3
R> solve(cor(stromy[,c(1,2,3,5)]))
d13
h
koruna V..1000.m3.
d13
27.0933405 -2.675107 0.8315288 -24.829190
h
-2.6751070 12.023025 -5.5362276
-3.577005
koruna
0.8315288 -5.536228 8.9740653
-3.863416
V..1000.m3. -24.8291902 -3.577005 -3.8634163
32.263736
R>
A skutečně, nejméně koreluje s ostatními grafy koruna.
2. V první řadě bychom měli rozhodnout, která data mají být do modelu zahrnuta. . . (ale
nevím jak)
10.2.8
Postup regresní analýzy (nelineární model)
Parametry spolu nejsou v lineárním postavení.
Mějme data rust1.txt, obsahující sloupec s věkem a sloupec s výškou porostu:
59
R> rust <- read.table("rust1.txt",header=T,sep="\t")
R> rust
Věk výška
1
8
4.1
2
11
6.3
3
16
9.5
[...]
R>
Zvolíme si tvar růstové funkce podle Michajlova
k
y = a · et
(10.14)
kde y je výška stromu, a je asymptota, ke které se výška stromu blíží, k je koeficient křivosti
křivky.
Na nelineární modely je v Rku funkce nlm() (nelineární modelování) a nls() (nelineární
nejmenší čtverce). Použijeme nls(), protože mi přijde snazší.
Funkce nls() potřebuje ke své spokojenosti jednak vzorec, podle kterého bude hledat
řešení (ze vzorce 10.14) a*exp(k/rust$Věk), dále počáteční hodnotu parametrů a a k. Ta je
předána funkci nls() parametrem start a funkcí list(). Jak nastavit počáteční hodnoty?
Víme, že parametr a je asymptota – teoreticky největší možná výška, jaké může strom dosáhnout. Parametr k by měl být záporný, ale to „ jako“ nevíme a nastavíme jej na „nějakou“
hodnotu.
R> nls(rust$výška ~ a*exp(k/rust$Věk),start=list(a=60,k=1),data=rust)
Nonlinear regression model
model: rust$výška ~ a * exp(k/rust$Věk)
data: rust
a
k
46.0972 -37.1337
residual sum-of-squares: 257.7884
R>
−37.1337
vyšlo nám tedy, že y = 46.0972 · e x . Nyní můžeme otestovat jednotlivé parametry a
celou regresi tak, jak jsme to již několikrát udělali. Uložíme výsledek regrese do proměnné
michajlov a dále budeme pracovat s ní.
R> michajlov <- nls(rust$výška ~ a*exp(k/rust$Věk),start=list(a=60,k=1),data=rust)
R> profile(michajlov)
$a
tau par.vals.a par.vals.k
1 -3.3805725
39.52522 -27.03273
2 -2.6915422
40.73843 -28.86380
3 -2.0014528
42.01336 -30.80996
4 -1.3103458
43.35514 -32.87633
5 -0.6201533
44.76539 -35.06197
6
0.0000000
46.09720 -37.13370
7
0.6254316
47.50745 -39.33076
8
1.2500278
48.98816 -41.63654
60
9
10
11
12
1.8737982
2.4967326
3.1187901
3.7399263
50.54493
52.18384
53.91152
55.73536
-44.05487
-46.59000
-49.24619
-52.02810
$k
1
2
3
4
5
6
7
8
9
10
11
12
tau par.vals.a par.vals.k
-3.7260192
54.96943 -53.10715
-3.0972670
53.25111 -50.11365
-2.4685749
51.63231 -47.24772
-1.8400030
50.10522 -44.50447
-1.2116353
48.66296 -41.87949
-0.5824720
47.29703 -39.36449
0.0000000
46.09720 -37.13370
0.6872286
44.75615 -34.61871
1.3775041
43.48446 -32.21552
2.0684685
42.28162 -29.92929
2.7600913
41.14284 -27.75650
3.4524121
40.06361 -25.69349
attr(,"original.fit")
Nonlinear regression model
model: rust$výška ~ a * exp(k/rust$Věk)
data: rust
a
k
46.0972 -37.1337
residual sum-of-squares: 257.7884
attr(,"summary")
Formula: rust$výška ~ a * exp(k/rust$Věk)
Parameters:
Estimate Std. Error
t value
Pr(>|t|)
a 46.097200
2.028100 22.72926 < 2.22e-16 ***
k -37.133703
3.397076 -10.93108 5.5304e-12 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.931373 on 30 degrees of freedom
Correlation of Parameter Estimates:
a
k -0.8970736
attr(,"class")
[1] "profile.nls" "profile"
R>
61
Opět vidíme, že parametry koeficientů a a k vyšly 46.097 a -37.133. Suma čtverců vyšla
257.788. Chyba reziduí při 30 stupních volnosti je 2.932.
Interval spolehlivosti parametrů získáme pomocí funkce confint() z balíku MASS:
R> library(MASS)
R> confint(michajlov)
Waiting for profiling to be done...
2.5%
97.5%
a 41.93627 50.97988
k -45.37536 -30.01519
R>
Křivku můžeme do grafu vložit např. následujícím způsobem (obr. 10.8):
R> yfit <- 46.0972 * exp(-37.133/rust$Věk) # uložení hodnot výšky
R> plot(rust$výška, rust$Věk) # graf růstu a výšky
R> lines(rust$Věk, yfit) # linie podle modelu
35
Graf závisloti výšky na věku
20
5
10
15
rust$výška
25
30
y = 46.097 exp(−37.133/x))
20
40
60
80
100
120
rust$Věk
Obrázek 10.8: Graf Michajlovovy růstové funkce
Nyní si zkusíme to samé s Korfovou funkcí:
k
y = a · e (1−n)·tn−1
(10.15)
R> korf <- nls(rust$výška ~ a*exp(k/((1-n)*rust$Věk^(n-1))),start=list(a=60,k=1,n=1),data=
62
Error in numericDeriv(form[[3]], names(ind), env) :
Missing value or an Infinity produced when evaluating the model
R>
(Tak přes tohle jsem se nedostal . . .)
63
64
11 Anova
Analýza rozptylu. Pokud pracujeme s třemi a více výběry zároveň, tak nelze použít opakované
t-testy.
Např.: H0: µ1 = µ2 = µ3 = . . . = µn
H1: Alespoň mezi dvěma středními hodnotami existuje statistický rozdíl
Zvyšuje se chyba I. druhu – pro k výběrů platí
αβ = 1 − (1 − α)k
(11.1)
Např. pro 7 výběrů a α = 0.05 platí αβ = 0.0302.
Příklad 1.
Zkoumáme, zda-li vliv hnojení semenáčků prokazatelně zvýší jejich růst. H0: hnojení nemá
vliv (střední hodnoty jsou stejné), H1: hnojení má vliv (alespoň mezi dvěma je statistický
rozdíl).
Data jsou v souboru semenacky1.txt. Data nemohou být uložena ve formě „matice“, ale
spíše ve „sloupečcích“:
R> > semenacky <- read.table("semenacky1.txt",header=T,sep="\t")
davka vyska
1 davka1
16
2 davka1
18
3 davka1
17
[...]
Data představují čtyři různé lokality L1-4 a způsoby hnojení A-C. Posuzuje se jednak variabilita mezi výběry – což jej rozdíl mezi µ1 , µ2 , . . . , µn a jednak variabilita uvnitř výběru tedy
variabilita pro každý výběr zvlášť. Pokud je variabilita mezi výběry větší, než uvnitř výběru,
map jsou jednotlivé výběry odlišitelné mezi sebou .
65
Anova
je
parametrická
jednofaktorová zkoumá působnost jednoho faktoru
s pevnými efekty – přesně se stanová dávka hnojiva. To lze jenom u laboratorních měření
s náhodnými efekty – pouze se měří, často situace v terénu
vícefaktorová zkoumá působnost dvou a více faktorů. Je důležité rozmyslet si kolik
faktorů je důležitých. Pokud možno nezkoumat více, než 3 faktory najednou
s pevnými efekty
s náhodnými efekty
se smýšenými efekty
neparametrická . . .
11.0.9
Podmínky použití
1. Vždy musí být porovnávány nezávislé výběry
2. Výběry pochází se ZS s normálním rozdělením
3. Všechny výběry pochází ze souboru se shodnými rozptyly
Anova je docela odolná proti porušení třetí podmínky.
Nezávislost mezi výběry
Lze ji otestovat buď graficky (plot(proměnná1, proměnná2), pak-li že je tam trend, jak např.
u obrázku 10.4, nebo pomocí lineárního modelu summary(lm(proměnná1
proměnná2)).
Shoda rozptylů
Testuje se homoskedasticita, chochranův test, barttletův test. . .
> bartlett.test(semenacky$vyska, semenacky$davka)
Bartlett test for homogeneity of variances
data: vyska and davka
Bartlett’s K-squared = 2.0454, df = 3, p-value = 0.563
R>
Vidíme, že nezamítneme nulovou hypotézu o rovnosti variancí v jednotlivých skupinách hnojiv.
66
11.1
Model jednofaktorové anovy
yij = µ + αi + ǫij
(11.2)
kde
yij
µ
αi
ǫij
měřená hodnota
průměrná hodnota
změna měřené hodnoty způsobená faktorem
chyba experimentu
rozdíly mezi zásahy si můžeme nechat zobrazit pomocí boxpotu (obr. 11.1):
R>
R>
R>
R>
R>
# zpřístupníme si názvy sloupců v proměnné ’semenacky’
attach(semenacky)
# nyní můžeme používat přímo názvy sloupců
boxplot(split(vyska,davka))
10
12
14
16
18
20
Rozdíly mezi zásahy
davka1
davka2
davka3
davka4
Obrázek 11.1: Znázornění rozdílů mezi zásahy pomocí boxplotu
Stejného grafu bychom dosáhli pomocí funkce plot():
R> plot(vyska ~ davka, data=semenacky)
67
Průměr jednotlivých skupin dostaneme např. pomocí funkce tapply(), která aplikuje operaci
na každou ze skupin:
R> tapply(vyska, davka, mean)
davka1 davka2 davka3 davka4
17.1
12.6
14.3
14.5
Stejným způsobem získáme směrodatnou odchylku. Řekli jsme si, že nás zajímá, je-li variabilita uvnitř výběru větší, než variabilita mezi výběry (str. 65).
R> tapply(vyska,davka,sd)
davka1
davka2
davka3
davka4
1.791957 1.264911 2.002776 1.957890
R> bartlett.test(vyska, davka)
Bartlett test for homogeneity of variances
data: vyska and davka
Bartlett’s K-squared = 2.0454, df = 3, p-value = 0.563
R>
Nezamítneme nulovou hypotézu o rovnosti variancí. Vlastní analýzu varianci provedeme následovně:
R> analyza<-aov(vyska ~ davka, data=semenacky)
R> summary(analyza)
Df Sum Sq Mean Sq F value
Pr(>F)
davka
3 103.475 34.492 10.902 3.073e-05 ***
Residuals
36 113.900
3.164
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R>
P-hodnota Pr je menší, než α (0.05). Můžeme tedy říci, že rozdíly v průměrech jsou statisticky
významné a že zamítáme nulovou hypotézu o rovnosti středních hodnot.
11.2
Model vícefaktorové anovy bez opakování
Zkoumáme vliv více faktorů (lokalita, odrůda) a data se nám neopakují (soubor
psenice.txt).
R> psenice <- read.table("psenice.txt",header=T,sep="\t")
R> attach(psenice)
R> psenice
lokalita odruda vyska
1 Lokalita1
A
27
2 Lokalita1
B
27
3 Lokalita1
C
30
4 Lokalita1
D
19
[....]
68
A vlastní analýza
R> analyza<-aov(vyska ~ odruda + lokalita, data=psenice)
R> summary(analyza)
Df Sum Sq Mean Sq F value
Pr(>F)
odruda
11 440.72
40.07 12.9592 8.227e-07 ***
lokalita
4 32.67
8.17 2.6415
0.06411 .
Residuals
20 61.83
3.09
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R>
Můžeme tedy říci, že lokalita nemá na hodnotu výšky vliv, ale zároveň můžeme zamítnout
nulovou hypotézu, že odrůda nemá na výšku vliv.
11.3
Model vícefaktorové anovy s opakováním
Zkoumáme vliv více faktorů (lokalita, způsob hnojení). Data se opakují – máme několik měření
pro každou kombinaci faktorů (semenacky2.txt):
R> semenacky <- read.table("poznamky/data/semenacky2.txt",header=T,sep="\t")
R> attach(semenacky)
R> semenacky
lokalita hnojeni vyska
1
L1
A
23
2
L1
A
15
3
L1
A
26
4 [...]
R>
R> analyza<-aov(vyska ~ hnojeni + lokalita, data=semenacky)
R> summary(analyza)
Df Sum Sq Mean Sq F value
Pr(>F)
hnojeni
2 344.93 172.47 9.4149 0.0003107 ***
lokalita
3 46.05
15.35 0.8379 0.4789924
Residuals
54 989.20
18.32
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R>
Můžeme říci, že rozdíly mezi středními hodnotami různých způsobů hnojení jsou statisticky
významné.
69
70
Literatura
Bonk, R. 2002: Zabudnite na GNUPlot, prichádza ”R”,
http://www.root.cz/clanky/zabudnite-na-gnuplot-prichadza-r/, 2005
Čepický, J. 2004: Tvorba grafů pomocí programu ”R”,
http://www.root.cz/serialy/tvorba-grafu-pomoci-programu-r/, 2005
Faraway, J. 2002: Practical Regression and Anova using R,
http://www.stat.lsa.umich.edu/~faraway/book/, 2005
Šmilauer, P. 2004: Úvod k S (program R 1.7),
www.fle.czu.cz/~jachym/skripta/r/r-intro.pdf 2005
Venables W. N., Smith D. M. 2004: An Introduction to R,
http://cran.r-project.org/manuals.html, 2005
71

Podobné dokumenty

MC760 MC770 MC780 Příručka nastavení v2

MC760 MC770 MC780 Příručka nastavení v2 Testování zařízení, kopírky, faxu a skeneru.

Více

Automatizace úkonů správy operačních systémů I

Automatizace úkonů správy operačních systémů I Přesto se zaměříme v úvodu na některé vlastnosti a parametry těchto příkazů, které můžeme pak využít v dávkových souborech. Viz následující ukázky souboru pokus.bat

Více

Čeká nás nová (reaganovská) revoluce?

Čeká nás nová (reaganovská) revoluce? projevech burcujících do války. A to je onen tragický odkaz, který Americe po sobě zanechává G. W. Bush.“

Více

české vysoké učení technické v praze teze k disertační práci

české vysoké učení technické v praze teze k disertační práci Hlavní vliv na zbytkovou tažnost (pevnost) materiálu povlakových trubek po teplotním přechodu typu LOCA má přírůstek vodíku a rozložení kyslíku ve stěně povlakové trubky [1]. V dnešní době existuje...

Více

Výsledky výzkumu douglasky tisolisté (Pseudotsuga menziesii / Mirb

Výsledky výzkumu douglasky tisolisté (Pseudotsuga menziesii / Mirb Příspěvek shrnuje poznatky o vlivu pěstování douglasky tisolisté (Pseudotsuga menziesii /Mirb./ Franco), především z posledních desetiletí, na plnění produkčních a mimoprodukčních funkcí lesů v pod...

Více