diff --git a/07_testovani.qmd b/07_testovani.qmd index fbf497b..dd4f750 100644 --- a/07_testovani.qmd +++ b/07_testovani.qmd @@ -1,10 +1,12 @@ # Testování hypotéz {#sec-testovani} -Testování statistikcké hypotézy je proces +Testování statistikcké hypotézy je proces, při kterém na základě dat pocházejících +z náhodného výběru ověřujeme úsudek o teoretickém souboru. + Zavádíme pojmy nulové $\mathrm{H}_0$ a alternativní hypotézy $\mathrm{H}_a$. + Pod *testováním hypotéz* potom rozumíme proces, který na základě -vlastností datové sady pocházející z náhodného výběru rozhodne o zamítnutí, -či nezamítnutí nulové hypotézy. +vlastností datové sady rozhodne o zamítnutí, či nezamítnutí nulové hypotézy. ::: callout-note ## Poznámka @@ -17,11 +19,11 @@ co se na sesbíraných datech snažíme vysledovat. ## Postup testování statistické hypotézy: -1. Formulace nulové $\mathrm{H}_0$ a alternativní $\mathrm{H}_a$ hypotézy.\ -2. Volba hladiny významnosti $\alpha$.\ -3. Volba testovací statistiky.\ -4. Určení kritického oboru testové statistiky. -5. Vyhodnocení testu s pomocí p-hodnoty. +1. Formulace nulové $\mathrm{H}_0$ a alternativní $\mathrm{H}_a$ hypotézy,\ +2. volba hladiny významnosti $\alpha$,\ +3. volba testovací statistiky,\ +4. určení kritického oboru testové statistiky,\ +5. vyhodnocení testu s pomocí p-hodnoty. Výsledkem testování je buď a) zamítnutní nulové hypotézy[^07_testovani-1] b) nezamítnutní nulové hypotézy. @@ -45,7 +47,8 @@ Výsledkem testování je buď a) zamítnutní nulové hypotézy[^07_testovani-1 ``` -Síla testu $\beta$ je pravěpodobnost, že je testem zamítnuta nulová hypotéza, která je skutečně neplatná. $P(\mathrm{H}_A|\mathrm{H}_A) = 1-\beta$ +Síla testu $\beta$ je pravěpodobnost, že je testem zamítnuta nulová hypotéza, +která je skutečně neplatná. $P(\mathrm{H}_A|\mathrm{H}_A) = 1-\beta$ ## $p-$hodnota @@ -59,6 +62,8 @@ Představme si, že hledáme odpověď na otázky typu: "Jaká je střední hodn ## $100(1-\alpha)\%$ interval spolehlivosti +Vrátíme se krátce k intervalu spolehlivosti z předchozí hodiny. + $$ \bar{x} - 1.96\dfrac{\sigma}{\sqrt{n}}\leq\mu\leq \bar{x} + 1.96\dfrac{\sigma}{\sqrt{n}} $$ @@ -80,83 +85,58 @@ Dejme tomu, že jsme v průběhu práce sesbírali následující hodnoty:\ `r set.seed(1450070); rnorm(10)`\ u procesu $X\sim\mathsf{N}(0; 1)$ ```{r, fig.align='center'} -set.seed(1450070) +set.seed(1450070) #<1> xd <- rnorm(10) curve(dnorm(x), from = -5, to = 5) rug(xd, lwd = 2) -segments(x0 = mean(xd), x1 = mean(xd), y0 = -0.2, y1 = dnorm(mean(xd)), lwd = 2, col = "orangered") +segments(x0 = mean(xd), + x1 = mean(xd), + y0 = -0.2, + y1 = dnorm(mean(xd)), + lwd = 2, + col = "orangered", + xlab = "", + ylab = "") ``` +1. V tomto příkladu potřebujeme vygenerovat specifické hodnoty, proto si určíme `set.seed()` -### Příklad 2 - - -Pravděpodobnost platnosti hypotézy - -## Testy dobré shody - -Testovací statistika testu dobré shody -$$ -\chi^2=\sum\dfrac{(O-E)^2}{E} -$$ - - - - - +Data jsme získali s pomocí generátoru pro náhodné rozdělení, budeme předpokládat, +že teoretický soubor má náhodné rozdělení s parametry $\mu=0$ a $\sigma^2=1$ a ověříme +na hladině významnosti $\alpha=0.05$. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +::: callout-note +## Úloha + + 1. Stanovte znění $\mathrm{H}_0$ a $\mathrm{H}_a$. + 2. Kolik bude stupňů volnosti? +::: +```{r} +t.test(xd, mu = 0) #<1> +``` +Z výsledku testu vyplývá, že `p-value` $< \alpha$, proto tedy musíme nulovou hypotézu - - - +### Příklad 2 - - - - - +V předchozím příkladu jsme testovali nulovou hypotézu oproti oboustranné alternativě, +tzn. neřešili jsme, zda je střední hodnota menší či větší. +::: callout-note +## Úloha + + 1. S pomocí nápovědy nastavte argumenty funkce `t.test()` tak, aby byla test proběhl + oproti jednostranné alternativě, že je skutečná střední hodnota nižší než 2. + 2. Studentův $t-$test lze použít za předpokladu, že data splňují tzv. normalitu. + tu lze pro tento soubor snadno ověřit jiným testem - `shapiro.test()`. $\mathrm{H}_0$: + rozdělení není odlišné od normálního. Zamítneme $\mathrm{H}_0$ na hladině významnosti $\alpha=0,1$? + 3. Zatím jsme použili jedovýběrový $t-$test na data pocházející z Normálního rozdělení. + V případě, že by naše data nesplňovala předpoklady kladené na tento parametrický test, + museli bychom volit neparametrickou variantu testu. Pro test hypotézy o střední + hodnotě lze využít neparametrický *Wilcoxonův test* - `wilcox.test()`. Rozhodněte + o volbě testu a proveďte s pomocí nápovědy test o rovnosti středních hodnot souborů + z datové sady **temp.csv**. + +::: diff --git a/data/temp.csv b/data/temp.csv new file mode 100644 index 0000000..a039676 --- /dev/null +++ b/data/temp.csv @@ -0,0 +1,103 @@ +"","T1","T2" +"1",16.58,16.33 +"2",16.73,16.34 +"3",16.93,16.35 +"4",17.15,16.42 +"5",17.23,16.55 +"6",17.24,16.69 +"7",17.24,16.71 +"8",16.9,16.75 +"9",16.95,16.81 +"10",16.89,16.88 +"11",16.95,16.89 +"12",17,16.91 +"13",16.9,16.85 +"14",16.99,16.89 +"15",16.99,16.89 +"16",17.01,16.67 +"17",17.04,16.5 +"18",17.04,16.74 +"19",17.14,16.77 +"20",17.07,16.76 +"21",16.98,16.78 +"22",17.01,16.82 +"23",16.97,16.89 +"24",16.97,16.99 +"25",17.12,16.92 +"26",17.13,16.99 +"27",17.14,16.89 +"28",17.15,16.94 +"29",17.17,16.92 +"30",17.12,16.97 +"31",17.12,16.91 +"32",17.17,16.79 +"33",17.28,16.77 +"34",17.28,16.69 +"35",17.44,16.62 +"36",17.51,16.54 +"37",17.64,16.55 +"38",17.51,16.67 +"39",17.98,16.69 +"40",18.02,16.62 +"41",18,16.64 +"42",18.24,16.59 +"43",18.1,16.65 +"44",18.24,16.75 +"45",18.11,16.8 +"46",18.02,16.81 +"47",18.11,16.87 +"48",18.01,16.87 +"49",17.91,16.89 +"50",17.96,16.94 +"51",18.03,16.98 +"52",18.17,16.95 +"53",18.19,17 +"54",18.18,17.07 +"55",18.15,17.05 +"56",18.04,17 +"57",17.96,16.95 +"58",17.84,17 +"59",17.83,16.94 +"60",17.84,16.88 +"61",17.74,16.93 +"62",17.76,16.98 +"63",17.76,16.97 +"64",17.64,16.85 +"65",17.63,16.92 +"66",18.06,16.99 +"67",18.19,17.01 +"68",18.35,17.1 +"69",18.25,17.09 +"70",17.86,17.02 +"71",17.95,16.96 +"72",17.95,16.84 +"73",17.76,16.87 +"74",17.6,16.85 +"75",17.89,16.85 +"76",17.86,16.87 +"77",17.71,16.89 +"78",17.78,16.86 +"79",17.82,16.91 +"80",17.76,17.53 +"81",17.81,17.23 +"82",17.84,17.2 +"83",18.01,17.25 +"84",18.1,17.2 +"85",18.15,17.21 +"86",17.92,17.24 +"87",17.64,17.1 +"88",17.7,17.2 +"89",17.46,17.18 +"90",17.41,16.93 +"91",17.46,16.83 +"92",17.56,16.93 +"93",17.55,16.83 +"94",17.75,16.8 +"95",17.76,16.75 +"96",17.73,16.71 +"97",17.77,16.73 +"98",18.01,16.75 +"99",18.04,16.72 +"100",18.07,16.76 +"101",NA,16.7 +"102",NA,16.82 diff --git a/docs/01_uvod_do_R_1 2.html b/docs/01_uvod_do_R_1 2.html deleted file mode 100644 index f741c51..0000000 --- a/docs/01_uvod_do_R_1 2.html +++ /dev/null @@ -1,932 +0,0 @@ - - - - - - - - - -Metody vyhodnocování vodohospodářských dat - 3  R & RStudio - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
- -
- - -
- - - -
- -
-
-

