Soubory pro R
Na to, abychom mohli pracovat v R, nepotřebujeme umět programovat, ale musíme být schopni s ním pracovat. Prostředí RStudio, je stejně jako R zadarmo a je určeno pro usnadnění práce, kterou po prvním nutném seznámení zvládne každý. My jsme se zde pokusili představit základy práce s R představit v 11 lekcích, na něž navazují nejrůznější rozšíření, která Vaši předchůdci potřebovali při práci na BP a DP.
ver. 201216
Základní externí informační zdroje
On-line učebních materiálů, které jsou vynikajícím způsobem připraveny, je hodně a z nich pro Vás vybíráme následující:
- Konečná K., et Koláček J.: Výuka jazyka R
- Budinská E.: Analýza dat v R
- kompletní přehled videí o práci je kupříkladu na tomhle kanále
- jako rychlý, přehledný textový návod může sloužit toto
Instalace
- nejprve musíte stáhnout a nainstalovat R, kompletní přehled možností je zde
- aktuální verze R pro Windows7-10 (září 2020) je zde (odkaz vede přímo na instalační soubor)
- pak si musíte stáhnout a nainstalovat R Studio, kompletní přehled možností je zde
- aktuální verze R Studia pro Windows7-10 (září 2020) je zde (odkaz vede přímo na instalační soubor)
- výše uvedené odkazy vedou na nejaktuálnější (v září 2020) verze, ve škole na počítačích jsou však verze ze září 2018, proto ani některé věci budou jinak ve škole a doma, s tím ale nejsme schopni nic udělat 🙂
- případný problém s instalací packages je způsoben diakritikou v názvu účtu v Users
- Problém jsem našel v tom, že instalaci packages provádí R Studio do adresářové struktury R/win-library/3.5, kterou vytváří sám ve složce Dokumenty, jež je pod složkou Users, mno a pokud se účet jmenuje třeba”uživatel”, tak si R Studio, jelikož v tomto případě nezná diakritiku, do adresářové struktury píše místo “ž” otazník a pak logicky není schopen tuto cestu najít, protože hledá v Users složku “u?ivatel”, která tam není, bo je tam “uživatel”. Pokud k tomu dojde, tak je třeba ručně zadat celou strukturu R/win-library/3.5 do Dokumentů v Průzkumníkovi nebo File Manageru, pak je třeba v R Studiu spustit instalaci prvního package oklikou přes Import Dataset – From Excel, který instaluje package automaticky a už sám vidí námi vytvořenou cestu – ten nainstaluje package readxl, mno a teprve pak už lze instalovat klasicky přes Packages-Install, protože software už ví, kde struktura adresářů R/win-library/3.5 je, a už je schopen do ní ukládat.
- R je freeware běžící na nejrůznějších systémech a skripty se mezi nimi dají tahat, ale přišli jsme na to, že například mezi Macy a W10 dochází k drobným odchylkám, které jsme ale rychle vyladili, tak to snad bude OK i nadále
- do setwd vkládejte na školních počítačích “C:/Users/ucebna/Documents/R”
- v našich materiálech je cesta “C:/Users/uživatel/Documents/R”, protože tak to bylo v roce 2018 a pro rok 2019 účet přejmenovali
- cesta k souborům na flešce vy měla být “E:/R/nazevsouboru.xlsx“, pokud je máte na počítači, pak je dávejte do R v Dokumenty, takže cesta bude “C:/Users/ucebna/Documents/R/nazevsouboru.xlsx“
Klávesové zkratky
R používá několik speciálních symbolů, jejichž klávesové zkratky je dobré znát nazpaměť:
- CTRL + Enter: vykonávání příkazů ze zdrojového souboru skriptu do Console
- Alt + 35: symbol dvojitého křížku pro vkládání poznámek ve skriptu
- Alt + “dolní podtržítko”: vytvoření symbolu pro definování objektů, tedy “šipka”
- Alt + 36: symbol dolaru pro výběry sloupců v datových tabulkách
- Alt + 34: uvozovky
- Alt + 126: vlnovka pro výběr skupin v proměnné
Video 1 – Studijní materiály
Video 2 – Spuštění programu
Video 3 – Základy ovládání
1. Lekce: Funkcionalita
Funkcionalitu si nejlépe ukážeme na konkrétním případě, kterým bude úkol na sestrojení box-plotu z dat uložených v MS Excel.
Data – zde
R soubor – zde
Video 4 – Instalace “package”, import dat, vytvoření objektu
Video 5 – Funkcionalita na příkladu krabicového grafu
Video 6 – Přehled funkcionality- dokončení
Video 9 – Export grafů
Co jsme se naučili:
- otevřít a program a ukončit práci programu
- poznali jsme aktivaci knihovny
- uložení objektu
- práce s nápovědou
- práce s funkcemi
- zadávání atributů a jejich funkčnost
Poznané funkce:
- setwd() – nastavuje pracovní adresář
- library() – aktivuje package
- read_excel() – s cestou načte soubor s koncovkou XLS a XLSX
- class() – identifikuje typ objektu
- boxplot() – vytvoří z daného souboru box-plot podle nastavených atributů
- help() – vypíše nápovědu k zadané funkci
- c() – funkce pro definování vektorů
- bxp() – funkce pro úpravu grafiky uloženého objektu z výstupu funkce boxplot()
- (boxplot()) – vypíše číselné údaje z funkce boxplot()
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Pohlaví/(délka, výška, šířka)”, v MS Excel si rozdělte data podle pohlaví (1= samci, 2= samice), v R vytvořte boxploty srovnávající variabilitu samců a samic postupně podle délky, výšky a šířky.
2. Lekce: Práce s vektory
V této části se naučíme pracovat se základními objekty, kterými jsou vektory a od nich odvozené faktory (= kategoriálními vektory)
Data – budeme si je postupně sami tvořit v R
R soubor – zde
Video 7 – Kompletní 2. lekce
Co jsme se naučili:
- operátory a v rámci nich používat R jako kalkulačku
- definování vektoru
- spojování vektorů
- mazání objektů
- pojmenovávání prvků objektů
- postup výběru prvků (jednoduché hranaté závorky)
- funkce pro charakteristiky polohy a variability
- že funkce lze kombinovat
Poznané funkce:
- rm() – zmaže zadaný objekt
- names() – pojmenovává prvky objektů (v pořadí prvků)
- lenght() – vrací dálku vektoru
- mean() – aritmetický průměr z číselného vektoru
- median() – medián číselného vektoru
- min() – minimální hodnota z číselného vektoru
- max() – maximální hodnota z číselného vektoru
- quantile() – kvantily z číselného vektoru
- sd() – směrodatná odchylka z číselného vektoru
- var() – rozptyl z číselného vektoru
- sqrt() – druhá odmocnina z čísla
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Podzemní voda na rašeliništích”. Použijte One-way ANOVA a Kruskal-Wallisův test k testování
- V postu Data si stáhněte XLS tabulku označenou jako “Pohlaví/(délka, výška, šířka)”, v MS Excel si rozdělte data podle pohlaví (1= samci, 2= samice), v R vypočítejte hodnoty průměru, mediánu,minima, maxima, dolního a horního kvartilu, směrodatné odchylky, rozptylu a variačního koeficientu délky jedinců zvlášť pro jednotlivá pohlaví.
3. Lekce: Práce s “tabulkami”
Minule jsme se podívali na vektory, nyní se podíváme na práci s tabulkami, které budeme hodnotit častěji než samotné vektory/faktory
Data – budeme si je postupně sami tvořit v R
R soubor – zde
Video 8 – 3. lekce, 1. část (matice a tvorba datových tabulek)
Video 10 – 3. lekce, 2. část (práce s datovými tabulkami a seznamy)
Co jsme se naučili:
- poznali jsme typy “tabulek” = matice, pole, datové tabulky, seznamy
- ručně spojením vektorů vytvořit výše uvedené datové typy
- výběry položek z výše uvedených datových typů
- vytvořit prázdnou matici, pole, datovou tabulku, seznam a nakrmit je daty
- přidání sloupců (a jiných objektů) do již existujících matic, polí, datových tabulek, seznamů
- spojení datových tabulek podle definice
- konverzi mezi maticí a datovou tabulkou
- výběry z matic, polí, datových tabulek, seznamů
- seřazení hodnot vektoru
- vytvořit seznam
- tvořit dotazy na složité seznamové struktury
Poznané funkce:
- cbind() – spojuje vektory do matice po sloupcích; stejně tak je schopna slepit datové tabulky a matice
- rbind() – spojuje vektory do matice po řádcích
- t() – transponuje matici
- matrix() – vytvoří matici
- colnames() – pojmenování sloupců
- rownames() – pojmenování řádků
- array() – vytvoří pole
- data.frame() – vytvoří datovou tabulku
- rep() – příkaz pro opakování hodnoty (často při vytváření vektorů)
- merge() – spojení datových tabulek
- is.factor() – dotaz jestli je vektor faktor
- summary() – volání sumárních dat z datové tabulky
- as.data.frame() – vytvoří z matice datovou tabulku
- as.matrix() – vytvoří z datové tabulky matici
- sort() – seřadí hodnoty vektoru
- list() – vytvoří seznam
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Podzemní voda na rašeliništích”. V R si funkcí c() vytvořte proměnné pH1 a pH2, které bude mít stejné hodnoty jako v dané XLS tabulce. Spojte je do jediné matice. Tuto matici převeďte na datovou tabulku. Získejte sumární informace za obě proměnné této matice.
- V postu Data si stáhněte XLS tabulku označenou jako “Pohlaví/(délka, výška, šířka)”. V R si ručně vytvořte obraz této tabulky.
4. Lekce: Histogram a sloupcové grafy
Histogram i sloupcové grafy lze MS Excel vytvořit vcelku jednoduše, ale naučme se je tvořit i v R (když už nic, tak vypadají lépe).
Data – vytvoříme si je sami
R soubor – zde
Video 11 – Kompletní 4. lekce
Co jsme se naučili:
- vytvořit histogram s absolutními relativními počty
- upravit histogram graficky
- využít data z funkce histogram po úpravě k tvorbě obecného grafu
- vytvořit kumulativní histogram
- vytvořit a upravit sloupcový graf
Poznané funkce:
- hist() – vytvoří histogram
- cumsum() – přepočítá vektor do své kumulativní podoby
- (hist()) – vypíše hodnoty histogramu
- plot() – vykreslí podle zadaných hodnot graf
- histogram() – tvorba histogramu v package lessR
- barplot() – vytvoří sloupcový graf
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Podzemní voda na rašeliništích”. Převeďte ji do R. V R vytvořte histogram a kumulovaný histogram pro proměnnou pH1.
- V postu Data si stáhněte XLS tabulku označenou jako “Tělesná teplota (ráno, v poledne, večer)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte) a vytvořte v R sloupcový graf srovnávající teplotu každého jedince v ráno, poledne a večer.
Cvičení 5
Úkol pro úvod 5. cvičení je zde
5. Lekce: Posouzení normality dat
Použití většiny parametrických metod je mimo jiné vázáno na předpoklad dat pocházejících ze základního souboru s normálním rozdělením. Tento předpoklad musíme posoudit.
Data – zde
R soubor – zde
Video 12 – Kompletní 5. lekce
Co jsme se naučili:
- vytvořit q-q plot
- vypočítat šikmost a špičatost
- vypočítat Shapiro-Wilks test
Poznané funkce:
- qqnorm() – vytvoří q-q graf
- qqline() – do q-q grafu nakreslí přímku pro normální rozdělení
- skewness() – vypočítá šikmost v package e1071
- kurtosis() – vypočítá špičatost v package e1071
- shapiro.test() – vypočítá Shapiro-Wilks test a vrátí hodnotu testu a jeho p
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Pohlaví/(délka, výška, šířka)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Posuďte pomocí q-q grafu normalitu proměnné šířka zvlášť pro samce (=1) a samice (=2).
- Použijte data z předchozího úkolu a vypočítejte hodnoty šikmosti a špičatosti pro šířku zvlášť pro samce (=1) a samice (=2).
- Použijte data z předchozího úkolu a vypočítejte test normality Shapiro-Wilks testem pro šířku zvlášť pro samce (=1) a samice (=2).
Cvičení 6
Úkol pro úvod 6. cvičení je zde
6. Lekce: T-testy a F-test
Při používání základních parametrických testů už poznáte, že naučit se R v R Studio byl dobrý nápad, protože vše jde snadno zadáním jediného příkazu.
Data – zde
R soubor – zde
Video 13 – Kompletní 6. lekce
Co jsme se naučili:
- vypočítat jednotlivé t-testy (jednovýběrový, párový, dvouvýběrový, oboustranný, jednostranný, s/bez rovnosti rozptylů)
- vypočítat F-test
Poznané funkce:
- t.test() – vypočítá t-testy
- var.test() – vypočítá F-test
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Pohlaví/(délka, výška, šířka)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Otestujte jednovýběrovým t-testem, jestli existuje rozdíl mezi průměrnou šířkou samce (=1) z daných měření a očekávanou šířkou 100.
- V postu Data si stáhněte XLS tabulku označenou jako “Tělesná teplota (ráno, v poledne, večer)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Otestujte párovým t-testem, jestli se liší teplota jedince ráno a večer.
- V postu Data si stáhněte XLS tabulku označenou jako “Pohlaví/(délka, výška, šířka)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Otestujte párovým t-testem rozdíl v průměrech délky mezi samci a samicemi (1= samci, 2= samice), použijte oboustranný test a variantu pro rovnost rozptylů.
- V postu Data si stáhněte XLS tabulku označenou jako “Pohlaví/(délka, výška, šířka)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Otestujte F-testem rozdíl v rozptylech výšky mezi samci a samicemi (1= samci, 2= samice).
Po této lekci je mid-term exam!!!!!!!!!
Co se v něm může objevit?
- výpočty charakteristik polohy a variability (průměr, medián, modus, rozptyl, směrodatná odchylka, kvartily, minimum, maximum, variační koeficient)
- posouzení normality dat (šikmost, špičatost, Shapiro-Wilks test v R nebo Kolmogorov-Smirnov test v MS Excel)
- testování hypotéz – t-testy, F test (výpočet jednovýběrového t-testu, párového t-testu, dvouvýběrového t-testu, F-testu)
Data budou zadána v R scriptu pomocí funkcí c(), pokud je k výpočtu třeba tabulka dat (například v případech počítání t-testů a F-testu), tak součástí zadání jsou i příkazy na vytvoření matice pomocí cbind() a tabulky dat as.data.frame(). Tedy tyto příkazy si nebudete tvořit sami, ale budete je mít už od nás napsané – jen je budete muset klávesou CTRL+Enter provést. Toto opatření je nutné z důvodu zjištěné nepřímé funkcionality instalace packages na počítačích v ZR-Z12 – problém, který jsme zažili po prvním spuštění RStudia se bude při každé aktualizaci opakovat a nemůžeme riskovat, že se to stane při zápočtu. Kdo by chtěl výpočty dělat v MS Excel, tak si bude muset čísla do sešitu překopírovat/přepsat.
Při mid-term testu budete mít k dispozici kromě souboru s daty i soubor se všemi šesti lekcemi R, který je zde.
7. Lekce: Testování rozdílů v četnostech – test dobré shody, Fisherův exaktní test
V této lekci se naučíte testovat výsledky výzkumů, jehož data jsou nominální, čili se naučíme přehled metod určených k testování četností.
Data – zde, část dat si vytvoříme sami
R soubor – zde (aktualizováno a doplněno 15.112018)
Video 14 – Chí-kvadrát test
Video 15 – Fisherův exaktní test
Video 16 – Kolmogorov-Smirnov test
Video 17 – Grafická prezentace nominálních dat
Co jsme se naučili:
- počítat chí-kvadrát test dobré shody (jeden výběr oproti teoretickému rozdělení)
- vytvořit kontingenční tabulku
- vypočítat dvouvýběrový chí-kvadrát test
- vypočítat Fisherův exaktní test
- vypočítat Kolmogorov-Smirnov test
- vytvořit z četnostních dat koláčový graf
- doplnit k grafu legendu
- vytvořit mozaikový graf z četností dvou kategoriálních proměnných
Poznané funkce:
- table() – vytvoří kontingenční tabulku
- chisq.test() – vypočítá chí-kvadrát testy
- fisher.test() – vypočítá Fisherův exaktní test
- ks.test() – vypočítá Kolmogorov-Smirnov test
- pie() – vytvoří koláčový graf
- legend() – vytvoří “legendu” ke grafu
- mosaicplot() – vytvoří mozaikový graf
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Ostrorep – F(barva, trny)/M(přítomnost)”. Převeďte ji do R. Otestujte chí kvadrát testem, jestli se existuje vliv barvy samice na ochotu samců na páření. Poznámka: Aby šel výpočet v R udělat budete muset proměnné zadat jako as.factor.
- Náhodným výběrem na zaplevelené zahradě jsme sebrali 8 rostlin Anagalis arvensis (drchnička rolní) – 7 rostlin mělo květy červené a jedna modré. Použijte Fisherova exaktního testu k rozhodnutí, jestli je poměr zastoupení červených a modrých květů 1:1.
- Věkové zastoupení skotu v ČR v roce 2017 bylo: 193699 ks do 6 měsíců, 212989 ks ve věku 6-12 měsíců, 299249 ks ve věku 1-2 roky a 660426 ks ve věku nad 2 roky. Ve stejném období bylo v Jihočeském kraji v těchto kategoriích 27496 ks, 34433 ks, 43953 ks a 55362 ks. Použijte Kolmogorov-Smirnov testu k testování potenciální rozdílu mezi počty kusů skotu v Jihočeském kraji a ČR.
Cvičení 9
Úkol pro úvod 9. cvičení je zde
8. Lekce: Mann-Whitney test a Wilcoxon test (= testy pro dva výběry s ordinálními daty)
V této lekci se naučíte testovat výsledky výzkumů, jehož data jsou ordinální. Tyto testy jsou založeny na testování diferencí v pořadí.
Data – zde, část dat si vytvoříme sami
R soubor – zde
Video 18 – Kompletní 8. lekce
Co jsme se naučili:
- testovat hypotézy Mann-Whitney testem
- testovat hypotézy Wilcoxon testem
Poznané funkce:
- wilcox.test() – vypočítá M-W test a W test
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Tělesná teplota (ráno, v poledne, večer)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Otestujte Wilcoxonovým testem, jestli se liší teplota jedince ráno a večer.
- V postu Data si stáhněte XLS tabulku označenou jako “Pohlaví/(délka, výška, šířka)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Otestujte Mann-Whitney testem rozdíl v průměrech délky mezi samci a samicemi (1= samci, 2= samice), použijte oboustranný test a variantu pro rovnost rozptylů.
9. Lekce: One-way ANOVA, RMANOVA, Kruskal-Wallis test, Friedmanův test (= testy pro více výběrů a jeden faktor)
Tato obsáhlá lekce bude věnována problematice testování hypotéz, kde data obsahují více výběrů než dva a omezíme se na test jednoho faktoru (v případě “within” efektu to budou v podstatě faktory dva). Naučíme se používat větší množství packages a budeme i nuceni používat zadání a příkazů, kterým se věnujeme detailněji až v navazujícím kurzu.
Data – zde
R soubor – zde
Video 19: Kompletní 9. lekce
Co jsme se naučili:
- testovat homogenitu variancí Leveneovým testem
- testovat data, kdy máme k dispozici více nezávislých výběrů a vyvážený počet měření
- používat Tukeyho a Dunnettův post-hoc testy
- testovat více závislých výběrů
- vše výše uvedené v parametrické i neparametrické variantě
- čistě technicky jsme se naučili zadávat náhodné efekty a testovat nevyvážené modely
Poznané funkce:
- leveneTest() – testuje homogenitu variancí (package car)
- aov() – vypočítá test ANOVA pro vyvážená data (jedno i vícefaktorová ANOVA, fixed in random efekt)
- summary() – vypíše výsledky uložených testů
- TukeyHSD() – vypočítá Tukey HSD post-hoc test pro výsledky aov()
- ggline() – vykreslí komplikované grafy z výsledků funkcí testů (package ggpubr)
- glht() – umožňuje vypočítat různé druhy pos-hoc testů z výsledků funkcí testů (package multcomp)
- cld() – získá informace z příkazu glht() a umožní jejich tisk do grafu (package multcomp)
- lmer() – lineární model (my jsme jej použili jako ANOVA model) pro výpočet ANOVA na nevyvážených datech (package lme4)
- anova() – vypočítá ANOVA z výsledku příkazu lmer() a dalších modelů
- kruskal.test() – vypočítá Kruskal-Wallis test
- pairwise.wilcox.test() – vypočítá post-hoc test pro Kruskal-Wallis test
- posthoc.kruskal.nemenyi.test() – vypočítá Nemeyi post-hoc test pro Kruskal-Wallis test (package PMCMR)
- friedman.test() – vypočítá Friedmanův test
- posthoc.friedman.nemenyi.test() – vypočítá Nemeyi post-hoc test pro Friedmanův test (package PMCMR)
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Výška rostliny/(substrát, poloha)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Otestujte pomocí One-way ANOVA a Mann-Whitney testem s příslušnými post-hoc testy, jestli se liší výška rostliny podle typu substrátu (polohu nebereme v potaz).
- V postu Data si stáhněte XLS tabulku označenou jako “Tělesná teplota (ráno, v poledne, večer)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Otestujte pomocí RMANOVA a Friedmanovým testem s příslušnými post-hoc testy, jestli se liší teplota jedince ráno, v poledne a večer.
Cvičení 11
Úkol pro úvod 11. cvičení je zde
10. Lekce: Kovariance a korelace
Tato a následující lekce už nejsou věnovány testováním rozdílů mezi výběry, ale souvislostem mezi proměnnými. V této lekci se naučíte pracovat se souvislostmi proměnným na základě kovariancí a korelačních koeficientů.
Data – zde
R soubor – zde
Video 20: Kompletní 10. lekce
Co jsme se naučili:
- vypočítat kovariační koeficienty a kovariační matici
- vypočítat korelační koeficienty a korelační matici – Pearson, Spearman, Kendal
- vizualizovat korelační matici
- vypočítat parciální korelační koeficienty
Poznané funkce:
- cov() – vypočítá kovariační koeficienty zadaných proměnných
- cor() – vypočítá korelační koeficienty zadaných proměnných
- cor.mtest() – vypočítá hodnotu p pro korelační koeficient (package corrplot)
- corrplot() – vizualizace korelační matice (package corrplot)
- pcor() – vypočítá parciální korelační koeficienty a jejich hodnotu p (package ppcor)
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Pohlaví/(délka, výška, šířka)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Vypočítejte korelační matici Pearsonových korelačních koeficientů délky, výšky a šířky zvlášť pro samce (=1) a samice (=2). Určete hodnotu p pro každý korelační koeficient. Vypočítejte i kovariační matici.
- V postu Data si stáhněte XLS tabulku označenou jako “Ostrorep – F(šířka, hmotnost)/M(biomasa)”. Převeďte ji do R (popřípadě si ji nejprve V MS Excel upravte). Vypočítejte korelační matici Spearmanových korelačních koeficientů všech tří proměnných.
11. Lekce: Lineární regrese
V poslední lekci základního kurzu se v R Studiu naučíme ovládat lineární regresi jak jednoduchou i mnohonásobnou. Podíváme se tedy na případ, kdy na straně vysvětlujících proměnných je jejich větší počet a všechny použité proměnné jsou poměrové s normálním rozdělením – k dalším podmínkám viz text zde.
Data – zde
R soubor – zde
Video 21: Jednoduchá lineární regrese
Video 22: Mnohonásobná lineární regrese
Co jsme se naučili:
- vypočítat jednoduchou lineární regresi
- regresní diagnostiku na grafech reziduálů
- vypočítat mnohonásobnou lineární regresi
- rozhodnout o rozdílech dvou kompetičních modelů
- vyčítat stepwise regresi
Poznané funkce:
- lm() – vestavěná funkce R pro výpočet lineárního modelu
- abline() – vykreslí regresní přímku do xy grafu
Samostatná páce pro zopakování:
- V postu Data si stáhněte XLS tabulku označenou jako “Ostrorep – F(šířka, hmotnost)/M(biomasa)”. Převeďte ji do R. Existuje závislost množství samců ostrorepa zavěšených při páření hmotnosti samice?
- V postu Data si stáhněte XLS tabulku označenou jako “Regrese-vejce”. Převeďte ji do R. Identifikujte závislost objemu vajec na vzdálenosti hnízda od volné hladiny a od nejbližšího hnízda – vyberte nejlepší model.
Po této lekci je 2. část zápočtového testu!!!!!!!!
Co se v něm může objevit?
- Chí kvadrát test, Fisherův exaktní test, Kolmogorov-Smirnov test
- Mann-Whitney test, Wilcoxon test
- One-way ANOVA, Tukey HSD post-hoc test, Dunnett post-hoc test, Kruskal-Wallis test s post-hoc testem, Fiedmanův test s post-hoc testem
- kovariance, korelace (Pearson, Spearman)
- jednoduchá lineární regrese, mnohonásobná lineární regrese
Data budou zadána v R scriptu pomocí funkcí c(), pokud je k výpočtu třeba tabulka dat, tak součástí zadání jsou i příkazy na vytvoření matice pomocí cbind() a tabulky dat as.data.frame(), popřípadě zadání faktoru as.factor(). Tedy tyto příkazy si nebudete tvořit sami, ale budete je mít už od nás napsané – jen je budete muset klávesou CTRL+Enter provést. Toto opatření je nutné z důvodu zjištěné nepřímé funkcionality instalace packages na počítačích v ZR-Z12 – problém, který jsme zažili po prvním spuštění RStudia se bude při každé aktualizaci opakovat a nemůžeme riskovat, že se to stane při zápočtu. Kdo by chtěl výpočty dělat v MS Excel, tak si bude muset čísla do sešitu překopírovat/přepsat.
Při 2. části zápočtu budete mít k dispozici kromě souboru s daty i soubor s prvními šesti lekcemi R (zde) a druhu část s dalšími pěti lekcemi (zde).
Další ovládací prvky a statistické metody v R**
Nic z následujícího není předmětem výuky, ni zápočtu, ni zkoušky. Jde jen o materiály pro zájemce, kteří potřebují řešit složitější věci.
AdvancedR1: Vytvoření dummy variables z faktoru
- syntaxe pro vytvoření nové tabulky z faktoru nástrojem package caret a následné spojení s původní tabulkou funkcí cbind()
AdvancedR2: Import všech listů z sešitu MS Excel
- skript pro import všech listů ze sešitu MS Excel do objektu list a jejich převod na objekt data.frame a pojmenování z názvu listu
sheets <- readxl::excel_sheets("D:/cesta/soubor.xlsx")
data1 <- lapply(sheets, function(X) readxl::read_excel("D:/cesta/soubor.xlsx", sheet = X))
data1 <- lapply(data1, as.data.frame) # pro některé příkazy je NUTNÉ mít data.frame!!!!!
names(data1) <- sheets # pojmenování jednotlivých tabulek názvy listů
Advanced R3: Z-test a jeho využití při testování rozdílů v poměrech
- prop.test() – z-test
- prop.trent.test() – test trendu v poměrech
- p.adjust() – upravéní hodnoty p v multiple comparison
### Z-test ###
# Liší se klíčivost semen po 1, 2 a 3 letech skladování? Každý rok byl k dispozici jiný počet semen
# http://www.sthda.com/english/wiki/two-proportions-z-test-in-r
# https://sphweb.bumc.bu.edu/otlt/MPH-Modules/BS/R/R6_CategoricalDataAnalysis/R6_CategoricalDataAnalysis6.html
# test rozdílů v poměrech
klici <- c(400,300,100)
semena <- c(500,400,300)
res1 <- prop.test(klici, semena)
res1
# post-hoc porovnani
# https://stats.stackexchange.com/questions/116323/compare-proportions-more-than-two-groups
# používá se funkce p.adjust()
prop.test(x = c(400, 100), n = c(500, 300))
prop.test(x = c(400, 300), n = c(500, 400))
prop.test(x = c(300, 100), n = c(400, 300))
ps <- c(2.2e-16,2.2e-16,0.08687)
lab <- c("1vs3","2vs3","1vs2")
tab <- data.frame(lab, ps)
?p.adjust
tab$Bonferroni <- p.adjust(tab$ps, method = "bonferroni")
# test vazby v postupu kliceni = test trendu, dá se požít na vývoj klíčení za
# více než dva roky
res2 <- prop.trend.test(klici, semena)
res2