VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE FAKULTA INFORMATIKY A STATISTIKY
BAKALÁŘSKÁ PRÁCE
2014
Robin Jiráň
VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE FAKULTA INFORMATIKY A STATISTIKY
Název bakalářské práce:
Statistické metody v R
Autor:
Robin Jiráň
Katedra:
Katedra statistiky a pravděpodobnosti
Obor:
Statistika a ekonometrie
Vedoucí práce:
Ing. Tomas Löster,Ph.D.
Prohlášení: Prohlašuji, že jsem bakalářskou práci na téma „Statistické metody v R“ zpracoval samostatně. Veškerou použitou literaturu a další podkladové materiály uvádím v seznamu použité literatury. V Praze dne 9. ledna 2014
................................ Robin Jiráň
Poděkování: Rád bych na tomto místě poděkoval Ing. Tomáši Lösterovi, Ph.D. za vedení mé bakalářské práce a za podnětné návrhy, které ji obohatily.
Abstrakt Název práce: Autor: Katedra: Vedoucí práce:
Statistické metody v R Robin Jiráň Katedra statistiky a pravděpodobnosti Ing. Tomáš Löster, Ph.D.
Tato práce se zabývá nejdůležitějšími statistickými metodami, způsoby výpočtů a syntaxí v prostředí statistického programu R. Obsahem úvodních částí bakalářské práce je vytvoření stručného teoretického základu k hlavním kapitolám praktické části. Dále je vysvětleno samotné využití programu R k výpočtům statistických úloh. Představeny jsou jednotlivé součásti zápisu funkcí v programu R a popis důležitých argumentů, předvedení náhledů výstupů, a to jak textových tak grafických. Klíčová slova: argument, funkce, graf, parametr, proměnná.
Abstract Title: Author: Department: Supervisor:
Statistical methods in R Robin Jiráň Department of Statistics and Probability Ing. Tomáš Löster, Ph.D.
This thesis deals with the most important statistic methods, ways of calculating and syntax in the environment of R statistic programme. The initial parts of the bachelor thesis content a brief theoretical basis for the main chapters of the practical part. In the following chapters the use of R programme itself for calculating statistic tasks is explained. The particular parts of recording functions in R programme are presented, important arguments are described and both text and graphical inputs are displayed. Keywords: argument, function, graph, parameter, variable.
1
OBSAH ÚVOD .......................................................................................................................... 3 TEORETICKÁ ČÁST ............................................................................................... 4 2.1 ÚVOD DO POPISNÉ STATISTIKY ............................................................................... 4 2.1.1 Míry polohy .................................................................................................... 5 2.1.2 Míry variability .............................................................................................. 6 2.2 ÚVOD DO REGRESE ................................................................................................ 7 2.2.1 Jednoduchá regrese ........................................................................................ 7 2.2.2 Vícenásobná regrese ..................................................................................... 11 2.3 TESTOVÁNÍ HYPOTÉZ ........................................................................................... 13 2.4 GRAFICKÉ VÝSTUPY ............................................................................................. 14 2.4.1 Histogram ..................................................................................................... 14 2.4.2 Výsečový graf .............................................................................................. 15 2.4.3 Krabičkový graf (boxplot)............................................................................ 15 2.4.4 Sloupcový graf ............................................................................................. 15 2.4.5 Spojnicový graf ............................................................................................ 16 2.4.6 Bodový graf .................................................................................................. 16 2.5 ZÁKLADNÍ INFORMACE A PŘEDSTAVENÍ R............................................................ 17 3 PRAKTICKÁ ČÁST ................................................................................................ 18 3.1 NAČÍTÁNÍ DAT A ÚPRAVA DAT ............................................................................. 19 3.1.1 Postup při načítání dat .................................................................................. 20 3.2 VYTVÁŘENI NÁHODNÉHO VÝBĚRU V R ................................................................ 23 3.2.1 Popis funkce sample ..................................................................................... 23 3.2.2 Provedení náhodného výběru z celého datového souboru. .......................... 23 3.2.3 Provedení náhodného výběru z hodnot jedné proměnné. ............................ 24 3.3 VYTVÁŘENÍ NOVÉHO SOUBORU DAT .................................................................... 25 3.3.1 Přejmenovávání a vkládáni nových proměnných ........................................ 25 3.3.2 Vkládání nové proměnné do souboru .......................................................... 26 3.4 POPISNÁ STATISTIKA A MÍRY POLOHY A VARIABILITY V R ................................... 28 3.5 NEJDŮLEŽITĚJŠÍ DISKRÉTNÍ ROZDĚLENÍ A SPOJITÉ ROZDĚLENÍ V R ...................... 30 3.5.1 Diskrétní rozdělení ....................................................................................... 30 3.5.2 Spojité rozdělení........................................................................................... 31 3.6 TESTY NA NORMALITU V R ................................................................................... 33 3.6.1 Shapiro-Wilkův test ..................................................................................... 34 3.6.2 Kolmogorov-Smirnovův test ........................................................................ 34 3.6.3 Jarque–Berův test ......................................................................................... 34 3.6.4 D'Agostiniho test na normalitu..................................................................... 35 3.7 TESTOVÁNÍ HYPOTÉZ V R ..................................................................................... 36 3.7.1 Parametrické testy o střední hodnotě ........................................................... 36 3.7.2 Neparametrické testy o střední hodnotě: ...................................................... 41 3.7.3 Testy o populační relativní četnosti ............................................................. 43 3.8 REGRESNÍ ANALÝZA V R ...................................................................................... 46 3.8.1 Lineární regresní analýza ............................................................................. 46 3.8.2 Vícerozměrná regresní analýza .................................................................... 51 1 2
2
3.9 GRAFIKA V R ....................................................................................................... 56 3.9.1 Histogram v R .............................................................................................. 56 3.9.2 Výsečový graf v R ........................................................................................ 59 3.9.3 Boxplot v R .................................................................................................. 63 3.9.4 Sloupcový graf v R....................................................................................... 66 3.9.5 Spojnicový a bodový graf v R ...................................................................... 68 ZÁVĚR ............................................................................................................................... 70 SEZNAM POUŽITÉ LITERATURY.............................................................................. 72 PŘÍLOHY ........................................................................................................................... 73
3
1
ÚVOD V dnešní době je velice důležité ovládat co nejvíce statistických programů, nebo mít
alespoň základní přehled o výhodách jiných statistických programů než běžně využívaných při výukách statistiky na vysoké škole. Z tohoto důvodu se tato práce zaměří na program R, který je sice nový, ale zárověň už velmi rozšířený. Velikou výhodou tohoto programuje jeho dostupnost. Problém je, že tento program nemá vytvořené grafické prostředí pro jednoduchou ovladatelnost, ovládá se pomocí příkazů. Cílem této práce bude představení statistického programu R, jako adekvátního substitutu komerčních statistických programů jako jsou např. SPSS a SAS. Práce by měla předvést a demonstrovat práci s tímto programem, ukázat, jakým způsobem pracovats daty, jak zapisovat funkce, aby byl řešen zvolený problém, a následně předvést výstup v programu R. Práce je rozdělena do dvou částí. První, teoretická část, bude obsahovat nezbytný základ statistické teorie, na kterou navazuje praktická část. Praktická část bude zaměřena na jednotlivé výpočty a funkce v prostředí statistického programu R. V úvodu praktické části budou vysvětleny základníinformacek práci s daty. Poté bude následovat praktické využití na vzorových příkladech. Na příkladech bude předvedena možnost využití programu k výpočtům týkajících se popisné statistiky, testování hypotéz, regresní analýzy a vytváření grafických výstupů. Data pro tuto práci budou převážně smyšlená, tak aby odpovídala požadavkům pro demonstrování možností statistických výpočtů v R.
4
2
TEORETICKÁ ČÁST
2.1 Úvod do popisné statistiky
Při statistických zkoumání jsou předmětem zájmu obvykle hromadné jevy nebo procesy, u kterých se zjišťují zákonitosti, jež se projevují u velkého počtu prvků. Pozorované (zkoumané) prvky nazýváme statistické jednotky. Vlastnosti statistických jednotek, jinak nazývané znaky nebo veličiny, jsou předmětem statistického zkoumání. Souhrn veličin tvoří data. Při zkoumání dat se využívají dva druhy statistik, tj. popisná a interferenční statistika. Popisná statistika zjišťuje a sumarizuje informace a vypočítává jejich číselné charakteristiky jako průměr, rozptyl, percentily atd. Interferenční statistika vytváří závěry na základě získaných údajů (dat) z daných šetření, prováděných pro vybraný datový soubor respondentů, analyzuje data a vytváří z nich zobecnění pro základní soubor. Základním souborem se rozumí soubor všech statistických jednotek. Výběrový soubor je poté částí základního souboru. Prostý náhodný výběr lze chápat jako náhodný výběr ze základního souboru. Tvoří se tak, že ze základního souboru vybereme náhodně jednotky, přičemž každá z nich má stejnou pravděpodobnost výběru. Pokud je možné vybrat tentýž jednotku vícekrát, jedná se o výběr s vracením. Pokud opakovat výběr té samé jednotky není možný, jedná se o výběr bez vracení. Popisná statistika Vlastnosti, které se pro jednotlivé jednotky mění, se nazývají veličinami, případně statistickými znaky nebo proměnnými. Vyskytují se veličiny dvojího druhu. První jsou kvantitativní veličiny popsané číselnou hodnotou (mzdy, ceny), druhou možností jsou kvalitativní veličiny popsané vlastnostmi (muž, žena, dosažené vzdělání). Kvantitativní veličiny mohou být diskrétní nabývající hodnot ze zadané konečné množiny, nebo spojité, které nabývají hodnot ze zadaného intervalu. Pozorováním nebo měřením hodnot zkoumané veličiny na několika statistických jednotkách se získávají vstupní data. Soubor těchto údajů se nazývá datový soubor. Tento soubor je jednorozměrný, jestliže se sleduje jeden znak, nebo vícerozměrný pokud je sledováno více znaků.
5
2.1.1 Míry polohy Jako míru polohy pro kvantitativní proměnnou lze použít průměrnou hodnotu, medián nebo další kvantily. Za předpokladu kategoriální proměnné se může použít modus. Průměrná hodnota a medián určují střed souboru. V případě symetrického rozdělení četností se hodnoty aritmetického průměru a mediánu shodují. Pro výpočet průměrné hodnoty se nejčastěji využívá vzorec pro prostý aritmetický průměr (2.1). V případech, kdy je nutno přiřadit hodnotám určité váhy, je využíván vážený aritmetický průměr (2.2) viz [7]. (2.1)
,
.
(2.2)
Vyskytují se situace, kdy jsou údaje zadané takovým způsobem, že nelze zmíněné průměry využít pro získání požadované průměrné hodnoty. Za takových situací se použije harmonický průměr (2.3) nebo geometrický průměr (2.4). ,
(2.3)
.
(2.4)
6
2.1.2 Míry variability Charakteristiky variability udávají koncentraci nebo rozptýlení (variabilitu) hodnot kolem zvoleného středu skupiny. Rozpětí je definováno jako rozdíl největší (maximální) a nejmenší (minimální) hodnoty. Mezikvartilové rozpětí (IQR) je definováno jako rozdíl horního a dolního kvartilu. Nicméně základní mírou pro určení variability je rozptyl. V případech proměnné s malým počtem variant se vypočítá jako (2.5) Při větším obsahu variant hodnot se zapisuje výpočetní vzorec ve tvaru
.
(2.6)
Rozptyl lze definovat jako průměrnou čtvercovou odchylku jednotlivých hodnot od průměru, udává se ve čtvercích jednotek, v nichž jsou uváděny jednotlivé hodnoty proměnné. Odvozenými mírami od rozptylu jsou směrodatná odchylka
a variační
koeficient V. více viz [7]. Výpočetní vzorce pro směrodatnou odchylku a variační koeficient jsou ve tvaru ,
.
(2.7)
(2.8)
7
2.2 Úvod do Regrese 2.2.1 Jednoduchá regrese Hlavním úkolem regresní analýzy je vystihnout pomocí regresní funkce na základě znalosti dvojic empirických hodnot Xi a Yi průběh závislosti mezi oběma proměnnými. Dále umožňuje provést odhad hodnot závislé proměnné Y na základě zvolených hodnot nezávisle proměnné X viz[4]. Jednoduchá regresní analýza popisuje závislost dvou číselných proměnných, z nichž jedna proměnná vystupuje jako vysvětlující a jedna jako vysvětlovaná pomocí regresní funkce na základě znalosti dvojic empirických hodnot Xi a Yi.. Je nutné rozlišit empirickou regresní funkci a teoretickou regresní funkci. Teoretická regresní funkce je model průběhu proměnné Y při systematických změnách vysvětlující proměnné X, teoretická regresní funkce je nepozorovatelná. Považuje-li se teoretická regresní funkce za model průběhu proměnné Y při systematických změnách vysvětlující proměnné X, pak empirické regresní funkce se považuje za odhad modelu na základě získaných pozorování. Empirická regresní funkce je odhad modelu na základě získaných pozorování. Označí-li se teoretická regresní funkce jako η, pak pro každé konkrétní pozorování bude platit rovnice: yi = ηi + εi
(2.9)
yi = 1,2, …, n, kde yi je i-tá hodnota vysvětlované proměnné, ηi je i-tá hodnota teoretické regresní funkce a εi je odchylka yi od ηi. K odchylce dochází jednak z toho důvodu, že na proměnnou y působí i jiné proměnné než jenom uvažovaná vysvětlující proměnná X a že forma hypotetické regresní funkce není přesným obrazem nezměřitelné závislosti, jednak proto, že na empirické pozorování působí náhodné chyby. Svojí podstatou je εi náhodnou veličinou. Je výhodné předpokládat, že chyba εi nezkresluje hodnoty yi systematických způsobem, neboli že její střední hodnota je nulová.viz[3].
8
Označí-li se dále parametry regresní funkce jako β0, β1,… , βk, takže ηi = f(xi; β0, β1,… , βk).
(2.10)
Hlavním úkolem je určit konkrétní formu této funkce a odhadnout její parametry. Označí-li se odhady uvedených parametrů jako b0, b1,… , bk, pak empirickou regresní funkci lze psát ve formě Yi = f(Xi; b0, b1,… , bk).
(2.11)
Veličina Yi vyjadřuje, že i-tá hodnota empirické regresní funkce je zároveň odhadem teoretické hodnoty ηi odpovídající hodnotě vysvětlující proměnné X. Empirický regresní model Stanovení empirické regresní funkce v podstatě znamená, že každou empirickou hodnotu Yi nahradí určitá „vyrovnaná“ hodnota Yi, která bude „ležet“ na zvolené regresní čáře.
i = 1,2, …, n
yi = Yi + ei
(2.12)
yi jsou hodnoty vysvětlované proměnné, Yi je empirická regresní funkce, která je odhadem teoretické regresní funkce, zároveň je funkcí proměnné X a neznámých parametrů b0, b1,… , bk, tj.: Yi = f(xi; b0, b1,… , bk),
(2.13)
Hledá se objektivní kritérium, jež by dovolilo určit přímku, která danou závislost nejlépe vystihuje. Jako první je kladen požadavek, který odpovídá představě o ε, tj. aby se v souhrnu kompenzovaly kladné a záporné odchylky empirických hodnot od hodnot vyrovnaných, jinak řečeno, aby platilo: (2.14) kde ei (tzv. reziduum) je odhad hodnoty náhodné složky ε. Tato podmínka však ještě nevede k jednoznačnému řešení, protože regresních funkcí splňujících výše uvedenou podmínku, je rovněž neomezeně mnoho.
9
Podmínku
je proto třeba doplnit kritériem, které již vede k jednoznačnému
řešení. Takovým kritériem je požadavek, aby součet čtverců chyb εi byl minimální, tj. aby platilo n
n
i 1
i 1
S R i2 ( yi i ) 2
minimální
(2.15)
Tedy je požadováno, aby součet čtverců odchylek empirických hodnot yi závislé proměnné od hodnot teoretických ηi byl minimální. Metoda určování parametrů regresních funkcí založená na této podmínce se nazývá metoda nejmenších čtverců. V regresním modelu je předpoklad, že 1. X je nestochastická (nenáhodná) proměnná, jejíž hodnoty jsou pevně dané, 2. y a ε jsou náhodné veličiny, 3. εi, i = 1, ..., n, jsou normálně rozdělené náhodné veličiny, pro které platí, že mají nulovou střední hodnotu, konstantní rozptyl a jsou vzájemně lineárně nezávislé E(εi) = 0, E(εi2) = s2, E(εi εj) = 0, i j, i = j = 1, ..., n.
Přímková regrese Je předpokládáno, že mezi proměnnými X a Y je lineární vztah. Následně teoretická regresní funkce má formu regresní přímky
i = 1, ..., n,
yi= β0 + β1xi + εi
(2.16)
jejím odhadem je regresní funkce
i = 1, ..., n.
Yi = b0 + b1xi
(2.17)
Regresních přímek vystihujících danou závislost může být neomezeně mnoho, z tohoto důvodu je potřeba najít takovou přímku, která ze všech regresních přímek vystihuje danou závislost nejlépe. Metodou nejmenších čtverců se najde jediná přímka, která prochází nejblíže všem bodům, resp. vybere se ze všech možných přímek taková, pro kterou je součet čtverců (druhých mocnin) chyb εi od přímky minimální, tzn., že se minimalizuje reziduální součet čtverců empirických hodnot yi od vyrovnaných hodnot Yi
10
n
n
i 1
i 1
S R i2 ( yi Yi ) 2 minimální
(2.18)
Minimalizace reziduálního součtu čtverců empirických hodnot yi od vyrovnaných hodnot Yi n
n
i 1
i 1
n
n
i 1
i 1
S R i2 ( yi Yi ) 2 minimální S R i2 ( yi 0 1 xi ) 2 min .
(2.19) (2.20)
SR je minimální tehdy, jsou-li všechny parciální derivace podle jednotlivých parametrů bi rovny nule n S R 2 ( yi b0 b1 xi )(1) 0 / : 2 b0 i 1 n S R 2 ( yi b0 b1 xi )( xi ) 0 / : 2. b1 i 1
(2.21)
Po úpravě vznikne tzv. soustava normálních rovnic n
n
yi nb0 b1 xi i 1
i 1
(2.22)
n
n
n
i 1
i 1
i 1
yi xi b0 xi b1 x , 2 i
ze kterých se získají odhady parametrů b1
b0
n
n
n
i 1
i 1
i 1
n yi xi xi yi n n x xi i 1 i 1 n
2
2 i
n
n
i 1
i 1
n
xy x y x2 x 2
2 i
s x2 (2.23)
i 1
i 1
n x xi i 1 i 1 n
s xy
n
yi x xi yi xi 2 i
n
2
y b1 x
b1 = byx (závisle proměnnou je Y a nezávisle proměnnou X) - tzv. regresní koeficient, který je směrnicí regresní přímky, udává průměrnou změnu závisle proměnné y při jednotkové změně nezávisle proměnné X (tj. o kolik se změní závisle proměnná y, jestliže se nezávisle proměnná x změní o jednotku) (2.24)
11
2.2.2 Vícenásobná regrese Ve vícerozměrných modelech je zkoumáno, jak závisí proměnná Y nejen na vysvětlující proměnné X1, ale též na dalších vysvětlujících proměnných X2, X3, …, Xp. Metody zkoumání závislostí tohoto typu se nazývají vícenásobnou regresí a korelací. Rozšíří se počet vysvětlujících proměnných, jimiž je možné vysvětlit chování závislé proměnné, tedy je zkoumáno, jak závisí proměnná y nejen na vysvětlující proměnné x1, ale též na dalších vysvětlujících proměnných x2, x3,…,xp. Odpadá zde možnost zachycení grafického průběhu závislosti i logického posouzení vhodnosti určitého typu regresní funkce. Při hledání vhodného typu vícenásobné regresní funkce se převážně využívají matematicko-statistická kritéria (míry těsnosti, směrodatné chyby regresních koeficientů, různé testy apod.), které zpravidla z velkého okruhu různých typů regresních funkcí umožní vybrat tu nejvhodnější. Jestliže je závislá proměnná y lineárně závislá na každé z vysvětlujících proměnných x1,x2, …, xp a jsou-li zároveň tyto vysvětlující proměnné vzájemně nezávislé (nebo alespoň ovlivňují změny závisle proměnné všechny jedním směrem), používá se pro vystižení vývoje závisle proměnné mnohonásobnou lineární funkci proměnných x1, x2,…,xk. Vícenásobná regrese Jedná se o model s větším počtem vysvětlujících proměnných. V tomto případě je zkoumáno, jak závisí proměnná y na vysvětlujících proměnných x1, …, xk: za předpokladu, že závislost lze charakterizovat rovnicí: y=η+ε
(2.25)
kde ε jsou odchylky, které lze interpretovat jako důsledek působení nahodilých vlivů včetně nedokonalosti zvolené regresní funkce viz [3], lze regresní funkci η vyjádřit jako: η = 0 + 1x1 + 2x2 + … + kxk
(2.26)
kde β0, β1, …,βp jsou neznámé parametry regresní funkce a x1, x2,…,xp jsou vysvětlující proměnné.
Odhadnutou regresní funkci lze zapsat ve tvaru:
12
Y = b0 + b1x1 + b2x2 + … + bkxk
(2.27)
Y b0 byx1. x2 x3 ...xk x1 byx2 . x1x3 ...xk x2 ... byxk . x1x2 ...xk 1 xk
(2.28)
nebo jako
Parametry
se nazývají dílčí (parciální) regresní
parametry a udávají odhad toho, jak se v průměru změnila vysvětlovaná (závislá) proměnná Y při jednotkové změně vysvětlující proměnné před tečkou, za předpokladu konstantní úrovně proměnných uvedených za tečkou (např.
udává, jak se změní
v průměru vysvětlovaná proměnná Y při jednotkové změně vysvětlující proměnné x2 za předpokladu, že proměnné x1 ax3 zůstanou konstantní).viz[3].
13
2.3 Testování hypotéz
Statistickou hypotézou se rozumí předpoklad o náhodných veličinách. Může se jednat o předpoklad o jednom parametru nebo charakteristice. Obecněji se jedná o výrok o jedné funkci nebo o více parametrech a typu rozdělení jedné náhodné veličiny. Pokud by se jednalo o případ několika populací nebo vícerozměrnou úlohu, mohou to být předpoklady o nezávislosti dvou a více náhodných veličin, náhodnosti provedených výběrů, způsoby uspořádání dat a další. Testovaný předpoklad, který je ověřován, se nazývá testovanou nebo nulovou hypotézou a je označený obvykle H0. Jedná se o současný stav poznání o rozdělení sledovaných náhodných veličin. Testovaná hypotéza se považuje za pravdivou do prokázání opaku výběrových dat. Apriorní nesouhlas nebo pochybnost o pravdivosti testové hypotézy vyjadřuje alternativní hypotéza. Alternativní hypotéza se značí H1. Jedná se o výrok, který neguje nebo nějakým způsobem zpochybňuje nulovou hypotézu. V případech, kdy je podezření, že nulová hypotéza není pravdivá, se podrobí tato hypotéza statistickému testu. Statistickým testem hypotézy se rozumí rozhodovací postup, kdy se na základě náhodného výběru provede rozhodnutí o pravdivosti hypotézy H0 nebo H1. V dané situaci testu jsou hypotézy postaveny tak, aby mohla být pravdivá pouze a právě jedna. Konečné rozhodnutí se zjistí podle vhodně zvolené statistiky T, která se nazývá testovým
kritériem.
Testované
kritérium
je
náhodná
veličina
se
známým
pravděpodobnostním rozdělením. Množinu hodnot testovaného kritéria lze rozložit na dvě podmnožiny – obor přijetí testované hypotézy H0 značený V a kritický obor zamítnutí hypotézy H0 značený W. Kritický obor tvoří množina testovaného kritéria, která je za předpokladu platnosti H0 extrémní, tak že pravděpodobnost výskytu je velmi malá. Pokud hodnota testového kritéria padne do kritického oboru W, dochází k zamítnutí hypotézy H0 a přijetí alternativní hypotézy H1. Obor přijetí obsahuje hodnoty testového kritéria T, při kterých nedojde k zamítnutí hypotézy H0.
14
Jelikož tvrzení týkající se populace je vyhodnocováno na základě informace získané ve vzorku, může dojít k dvojí chybě, viz[6]. S pravděpodobností α může dojít chybě I. druhu, kdy testovaná hypotéza platí, nicméně hodnota testového kritéria se nachází v kritickém oboru a vede k milnému zamítnutí. Pravděpodobnost mylného zamítnutí je rovno hladině významnosti testu. S pravděpodobností β muže dojít k chybě II. druhu, kdy testovaná hypotéza není zamítnuta, ačkoliv neplatí. Pravděpodobnost správného zamítnutí testové hypotézy 1-β se považuje za sílu testu více o testování hypotéz, viz [7], [3].
2.4 Grafické výstupy Grafické výstupy jsou občas nejdůležitějšími částmi statistiky. Dávají názorný náhled na danou situaci, lehčeji se prezentují. Někdy je lze použít jako test hypotéz, jelikož vizuální náhled dokáže o výběru dost prozradit. V další části se budu zabývat hlavními typy všeobecně využívaných grafů, jako jsou histogram, krabičkový graf, výsečový graf, spojnicový graf a bodový graf. 2.4.1 Histogram Jde o zvláštní variantu sloupcového grafu pro intervalové rozdělení četností. Na ose x se vyznačují meze intervalu hodnot sledované proměnné, pro které se četnosti vyznačují pomocí výšky sloupce. U již vytvořeného grafu lze konkrétní četnost (absolutní nebo relativní) zjistit na ose y. Na rozdíl od sloupcového grafu se jednotlivé sloupce navzájem dotýkají, viz[7]. Pravidla pro nastavování šíře sloupců jsou: Sturgesovo pravidlo je vhodné pro gaussovská data (normálně rozdělená) a není vhodné pro velké výběry. Řídí se zápisem: k = (1+
),
(2.29)
Kde n je počet pozorování, k je počet intervalů. Scottovo pravidlo není moc vhodné pro gaussovská data, interval pro šířku sloupců se získá v následujících krocích, které popisují vzorce 2.15 a 2.16.
15
h=3,5 kde
h
ý ě
é
ě
é
(2.30)
,, h
.
Poté se interval šíře sloupců vypočítá takto: (2.31)
k=
Freedman-Diaconisovo pravidlo je vhodné pro gaussovská data a je robustní, funguje v přítomnosti vybočujících pozorování. Šíře intervalu se vypočítá jako: h=2
,.
(2.32)
2.4.2 Výsečový graf Tento graf zobrazuje strukturu zkoumaného souboru. Využívá se pro znázornění četností hodnot nominálních proměnných. Jednotlivé výseče znázorňují podíly jednotlivých kategorií na celku. 2.4.3 Krabičkový graf (boxplot) Využívá se k zachycení robustních statistik. Základem grafu je obdélník (box), jehož spodní hranou je dolní kvartil, horní pak horní kvartil. Uvnitř obdélníku tudíž leží 50% všech případů. Hvězdička uvnitř obdélníku označuje medián. Kvartilový graf zobrazuje také dvě kategorie hodnot výrazně se odchylujících od ostatních. Pozorování s hodnotou větší než je trojnásobek rozdílu mezi horním a dolním kvartilem (délky boxu) od horní hranice boxu, a na druhé straně pozorování s hodnotou menší než je trojnásobek délky boxu od dolní hranice, se nazývají extrémní hodnoty. Označují se písmenem E. Pozorování s hodnotou mezi jedením a půl a trojnásobkem délky boxu se nazývají odlehlá a označují se písmenem O. V grafu je vyznačena také největší a nejmenší pozorovaná hodnota, kterou už nelze zahrnout mezi odlehlá pozorování.
2.4.4 Sloupcový graf Výška sloupce představuje počet statistických jednotek, u nichž se hodnota sledovaného znaku rovná určité kategorii (výška může také reprezentovat relativní četnost těchto statistických jednotek). Sloupcový graf lze rovněž využít pro znázornění intervalového rozdělení četností pro diskrétní proměnnou s větším počtem variant hodnot,
16
např. na ose x jsou vyznačeny jednotlivé varianty hodnot analyzované proměnné „ročník studia,“ pro které se četnosti vyznačují pomocí výšky sloupce, na ose y jsou pak absolutní četnosti.
2.4.5 Spojnicový graf Vyjadřuje průběh časové řady nebo slouží ke znázornění rozdělení absolutních a relativních četností spojitého znaku. 2.4.6 Bodový graf Využívá se především ke znázornění závislostí pomocí bodů v soustavě pravoúhlých souřadnic.
17
2.5 Základní informace a představení R
Program R je volně přístupný statistický software. Tento software nevyužívá žádné grafické rozhraní pro pracovní prostředí, jaké je známo z ostatních statistických programů např. z SPSS. Veškeré funkce je třeba napsat pomocí příkazů, což dělá z tohoto programu univerzální matematický a statistický program, který nabízí volnost a variabilitu k práci. Program R nabízí možnost programování statistických funkcí pomocí programovacího jazyka, který vychází z jazyka S. Programovací jazyk je relativně snadný a je přímo orientován na vývoj statistických aplikací. Z tohoto důvodu je využíván k vědecké činnosti a k pokročilejším statistickým a matematickým výpočtům. Velkou výhodou tohoto programu je rychlost a dobře zpracovaný systém nápovědy. Program disponuje vynikajicí grafikou výstupů s možností vykreslování 2D i 3D grafů. Zmíněný software je spustitelný ve všech nejužívanějších počítačových systémech jako jsou Windows, Mac OS, Linux. Webová stránka, kde se dá volně stáhnout program R je www.r-project.org. Na této stránce lze nalézt i jednotlivé tutorialy a manuály potřebné k obsluze softwaru. Po spuštění programu R se
zobrazí okno programu s konzolí, do kterése píší
jednotlivé příkazy. V konzoli jsou napsané základní informace o softwaru, jeho verzi a základní informace o funkcích, jak vypnout R nebo jak využít nápovědy. Tyto úvodní popisy lze jednoduše smazat zkratkou Ctrl+L. Tato zkratka se využívá na vyčištění hlavní konzole kdykoliv v průběhu práce.
18
3
PRAKTICKÁ ČÁST
V praktické části budou vysvětleny jednotlivé postupy při výpočtech a tvorbě grafů v prostředí statistického programu R. Vše bude demonstrováno na příkladech. Pro lepší orientaci v této části je nutné zmínit několik pojmů a způsobyjejich vyznačování v textu. Každý použitý základní nebo výběrový datový soubor je ohraničený uvozovkami a jeho označení začíná velkým písmenem. Příkladem zápisu využití datového souboru je „Novy“. Každá proměnná vyskytující se v textu je zvýrazněna uvozovkami a začíná malým písmenem,např. „salary“ nebo „z“, z důvodu kompatibilitiy ze vstupy. Vstupující zápis (funkce) do R je zvýrazněn červenou barvou a jiným formátem písma. Příklad zápisu vstupu do R je >mean(salary). Jiným fontem písma a barvou je označen i výstup z R. Příkladem může být například tato řada spočtených údajů:[1] 16500 19500 15000 19500 12750 16500. Používaná funkce je pro daný výpočet problému zapsána ve tvaru mean(…). Závorka a tři tečky značí prostor pro vypsání argumentů, které ovlivňují výpočet. Tzv. argumenty ovlivňující výpočet jsou v textu zvýrazněny tučně a kurzívou, např.:alternative.
19
3.1 Načítání dat a úprava dat
Tato kapitola bude zaměřena na načítání dat v programu R a jejich úpravu. Program R je schopen načítat tabulková data ve dvou formátech, tj. .csv a .txt. Jednotlivé příkazy k načítání dat se liší především základním nastavením argumentů pro čtení desetinné čárky a způsobem oddělení buněk. Pro představu datový soubor vytvořený v Microsoft Office Excel a exportovaný do formátu .csv odděluje jednotlivé buňky středníkem a desetinná čárka má znak čárky nikoliv tečky. V tomto případě by byla správně zvolená funkce read.csv2(…).
Tabulka 3.1 – Možnosti a alternativy funkce read.***(… ) pro načítání dat Funkce
header
Sep
Dec
read.table(…)
FALSE
""
"."
read.csv(…)
TRUE
","
"."
read.csv2(…)
TRUE
";"
","
read.delim(…)
TRUE
"\t"
"."
read.delim2(…)
TRUE
"\t"
","
Zdroj - Nápověda k načítání dat R
Argument header nastavuje hlavičku datového souboru. Pokud se nastaví ve tvaru: header = TRUE, výsledkem bude chápání prvního řádku datového souboru jako řádek s názvy proměnných (muži, ženy, věk, platy). Za předpokladu opačného zapsání funkce ve tvaru header = FALSE by byl tento řádek chápán jako součást dat. Argumentem sep se upravuje způsob oddělení buněk jednotlivých hodnot v načítaném datovém souboru a argumentem dec se nastavuje, jakým způsobem je zapsána desetinná čárka v souboru. K načítání datového souboru lze použít jakoukoliv výše zmíněnou funkci, pokud se dobře nastaví argumenty sep a dec pro všechny typy datového souboru. Správné zvolení načítací funkce zkrátí čas potřebný k opakování načítání.
20
3.1.1 Postup při načítání dat Nejprve je nutné zjistit, který adresář je nastavený jako výchozí. R pracuje primárně s daty z tohoto adresáře a zároveň je sem opět ukládá. Pro zjištění výchozího pracovního adresáře se využívá funkce getwd(…), která vypíše cestu k pracovnímu adresáři. >getwd(),
po zadání a odeslání příkazu se zobrazí cesta k výchozímu adresáři např. v tomto tvaru: [1] "C:/Users/“username“/Documents"
Pro případnou změnu pracovního adresář lze použít příkaz setwd(…), kde se místo teček mezi závorky vypíše kompletní cesta k novému adresáři. Např. příkaz pro změnu pracovního adresáře na „pictures“ má tvar: >setwd("C:/Users/“username“/pictures").
Po potvrzení této změny se budou veškeré výstupy a pracovní soubory ukládat do adresáře "C:/Users/“username“/pictures". Pro načítání je důležité si budoucí pracovní soubor vhodně pojmenovat, v tomto případě např.Ukol1. Ukázka načtení datového souboru s názvem „Employee.csv“ pro případ špatně zvolené funkce read.***(…) je: >Ukol1 = read.csv("C:\\Users\\“username“\\Document\\Employee.csv")
Funkce head(…), která vždy zobrazuje hlavičku a prvních 6 hodnot tabulky, bude v tomto případě generovat výstup vypadající např. takto: >head(Ukol1) id.gender.bdate.educ.jobcat.salary.salbegin.jobtime.prevexp.minority 1;m;2/3/1952;15;3;57000;27000;98;144;0 2;m;5/23/1958;16;1;40200;18750;98;36;0 3;f;7/26/1929;12;1;21450;12000;98;381;0 4;f;4/15/1947;8;1;21900;13200;98;190;0 5;m;2/9/1955;15;1;45000;21000;98;138;0 6;m;8/22/1958;15;1;32100;13500;98;67;0
Z výstupu je zřejmé, že zvolený druh načítací funkce není optimální, jelikož jednotlivé buňky jsou od sebe separovány středníkem.
21
Při použití správné načítací funkce budou data zobrazovaná v zarovnané tabulce. Syntaxe v R při využití správné načítací funkce pro zvolená data je: >Ukol1=read.csv2("C:\\Users\\“username“\\Documents\\Employee.csv") >head(Ukol1)
V tomto případě bude výstup vypadat takto: id 1 2 3 4 5 6
1 2 3 4 5 6
genderbdateeducjobcatsalarysalbeginjobtimeprevexp m 2/3/1952 15 3 57000 27000 98 m 5/23/1958 16 1 40200 18750 98 f 7/26/1929 12 1 21450 12000 98 f 4/15/1947 8 1 21900 13200 98 m 2/9/1955 15 1 45000 21000 98 m 8/22/1958 15 1 32100 13500 98
144 36 381 190 138 67
Při zadání pouze nově zvoleného názvu pro datový soubor, v tomto případe zapsáním do R jako Ukol1, načetl by se kompletní datový soubor zobrazený ve stejném tabulkovém stylu jako v případě použití náhledové funkce head(…). Další způsob, jakým lze data načíst, je použití funkce file.choose(…), která se zadá v argumentu funkce read.***(…) místo vypisování celé cesty k uloženému souboru dat. Načítání dat je poté shodné s běžně užívanou funkcí „Otevřít“ u standardních programů. Pro správné načtení datového souboru „Employee.csv“ by byl příkaz zapsaný do R tento: >Ukol1 = read.csv2(file.choose())
Úprava datové tabulky Úprava dat se provádí pomocí funkce fix(…), která otevře okno„data editoru“, kde lze přepisovat jakékoliv hodnoty i názvy proměnných. Uložení a přepsání hodnot se provádí automaticky při ukončení okna křížkem vpravo nahoře. Syntaxe vypadá následovně: >fix(Ukol1)
Poté se zobrazí okno data editoru, které až do svého uzavření zamezuje veškerou práci v základním okně. Příklad okna data editoru viz Obrázek 3.1.
22
Obrázek 3.1- Data editor při aktivaci funkce fix(…)
Zdroj - Výstup z R
23
3.2 Vytvářeni náhodného výběru v R Povětšinou není nutné pracovat s celým základním souborem, stačí využít jen část vybranou za určitých podmínek. Pokud je výběr proveden nezávisle na dalších aspektech, jedná se o výběr náhodný. Pro vytvoření náhodného výběru v prostředí R se využívá funkce sample(…). 3.2.1 Popis funkce sample Funkce sample(…) obsahuje několik důležitých argumentů, náhled vzhledu zápisu funkce v R a popis nejdůležitějších argumentů. Vypadá následovně: sample(x.size, replace = FALSE, prob = NULL)
Argument x u funkce sample(…) zastupuje základní soubor (proměnnou nebo datový soubor), z kterého je náhodný výběr pořizován. Size určuje konečný rozsah výběru. Argument replace muže nabýt hodnot TRUE nebo FALSE. Tento argument dává odpověď na otázku, jestli bude zadaný výběr s vracením nebo bez vracení. Poslední důležitý argument je prob, jež nastavuje pravděpodobnost vybrání určitých hodnot ze základního souboru.
3.2.2 Provedení náhodného výběru z celého datového souboru. Funkce pro výběr s celého datového souboru o rozsahu 50 řádků bude mít následující tvar >
Vyber1 =Ukol1[sample(nrow(Ukol1), 50), ]
kde „Vyber1“ je nové jméno datového souboru o rozsahu 50, který obsahuje výběr z původního datového souboru Ukol1.
Náhled výstupu datového souboru „ Vyber1“s využitím funkce head(…) id gender bdateeducjobcatsalarysalbeginjobtimeprevexp 53 53 m 4/21/1954 18 3 73750 26250 94 66 66 m 2/16/1962 19 3 78125 30000 93 262 262 f 6/20/1968 12 1 24300 10950 80 172 172 f 6/13/1953 15 1 29850 15000 86 90 90 f 2/27/1938 8 1 16200 9750 92 128 128 f 7/25/1946 12 1 19650 9750 90
56 7 8 79 0 229.
24
V prvním sloupci výstupu datového souboru „Vyber1“je číslo původní pozice řádku v základním souboru „Ukol1“. Počet řádků (hodnot)základního souboru před provedením náhodného výběru byl 474 a zobrazí se pomocí funkce nrow(…). Funkce pro zjištění počtu řádků hodnot souboru „Ukol1“ je následující: >nrow(Ukol1)
[1] 474. Po provedení náhodného výběru byl počet řádků souboru 50, což bylo požadováno. Verifikace se provede znovu funkcí nrow(…) u souboru Vyber1 >nrow(Vyber1)
[1] 50. Pro zopakování náhodného výběru tak, aby měl stále stejné hodnoty, se využívá funkce set.seed(…). Mezi závorky se napíše libovolné číslo, které ukotví algoritmus náhodného výběru. Funkce set.seed(…) musí být použita vždy před funkcí pro náhodný výběr.
3.2.3 Provedení náhodného výběru z hodnot jedné proměnné.
Pro provedení náhodného výběru z jedné proměnné se znovu využívá funkce sample(…). Pouze za proměnou x se dosazuje proměnná, ze které je výběr vytvořen. Zápis funkce v R má následně tento tvar: >Vybsalbegin = sample(Ukol1$salbegin,100)
kde „Vybsalbegin“ je nový název datového souboru obsahující pouze výběr 100 hodnot z proměnné salbegin. Pro kontrolu je dobré si zobrazit rozsah proměnné po provedení výběru a porovnat to s požadovanou hodnotou. Rozsah hodnot u jedné proměnné se zobrazí využitím funkce length(…) >length(vybsalbegin)
[1] 100 .
25
3.3 Vytváření nového souboru dat Nový soubor dat je vytvářen pomocí funkce data.frame(…). Tento typ funkce je výhodný, pokud se pracuje s větším balíkem dat s více proměnnými a cílem je analyzovat jen některá z nich. Příklad funkce v R a vytvoření nového datového souboru s názvem „Novy“, který bude obsahovat proměnné „salary“, „salbegin“ a „tender“ z datového souboru
„Ukol1“.
Zápis
funkce
na
vytvoření
nového
datového
souboru
s danými požadavky je následující: >Novy = data.frame(Ukol1$salary,Ukol1$salbegin,Ukol1$gender)
Pro úplnost zobrazení hlavičky a prvních 6 hodnot nového datového souboru pomocí funkce head(…): >head(Novy) Ukol1.salary Ukol1.salbegin Ukol1.gender 1 57000 27000 2 40200 18750 3 21450 12000 4 21900 13200 5 45000 21000 6 32100 13500
m m f f m m
3.3.1 Přejmenovávání a vkládáni nových proměnných
Pro přejmenování proměnných v R jsou dvě možnosti. První možností je změna jména proměnné pomocí funkce fix(…) a její následná úprava v tabulce. Druhou možností je instalace a použití balíčku reshape obsahujícího funkci rename(…). Postup je poté rozdělen do následujících kroků. Nejdříve se pomocí funkce library(…)aktivuje balíček reshape. >library(reshape)
26
Poté lze přejmenovat názvy proměnných pomocí funkcí rename(…). Původní proměnné datového
souboru
„Novy“
(Ukol1.salary,
Ukol1.salbegin,
Ukol1.gender)
budou
přejmenovány na nové (pnyní, pnazačátku, sex). Syntaxe v R je následující: >Novy=rename(Novy1,c(Ukol1.salary="pnyní",Ukol1.salbegin="pnazačát ku" ,Ukol1.gender="sex")).
Nyní se může pomocí funkce names(…) ověřit změnu názvů proměnných: >names(Novy1) [1] "pnyní" "pnazačátku" "sex"
3.3.2 Vkládání nové proměnné do souboru
Vložit novou proměnou do souboru je snadno proveditelné za splnění podmínky, že bude nová proměnná stejného rozsahu jako stávající proměnné v původním souboru dat. Bude vytvořena nová proměnná „rozdíl“, která bude mít hodnotu rozdílu proměnných „salary“ a „salbegin“ z původního datového souboru „Ukol1“ a přidána do datového souboru „Novy“. Následující zápis kódu ilustruje přidání proměnné „rozdíl“ do datového souboru „Novy“. > Novy1$rozdíl = Ukol1$salary - Ukol1$salbegin
Funkcí head(…) se opět ověří přidání proměnné do souboru. >head(Novy1) pnynípnazačátku sex rozdíl 1 57000 27000 m 30000 2 40200 18750 m 21450 3 21450 12000 f 9450 4 21900 13200 f 8700 5 45000 21000 m 24000 6 32100 13500 m 18600.
Proměnná „rozdíl“ se nyní bude zobrazovat vždy v datovém souboru „Novy“.
27
Pokud je třeba nějakou proměnou odstranit stačí napsat příkaz, který odkazuje na tu proměnnou, kterou je třeba smazat a přiřadit ji hodnotu NULL. Syntaxe v R má tento tvar: >Novy$rozdil = NULL
Nemalou výhodou práce s daty v programu R je, že jsou neustále k dispozici veškeré výběry i základní soubor. Přejmenovávání je zde také trošku složitější, než je běžné u SPSS.
28
3.4 Popisná statistika a míry polohy a variability v R
V této části se práce zaměřuje na popisnou statistiku, míry polohy a jejich výpočet v programu R. Bude se jednat o základní statistiky, které jsou středem zájmu u kvantitativní proměnné jako první. Jako data bude použit znovu soubor „Emploee“, obsahující proměnné„salbegin“ a „salary“. „Ukol1$salbegin“je studovanou proměnnou obsahující číselné hodnoty o výši počátečních příjmů tázaných respondentů. Aritmetický průměr se tvoří pomocí funkce mean(…). V R se zapíše pro zvolenou proměnnou následovně: >mean(Ukol1$salbegin) [1] 17016.09.
Podobně se postupuje při hledání mediánu užitím funkce median (…), kde se mezi závorky zapíše studovaná proměnná. >median (Ukol1$salbegin) [1] 15000.
Pro výpočet hodnoty modu nemá R předdefinovanou funkci. Proto je nutné užít pomocných výpočtů. Je známé, že modus hledá nejčastěji vyskytovanou hodnotu, a tudíž se nejprve musí vytvořit tabulka absolutních četností hodnot pro zvolenou proměnnou tímto způsobem: > mod1 = table (as.vector(Ukol1$salbegin)).
Následně je třeba nalézt hodnotu s maximální četností výskytu. Tento krok popisuje v R tento zápis: >names(mod1)[mod1 == max(mod1)] [1] "15000".
Maximum a minimum se vypíše po zadání funkcí max(…) a min(…). Pro ilustraci zápis a výstup funkcí v R: >min(Ukol1$salbegin) [1] 9000 >max(Ukol1$salbegin) [1] 79980.
29
Rozptyl studované proměnné se zjistí pomocí funkce var(…). >var(Ukol1$salbegin) [1] 61946945.
Výpočet směrodatné odchylky je vyvolán pomocí funkce sd(…) nebo jako odmocnina z rozptylu. sd(Ukol1$salbegin) [1] 7870.638.
Kvantily lze zobrazit pomocí funkce qunatil (x,kolikátý kvantil je požadován). Jako příklad je zvoleno vypsání 75 procentního kvantilu u proměnné „salbegin“. >quantile (Ukol1$salbegin,0.75) 75% 17490.
Pro řadu kvantilů je nutné využít příkaz, který upřesňuje, jaké kvantily je potřeba vypsat. Pro vyhledání například řady decilů se využije funkce seq(min,max,by), kde argument min označuje počáteční hodnotu, max označuje konečnou hodnotu řady a argumentem by se nastavuje velikosti jednotlivých úseků řady. Výsledný zápis a výstup v R má tuto podobu: >quantile (Ukol1$salbegin,seq(0.1,0.9, by = 0.1)) 10% 20% 30% 40% 50% 60% 70% 80% 90% 10950 12000 13200 14250 15000 15750 16500 19500 27501 .
Mazikvartilové rozpětí se zobrazí po zadání funkce IQR(…) > IQR(Ukol1$salbegin) [1] 5002.5.
Pro nalezení hodnot 3. a 4. momentové funkce, neboli koeficientu špičatosti a šikmosti se musí využít balíček moments, který obsahuje mimo jiné i funkce pro výpočet špičatosti a šikmosti. Balíček, pokud je nainstalovaný, se připojí opět pomocí funkce library(…). >library(moments)
Zobrazení koeficientu špičatosti pomocí funkce kurtosis(…) se provádí v R následovně: >kurtosis(Ukol1$salbegin) [1] 15.24727
a koeficient špičatosti pomocí funkce skewness(…)se provádí v R následovně: >skewness(Ukol1$salbegin) [1] 2.84382
30
3.5 Nejdůležitější diskrétní rozdělení a spojité rozdělení v R Tato kapitola se zaměří na nejdůležitější rozdělení a nalezení kvantilů, hodnot v určitém bodě a vytváření náhodných výběrů z rozsahu rozdělení. Dále se zaměří na popis vytváření funkcí a vysvětlení nejdůležitějších parametrů funkcí R. Pro každé rozdělení budou představeny funkce pro zjištění hustoty, hodnot distribuční funkce, generování náhodných hodnot s určitých rozdělení a hledání kvantilů hodnot z těchto rozdělení. První část se zaměří na hledání hodnot z diskrétních rozdělení a druhá část na hledání hodnot ze spojitých rozdělení. Více o rozděleních nabízí např. [5]
3.5.1 Diskrétní rozdělení Mezi nejdůležitější diskrétní rozdělení patří binomické rozdělení, Poissonovo rozdělení, Lambda rozdělení, geometrické a hypergeometrické rozdělení. Binomické rozdělení Binomické rozdělení má náhodná veličina X udávající počet nastoupení sledovaného jevu v posloupnosti n vzájemně nezávislých pokusech viz [5]. Funkce v R pro výpočet hodnot z binomického rozdělení jsou dbinom(…), pbinom(…) qbinom(…), rbinom(…). První písmena u funkcí se vážou k určitému typu konkrétní funkce. Tato vazba je stejná u všech rozdělení. Svázanost je znázorněna zeleně. Pro výpočet hustoty pravděpodobnosti z binomického rozdělení se využívá funkce dbinom(…). Dále pro výpočet distribuční funkce z binomického rozdělení se využívá funkce pbinom(…). Pro zobrazení hodnot kvantilů binomického rozdělení se užívá qbinom(…). Pro vytvoření náhodného výběru z binomického rozdělení o určitém rozsahu se využívá funkce rbinom(…). Jako příklad je uveden výpočet pravděpodobnosti, že při pěti hodech kostkou padne právě jednou číslo 2. Argument size určuje počet pokusů, prob poté určuje pravděpodobnost úspěchu. Výpočetní formule zapisovaná do R pro daný problém je ve tvaru: >dbinom(n=2,size = 5, prob = 1/6) [1] 0.160751.
31
Pravděpodobnost, že při pěti pokusech padne právě jednou číslo 2, je 16,7 %. Poissonovo rozdělení Poissonovo rozdělení se obvykle užívá k vyjádření pravděpodobnosti počtu nastoupení sledovaného jevu v určitém časovém období. Funkce v R pro výpočet hodnot z Poissonova rozdělení jsou dpois(…), ppois(…) qpois(…), rpois(…). Vazba prvních písmen na typ funkce v R je stejná jako u předchozího rozdělení. Určující argument pro tyto funkce je lambda. Lambda u tohoto rozdělení je rovna střední hodnotě i hodnotě rozptylu. Pro příklad je uvedena situace, kdy průměrně jeden výrobek koupí tři zákazníci za hodinu a otázka zní, jaká je pravděpodobnost, že výrobek koupí méně než tři lidé za hodinu. Výpočet pro zadaný příklad v R je následující: >ppois(2, lambda = 3) [1] 0.4231901
Pravděpodobnost, že výrobek koupí méně než 3 zákazníci za hodinu, je 42,3 %. Hypergeometrické rozdělení Funkce v R pro hypergeometrické rozdělení jsou dhyper(…), phyper(…) qhyper (…), rhyper (…). Syntaxe pro volbu funkce je stejná jako u již zmíněných rozdělení.
Geometrické rozdělení Geometrické rozdělení je rozdělení náhodné veličiny, které lze definovat jako počet neúspěšných pokusů do prvního úspěšného. Funkce pro toto rozdělení jsou: dgeom(…), pgeom(…), qgeom (…), rgeom (…). Důležitým parametrem je prob udávající pravděpodobnost úspěchu.
3.5.2 Spojité rozdělení Mezi nejdůležitější spojité rozdělení se řadí rozdělení normální, exponenciální, studentovo a rozdělení chí-kvadrát. Spárování prvních písmen u funkcí je stejné jako u rozdělení diskrétních. Normální rozdělení Funkce pro normální rozdělení jsou dnorm(…), pnorm(…), qnorm(…), rnorm(…).
32
Důležité argumenty ovlivňující funkce jsou mean a sd. Není nutné tyto argumenty blíže specifikovat, je totiž jasné, že značí střední hodnotu a směrodatnou odchylku. Pro příklad bude představena tvorba náhodného výběru z normovaného normálního rozdělení o rozsahu 1000. Výstup bude zobrazovat histogram na obrázku 3.2. >rnorm(1000,mean = 0, sd = 1) Obrázek 3.2 – histogram náhodného výběru z normovaného normálního rozdělení
Zdroj – vlastní výstup z R
Exponenciální rozdělení Exponenciální rozdělení je vhodným modelem pro popsání doby čekání do výskytu určitého jevu. Funkce v R pro exponenciální rozdělení jsou dexp (…), pexp (…),qexp (…), rexp (…).
Studentovo rozdělení (t- rozdělení) Jde o důležité rozdělení při testovaní statistických hypotéz. Funkce pro výpočet hodnot ze studentova rozdělení jsou dt(…), pt(…), qt(…), rt(…). Pro příklad ukázka výpočtu devadesáti pěti procentního kvantilu z t rozdělení o 10 stupních volnosti: >qt(0.95,df =10) [1] 1.812461
33
Chí-kvadrát rozdělení Chí – kvadrát rozdělení je vhodné pro testování, zda množina hodnot odpovídá určité distribuční funkci. Funkce v R pro zmíněné rozdělení jsou dchisq(…), pchisq(…), qchisq(…), rchiscq(…). Devadesáti devíti procentní kvantil z rozdělení chí-kvadrát s deseti stupni volnosti bude v R zobrazen takto: >qchisq(0.99,10) [1] 23.20925
3.6 Testy na normalitu v R
Tato kapitola bude zaměřena na test na normalitu, která je důležitou podmínkou pro další statistické analýzy z důvodu aplikace některých dalších testů, jako je například t-test. Budou zde představeny funkce, které se využívají ke konstrukci testů na normalitu v R, konkrétně
Kolmogorov-Smirnovův
test,
Shapiro-Wilkův
test,
Jarque–Berův
test
a D'Agostiniho test. Pro ukázku budou využita data o počtu získaných bodů z maturitní práce ve třech výukových skupinách. Tyto skupiny jsou pojmenovány z1, z2, z3. Vytvoření proměnných se provádí následovně: > z1 = c(27,27,27,28,30,31) > z2 = c(21,20,19,20,18,21) > z3 = c(36,38,34,35,33,32).
V dalším kroku je potřeba data sloučit do jedné proměnné. V tomto případě do proměnné „z“. Tento krok není úplně nezbytný, ale zjednodušuje následující zápis funkcí na testování normality: > z = c(z1,z2,z3).
Aplikace testů na normalitu Data z proměnné „z“ budou podrobeny jednotlivým testům pro potvrzení normality vzorku.
34
3.6.1 Shapiro-Wilkův test Vyvolání S-W testu na normalitu pro otestování hodnot obsažené v proměnné „z“ se provádí v R pomocí funkce shapiro.test(…), >shapiro.test(z) Shapiro-Wilk normality test data: z W = 0.9291, p-value = 0.1872.
Výstupem je testovaná hodnota W a p-value o významnosti testu. Testem je potvrzeno, že data mají přibližně normální rozdělení na deseti procentní hladině významnosti.
3.6.2 Kolmogorov-Smirnovův test Testována budou data z proměnné „z“. Ke konstrukci Kolmogorov-Smirnova testu se využívá funkce v R lillie.test(…). Syntaxe pro tento test je následující: >lillie.test (z) Lilliefors (Kolmogorov-Smirnov) normality test data: z D = 0.1801, p-value = 0.1272
Výstup K–S testu na normalitu obsahuje název testu, hodnotu D testové statistiky a p-value hodnotu o nezamítnutí hypotézy H0. Pro tento test je nutné si stáhnout a aktivovat balíček funkcí nortest nebo nějaký jiný balíček obsahující zmíněnou funkci. 3.6.3 Jarque–Berův test Pro aplikaci Jarque–Berova testu na normalitu se využívá funkce jarque.bera.test(…). Zmíněnému testu na normalitu budou podrobeny znovu hodnoty obsažené v proměnné „z“. Zápis funkce v R je následující: >jarque.bera.test(z) Jarque Bera Test data: z X-squared = 1.3146, df = 2, p-value = 0.5182
Jarque–Berův test má ve výstupu testovou hodnotu chí kvadrát, počet stupňů volnosti df a hodnotu p-value. Pro tento test je třeba si stáhnout a mít aktivní balíček tseries. Tento
35
test nezamítá hypotézu H0o normalitě rozdělení proměnné „z“ na padesáti procentní hladině významnosti. 3.6.4 D'Agostiniho test na normalitu D'Agostiniho test nelze použít pro hodnoty proměnné „z“ z důvodu nedostatečného rozsahu vzorku, proto budou použita jiná obsáhlejší data. Nová data pro demonstraci tohoto testu obsahuje proměnná „c“. Hodnoty proměnné „c“ jsou náhodně vygenerované hodnoty z normálního rozdělení se střední hodnotou 0 a směrodatnou odchylkou 1, což se provádí pomocí funkce rnorm(…). Zmíněný náhodný výběr o rozsahu 100 z normálního rozdělení se vytvoří následovně: > c = rnorm(100).
Vstup a výstup při aplikování D´Agostiniho testu na normalitu v R je: >dagoTest(c) Title: D'Agostino Normality Test Test Results: STATISTIC: Chi2 | Omnibus: 0.4106 Z3 | Skewness: -0.6273 Z4 | Kurtosis: 0.1308 P VALUE: Omnibus Test: 0.8144 Skewness Test: 0.5305 Kurtosis Test: 0.8959 .
Tento test byl zkoušen na vygenerovaných hodnotách z normálního rozdělení, jelikož hodnoty použité v předchozích testech nebyly dostatečné svým rozsahem. Je nutné, aby testovaná proměnná obsahovala alespoň 20 pozorování. Pro tento test musí být aktivní balíček fBasics, který obsahuje i všechny tři výše zmíněné testy, jen s jinou syntaxí do R. Testování normality vzorku má ve své podstatě podobný způsob úpravy dat testovaného vzorku, jako je běžné v SPSS. Nicméně výsledná tabulka je přehlednější.
36
3.7 Testování hypotéz v R Tato kapitola bude pojednávat o parametrických i neparametrických testech o populační střední hodnotě a π alternativního rozdělení a jejich aplikace v prostředí R. V následujících testech budou jednotlivé parametry zadávány různě v závislosti na zvolených hypotézách. Důležité argumenty u funkcí testů jsou alternative a conf.level. Argument alternative nastavuje typ testovaného intervalu. Pokud se jedná o jednostranný, tak by nabýval hodnot „greater“ nebo „less“. V případě oboustranného jej není nutné zadávat, protože je tak nastavený v základu. Argument conf.level nastavuje hladinu významnosti testu.
3.7.1 Parametrické testy o střední hodnotě Následující podkapitola předvede možnosti testování hypotéz o střední hodnotě pomocí t – testu a F testu pro porovnávání více populací. Pro každý test bude v úvodu stanovená testovaná hypotéza, ze které bude vycházet úprava parametrů. t–test se zadanou testovací hodnotou První ukázka předvádí použití funkce t.test(…), pro řešení následující hypotézy. Předpokládá se, že hodnoty z proměnné „a“ mají přibližně normální rozdělení, a též že data byla vybrána pomocí náhodného výběru. Testované hypotézy: H0: =8 H1:µ1>µ Tvorba datového vektoru proměnné „a“ v R vypadá takto: >a = c(7.8,7.9,7.8,8,7.8,8.5,8.2,8.2,9.3)
Hodnota argumentu alternative bude ve tvaru greater, protože argument odpovídá alternativní hypotéze. Argument mu zadává porovnávací hodnotu bude mít následující tvar:
.Vstupující funkce
37
>t.test(a,mu = 8,alternative = "greater")
One Sample t-test data: a t = 1.026, df = 8, p-value = 0.1675 alternativehypothesis: truemeanisgreaterthan 8 95 percentconfidence interval: 7.864589 Inf sample estimates: meanof x 8.166667
Výstup je popsán podrobně včetně alternativní hypotézy, výsledku testované hodnoty t, počtu stupňů volnosti df a p-value hodnoty hladiny významnosti o výsledku testu. Ve výstupu je zahrnut i interval spolehlivosti 95 percentconfidence interval pro parametr . Výstup je uzavřen průměrem hodnot„a“. Test v tomto případě nepotvrdil významnou odlišnost střední hodnoty vzorku od testované (referenční), dříve získané hodnoty 8.
t – test pro porovnávání středních hodnot ve dvou nezávislých vzorcích populace Tento test bude porovnávat průměrné teploty ve dvou letoviscích. Naměřené teploty zahrnují proměnné „b“ a „b1“. Testované hypotézy: H0:µ1 = µ2 H1: µ1 ≠ µ2 Hodnoty obou nezávislých pozorování mají přibližně normální rozdělení. V R se tyto vektory hodnot proměnných zapíší následovně: >b=c(47.2,48.5,43.2,46.9,47.3,45.5,45.9,47.6,46,46.2,46.1,47.9,48.2,4 6.4,48.5,49.10,46.4,44.8,41.7,44.8,46.4) >b1=c(46.4,48.5,43.1,46.5,47.8,44.9,46.1,47.7,45.6,46.2,45.9, 47.9,46.1,47.2,47.7,47.5,48.9,49.7,45.7,46.1,43.9,42.3,44.7,45.7).
Jelikož je požadován oboustranný test s hladinou významnosti 10 procent, musí dojít k přenastavení hodnoty parametru conf.level a nastavením argumentu alternative se nastaví typ alternativní hypotézy H1.Zápis a výstup v R s přenastavenými argumenty je následující:
38
>t.test(b,b1,alternative = "two.sided",conf.level = 0.9) WelchTwo Sample t-test data: b and b1 t = 0.2005, df = 45.877, p-value = 0.8419 alternativehypothesis: truedifference in meansis not equal to 0 90 percentconfidence interval: -0.7371 0.9371 sample estimates: meanof x meanof y 46.4375 46.3375.
Na základě testu není zamítnuta hypotéza H0 o shodě středních hodnot dvou nezávislých výběrů na hladině významnosti deset procent. Párový t- test Párovým t-testem se ověřuje, zda se měření ve dvou časových intervalech na jednom vzorku populace výrazně liší. Vzorek pro tento test je populace o dvaceti subjektech odpovídajících na určité otázky před a měsíc po přednášce. Testem se tedy ověřuje, zda přednáška přinesla vědomostní posun v určité oblasti. Testované hypotézy: H0: µ0= µ1 H1: non H0 Data pro párový t-test obsahují proměnné „d1“ a „d2“. Jejich zapsání do R je následující: >d1=c(10,11,10,12,11,10,9,11,9,8,11,9,11,10,11,10,9,12,11,10) >d2=c(16,17,17,17,19,17,16,15,19,19,19,19,18,17,16,15,15,15,17,18)
Pro párový t-test musí být nastaven argument paired jako TRUE. Požadovaná hladina významnosti je pět procent. Zápis a výstup pro daný test v R je následující: >t.test(d1,d2,paired = T) Paired t-test data: d1 and d2 t = -15.0866, df = 19, p-value = 4.974e-12 alternativehypothesis: truedifference in meansis not equal to 0 95 percentconfidence interval: -7.74339 -5.85661 sample estimates: meanofthedifferences -6.8
39
Na hladině významnosti pět procent byl zjištěn významný nárůst hodnot u studovaného subjektu v rámci dvou měření ve dvou diskrétních časových úsecích. Z testu tedy vyplývá, že i po měsíci mají tázaní respondenti v paměti informace z přednášky. Více nezávislých výběrů V této kapitole bude předvedeno, jak postupovat při aplikaci F – testu v R. Tento test potřebuje určitou úpravu dat. Nejdříve musí být vytvořena tabulka, kde v jednom sloupci budou hodnoty proměnných a ve druhém sloupci skupiny, do kterých spadají. (pozn.: V podstatě shodně jako při práci v SPSS). Testované skupiny obsahují proměnné „e1“,“e2“ a„e3“: > e1 = c(21,20,19,20,18,21) > e3 = c(36,38,34,35,33,32) > e2 = c(27,27,27,28,30,31)
Pro další pokračování je důležité sloučení hodnot do jedné proměnné. > e= c(e1,e2,e3)
V dalším kroku je potřeba vytvořit datovou tabulku, kde první sloupec obsahuje skupiny a druhý sloupec hodnoty proměnných „e1“, “e2“ a „e3“: >data1=data.frame(e,group=factor(rep(rep(1:3,rep(6,3)),1)))
Argument funkce group vytvoří skupiny, kde část rep(6,3)nastaví počet hodnot ve skupině na hodnotu 6 a celkový počet skupin na hodnotu 3, dále část rep(1:3) upravuje kódování skupin a následně jednička na konci závorky určuje celkový počet opakování cyklu. (Např. kdyby byla místo jedničky nastavena hodnota dvě, pokračoval by tento řetězec hodnot ještě jednou od začátku). K výpočtu anova testu se používá funkce lm(…), kde se mezi závorky nastaví vektor hodnot, v tomto případě „e“, a vektor skupin, v tomto případě „group“, kde „group“je vektorem vah pro proměnnou „e“. Dále je potřeba zadat název datové tabulky „data1“. Hypotézy pro tento případ jsou: H0: µ1=µ2=…= µn H1: non H0
(alespoň jedno µ je odlišné).
40
Zápis a výstup v R vypadá takto: >anova(lm(e~group,data= data1)) Analysisof Variance Table Response: e Df Sum SqMeanSq F valuePr(>F) group 2 664.78 332.39 109.58 1.12e-09 *** Residuals 15 45.50 3.03 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Podle p-value hodnoty je patrné, že hypotéza H0 o shodě středních hodnot u jednotlivých skupin musí být zamítnuta na základě výsledků provedeného F testu. Výstup z Anova se významně neliší od výstupu jiných statistických programů. Pro zjištění, zda a které skupiny jsou významně rozdílné, se používá Tukeyův test.
Tukeyův test Funkce pro Tukeyův test TukeyHSD(…). Zápis a výstup Tukeyova testu se v R provádí následujícím předpisem: >TukeyHSD(aov(formula = e~group, data = data1)) Tukeymultiplecomparisonsofmeans 95% family-wiseconfidencelevel Fit: aov(formula = e ~ group, data = data1) $groupdiff lwr 2-1 8.500000 3-1 14.833333 3-2 6.333333
upr p adj 5.888139 11.111861 12.221473 17.445194 3.721473 8.945194
1.20e-06 0.00e+00 4.02e-05
Výstupy blízké k nule u hodnot ve sloupci p adj potvrdil významný rozdíl mezi všemi skupinami.
41
3.7.2 Neparametrické testy o střední hodnotě: Pro ukázku neparametrických testů o střední hodnotě budou využity data z testů parametrických, nicméně bude teoreticky předpokládáno narušení nějaké podmínky pro použití parametrického testu. Výstupem je vždy výsledná hodnota testu, p-value hodnota hladiny významnosti testu a popis alternativní hypotézy.
Mann-Whitneyův test Tento test lze považovat za alternativu k t-testu. V prostředí R se vytváří pomocí funkce wilcox.test(…) .Jako data pro test budou opět použity hodnoty proměnných „b“a „b1“. Pokud je parametr correct nastaven jako TRUE, je u testu použita aproximace normality. Hypotézy pro případ tohoto testu: H0: µ1 = µ2 H1: µ1 ≠ µ2 >wilcox.test(b,b1, correct = F) Wilcoxon rank sum test data: b and b1 W = 307, p-value = 0.6949 alternativehypothesis: truelocation shift is not equal to 0
Výstup obsahuje zápis o testovaných datech, výslednou hodnotu Mann-Whitneyova testu W, p-value hodnotu hladiny významnosti nezamítnutí H0 a znění alternativní hypotézy H1. Zde na hladině významnosti 69,49 procent není zamítnuta hypotéza H0.
Wilcoxův párový test Neparametrická alternativa párového t-testu, která se vytváří znovu pomocí funkce wilcox.test(…). Jako data pro test jsou použity hodnoty proměnných „d1“ a „d2“. Wilcoxův párový test musí obsahovat parametr paired = TRUE, aby se jednalo o párový test.
42
Hypotézy pro tento případ jsou: H0: µ0= µ1 H1: non H0 Zápis pro výpočet párového Wilcoxova testu je v R následující >wilcox.test(d1,d2, correct = F,alternative = "greater", paired = T)
Wilcoxonsigned rank test data: d1 and d2 V = 0, p-value = 1 alternativehypothesis: truelocation shift isgreaterthan 0
Výstup obsahuje znovu výpis testovaných proměnných, výslednou hodnotu Wilcoxova testu V,p-value hodnotu hladiny významnosti nezamítnutí H0 a znění alternativní hypotézy H1. Zde na stoprocentní hladině významnosti není zamítnuta hypotéza H0.
Kruskal–Wallisův test Kruskal–Wallisův test lze brát jako neparametrickou alternativu Anovy. Pro tento test je použit datový soubor „data1“. V prostředí R se tento test zapisuje pomocí funkce kruskal.test (…) Hypotézy pro tento případ jsou: H0: µ1=µ2=…= µn H1: non H0
(alespoň jedno µ je odlišné).
>kruskal.test(data1) Kruskal-Wallis rank sum test data: data1 Kruskal-Wallischi-squared = 26.651, df = 1, p-value = 2.437e-07
Kruskal-Wallisův test využívá testovací hodnotu chí kvadrát. Dále výstup obsahuje počet stupňů volnosti df a p-value hodnotu hladiny významnosti nezamítnutí H0. Zde je hypotéza H0 zamítnuta a přijata alternativa H1
43
3.7.3 Testy o populační relativní četnosti Test o parametru π alternativního rozdělení Hypotézy pro tento test mají tvar H0: π = π0, alternativní hypotéza H1 pokrývá všechny ostatní možné nerovnosti parametrů π a π0. Funkce v R využívaná pro testování zmíněné hypotézy je prop.test(…). Důležité argumenty pro tuto funkci jsou argument p, alternative, conf.level a correct. Argument p je roven testované hodnotě π0. Argument alternative upravuje typ alternativní hypotézy, ve smyslu, že se jedná o jednostranný nebo oboustranný typ. Conf.level upravuje hladinu významnosti testu. Argument correct nastavuje možnou aproximaci alternativního rozdělení rozdělením normálním. Na příkladech bude předvedena syntaxe v R při využití testů o populační relativní četnosti. Nyní bude proveden test na smyšleném vzorku 272 aut, která projela kolem silničního radaru, z nichž 68 nezpomalilo. Bude testováno, zda aut, která nezpomalí, bude méně než 30 procent. Hypotézy pro případ tohoto testu: H0: π= π 0 H1: π< π 0 Zápis v R pro tento případ je: >prop.test(68,272,p
=
0.3,alternative
="less",
conf.level
=
0.95,
correct = F)
1-sampleproportions test withoutcontinuitycorrection data: 68 outof 272, null probability 0.3 X-squared = 3.2381, df = 1, p-value = 0.03597 alternativehypothesis: true p islessthan 0.3 95 percentconfidence interval: 0.0000000 0.2955056 sample estimates: p 0.25
Výstupem je hodnota chí kvadrát, p–value hodnota hladiny významnosti o nezamítnutí H0, interval spolehlivosti pro parametr π a znění alternativní hypotézy.
44
Zde test zamítá hypotézu H0, že nezpomalí třicet procent aut, a přijímá alternativní hypotézu, že jich nezpomalí méně než třicet procent na pěti procentní hladině významnosti.
Test o rovnosti parametrů dvou alternativních rozdělení Hypotéza pro tento test má tvar H0: π1
=
π2oproti možným alternativám H1
o nerovnosti parametrů π. K tomuto testu se využívá funkce prop.test(…) se stejnými parametry jako předchozí test, lišící se pouze zápisem syntaxe v R.
Testováno je, zda dobrovolné vstupné zaplatil stejný podíl návštěvníků hradu v březnu i v dubnu. V březnu zaplatilo dobrovolné vstupné 310 ze 756 návštěvníků, v dubnu 718 z 1420 návštěvníků. Otázkou je, zda zaplatilo v obou případech stejné procento návštěvníků. Hypotézy pro tento test jsou: H0: π1= π2 H1: π1≠π2.
Zápis tohoto testu v R má podobu: >prop.test(c(310,718),c(756,1420),conf.level
=
0.90,alternative
=
"two.sided") 2-sample test forequalityofproportionswithcontinuitycorrection data: c(310, 718) outof c(756, 1420) X-squared = 17.7018, df = 1, p-value = 2.584e-05 alternativehypothesis: two.sided 90 percentconfidence interval: -0.13322775 -0.05793403 sample estimates: prop 1 prop 2 0.4100529 0.5056338
Výstup je podobný jako u předchozího případu. Tentokrát však nebyla neprovedena úprava argumentu correct.
45
Na základě výstupů lze zamítnout hypotézu H0o procentní shodě počtu návštěvníků platících dobrovolné vstupné v měsících březnu a dubnu na deseti procentní hladině významnosti. Testování hypotéz je mnohem přehlednější a snadnější než nabízí možnosti SPSS. Vždy je napsána ve výstupu alternativní hypotéza. Program R navíc přímo odlišuje jednostranné a oboustranné typy hypotéz.
46
3.8 Regresní analýza v R Tato kapitola bude zaměřena na jednorozměrnou a vícerozměrnou regresní analýzu v programu R, odhady, významnost jednotlivých parametrů a grafické znázornění výstupů. Pro všechny grafy je nutné mít aktivní balíček car. 3.8.1 Lineární regresní analýza Pro ukázku výpočtu regresního modelu v prostředí R byly vybrány data o výši stávajících příjmů („salnow“) a data o výši počátečních příjmů („salbeg“). Je zkoumána závislost současných příjmů na počátečný příjem u vybraného vzorku respondentů. Funkce závislosti se zadává pomocí příkazu lm(…). Mezi závorky se zapisuje vztah závislosti pomocí vlnovky ve tvaru lm(Y~X, data = název zdrojového datového souboru zkoumaných proměnných). Celý model je nutné pojmenovat, například „reg1“. Konečný zápis v R je: > reg1 = lm(salnow~salbeg,data = banka).
V dalším kroku se celkový test vyvolá pomocí funkce summary(…): >summary(reg1)
Call: lm(formula = salnow ~ salbeg, data = banka) Residuals: Min 1Q Median 3Q Max -14169.7 -1612.2 -461.7 1033.7 19717.1 Coefficients: EstimateStd. Error t valuePr(>|t|) (Intercept) 771.28230 355.47194 2.17 0.0305 * salbeg1.90945 0.04741 40.28 <2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3246 on 472 degreesoffreedom Multiple R-squared: 0.7746, Adjusted R-squared: 0.7741 F-statistic: 1622 on 1 and 472 DF, p-value: < 2.2e-16 .
Ve výstupu jsou vypsány momentové a popisné statistiky reziduí a hodnoty jednotlivých parametrů regresního modelu. Test významnosti parametrů zde graficky signalizují hvězdičky. Dále jsou zde zobrazeny hodnoty
a vyrovnaného (adjustovaného)
. Celá
tabulka je uzavřená F testem modelu, který potvrzuje významnost modelu jako celku. Regresní přímka modelu závislosti počátečních příjmů na součastných příjmech by byla v tomto případě ve tvaru Y= 771.28230 + 1.90945X.
47
Pro vyvolání zobrazení pouze samostatných odhadů regresních koeficientů se využívá funkce coef(…), jež se zadá v R a výsledek zobrazí následovně: >coef(reg1) (Intercept) 771.28230 .
salbeg 1.90945
Je-li třeba zjistit interval spolehlivosti pro odhady parametrů regresního modelu, je k tomu využívána funkce confint(…). Do závorek se zapisuje pojmenování regresního modelu. Vstup a výstup na pětiprocentní hladině významnosti analyzovaného příkladu v R je: >confint(reg1) 2.5 % 97.5 % (Intercept) 72.77899 1469.78562 salbeg 1.81629 2.00261.
Graf závislostí Pro náhled rozložení hodnot kolem přímky regresního modelu se postupuje v následujících krocích. Nejprve se pomocí funkce plot(…) vykreslí hodnoty zkoumaných proměnných: >plot(salnow~salbeg, data = banka, main = "linearniregresni model"),
Ve druhém kroku se do tohoto grafu vloží regresní přímka použitím funkce abline(…), kde se mezi závorky vloží dříve zvolené pojmenování regresního modelu (v tomto případě reg1). Následující argument col upraví barvu a pch sílu přímky. >abline(reg1,col = "blue",pch = 1)
Konečnou podobu grafu znázorňuje obrázek 3.1.
48
Graf 3.1. – Graf závislostí v R
30000 10000
20000
salnow
40000
50000
linearni regresni model
5000
10000
15000
20000
25000
30000
salbeg
Zdroj - Výstup z R
Další možností, jak si nechat tento graf vykreslit, je použití funkce avPlot(…). Tato funkce vykreslí stejný graf jako je na obrázku 3.8.1, navíc ale obsahuje argument, který zobrazí v grafu nejodlehlejší hodnoty proměnných od regresní přímky. Argument který nastavuje počet zobrazených odlehlých hodnot se nazývá id.n. Argumentem id.cex se nastavuje velikost písma u zobrazeného bodu odlehlé hodnoty proměnné. Pomocí této funkce se vykreslí stejný graf jako předchozí a navíc se zobrazí nejodlehlejší hodnoty od regresní křivky. Následující zápis v R vykreslí graf a vypíše počet odlehlých hodnot v grafu. >avPlots(reg1, id.n=2, id.cex=0.7)
Výstup ilustruje obrázek 3.2.
49
40000
Graf 3.2. – Avplot v R
2
60
10000
20000
149
0
salnow | others
30000
56
0
5000
10000
15000
20000
25000
salbeg | others
Zdroj - Výstup z R
Q-Q graf v R Podle tvaru Q-Q grafu se dá posoudit symetrie, normalita, špičatost a homogenita výběru. Hlavní využití nachází v posouzení normality datového souboru. Pro zobrazení Q-Q grafu se využívá funkce qqPlot(…). V tomto ukázkovém příkladu se nechá vykreslit Q-Q graf pro hodnoty reziduí z modelu reg1. Zápis vstupu pro tento požadavek je ve tvaru: >qqPlot(reg1).
Následný graf zobrazuje graf 3.3.
50
Graf 3.3 – QQ plot
Zdroj - Výstup z R
Bonferroniho test o odlehlých pozorováních Tento test odhalí nejodlehlejší hodnoty pozorování v modelu a označí je. Poté vypíše řádek ze základního datového souboru, kde se nacházejí. Vyvolá se pomocí funkce outlierTest(…). Tento test na základě upraveného t-testu rozhoduje, jestli je významná odchylka nejodlehlejších hodnot od normálního rozdělení. Syntaxe v R a výstup je: >outlierTest(reg1) rstudentunadjusted p-valueBonferonni p 149 6.339802 5.3940e-10 2.5568e-07 60 6.147290 1.6818e-09 7.9716e-07 129 5.102105 4.8797e-07 2.3130e-04 122 -4.559631 6.5411e-06 3.1005e-03 177 4.152704 3.9012e-05 1.8492e-02.
Takřka nulová hodnota phodnota jak u klasického t-testu, tak u Bonferinniho testu v posledním sloupci tabulky značí, že jde o odlehlou hodnotu.
51
Nelineární regresní modely Pokud by se jednalo o nelineární regresi, mění se v R jen zápis regresního modelu, jinak je postup stejný. Příklady zápisu dalších nelineárních funkcí v R: Logaritmický model > reg3 = lm(log(y) ~ log(x))
Polynomický model > reg4 = y ~ poly(x,2,raw = T)
3.8.2 Vícerozměrná regresní analýza
Pro další analýzy bude použitá nejjednodušší varianta vícerozměrného regresního modelu se dvěma vysvětlujícími proměnnými. Syntaxe v R je stejná jako u jednorozměrné regresní analýzy, jen je doplněn obecně funkční zápis matematických vztahů mezi proměnnými, jako obecný zápis modelu. Bude ukázáno, jakým způsobem se zadává vstup pro více vysvětlovaných proměnných v R, kde je zkoumána závislost proměnných „salnow“ na proměnných „salbeg“ a „edlevel“. Název modelu pro další analýzy bude pojmenován reg2. > reg2 = lm(salnow ~ salbeg + edlevel, data = banka)
Tímto je zapsán požadavek na model a celkový výstup analýzy se vyvolá příkazem: summary (zvolené pojmenování modelu)
52
>summary(reg2) Call: lm(formula = salnow ~ salbeg + edlevel, data = banka) Residuals: Min 1Q Median 3Q Max -11832.3 -1637.0 -296.2 1166.7 19687.4 Coefficients: EstimateStd. Error t valuePr(>|t|) (Intercept) -3.123e+03 7.015e+02 -4.452 1.06e-05 *** salbeg 1.673e+00 5.885e-02 28.423 < 2e-16 *** edlevel 4.082e+02 6.422e+01 6.356 4.91e-10 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3119 on 471 degreesoffreedom Multiple R-squared: 0.7924, Adjusted R-squared: 0.7915 F-statistic: 898.9 on 2 and 471 DF, p-value: < 2.2e-16
Ve výstupu jsou vypsány momentové a popisné statistiky reziduí, hodnota jednotlivých parametrů regresního modelu a test jejich významnosti, zde opět signalizované jak pomocí hvězdiček, tak i p-value hodnotou. Dále jsou zde zobrazeny hodnoty (adjustovaného)
a vyrovnaného
. Celá tabulka je uzavřená F testem modelu, který potvrzuje
významnost modelu jako celku. Výsledný tvar modelu tak bude: Y = -3123 + 1.673 *X1 + 408,2 *X2, kde Y je hodnota současných příjmů, X1je hodnota počátečních příjmů, X2 je věk respondenta.
Test na heteroskedasticitu Jelikož se jedná o průřezová data, je dobré si udělat test na heteroskedasticitu, která je jednou z podmínek pro metodu nejmenších čtverců. Funkce pro tento test se nazývá ncvTest(…). Zápis vstupu do R pro případ regresního modelu označeného jako reg2 je: >ncvTest(reg2) Non-constant Variance Score Test Variance formula: ~ fitted.values Chisquare = 246.5828 Df = 1
p = 1.4436e-55
Testovým rozdělením je chí kvadrát, výstup obsahuje stupně volnosti df a phodnotu hladiny významnosti pro zamítnutí hypotézy o homoskedasticitě vzorku. Téměř nulová hodnota p značí zamítnutí hypotézy o homoskedasticitě vzorku.
53
3D Graf pro hodnoty proměnných se vytváří pomocí funkce scatter3d(…). Výstupem je trojrozměrný graf, kde osy značí jednotlivé proměnné a hodnoty pozorování u jednotlivých proměnných jsou zobrazeny jako kuličky. Pokud je tento graf zobrazován v R, lze s ním libovolně otáčet. Pro ilustrační účely je vytvořena fotka (obrázek 3.4.). Funkce, kterou je graf vyvolán, se zapisuje do hlavní konzole v R v tomto tvaru: >scatter3d(salnow ~salbeg point.col = "red").
+
edlevel,
data
=banka,col="red",
Obráze3.4. -3D bodový graf závislostí
Zdroj - Výstup z R
54
Scatter plot pro vícerozměrnou regresní analýzu Vykreslení maticového scatter plotu se vytvoří příkazem scatterplotMatrix(…). Na hlavní diagonále jsou vykresleny hustoty rozdělení u vybraných proměnných v modelu. Změnou argumentu diagonal=c("…") lze nastavit, aby byl na diagonále zobrazen například histogram, boxplot nebo Q-Q graf. V ilustračním případě je požadováno vykreslení grafů závislostí mezi jednotlivými proměnnými (grafy mimo diagonálu) a histogramů jednotlivých proměnných, již zkoumaných v regresním modelu z úvodu kapitoly o vícerozměrné regresi. Zápis v R je pro tento graf specifický a má podobu:
>scatterplotMatrix(~salnow diagonal=c( "density"))
+
salbeg
+
edlevel,
data
Výstup se poté zobrazí přes celou obrazovku v R v tomto vzhledu: Graf 3.5. –Maticový scatter plot
Zdroj - Výstup z R
=
banka,
55
3D graf s vykreslením regresní roviny 3D scaterplot zobrazuje vzdálenosti roviny regresního modelu od hodnot proměnných. Vyvolá se pomocí funkce scatter3d(…) a úpravou argumentu surface = T. V prostředí R lze s grafem libovolně otáčet (ilustrační graf je pouze jednou z možností z mnoha pohledů). Zápis vstupu do R pro vykreslení výsledného grafu (graf 3.6.) je: >scatter3d(salnow ~ salbeg + edlevel, data = banka,surface = TRUE,col = "red",point.col = "red").
Graf 3.6 – 3D plot s vykreslenou funkcí regresního modelu
Zdroj - Výstup z R
. Vzdálenosti mezi (regresní) rovinou a napozorovanými hodnotami je symbolizována úsečkami (tj. rozdíl mezi naměřenými a vyrovnanými hodnotami). Úsečky nad rovinou mají zelenou barvu, pod rovinou červenou barvu.
56
3.9 Grafika v R
Následující kapitola se zaměří na problematiku tvorby grafických výstupů v programu R. Také bude vysvětlen postup zápisu funkce do R a nejdůležitější argumenty u jednotlivých funkcí, které výrazně mnění výslednou podobu grafu. 3.9.1 Histogram v R Ve své základní formě je tvorba grafu nenáročná. Základní funkce má název hist(…). Jelikož histogram se využívá k zobrazení hodnot u spojité proměnné, užije se proměnná „salary“ z původního datového souboru „employee“. Proměnná „salary“ obsahuje hodnoty o výši platů tázaného výběru respondentů. Při načítání datového souboru „emploee“ byl již dříve zvolen název „Ukol1“ (viz kap. Načítání dat). Následující zápis vstupu do R odpovídá požadavku na vytvoření histogramu ze zvolené proměnné ve své základní podobě a graf 3.7 zobrazuje následný výstup. >hist(Ukol1$salary)
Graf 3.7 – Úvodní histogram
100 50 0
Frequency
150
200
Histogram of Ukol1$salary
20000
40000
60000
80000
100000
120000
140000
Ukol1$salary
Zdroj - Výstup z R
57
Základní graf lze chápat spíše jako náhled. Například osy x a y obvykle ani nepokrývají celý rozsah grafu. Graf neobsahuje titulek a popisky os jsou v základní formě. Další krok se tedy zaměří na změnu názvu jednotlivých os, přidání titulku grafu a změnu barev výplně i ohraničení sloupců. Funkce s argumenty, které upravují výsledný výstup, bude ve tvaru hist(x, xlim, ylim, xlab, ylab, main, col, border). Argument x zastupuje studovanou proměnou. Pomocí argumentů xlim a ylim se nastavuje rozsah zobrazení os. Argumenty xlab a ylab umožňují přepsání názvu os. Main je argument přidávající do grafu nadpis. Poslední dva zmíněné argumenty col a border nastavují barvy výplní, col nastavuje barvu výplně sloupců a border barvu ohraničení sloupců. Následující zápis demonstruje úpravu argumentů a graf 3.8. výstup: >hist(Ukol1$salary,ylab = "četnost" ,xlab = "platy",ylim = c(0,250) ,xlim=c(0,160000),main border = "red"
=
"HISTOGRAM
-
1.ÚPRAVA
",col
)
Graf 3.8 –první úprava
HISTOGRAM - 1.ÚPRAVA 250
200
150 četnost
100
50
0 0
50000
100000
150000
platy
Zdroj – vlastní výstup z R
=
"blue"
,
58
Ve druhém kroku bude předvedeno, jakým způsobem lze přidávat popisky nad jednotlivé sloupce a jak lze nastavit rozměry jednotlivých sloupců. Argument, který přidá popisky četností nad jednotlivé sloupce, má název lables. Popisky se nad jednotlivé sloupce přidají zadáním argumentu labels do vstupující funkce hist(…) ve tvaru labels = T. Nastavení šíře sloupců upravuje argument breaks. Nejjednodušším způsobem jak nastavit šíři sloupců je nastavit pevnou hodnotu o počtu sloupců např. nastavením argumentu ve tvaru breaks = c(50). Tím se zajistí, že výsledný histogram bude mít 50 sloupců. Dalším způsobem je použití jedno z pravidel popsaných v teoretické části. Např. použití Freedman-Diaconisova pravidla se zajistí nastavení argumentu breaks ve tvaru breaks = „FD“ . Konečný vstup do R s přidáním nastavených argumentu labels a breaks je: >hist(Ukol1$salary,ylab = "četnost" ,xlab = "platy",ylim = c(0,250) ,xlim=c(0,160000),main = "HISTOGRAM - 2.ÚPRAVA ",col = "blue" ,border = "red" , labels =T,breaks = "FD" ).
Graf 3.9. – druhá úprava HISTOGRAM - 2.ÚPRAVA 250
200
150 četnos 12 110 0
t 100
75 50 33
32 2 1
0 0
121412 9 13
6 4 3 1 3 2 2 1 0 0 0 0 1
50000
100000
150000
platy
Zdroj – vlastní výstup z R
59
3.9.2 Výsečový graf v R
Výsečový graf zobrazuje zastoupení jednotlivých kategorií ve výběru. Pro ukázku tvorby zmíněného grafu v prostředí R byly vybrány počty hlasů parlamentních stran ve volbách 2013. Proměnná je pojmenovaná „VOLBY“. Funkce pro vytváření výsečového grafu má název pie(…). Základní požadavek na vytvoření grafu z hodnot proměnné volby je tedy: >pie(VOLBY)
Graf 3.10. – základní výsečový graf
2 1
3
7
4 6
5
Zdroj – vlastní výstup z R
Graf 3.10. je v této podobě spíše náhledem na zastoupení kategorií, neobsahuje žádné popisky, v základním nastavení se ani nijak nerozlišuje barevné schéma pro výseče. V následujících krocích bude představena úprava grafu v prostředí R. V prvním kroku bude přidán název grafu argumentem main. Dále budou přidány popisky k jednotlivým výsečím za využití argumentu labels a nastavení barevného schématu argumentem col. Názvy stran obsahuje proměnná „STRANY“ a barevné schéma vytvořené pro jednotlivé výseče proměnná „barva“* >STRANY = c("CSSD","KSCM","TOP09","ODS","ANO2011","USVIT","KDUCSL") >barva=c("orange","red","blueviolet","blue","springgreen","cyan", "gold").
60
Zápis s danými požadavky na změny konečného výstupu je: >pie(VOLBY, labels = STRANY, col =barva ,main = "VOLBY 2013")
Graf 3.11 - výsečový graf 1. úpravy
VOLBY 2013
KSCM CSSD
TOP09
KDUCSL
ODS USVIT
ANO2011 Zdroj – vlastní výstup z R
Zvláštností výsečového grafu vytvořeného v R je, že výseče začínají na třetí hodině a jsou řazeny proti směru hodinových ručiček. Argument, který změní začátek na dvanáct hodin a otočí rotaci, je clockwise, který se připíše do funkce ve tvaru clockwise= T . Tento typ grafu je velmi často doprovázen legendou a u výsečí se objevují hodnoty v procentech. Vektor převádějící absolutní hodnoty u jednotlivých kategorií na procenta se vytvoří ve dvou následujících fázích, stejně jako přidání znaku procenta. V první fázi se vypíše vektor podílů bodů jednotlivých hráčů na celkovém počtu bodů. Ve druhém kroku se funkcí paste(…) pro přidají znaky procent. Zápis požadavku do R na vytvoření vektoru hodnot relativních četností a přidání znaku procenta vypadá tedy následovně:
61
>prc = round((100*(VOLBY/sum(VOLBY))),digits = 1) > procenta = paste(prc, "%", sep="")
Pro umístění legendy do grafu se používá funkce legend(…). První argument u funkce legend(…) umísťuje legendu na určitou pozici v grafu. Lze sice použít i umístění pomocí xy souřadnic, nicméně mnohem jednoduší pro umístění legendy je použít hodnotu z Tabulky 2. Tabulka 3.1 - Umístění legendy v grafu
TOPLEFT
TOP
TOPRIGHT
LEFT
VÝSEČOVÝ GRAF
RIGHT
BOTTOMLEFT
BOTTOM
BOTTOMLEFT Zdroj - Nápověda k funkci legend
Další důležité argumenty ovlivňující funkci legend(…) jsou cex a fil. Argumentem cex se upraví velikost legendy a argumentem fill se přidá barevné přiřazení výsečí do legendy. Celkový graf s procentuálním i absolutním zobrazením hodnot u výsečí a přidání legendy se zadá v R následujícím zápisem: >pie(VOLBY, labels = paste(VOLBY,procenta),col = barva,main ="Graf s procenty")
Tímto požadavkem se ale vytvořil pouze výsečový graf s žádanými popisky. Pro přidání legendy se použije následující kód a výsledný výstup zobrazuje graf 3.12. >legend("bottomleft",STRANY, fill = barva, cex = 0.6)
62
Graf 3.12. – Přidání legendy a procentního označení u výsečí Graf s procenty
17.1% 23.4%
13.7%
7.8% 8.8% 7.9% CSSD KSCM TOP09 ODS ANO2011 USVIT KDUCSL
21.3%
Zdroj - vlastní výstup z R
Tvorba 3D výsečového grafu v R
Pro vytvoření 3D výsečového grafu je nutné mít nainstalovaný a aktivní balíček plotrix. >library(plotrix)
Vytvářeni 3D grafu je stejné jako u dvourozměrného grafu s tím rozdílem, že parametr clockvise nahradil parametr start a navíc přibyl parametr explode, který upravuje vzdálenost oddělení výsečí od sebe. Přidání legendy je stejné jako u 2D grafů. 3D výsečový graf s odskočenými jednotlivými výsečemi se vykreslí po zadání následující funkce: >pie3D(VOLBY, labels = STRANY, col =barva ,main = "3D Výsečový graf" ,explode = 0.075)
.
63
Graf 3.13. – 3D výsečový graf s popisky 3D Výsečovýgraf
KSCM CSSD TOP09 KDUCSL ODS
USVIT ANO2011
Zdroj - Výstup z R
3.9.3 Boxplot v R Tato kapitola bude zaměřena na další velmi důležitý graf s názvem boxplot, neboli krabičkový graf. Bude vysvětlena tvorba grafu v prostředí R, výstupy, nejdůležitější parametry a grafické úpravy. Je známo, že boxplot je ideálním grafem pro náhled rozpětí hodnot pozorování u jednotlivých proměnných. Data budou opět použita z datového souboru „employee“. Základní boxplot se vytvoří pomocí funkce boxplot(…). V tomto případě bude využita proměnná „salbegin“. Zápis kódu v R pro boxplot z proměnné „salbegin“ zobrazeného na grafu 3.14. je: >boxplot(Ukol1$salbegin).
64
Graf 3.14. – Úvodní boxplot pro proměnnou „salbegin“
Zdroj - Výstup z R
Funkce vykreslila základní boxplot z proměnné. Pokud je potřeba znát přesné informace, které vykreslil boxplot, využije se funkce str(…), která vypíše celkovou strukturu boxplotu. Tento krok je nutné si pojmenovat, protože funkce str(…) zobrazí jenom náhled, což ukazuje následující výstup: >struktura = str(boxplot(Ukol1$salbegin)) List of 6 $ stats: integer [1:5, 1] 9000 12450 15000 17490 25000 $ n : num 474 $ conf : num [1:2, 1] 14634 15366 $ out : num [1:60] 27000 27510 27480 79980 45000 ... $ group: num [1:60] 1 1 1 1 1 1 1 1 1 1 ... $ names: chr "1" Například hodnot klasifikovaných jako odlehlé je celkem 60 ($ out : num [1:60]), a funkce zobrazila jen 5 hodnot z celé řady. Pro vypsání celé řady se musí využít příkazu struktura$out. Další důležité vypsané hodnoty funkce jsou $stats, která značí hodnoty jednotlivých vodorovných čar boxplotu od dolního fousu k hornímu. Hodnoty $n značí celkový počet pozorování. $out obsahuje zápis o počtu odlehlých pozorování a jejich hodnoty.
65
Boxplot lze zobrazit vertikálně nebo horizontálně. Pro přetočení na horizontální zobrazení se využívá argument horizontal = TRUE. Tento argument lze použít i u jiných grafů. Pokud je vyžadováno zobrazení více boxplotů v závislosti na další ordinální proměnné, výstup v R bude následující. (Pro příklad bude zobrazen boxplot počátečních platů „salbegin“ v závislosti na pohlaví „gender“. Zobrazení boxplot grafů bude horizontální.) >boxplot(Ukol1$salbegin~Ukol1$gender,col = c("red","blue"),main "boxplot počátečních platů v závislosti na pohlaví",horizontal = T)
Graf 3.15 – Horizontální pro dva boxploty
Zdroj - Výstup z R
=
66
3.9.4 Sloupcový graf v R Pro sloupcový graf v R se využívá funkce barplot(…). Důležité argumenty pro tvorbu tohoto grafu jsou ve své podstatě shodné jako u ostatních grafů. Navíc je u tohoto grafu pouze argument names.arg, který přidává popisky k jednotlivým sloupcům. Je rozdíl, pro jaká data je třeba vytvořit sloupcový graf. Požadavkem je vytvořit graf z absolutních čísel vázaných na určitou nominální proměnnou. Například proměnná „VOLBY“ obsahuje získané hlasy jednotlivých politických stran ve volbách do poslanecké sněmovny 2013. Postup vytvoření grafu v R je: >barplot(VOLBY/1000,names.arg = STRANY,col = barva, ylim = c(0,max(VOLBY)/1000+200),main = "sloupcový "strany",ylab = "počty hlasů v tis.",las = 1)
graf",
sub
=
Jelikož nelze přiřadit automaticky popisky ke sloupcům, musí se požít argument names.arg,
který
sloupcům
přidá
názvy.
Úpravou
argumentu
ylim(ylim
=
c(0,max(VOLBY)/1000+200) se v tomto případě zajistí, že osa y bude mít rozsah větší než je výše sloupců. Argument sub přidá pod graf textové pole. Graf 3.16. zobrazuje konečný výsledek. Graf 3.16. – sloupcový graf sloupcový graf 1200
1000
počty hlasů v tis.
800
600
400
200
0 CSSD
KSCM
TOP09
ODS
ANO2011
USVIT
KDUCSL
strany
Zdroj - Výstup z R
67
Následující postup předvede přidání textového pole do sloupců. V tomto případě bude textové pole obsahovat hodnoty absolutních četností jednotlivých sloupců. Postup má dvě části. V první kroku je potřeba pojmenovat funkci pro vykreslení sloupcového grafu: >bp1=barplot(VOLBY/1000,names.arg = STRANY,col = ylim = c(0,max(VOLBY)/1000+200),main = "sloupcový sub ="strany",ylab = "počty hlasů v tis.",las = 1)
barva, graf",
Ve druhém kroku se využije funkce text(…) pro přidání textového pole. Tuto funkci lze použít pro všechny druhy a rozsahy sloupcových grafů, jen s adekvátní změnou podtržených oblastí ve funkci. Výsledek zobrazuje graf 3.17. >text(bp1, 0, round(VOLBY, 1),cex=1,pos=3)
Graf 3.17. – přidání textového pole sloupcový graf 1200
1000
počty hlasů v tis.
800
600
400
200
1016829
741044
596357
384174
927240
342339
336970
CSSD
KSCM
TOP09
ODS
ANO2011
USVIT
KDUCSL
0
strany
Zdroj – vlastní výstup z R
Povětšinou je však nutné nejprve data uspořádat, než je možné z nich vytvořit graf. V případě sloupcového grafu je třeba nejdřív vytvořit z hodnot obsažených v určité proměnné tabulku četností. Požadavkem je například vytvoření sloupcového grafu s četnostmi odpovědí na otázku o počtu výrobků koupených na úvěr. Odpovědi jsou obsažené v proměnné pojmenované „new2“. Postup při vytváření tabulky absolutních četností se provádí pomocí funkce table(…) následujícím způsobem:
68
> x = table(new2)
Tabulka absolutních četností se zobrazí v R následovně: > x new2 0 1 2 3 4 3 45 36 31 16
5 5
Nyní lze vytvořit sloupcový graf v R zadáním: >barplot(x, col = barva, ylim = c(0,50),sub = "počty úvěrů",ylab = "absolutní četnost")
V zadání byl již upraven rozsah osy y argumentem ylim, přidán název k ose y argumentem ylab a nastavena barva argumentem col. Grafický výstup z R s těmito úpravami je:
Graf 3.18. – Zobrazení tabulky četností sloupcovým grafem
Zdroj - Výstup z R
3.9.5 Spojnicový a bodový graf v R Oba tyto grafy se vytvářejí v prostředí R pomocí funkce plot(…). Jediným rozdílem je úprava argumentu type, kde, pokud je zadán ve tvaru type = “p“, vykreslí se bodový graf, a pokud ve tvaru type= “l“, vykreslí se spojnicový graf. Hodnoty, které zobrazuje graf, jsou obsaženy v datovém souboru „indc“. Jednotlivé proměnné obsahují datovou hodnoty roků, druhá proměnná obsahuje hodnoty státního dluhu v jednotlivých letech od 1994 do 2012. Ukázky vlivu změny argumentu type na výsledný graf a tvorbu
69
jednotlivých typů grafu v R znázorňují následující vstupy. Obrázek 3.3. zobrazuje všechny možné změny parametru type a vliv na podobu grafu. Pro přidávání popisků a další grafické úpravy se využívají již dříve vysvětlené argumenty. Více obsahuje nápověda k tvorbě grafu typu plot vyvolaná pomocí zadání příkazu ?plot. >plot(indc,type >plot(indc,type >plot(indc,type >plot(indc,type >plot(indc,type >plot(indc,type
= = = = = =
"p",pch "l",pch "b",pch "o",pch "h",pch "s",pch
= = = = = =
1,col 1,col 1,col 1,col 1,col 1,col
= = = = = =
"red",main "red",main "red",main "red",main "red",main "red",main
="type = p") = "type = l") = "type = b") = "type = o") = "type = h") = "type = s")
Obrázek3.3. – Všechny typy úprav parametru type
Zdroj - Výstup z R
Vzhledem k tomu, že se jednotlivé přesuny a změny výstupu se neovládají pomocí pohybu kurzoru, je práce s grafy v programu R složitější. Nicméně grafy jsou dostatečně přehledné a v předvedených případech adekvátně vykreslují informaci, kterou data obsahují.
70
ZÁVĚR Cílem bakalářské práce bylo ukázat možnost využití a způsob práce s dalším statistickým programem, s programem R, k výpočtům statistických úloh a dokázat tím, že je nezanedbatelným konkurentem k jiným programům, jako je například komerční program SPSS. V první části byly vysvětleny základní teorie statistických metod. Dále je v této části obsaženo úvodní představení programu R. Na teoretickou část navazuje praktická část obsahující devět kapitol. Úvod této části obsahuje informace pro lepší orientaci a zpřehlednění práce. První tři kapitoly se zaměřují na práci s daty. Je zde popsáno, které typy dat lze načíst a jakou funkci k tomu lze využít. Každý předvedený krok je doprovázen komentářem a předvedením výstupu. Následně je ukázáno, jak napsat funkce pro jednotlivé typy náhodných výběrů a jak kontrolovat validity výstupů. V závěru této části bylo vysvětleno vytváření a přidávání proměnných do souboru dat. Čtvrtá kapitola popisuje využití R k výpočtům průměrů, mediánu a dalších důležitých hodnot spadajících do kategorie popisné statistiky. V páté kapitole jsou popsány funkce v R pro práci se základními typy spojitých a nespojitých rozdělení. Šestá kapitola zahrnuje čtyři druhy testů na normalitu, popisy zápisu funkce do R a komentované výstupy. V následující kapitole jsou popsány funkce v R pro testování hypotéz o střední hodnotě a relativní četnosti. Dále jsou zde ukázky změny jednotlivých argumentů, které mají vliv na typ a konečný výsledek testu. Předposlední kapitola se zaměřuje na regresní analýzu v prostředí R doprovázenou komentáři a ukázkami určitých možných grafických výstupů. Závěrečná kapitola je určena pro tvorbu nejpoužívanějších typů grafů od základního zápisu v R přes jednotlivé doplňující argumenty, které mnění vzhled výstupu. V celkovém kontextu lze hodnotit cíle bakalářské jako splněné. Neboť program R byl představen jako možný substitut pro statistické programy využívané při studiu statistiky (např. pro SPSS). Dále byla představena základní komunikace s programem R.
71
V neposlední řadě byly nastíněny způsoby využití programu R k řešení určitých úloh spadajících do kategorie statistických metod. Program R je zcela odlišný po komunikativní stránce než zaběhlé statistické programy jako SPSS nebo SAS. Nedostatkem programu je občasná náročnost na obsluhu a bez určitých rad od zkušenějších nebo z informací v diskuzích na internetu je velmi obtížné některé statistické problémy řešit. Nicméně základna uživatelů se rozrůstá a nové balíčky obsahující určité funkce přibývají a tím se i zjednodušuje obsluha. Cena, kvalita a kompatibilita programu R i jednotlivých přídavných balíčků dává nemalou konkurenční výhodu oproti již zmíněným statistickým programům a stojí za větší pozornost.
72
SEZNAM POUŽITÉ LITERATURY [1]
CRAWLEY, M. Statistics an intruductionusing R, Wiley, 2005
[2]
DELGAARD, Peter. Introductory statistic with R, 2.vyd Springer, 2004
[3]
HINDLS, R. -- HRONOVÁ, S. -- SEGER, J. -- FISCHER, J. Statistika pro ekonomy. 8. vyd. Praha: PROFESSIONAL PUBLISHING, 2007
[4]
HUŠEK. Roman. Ekonometrická Analýza, Praha, Oeconomica, 2007.
[5]
KAHOUNOVÁ, J. -- BÍLKOVÁ, Počet pravděpodobnosti. Praha: Oeconomica, 2004. MAREK, L. Statistika pro ekonomy: aplikace. Praha: Professional Publishing,
[5]
2007. [6]
PECÁKOVÁ,
I. Statistika
v terénních
průzkumech. 2. vyd.
Praha:
PROFESSIONAL PUBLISHING, 2011. [7]
ŘEZANKOVÁ, Hana. – LÖSTER, Tomáš. Úvod do statistiky. Praha: Oeconomica, 2009.
PŘÍLOHY
Důležité klávesové zkratky
stisknuté klávesy
výsledný znak
popis výsledného znaku
pravý alt+
1
~
vlnovka
pravý alt+
7
`
obrácená čárka
pravý alt+
)
×
znaménko krát
pravý alt+
§
ß
ostré s
pravý alt+
B
{
levá závorka špičatá
pravý alt+
C
&
and
pravý alt+
D
Đ
pravý alt+
F
[
levá závorka hranatá pravá závorka hranatá
pravý alt+
G
]
pravý alt+
K
ł
pravý alt+
L
Ł
pravý alt+
N
}
pravá závorka špičatá
pravý alt+
Q
\
zpětné lomítko
pravý alt+
S
đ
pravý alt+
ú
÷
znaménko lomeno
pravý alt+
ů
"
dolar
pravý alt+
V
@
zavináč
pravý alt+
W
|
pravý alt+
X
#
mřížka
pravý alt+
Y
>
znaménko větší než
Důležité operátory pro porovnávání a jejich zápis v R == != < > <= >=
je rovno není rovno je menší je větší je menší nebo rovno je větší nebo rovno
Důležité logické operátory a jejich zápis v R ! & |
negace logické AND logické OR