3  R & RStudio

-
- - - -
- - - - -
- - -
- -
-
-
- -
-
-Cíle cvičení -
-
-
-
    -
  • Naučit se založit projekt
  • -
  • Rozeznat Základní soubory projektu a prostředí
  • -
  • Projekt či součást projektu uložit a otevřít
  • -
  • Orientovat se v hlavním okně
  • -
  • Přepínat mezi výpočtem v konzoli a skriptu
  • -
-
-
-

R je volně dostupné programové prostředí pro statistické výpořty a grafiku. Interpretr jazyka se základní funkcionalitou lze stáhnout ze stránek https://www.r-project.org.

-

RStudio (dnes také společnost Posit Inc.) je integrované vývojové prostředí (IDE), specializované pro práci s jazykem R. Obsahuje řadu užitečných nástrojů usnadňujících organizaci, tvorbu reportů, práci s SQL databázemi, vývojem funkčních balíčků a mnoho dalšího.

-
-

3.1 Hlavní okna a panely

-
-
-

-
Obrázek 3.1: Obr. 1: Základní layout prostředí RStudio.
-
-
-

V základním zobrazení Obrázek 3.1 bychom měli v levé části vidět panel Console. S konzolí nebudeme pracovat příliš intenzivně, slouží zejména k zadávání jednoduchých příkazů, například vyhodnocení proměnné. Pravou část vidíme rozdělenu na dolní a horní polovinu. V té horní jsou důležité panely Environment kde se nachází všechny objekty a vlastní funkce, které jsme vytvořili v rámci session. Dále Výchozí rozvržení je možné měnit Tools > Global options… > Pane layout.

-
-
-
- -
-
-Úloha -
-
-
-
    -
  1. Provedeme jedno užitečné nastavení duhových závorek
  2. -
-
-
-

-
Obr. 2: Nastavení duhových závorek a dalších vlastností v okně Global Options…
-
-
-
-
-
-
-

3.2 Zakládáme projekt

-

Je vhodné seskupovat svoji práci do zv. projektů - ucelených souborů skriptů, dat a výstupů - podle jednotlivých projektů, kterým se věnuji.

-
    -
  1. Při spuštěném programu z hlavní nabídky vybereme File > New Project…

    -Obr. 2 - Volba typu založení projektu
  2. -
  3. Vybereme New Directory a zvolíme New Project. Ostatní možnosti v tomto kurzu využívate nebudeme.

    -Obr. 3 - Volba typu projektu
  4. -
  5. Projektu je dále nutné zadat název Directory name. Pokud používate verzovací systém Git, můžete zaškrtnout volbu Create a git repository. V tomto kurzu používat nebudeme.

    -Obr. 3 - Volba umístění a názvu projektu
  6. -
  7. Po úspěšném založení projektu by se mělo zobrazit hlavní okno programu s přednastvenými panely. V nastavení učeben ČZU odpovídá rozvržení 1. obrázku.

  8. -
-
-
-
- -
-
-Úloha -
-
-
-
    -
  1. Vytvořte projekt s názvem “MVVD_cv1”.
  2. -
-
-
-
-
-

3.3 Pracovní postup a jeho opakovatelnost

-

K systematické práci a analýze zejména v exaktních vědách patří dodržování jistých pracovních zásad, které umožňují jednak objektivní kontrolu výsledků a jednak jejich opětovného získání. Níže je uvedeno pár zásad, jejichž dodržování vede k celkové duševní pohodě a rovnováze jak vaší vlastní, tak kolegů.

-
    -
  • Při psaní kódu se řiďte unifikovaným schématem jmenných konvencí, odsazování a vkládání mezer, a komentování. Jedno takové má například Hadley Wickham, či Google.
    -
  • -
  • Každé cvičení začněte ideálně tvorbou nového projektu v oddělené složce, nebo alespoň nového skriptu.
    -
  • -
  • Při zavírání RStudio neukládejte pracovní prostředí do souboru “*.RData”. Uloží se do něj vše co máte právě v Environment, což nemusí nutně pocházet z pracovního postupu uchovaného ve skriptech (byť při dodržování jiných zásad z tohoto sezamu by tomu tak být nemělo).
  • -
  • R bohužel umožnuje připínat a odepínat data.frame pomocí funkcí attach() a detach(), na které je vhodné ihned po přečtení této věty zapomenout.
  • -
-
-
-Kód -
?ls
-rm(list = ls())
-?objects
-
-
-
-
-Kód -
l <- list(A = 1:3, B = 3:5)
-attach(l)
-A
-
-
-
[1] 1 2 3
-
-
-
    -
  • dtto funkce fix(), která umožňuje manipulovat s daty formou GUI tabulkového procesoru.
    -

  • -
  • Naučte se používat :: značící jmenný prostor, ze kterého funkce pochází. Například filter() je funkce definována ve více jmenných prostorech často používaných balíčků.

  • -
  • Oddělujte vzájemně surová data, zpracovaná data, skripty analýz a výstupy. Souborová struktura projektu může vypadat například takto:

    -
    ~/mzp_analyza/
    - ├── data/
    - |   ├── raw_data/ 
    - |   └── zpracovana_data/ 
    - ├── skripty/
    - |   └── 01_load.R
    - ├── vystupy/
    - |  └── 01_liniovy_graf_m_denni_vody.pdf
    - └── mzp_analyza.RProj
  • -
- - -
- -
- - - - -
- - - - \ No newline at end of file diff --git a/docs/02_uvod_do_R_2.html b/docs/02_uvod_do_R_2.html index 395f9fd..118283b 100644 --- a/docs/02_uvod_do_R_2.html +++ b/docs/02_uvod_do_R_2.html @@ -461,27 +461,27 @@

11
-Negace +Negace
12
-Je \(x\) “pravda”? +Je \(x\) “pravda”?
13
-Je něco z obsahu “pravda”? +Je něco z obsahu “pravda”?
14
-Je vše z obsahu “pravda”? +Je vše z obsahu “pravda”?
15
-Je něco obsaženo v? +Je něco obsaženo v?
16
-Chybí něco něco z obsahu v? +Chybí něco něco z obsahu v?
@@ -759,15 +759,15 @@

1
-Sčítám vektory přičemž délka jednoho je násobkem délky druhého. +Sčítám vektory přičemž délka jednoho je násobkem délky druhého.
2
-Násobím vektory přičemž délka jednoho je násobkem délky druhého. +Násobím vektory přičemž délka jednoho je násobkem délky druhého.
3
-Násobení vektoru číslenou hodnotou +Násobení vektoru číslenou hodnotou
@@ -798,35 +798,35 @@

Práce s vekto
1
-Tvorba vektoru \(\boldsymbol{\mathrm{x}}\) různými úkony. Použití sekvence, repetice, opakování a vzorkování. +Tvorba vektoru \(\boldsymbol{\mathrm{x}}\) různými úkony. Použití sekvence, repetice, opakování a vzorkování.
2
-Transpozice vektoru. +Transpozice vektoru.
3
-Pojmenování pozic ve vektoru +Pojmenování pozic ve vektoru
4
-Výběr hodnot z vektoru na základě podmínky +Výběr hodnot z vektoru na základě podmínky
5
-Výběr hodnot z vektoru na základě pozice +Výběr hodnot z vektoru na základě pozice
-
         [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
-[1,] 6.663615 122.7062 612.4235 1.463653 11.72349 15.54336 277.8602 1.877454
+
         [,1]     [,2]     [,3]     [,4]     [,5]       [,6]     [,7]     [,8]
+[1,] 418.2779 46.00991 898.1805 66.07044 161.6351 0.08361656 79.08682 24.76843
          [,9]    [,10]
-[1,] 500.5559 437.5033
-        B         D         E         G         H         I         J 
-11.077285  1.209815  3.423958 16.669140  1.370202 22.373108 20.916580 
+[1,] 257.3706 1230.501
+         A          F          H          I          J 
+20.4518433  0.2891653  4.9767891 16.0427731 35.0784996 
          A          B          C 
- -2.581398  11.077285 -24.747191 
+ 20.451843 -6.783061 -29.969659
@@ -877,7 +877,7 @@

1
-Převod na rozměr \(2\times 2\) +Převod na rozměr \(2\times 2\)

@@ -979,19 +979,19 @@

1
-Struktura objektu +Struktura objektu
2
-Dimenze matice +Dimenze matice
3
-Singulární rozklad +Singulární rozklad
4
-Prvky na diagonále matice +Prvky na diagonále matice
@@ -1065,12 +1065,12 @@

DF <- data.frame(name = letters[1:5], 
                  value = rnorm(5))
 DF
-##   name      value
-## 1    a  0.5001322
-## 2    b -0.4163139
-## 3    c -1.1695121
-## 4    d  1.6076695
-## 5    e -0.1154482
+##   name       value
+## 1    a  1.12780592
+## 2    b  0.40404050
+## 3    c  0.19324584
+## 4    d -0.95829378
+## 5    e  0.04486513
 DF["name"]        # podvýběr do data.frame
 ##   name
 ## 1    a
@@ -1096,7 +1096,7 @@ 

str(DF) ## 'data.frame': 365 obs. of 3 variables: ## $ mon : chr "Jan" "Jan" "Jan" "Jan" ... -## $ value: num -1.77 1.08 -2.406 -0.258 2.643 ... +## $ value: num 1.0997 -0.7848 -0.0111 -0.4826 -0.6116 ... ## $ yr : num 2001 2001 2001 2001 2001 ... names(DF) ## [1] "mon" "value" "yr" @@ -1142,7 +1142,7 @@

1
-Řetěz podmínek se uzavře v momentě, kdy je výraz v závorce poprvé vyhodnocen jako pravdivý. +Řetěz podmínek se uzavře v momentě, kdy je výraz v závorce poprvé vyhodnocen jako pravdivý.
@@ -1180,11 +1180,11 @@

1
-Varianta “A nenastala, +Varianta “A nenastala,
2
-nastala varianta “B”, tzn. výraz je vyhodnocen ve tvaru \(2\cdot 3 = 6\) +nastala varianta “B”, tzn. výraz je vyhodnocen ve tvaru \(2\cdot 3 = 6\)
@@ -1295,11 +1295,11 @@

1
-Prováděj +Prováděj
2
-Vnořenou podmínkou následovanou klíčovým slovem break definujeme konec cyklu. +Vnořenou podmínkou následovanou klíčovým slovem break definujeme konec cyklu.
@@ -1352,12 +1352,12 @@

1
-Příklad funkce, která vyhledá nejbližší z hodnot vektoru x k referenční hodnotě value. +Příklad funkce, která vyhledá nejbližší z hodnot vektoru x k referenční hodnotě value.
-
Hodnota nejblíže 0 z vektoru x je: 0.01184226
+
Hodnota nejblíže 0 z vektoru x je: -0.001569647
@@ -1367,16 +1367,16 @@

  1. Zvolte platné tvrzení pro data.frame: -
    - +
    +
  2. Matici je možné vytvořit z vektoru přidáním dimenze:
  3. Co je výsledkem výrazu: \(\sin(\frac{0}{0})\)
  4. Vyberte, platné tvrzení pro list: -
    - +
    +
  5. Napište výraz pro nepřiřazenou číselnou hodnotu :
  6. diff --git a/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1 2.dvi b/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1 2.dvi deleted file mode 100644 index 01443de..0000000 Binary files a/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1 2.dvi and /dev/null differ diff --git a/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1 2.svg b/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1 2.svg deleted file mode 100644 index bf3a58b..0000000 --- a/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1 2.svg +++ /dev/null @@ -1,196 +0,0 @@ - - - - - -z -11 - -z -12 - -z -13 - -·· -· - -z -1 -N -z -21 - -z -22 - -z -23 - -z -2 -N -z -31 - -z -32 - -z -33 - -z -3 -N -.. -. -. -. -. - -z -T -1 -z -T -2 -z -T -3 -z -TN - -y -11 - -y -12 - -y -13 - -·· -· - -y -1 -N -y -21 - -y -22 - -y -23 - -y -2 -N -y -31 - -y -32 - -y -33 - -y -3 -N -.. -. -. -. -. - -y -T -1 -y -T -2 -y -T -3 -y -TN - -x -11 - -x -12 - -x -13 - -·· -· - -x -1 -N -x -21 - -x -22 - -x -23 - -x -2 -N -x -31 - -x -32 - -x -33 - -x -3 -N -.. -. -. -. -. - -x -T -1 -x -T -2 -x -T -3 -x -TN - -dimenzesloup -ce -ˇ - -adky - - - \ No newline at end of file diff --git a/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1.dvi b/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1.dvi index 2ff2529..44ac5cb 100644 Binary files a/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1.dvi and b/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1.dvi differ diff --git a/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1.svg b/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1.svg index e9fa9d9..a6f784b 100644 --- a/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1.svg +++ b/docs/02_uvod_do_R_2_files/figure-html/unnamed-chunk-11-1.svg @@ -2,11 +2,11 @@