Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Studijní program: Kvantitativní metody v ekonomice Studijní obor: Statistika a ekonometrie Autor bakalářské práce: Marie Ballarinová Vedoucí bakalářské práce: doc. Ing. Dagmar Blatná, CSc. NÁZEV BAKALÁŘSKÉ PRÁCE MOŽNOSTI VYUŽITÍ PROGRAMU R V REGRESNÍ A KONTINGENČNÍ ANALÝZE školní rok 2010/2011 Prohlášení Prohlašuji, že jsem bakalářskou práci zpracovala samostatně a že jsem uvedla všechny použité prameny a literaturu, ze kterých jsem čerpala. V Praze dne podpis Poděkování Velmi ráda bych poděkovala vedoucí bakalářské práce paní doc. Ing. Dagmaře Blatné, CSc. za cenné připomínky a vedení této bakalářské práce. Děkuji také paní RNDr. Ivaně Malé, CSc. za získání dat z oblasti lékařství pro tuto práci. Poděkování patří rovněž studentovy informatiky na VŠE panu Martinu Kovářovi, za cenné informace a připomínky k technické části týkající se programu R. Děkuji také své rodině, přátelům a spolužákům při jejich podpoře. Abstrakt Cílem této bakalářské práce je seznámit se základy statistického programu R a jeho aplikaci na regresní a kontingenční analýzu. Práce se zaměřuje na základní uživatelské schopnosti při zpracování dat v programu R. Program je hodnocen z mnoha hledisek (například výhody programu, zpracování dat v R, práce s kontingenčními tabulky v R, grafy v R, import a export dat atd.). Obě analýzy jsou v práci použity pro názornou ukázku funkcí a syntaxí pro tyto oblasti statistiky. Přínos práce je rozšíření povědomí o velké využitelnosti programu a vyzdvižení různých funkcí, jak u obou analýz, tak v základech při zpracování statistických dat. Hlavní součástí této práce jsou příkazy, které se mohou přímo aplikovat do příkazového řádku v R v praxi. Struktura je rozdělena do pěti hlavních kapitol. První a druhá kapitola obsahuje základní popis regresní a kontingenční analýzy. Třetí kapitola seznamuje se syntaxí, s příkazy a s technickou stránkou programu R. Ve čtvrté a páté kapitole je aplikace obou analýz v programu R. U regresní analýzy je použita jednoduchá a vícenásobná regresní analýza. Hlavní náplní kontingenční analýzy je pracování s daty pomocí tabulek v programu R. Abstract The aim of this bachelor thesis is to introduce the basics of the statistical program R and its application to regression and contingency analysis. The work focuses on basic user skills with data processing in the program R. The program is evaluated from many perspectives (eg, program benefits, data processing in R, working with PivotTables in R, graphs in R, import and export data, etc. .). Both analyses in this work are used for demonstration of commands and syntax for these statistics. The contribution of this work is to raise awareness about the great usefulness of the program and highlight the different functions both the analysis and the basis for statistical data processing. The main part of this work is focused on commands that can be applied directly to the command line in R in practice. The structure is divided into five main chapters. The first and second chapters provide a basic description of regression analysis and contingency. The third chapter introduces the syntax, commands and technical aspects of the program R. In the fourth and fifth chapter is application of both analyses in the program R. In the regression analysis is used simple and multiple regression analysis. The main scope of contingency analysis is working with data using tables in the program R. Obsah Úvod........................................................................................................................................................6 1. Základní pojmy Regresní analýzy....................................................................................................7 1.1. Cíle regresní analýzy................................................................................................................7 1.2. Typy Regresních Funkcí...........................................................................................................8 1.2.1. Model přímkové regrese a roviny...................................................................................9 1.2.2. Model parabolické regrese.............................................................................................9 1.2.3. Model polynomické regrese p - tého stupně...............................................................10 1.2.4. Model hyperbolické regrese.........................................................................................10 1.2.5. Model exponenciální regrese........................................................................................10 1.2.6. Model Logaritmické regrese..........................................................................................10 1.3. Předpoklady Regresní analýzy...............................................................................................10 1.4. Způsob výpočtu regresních koeficientu................................................................................11 1.4.1. Maticové vyjádření MNČ...............................................................................................12 2. Kontingenční analýza....................................................................................................................13 2.1. Typy kategoriálních proměnných..........................................................................................13 2.2. Analýza četností kategoriálních proměnných.......................................................................13 2.2.1. Nominální proměnná....................................................................................................14 2.2.2. Ordinální proměnná......................................................................................................14 2.2.3. Kvantitativní proměnná.................................................................................................15 2.3. Analýza kontingenčních tabulek............................................................................................16 3. Program „R"..................................................................................................................................17 3.1. Úvod„R"................................................................................................................................17 3.2. Výhody „R"............................................................................................................................17 3.2.1. Popis R...........................................................................................................................18 3.3. Základy R...............................................................................................................................19 3.3.1. Zadávání dat pomocí „c"...............................................................................................19 3.3.2. Použití funkcí.................................................................................................................19 3.4. Grafy v R................................................................................................................................21 3.4.1. Sloupcový graf...............................................................................................................21 3.4.2. Kruhový graf (koláč)......................................................................................................24 3.4.3. Boxplot..........................................................................................................................25 3.4.4. Histogram......................................................................................................................26 3.5. Správa pomocí balíčků v R.....................................................................................................27 3.6. Export a Import dat...............................................................................................................28 3.6.1. Import dat.....................................................................................................................28 3.6.2. Export dat......................................................................................................................30 4. Regresní analýza v programu R.....................................................................................................32 4.1. Výpočet Jednoduché lineární regrese v R.............................................................................32 4.2. Výpočet vícenásobné lineární regrese v R............................................................................36 4.2.1. Výpočet v EXCELU pomocí MNČ....................................................................................37 4.2.2. Výpočet regrese v R pomocí příkazu „lm()".................................................................38 4.2.3. Grafické zobrazení příkladu pomoci roviny v R.............................................................40 4.2.4. Vypočet regresních koeficientu pomocí vzorců v R......................................................41 5. Zpracování dat a Kontingenční analýza v programu R..................................................................45 5.1. Kategoriální data...................................................................................................................45 5.2. Numerická data.....................................................................................................................46 5.3. Práce s kontingenčními tabulky v R.......................................................................................47 5.3.1. Dvojrozměrná kontingenční tabulka.............................................................................47 5.3.2. Vícerozměrná kontingenční tabulka.............................................................................50 Závěr......................................................................................................................................................54 Literatura...............................................................................................................................................55 Seznam obrázků....................................................................................................................................56 ~ 5 ~ Úvod Úvod Regresní a kontingenční analýza jsou nejčastěji používané statistické metody. Každá z uvedených metod zkoumá statistická data, z vlastního úhlu pohledu. Regresní analýza zkoumá jednostrannou závislost vysvětlované proměnné na jedné nebo více vysvětlujících číselných proměnných. Kontingenční analýza zkoumá vztah dvou a více kategoriálních znaků. Základním nástrojem kontingenční analýzy je tzv. kontingenční tabulka, která přehledně zobrazí statistická data. Obě analýzy, můžeme zpracovat v různých statistických softwarech. Nejznámější statistické softwary, které se používají na VŠE, jsou SAS, SPSS a Statgraphic. Softwary, které řadíme mezi ekonometrické, mohou také sloužit ke zpracování statistických dat. Mezi ekonometrické softwary, které se na VŠE používají je MPL a Lingo. Hlavní součástí této práce, je nastínit základy aplikace statistického programu R na příkladě regresní a kontingenční analýzy. Toto téma j sem si vybrala proto, abych se více seznámila se statistickým programem R, který není do běžné výuky na VŠE zařazen a mohla tak posoudit jeho ovladatelnost. Práce má tři hlavní cíle. 1 cíl: Popis základů regresní a kontingenční analýzy 2 cíl: Popis základů programu R 3 cíl: Aplikace regresní a kontingenční analýzy ve statistickém programu R Prvním cílem bude nastínit základní prvky regresní a kontingenční analýzy. Úkolem bude popsat obě analýzy pouze okrajově, neboť k hlubšímu studiu obou analýz, slouží odborné učebnice a skripta. Druhý cíl, který je jádrem práce, bude seznámení se statistickým programem R. Nastínit prostředí programu, které není běžné pro výše uvedené statistické programy na VŠE. Součásti druhého cíle bude seznámení se základní manipulací v programu R, při použití ve statistice a jeho technické správě. Třetí a poslední cíl bude názorně aplikovat regresní a kontingenční analýzu v programu R. Práce je rozdělena do pěti kapitol a několika sub-kapitol. První kapitola obsahuje základní prvky regresní analýzy. V sub-kapitolách jsou uvedeny typy regresních analýz a jejích výpočtu. Druhá kapitola se bude zabývat základy kontingenční analýzy - typy proměnných a jejich vlastnostmi. Třetí kapitola se zaměřuje na základy použití programu R ve statistice a jeho technickou správu. Jednoduchým způsobem názorně vysvětluje prostředí, na kterém program pracuje, a aplikaci syntaxí a příkazů v praxi. Aplikace regresní analýzy v programu R je obsahem čtvrté kapitoly. Je zde uveden výpočet jak jednoduché regresní analýzy, tak vícenásobné regrese a jejich grafické zobrazení. Poslední pátá kapitola obsahuje aplikaci kontingenční analýzy v programu R. Základní pojmy Regresní analýzy 1. Základní pojmy Regresní analýzy V regresní analýze sledujeme kauzální (příčinou) závislost mezi dvěma i více jevy. Kauzální znamená případ, kdy existence (nastoupení, výskyt) jednoho jevu zapříčiní (vyvolá) existenci jiného jevu. Nastávají také situace, kdy „výskyt určitého jevu souvisí s výskytem jiných jevů, kdy existence skupiny jevů má za následek nastoupení jiných jevů nebo (nejčastěji) výskyt některých jevů určitým způsobem souvisí s výskytem jiných jevů ".1 Regresní analýza slouží pro hodnocení jedné vysvětlované náhodné veličiny a jedné nebo několika vysvětlujících veličin. „Základním vodítkem regresní analýzy je potřeba nepřímo působit na vysvětlovanou veličinou volbou, ovlivňováním nebo aspoň snadnějším odhadem hodnot vysvětlujících proměnných. K naplnění této potřeby však musí mezi vysvětlovanou proměnnou a vysvětlujícími proměnnými existovat kvantifikovatelný vztah, přesněji musí existovat matematicky popsatelná závislost vysvětlované proměnné na vysvětlujících proměnných. Zobrazení této závislosti je regresní model, jehož rozhodující součástí je regresní funkce"2 Regresní analýza se zabývá jednostrannými závislostmi. Zkoumání vzájemných závislostí mezi proměnnými, se používá korelační analýza. 1.1.Cíle regresní analýzy Hlavním úkolem regresní analýzy je najít vztah mezi statistickými znaky prostřednictvím statistických údajů. Statistický soubor (údaje) můžeme získat různým pozorováním. Možnosti při získání údajů: a) Údaje jsme získali pozorováním n statistických jednotek, přičemž statistický soubor byl prostorově, časově i věcně vymezen (domácnosti žijící na území ČR, společně hospodařících a žijících) b) Údaje jsme získali pozorováním určité statistické jednotky v n časových okamžicích či intervalech (kurs akcie dané společnosti) c) Pozorování vznikla n-násobným opakováním určitého pokusu, prováděného za stejných nebo přibližně stejných podmínek (technologické a jakostní vlastnosti) "3 Regresní analýza hledá nejlepší řešení vypočítané (empirické) funkce k hypotetické regresní funkci. S hledáním řešení regresní analýzy souvisí další dílčí úkony, které jsou nezbytné pro splnění jejího cíle. Do tak zvaných dílčích úkonů můžeme zahrnout matematickou formulaci regresní funkce, což je většinou těžký úkol, shromáždění předpokladů o souhrnných působení neuvažovaných statistických znaků a zhodnocení kvality regresní empirické funkce. Zhodnocení regresní funkce bereme s ohledem na splnění cílů statistického zjišťování. Mezi vysvětlující a vysvětlovanou proměnnou regresní funkce, existuje síla (intenzita, těsnost) závislosti. Intenzitou závislosti se zabývá korelační analýza. Níže uvedené příklady ukazují různé možnosti síly závislosti. 1 SEGER, Jan; HINDLS, Richard. Statistické metody v tržním hospodářství. Praha 1: VICTORIA PUBLISHING, a.s., 1995. 435 s. ISBN 80-7187-058-7. Str.167 2 HEBÁK, Petr. Regrese : l.část. Praha : Ediční oddělení VŠE Praha, 1998.138 s. ISBN 80-7079-909-9 3 SEGER, Jan; HINDLS, Richard. Statistické metody v tržním hospodářství. Praha 1: VICTORIA PUBLISHING, a.s., 1995. 435 s. ISBN 80-7187-058-7 Základní pojmy Regresní analýzy Příklad a) a b) mají lineární závislost neboli lineární průběh, příklad c) vykazuje nelineární průběh. Různé typy statistických závislostí: a) b) c) ti • ■ ■■■ -r ■I'tftf'"^ 'iíí.:,.-:'';: Obrázek 1: Typy statistických závislostí Abychom se dostali k cíli výše dané otázky, hodnocení statistických závislostí se týká průběhu závislostí u regrese a intenzity u korelace. Matematickou funkci pro regresní analýzu můžeme hledat v přírodních vědách například v matematice. Známe několik matematických funkcí, kde můžeme aplikovat regresy. Funkce lineární v parametrech a nelineární v parametrech. 1.2.Typy Regresních Funkcí Hledání závislostí mezi empirickými hodnotami xŕ a yt a průběhu závislosti, a při známých hodnotách těchto proměnných, je základní bod dobře zvolit regresní funkci, aby dobře vystihovala danou závislost. Při odhadu typu regresní funkce musí být dobře specifikována „věcně ekonomická kritéria tj. regresní funkce by měla být zvolena na základě věcného rozboru analýzy vtahů mezi veličinami, přičemž by základem rozhodnutí měla být existující ekonomická teorie."5 V případě že daná situace již v minulosti nastala, je možné použít určitý typ dříve použité regresní funkce, a následně ověřit, zda nedošlo ke změně podmínek nebo zkoumaného j evu. Pro nejednoznačné určení typu regresní funkce podle věcně ekonomických kritérií, je vhodné použít empirický (induktivní) způsob volby. Můžeme si představit grafickou metodu pomocí bodového diagramu, kde x a y znázorňují jeden bod daného grafu. Podle průběhu funkce a následně znázorněného typu grafu, se snažíme rozhodnout který typ regresní funkce je vhodný (přímka, parabola apod.). Zde věcně ekonomická kritéria pomáhají vybrat alternativní typ regresní funkce, kterou si pak vybíráme na základě empirických údajů. Z výše uvedených poznatků se rozlišuje regresní funkce na teoretickou (hypotetickou) a empirickou (výběrovou) regresní funkcí. Teoretická regresní funkce je nezměřítelná (nepozorovatelná) a empirickou vypočítáme většinou pomocí empirických údajů. 4 SEGER, Jan; HINDLS, Richard. Statistické metody v tržním hospodářství. Praha 1: VICTORIA PUBLISHING, a.s., 1995. 435 s. ISBN 80-7187-058-7 5 SEGER, Jan; HINDLS, Richard. Statistické metody v tržním hospodářství. Praha 1: VICTORIA PUBLISHING, a.s., 1995. 435 s. ISBN 80-7187-058-7 Základní pojmy Regresní analýzy „Empirickou regresní funkci můžeme považovat za odhad teoretické regresní funkce"6 Pro každé pozorování platí rovnice: yŕ = Yt + eŕ. Kde Yt je i - tá teoretická regresní funkce, yr je i - tá hodnota vysvětlované proměnné y, a hodnota et znázorňuje odchylku mezi yŕ a Yt. Tato odchylka nám znázorňuje vliv jiné proměnné na proměnnou yr, než kterou uvažujeme. To znamená, že na empirické pozorování mají vliv také náhodné chyby. Odchylka et má nulovou střední hodnotu a systematicky nezkresluje. Parametry regresní funkce /?0 ajffj... (3p neboli neznámé konstanty můžeme zapsat jako F=f(x; /?0 , P1... (3p). Cíl ke kterému směřujeme je odhadnout tyto parametry, a empirickou regresní funkci pak zapisujeme jakoýr = / (x; b0, bv ... bp). Kde ýr je odhad teoretické hodnoty Zodpovídající hodnotě xr. V případě že et nebude existovat (pro každé z), znázorňuje funkce Y pouze předpis. Předpis, který přiřazuje hodnotě proměnné x hodnotu proměnné y. Tato situace se v praxi nazývá pevná závislost, kdy pravděpodobnost teoretické regresní funkce je rovná jedné, a jednalo by se o model deterministický. Modely, kde hodnotu et můžeme zaznamenat, j sou stochastické. „ Stanovení empirické regresní funkce v podstatě znamená, že každou empirickou hodnotu yr nahradíme určitou „vyrovnanou „ hodnotou ýr , která bude „ležet" na zvolené regresní čáře. "7 1.2.1. Model přímkové regrese a roviny Model regresní přímky a regresní roviny, jsou případy, kdy parametry vysvětlující proměnné jsou lineární. Jsou to nejjednodušší a nejčastější typy regresní funkce. V modelu regresní roviny vystupují dvě vysvětlující proměnné, ale v modelu regresní přímky pouze jedna vysvětlující proměnná. Y = /?0+ jM Y = /?0 + plX + p2x Obrázek 2: Přímková funkce 1.2.2. Model parabolické regrese y Model parabolické regrese je také často používaný k hodnocení závislosti \ / v ekonomické oblasti. Tento model je lineární z pohledu všech parametrů, \ / ale nelineární z pohledu vysvětlujících proměnných. Y = /?0 + plX + fox2 Obrázek 3: Parabolická funkce 6 SEGER, Jan; HINDLS, Richard. Statistické metody v tržním hospodářství. Praha 1: VICTORIA PUBLISHING, a.s., 1995. 435 s. ISBN 80-7187-058-7 7 SEGER, Jan; HINDLS, Richard. Statistické metody v tržním hospodářství. Praha 1: VICTORIA PUBLISHING, a.s., 1995. 435 s. ISBN 80-7187-058-7 8 http://www.esphere.cz/kostka/Matematika/Funkce/specifikace.htm 9 http://www.esphere.cz/kostka/Matematika/Funkce/specifikace.htm Základní pojmy Regresní analýzy 1.2.3. Model polynomické regrese p - tého stupně Y= p0+plX+ p2x2 + ... + PpXP 1.2.4. Model hyperbolické regrese Model hyperbolické regrese je dalším typem, který je často používaný k popisu závislosti v ekonomické oblasti. Je lineární v parametrech, a tudíž na ní můžeme aplikovat metodu nejmenších čtverců. Y= Po+PJx Obrázek 4: Hyperbolická funkce 1.2.5. Model exponenciální regrese Exponenciální regrese není lineární ve svých parametrech a tudíž metodu nejmenších čtverců, pro odhad parametrů, nemůžeme použít. Použití metody nejmenších čtverců na nelineární model vede k soustavě nelineárních rovnic. Y = PoP? Obrázek 5: Exponenciální funkce 1.2.6. Model Logaritmické regrese Logaritmická regrese zastupuje lineární model v parametrech. Y= Po+p^ogx Obrázek 6: Logaritmická funkce 1.3.Předpoklady Regresní analýzy Pro existenci jednoduché lineární regrese musí být splněny základní statistické požadavky, které jsou důležité při výpočtu. http://www.esphere.cz/kostka/Matematika/Funkce/specifikace.htm http://www.esphere.cz/kostka/Matematika/Funkce/specifikace.htm http://www.esphere.cz/kostka/Matematika/Funkce/specifikace.htm ~ 10 ~ Základní pojmy Regresní analýzy 1) Parametry modelu /?ŕ mohou nabývat libovolných hodnot. 2) Normalita náhodné složky (rezidui) 3) Nulová střední hodnota náhodné složky 4) Homoskedasticita náhodné složky 5) LRM je lineární v parametrech 6) Nulová kovariance náhodných složek Cov (ei,ej) = 0 pro každé i ^j} kde i, j =1,2, ...,n. Jednoduchý lineární regresní model % = P0 + P1xi+ei Kde (30a fix jsou tzv. parametry modelu a erreziduum - náhodné složky. Hodnoty /?0a/?ijsou neznámé, a odhadujeme je z patřičných dat. Hodnota et je množství vypozorovaných odchylek z lineární přímky modelu. K tomu abychom mohli odhadnout p0a /?! je použita metoda nej menších čtverců - MNC. 1.4. Způsob výpočtu regresních koeficientů Při řešení Regresního modelu se nabízí řada metod. Důležitou metodou pro řešení regresního modelu je „metoda nejmenších čtverců." Je to matematicko-statistická metoda. Napomáhá nám nalézt danou aproximační funkci pro empiricky zjištěné hodnoty. Při stanovení regresní funkce, je důležité najít takovou, která vystihuje nejvíce danou závislost mezi daty. Pro stanovení empirické regresní funkce, se nahradí každá empirická hodnota yr vyrovnanou hodnotou ýr, která bude ležet na dané regresní přímce. Ukázka vyrovnání empirických hodnot hodnotami teoretickými. (xi ■ y i1 __--~-r~~~'~^r Obrázek 7: Ukázka Vyrovnání hodnot První podmínka pro výše uvedený problém je Ef=1(y"i — ýi) = Xf=i ei = 0 Znamená, aby součet et (reziduum) se rovnal nule. Reziduum je odhad náhodné složky e. Pro kompletní doplnění podmínek pro MNC, je nutná další důležitá podmínka. Podmínka, aby součet čtverců chyb £r byl minimální: Q= £f=1(y"i — ľí)2 = Y?l=i£i -^ mm- Nejběžnějším a nejjednodušším typem regresní funkce, je model přímkové regrese. Na přímkové regresi, si ukážeme další kroky odhadu parametru regresní funkce. Při dosazení přímkové regresní funkce do výše uvedené podmínky bude vypadat následovně Q = I?=i(yí -Po- PiXi)2 = If^ef -► min. Pro výpočet Q je nutné vypočítat jejích první parciální derivace parametru pxa p0 a položit je nule. Po dosazení jejich odhadů za parametry a po derivaci, dostaneme následující dvě 14 rovnice. http://homen.vsb.cz/~oti73/cdpastl/KAP09/KAP09.HTM Základní pojmy Regresní analýzy 2l?=1(yí-fc0-fc1xí)(-l) = 0 2l?=1(yi- 2010 The R Foundation for Statistical Computing ISBN 3-900051-07-0 R is free software and corr.es with ABSOLUTELY HO WARRANTY. You are welcome to redistritute it under certain conditions. Type 1 license (} 1 or 'licence (> 1 for distribution details. R is a collatorative project with many contributors. Type 'contributors (} ' for more information and 1 citation() 1 on how to cite R or R packages in publications. Type 1 demo ( ) ' for same demos, 'tielpf}' for on-line help, or ■ help.start () 1 for an HTML browser interface to help. Type 1q()1 to quit R. [Previously saved workspace restored] > I Obrázek 8: Ukázka programu R Při otevření R se automaticky načte úvodní text, který je modře rozlišen. Text obsahuje základní informace o programu. Informuje například, že R je software, který je volně dostupný. Tyto úvodní informace se zobrazují vždy. Na horní liště jsou zobrazeny příkazy pomocí ikon, které se nacházejí také v menu nad okýnky. Rozhraní programu R disponuje pouze základním menu, složitější operace je nutné zadávat přes psané příkazy. Uživatel má možnost v R pracovat s více okny najednou. Menu obsahuje: File = Source R code, New script, Open script, Display file(s), Load Workspace, Save Workspace, Load History, Save History, Change dir.., Print, Save to file, Exit. Edit = Copy, Paste, Paste commands only, Copy and Paste, Select all, Clear console, Data editor, GUI preferences, View = toolbar, statusbar Misc = Stop current computation, Stop all computations, Buffered output, Word completion, Filename completion, List objects, Remove all objects, List search path, Packages = Load Packages, Set CRAN mirror, Select repositories, Install package(s), Update packages, Install packages from local zip filles Windows = Cascade, Tile Horizontally, Tile Vertically, Arange Icons, 1 R Console ~ 18 ~ Program „R" Help = Console, FAQ on R, FAQ on R for Windows, Manuals (PDF), R functions (text), Html help, Search help, search.project.org, Apropos, R project horne page, CRAN home page, about 3.3. Základy R Statistika je studium a analýza dat. První věc, která se musí udělat před použití programu „R", je jak zadávat data a manipulovat s daty. Program má výhodu, že uživatel může komunikovat interaktivním způsobem. Ptáte se na otázku a „R" je schopné dát odpověď. Komunikuje se zde pomocí příkazového řádku. 3.3.1. Zadávání dat pomocí „c" Nejvíce oblíbený příkaz v programu „R" pro rychlé zadávání malých dat je funkce „c(hodnoty)". Umožňuje kombinovat a zřetězit pojmy dohromady. Ukázka užití: V prvním ročníku studia na dané vysoké škole, studuje určitý počet studentů s následujícím stáří studentů: 20 19 28 22 24 21 35 > student=c(20,19,28,22,24,21,35) > student [1] 20 19 28 22 24 21 35 > Pro získání již jednou zapsaného příkazu, může uživatel použít šipky na klávesnici nebo posuvné kolečko na myši. Pokud si uživatel neví rady, co znamená daný příkaz, napíše do příkazového řádku níže uvedenou syntaxi s otazníkem. R následovně otevře v internetovém prohlížeči stránku, kde je daná funkce vysvětlená (funguje to u každého příkazu). >?c 3.3.2. Použití funkcí Program R ukládá data jako vektor, protože tak zachovává pořádek v datech (nedojede k jejich záměně). Při změně daného čísla ve vektoru, nemusíme provádět změnu celého vektoru, ale pouze dané položky. Pro R je vektor také matematický objekt. To znamená, že mezi vektory můžeme provádět početní operace (sčítání, odečítání, násobení, dělení atd.). R dokáže zobrazit výběry dat. Ukázka užití: Uvažujme předešlý příklad studentů dané vysoké školy. Dvaceti dvouletý student byl z ročníku vyloučen a nahradil ho osmnáctiletý student. 20 19 28 18 24 21 35 > student=c(20,19,28,22,24,21,35) Program „R" > student [1] 20 19 28 22 24 21 35 > student=c(20,19,28,22,24,21,35) > student2=student > student2[4]=18 > student2 [1] 20 19 28 18 24 21 35 > R nám umožňuje zobrazit (nezobrazit) hodnoty, které vdanou situaci potřebujeme (nepotřebujeme). Dokáže také zobrazit pořadí určité hodnoty. Pomocí R můžeme také zjistit, nej staršího a nejmladšího studenta. > student2 [1] 20 19 28 18 24 21 35 > student2[c(l,2,3)] [1] 20 19 28 > student2[4] [1] 18 > student2[6] [1] 21 > student2[-5] [1] 20 19 28 18 21 35 > max(student2) [1] 35 > min(student2) [1] 18 > Jestliže chceme zjistit, zda jsou v ročníku studenti stejného věku, použijeme příkaz „= =". Pokud se v datech objeví stejné hodnoty, R je označí „TRUE" pokud ne a pokud ano tak „FALŠE". Do ročníku přistoupil další osmnáctiletý student. 20 19 28 18 24 21 35 18 > student3=student2 > student3[8] = 18 > student3 [1] 20 19 28 18 24 21 35 18 > student3==18 [1] FALŠE FALŠE FALŠE TRUE FALŠE FALŠE FALŠE TRUE > Pokud nás zajímá, kolik studentů máme ve třídě, můžeme použít další příkazy. Můžeme také dvojím způsobem zjistit, jaké místo zabírají dva osmnáctiletí studenti. Jednou pomocí příkazu „which(....) " a druhým pomocí „pages(....)". V R jako u každého programování, se musí dbát na typ závorky. > n=length(student3) ~ 20 ~ Program „R" > pages=l:n > pages [1] 12345678 > pages[student3==18] > which[student3==18] Error in which[student3 == 18] : object of type 'closure' is not subsettable > which(student3==18) [1] 4 8 > Prostřednictvím příkazu „sum(proměnná)" sečteme všechny hodnoty. > sum(student3) [1] 183 > sum(student3>23) [1] 3 Pokud bychom potřebovali zjistit základní statistické hodnoty (medián, modus, maximum, minimum atd.), R má několik možností zobrazení. Zobrazí je buď jednotlivě, nebo veškeré informace pod jedním příkazem. Pomocí příkazu „median(proměnná)" a „mean(proměnná)" se zobrazí hodnoty samostatně. Stejný princip pro zobrazení jednotlivých statistických hodnot existuje i další funkce například („var"). Při hromadném zobrazení statistických hodnot R umožňuje funkci „fivemimiproměnná)" nebo „summary(proměnna)". > mean(student3) [1] 22.875 > median(student3) [1] 20.5 > var(student3) [1] 35.55357 > fivenum(student3) [1] 18.0 18.5 20.5 26.0 35.0 > summary(student3) Min. 1st Qu. Median Mean 3rd Qu. Max. 18.00 18.75 20.50 22.88 25.00 35.00 > 3.4. Grafy v R 3.4.1. Sloupcový graf Sloupcový graf je jeden z nej běžnějších typů grafů vR. Pomocí příkazu „bar]Aot(proměnná)" a správnými úpravami, se daný graf zobrazí. ~ 21 ~ Program „R" Ukázka užití: Předpokládáme skupinu 10 osob, které byly dotazovány, kde rádi tráví dovolenou. Odpovědět mohli následovně: 1- doma, 2- Čechy, 3- moře, 4- hory 123 4232223 > dov=c(l,2,3,4,2,3,2,2,2,3) > dov [1] 1234232223 > barplot(dov) Obrázek 9: Sloupcový graf Výše uvedený graf (obr.9) je bohužel nepřehledný a nepoužitelný. Pro větší přehlednost v sloupcovém grafu, se data rozdělí prostřednictvím složeného příkazu ,,barplot(table(prowe««á))". K získání sloupcového grafu relativní četností se příkaz vydělí délkou vektoru tzn. ,,barplot(table(prowe««á) / length (proměnná))". Zabarvení dílčích sloupců je příkaz „co\(hodnoty barvy )".U hodnot barvy sloupců, se píše název dané barvy. Tyto názvy barev se vyskytují například ve speciálních programech, které podporují barevné rozlišení. > barplot(table(dov)) Obrázek 10 Sloupcový graf > barplot(table(dov)/length(dov)) ~ 22 ~ Program „R" Obrázek 11: Sloupcový graf > barplot(table(dov)/length(dov),col=c("purple","green2","cyan","blue")) Obrázek 12: Sloupcový graf > barplot(table(dov), horiz=T, col="lightgreen", xlab="frekvence", ylab="hodnoty") > Obrázek 13: Horizontální sloupcový graf ~ 23 ~ Program „R" 3.4.2. Kruhový graf (koláč) Kruhový graf se objeví pod příkazem „pieiproměnná)". Je potřeba, aby daná data byla správně převedena. Prostřednictvím příkazu „proměnná2=tab\e(proměnnál)"prevede R data do správné formy. Pojmenování dat a rozlišení podle barev, program R také umožňuje. Pod příkazem „nam^es(proměnná)=c{„hodnoty")" se dané oblasti přejmenují. Podobně „.....col(„ hodnoty ")" umožní danou oblast grafu barevně rozlišit. > table(dov) dov 12 3 4 15 3 1 Samotný příkaz „pieiproměnná)" v daném příkladě nemá smysl. Tento příkaz zobrazí každou sledovanou hodnotu a její velikost na celku samostatně. Proto se používají dále níže uvedené příkazy. > pie(dov) Obrázek 14: Kruhový graf > dov=c(l,2,3,4,2,3,2,2,2,3) > koláč=table(dov) > pie(koláč) Obrázek 15:Kruhový graf > names(koláč)=c("doma","Čechy","moře","hory") Program „R" > pie(koláč) > pie(koláč,col=c("purple","green2","cyan","blue")) Pojmenování oblasti dat se píše vždy v uvozovkách, aby nedocházelo k záměně funkce či proměnné. Prostřednictvím uvozovek, program R chápe tyto názvy jako řetězec slov. Barevné rozlišení se také píše do uvozovek. Různé typy barev získáme ze základní nabídky například ve "Adobe Photoshopu". 3.4.3. Boxplot Boxplot neboli krabicový graf je jeden z nej běžnějších grafů ve statistice. Zobrazuje pět číselných statistických hodnot. Nejmenší a největší pozorované hodnoty, poté Ql (dolní kvartil), Q2 (medián), Q3(horní kvartil). Boxplot také uvádí odlehlé hodnoty od pozorování. > boxplot(dov) > boxplot(dov,horizontal=TRUE) ÍO 25 30 35 Obrázek 17: Boxplot 1 Obrázek 18:Boxplot2 Část příkazu ,,....,horizontal=TRUE)" znamená, že daný boxplot bude na horizontální ose. V případě vertikální osy platí část příkazu „....,vertikal=TRUE)". > boxplot(dov,main="dov", horizontal=TRUE) ~ 25 ~ Program „R" > boxplotCdov, xlab="single sample", ylab="hodnoty", main="Simple Box plot", col="lightblue") Simple Box plot single sample Obrázek 19: Boxplot 3 Obrázek 20: Boxplot 4 3.4.4. Histogram > hist(dov) > hist(dov,probability=TRUE) > rug(jitter(dov)) Při použití jednoduchého příkazu „hist(proměnná)" se zobrazí pouze strohý graf. Aby se zobrazila pravděpodobnost, musí se tento příkaz rozšířit na ,,hist(prowe««á,Probability=TRUE)". Prostřednictvím příkazu ,,rug(jitter(prowe«á))" se na histogramu objeví tzv. pravděpodobnostní šum. Histogram of dov s - Density 2 OA 0 ° III I II 1 0 1 5 2 0 2 5 3 0 3 5 4 J do. Obrázek 21: Histogram > hist(dov, col="cornsilk", xlab="hodnoty", ylab="frekvence", main="Histogram", font.main=4) ~ 26 ~ Program „R" Histogram in —i i-1 - s= m ~ I-1

libraryO Packages in library 'C:/PROGRA~2/R/R-211-1.1/library': base The R Base Package boot Bootstrap R (S-Plus) Functions (Canty) class Functions for Classification cluster Cluster Analysis Extended Rousseeuw et al. codetools Code Analysis Tools for R datasets The R Datasets Package foreign Read Data Stored by Minitab, S, SAS, SPSS, Stata, Systat, dBase, ... graphics The R Graphics Package grDevices The R Graphics Devices and Support for Colours and Fonts grid The Grid Graphics Package ~ 27 ~ Program „R" KernSmooth Functions for kernel smoothing for Wand & Jones (1995) lattice Lattice Graphics MASS Main Package of Venables and Ripley's MASS Matrix Sparse and Dense Matrix Classes and Methods methods Formal Methods and Classes mgcv GAMs with GCV/AIC/REML smoothness estimation and GAMMs by PQL nlme Linear and Nonlinear Mixed Effects Models nnet Feed-forward Neural Networks and Multinomial Log-Linear Models rpart Recursive Partitioning spatial Functions for Kriging and Point Pattern Analysis splines Regression Spline Functions and Classes stats The R Stats Package stats4 Statistical Functions using S4 Classes survival Survival analysis, including penalised likelihood. tcltk Tcl/Tk Interface tools Tools for Package Development utils The R Utils Package Prostřednictvím příkazu „search()" se dá zjistit, které balíčky jsou natrvalo instalovány v programu R. Pokud, se nezobrazí vdaném seznamu balíček, který obsahuje potřebnou funkci, musí se ručně nainstalovat z vhodných webových stránek. > searchO [1] ".GlobalEnv" "package:stats" "package:graphics" [4] "package:grDevices" "package:utils" "package:datasets" [7] "package:methods" "Autoloads" "package:base" Instalace balíčku vR je velmi jednoduchá. Pokud uživatel je připojený k internetu, může použít příkaz „> install.packages()". Zobrazí se tabulka, kde si uživatel vybere správný jazyk instalace a poté výběr balíčku. Jestliže program R potřebuje nainstalovat balíček přímo od vývojářů R, stačí příkaz „> library(boot)". Pro zjištění správně načtených balíčků, se použije příkaz ,,search()". 3.6.Export a Import dat 3.6.1. Import dat Import dat z jiných statistických programu umožňuje i prostředí programu R. Je možné data importovat z Exelu, SPSS, Stata, Systat, S-PLUS a SAS. Postup při importu dat z exelovského souboru je následující: ~ 28 ~ Program „R" 1) Daný exelovský soubor uložíme pod koncovkou „csv". Zkratka „csv" je jednoduchý souborový formát zápisu různých dat, který umožňuje předání dat mezi různými systémy. CSV (Comma-separated values) neboli hodnoty oddělené čárkami, odděluji jednotlivé položky v řádku čárkami. 2) Při uzavření exelovského souboru, uloženého jako „csv", zjistíme přímou lokalizaci souboru na počítači. Kliknutím pravým tlačítkem myší na soubor, zvolíme v nabídce „Vlastnosti". Odrážka „obecné" zahrnuje informaci o „umístění". Umístění zobrazuje přímou lokalizaci složky v počítači. Tuto lokalizaci si uživatel opíše nebo zkopíruje do jiné složky. 3) R nabízí pro otevření dat z jiného programu následující funkci: „read.csv2" > regrese=read.csv2(file="file://C:/Users/Mary/Desktop/regresel.csv") Tento příkaz je přímo pro otevření daného excelovského souboru jménem regrese 1, uloženého jako „csv". Pro exelovskou složku „regresel" je lokalizace v počítači následující „C:/Users/Mary/Desktop/". Pro jiné dokumenty, a jiný uživatelský počítač je lokalizace samozřejmě jiná. Příkaz je doplněný na začátku o slovo „filé//", na konci se píše jméno souboru. 4) Nyní má R ve své paměti hodnoty exelovského souboru. Při zadání příkazu „regrese"(jméno zadané proměnné), se vypíšou všechny hodnoty. R pracuje s danými hodnotami jako s maticí. > re| irese STUDPRUM BODY MATURITA POHLAVÍ PRÍPRAVA BYDLENI 1 2.70 160 1.80 1 6 1 2 2.60 135 2.30 0 7 0 3 2.50 154 2.00 1 9 1 4 2.50 129 2.13 0 10 0 5 2.40 150 2.00 0 6 0 6 2.40 147 2.00 1 8 0 7 2.35 132 2.33 0 9 0 8 2.33 130 2.20 1 10 1 9 2.33 142 2.20 1 12 0 10 2.33 160 1.80 1 8 0 11 2.33 145 2.00 1 9 1 12 2.30 138 2.20 0 7 1 13 2.30 140 2.20 0 7 1 22 Daný příklad obsahuje sto studentů a jejich školní výsledky. Pro výpočet statistických hodnot, můžeme použít příkaz „summaryiproměnná)"'. R vypíše každou proměnnou zvlášť, a pro ně jednotlivé statistické hodnoty. Převzato z přednášky 4ST321 ~ 29 ~ Program „R" > summary(regrese) STUDPRUM BODY MATURITA POHLAVÍ PŘÍPRAVA BYDLENI Min. : 1.120 Min. : 120.0 Min. : 1.200 Min. :0.00 Min. : 5.00 Min. :0.0 lstQu.:1.800 lstQu.:137.8 lstQu.:1.788 lstQu.:0.00 1st Qu.: 7.00 1st Qu.:0.0 Median :2.000 Median : 149.0 Median :2.000 Median : 1.00 Median : 8.00 Median :0.0 Mean :1.966 Mean :150.0 Mean :1.954 Mean :0.56 Mean : 8.87 Mean :0.3 3rdQu.:2.140 3rdQu.:160.0 3rd Qu.:2.200 3rd Qu.: 1.00 3rdQu.:10.00 3rd Qu.: 1.0 Max. :2.700 Max. : 192.0 Max. :2.800 Max. :1.00 Max. : 15.00 Max. :1.0 Pokud uživatel potřebuje z daného souboru pouze jednu proměnnou, a sní patřičně počítat, vybere si prostřednictvím příkazu „data=regreše[2]" pouze proměnou „BODY". Jak již bylo předem psáno, program R má všechny proměnné jako v matici. Pro vyznačení studentů do uvozovek, aby se rozlišili proměnné, pomůže příkaz „write.table" > data=regrese[2] > write.table(data) > write.csv2(data) > data "BODY" 11 11 . 11 ? BODY" BODY "1" 160 "1" 160 1 160 "2" 135 "2" 135 2 135 "3" 154 "3" 154 3 154 "4" 129 "4" 129 4 129 "5" 150 "5" 150 5 150 "6" 147 "6" 147 6 147 "7" 132 11 rj\\ 132 7 132 "8" 130 "8" 130 8 130 "9" 142 "9" 142 9 142 "10" 160 "10 ";160 10 160 3.6.2. Export dat Export dat do různých programů, jak statistických (SPSS, SAS a Stata) a nestatistických (EXELL a textový editor) je v R přes příkazový řádek. Důležité na exportu je umístění daného soboru v počítači. Export může být u každého uživatele jiný, neboť záleží, kterou verzi programu R uživatel používá, a jaké balíčky má stažené. a) Export dat do Textového souboru > write.table(y, "c:/mydata.txt", sep="\t") b) Export dat do EXELLU Export dat do exelovského souboru může být pro uživatele docela obtížný. Nejprve si musí stáhnout balíček obsahující syntaxi „xlsReadWrite". Pokud uživatel má stažený balíček, který obasahuje „scran ( )" musí tento balíček odstranit, neboť pro export pomocí „xlsReadWrite" by se oba balíčky navzájem přerušovali a nefungovalo by to. Pomocí uvedeného příkazu odstraní balíček obsahující syntaxi „scran ()" > xls.getshlibQ ~ 30 ~ Program „R" Poté bude fungovat uživateli následující příkaz pro starou verzi EXELU tzn. verze 1997-2003. > write.xls(y, "C:/mytest.xls") Příkaz „write.xls( )" je syntaxe. Závorka obsahuje proměnnou y, kterou jsme si zadaly do programu R. Poté, musíme oddělit čárkou proměnnou od cesty, kde má být soubor uložen. Klasická syntaxe pro uložení je všude stejná. Pro uživatele, který má novou verzi office-programů (např. Exxel 07), je výše popsaná cesta obtížná. Uživatel musí mít na svém počítači instalovanou „JAVU". Pro program R musí si nainstalovat potřebné balíčky, jak pro čtení nových dokumentů, tak pro podporující Javu. Například: „xlsx", „ ijava","rjava" atd. c) Export dat do SPSS >write.foreign(y, "c:/data.txt","c:/data.sps",package="SPSS") d) Export dat do SAS >write.foreign(y, "c:/data.txt","c:/data.sas",package="SAS") e) Export dat do STATA >write.dta(y,"c:/data.dta") ~ 31 ~ Regresní analýza v programu R 4. Regresní analýza v programu R Lineární regrese napomáhá vysvětlit průběh závislosti mezi proměnnými. Při správném rozhodnutí u vybrání regresního typu, jsou důležitá věcně ekonomická kritéria a empirické způsoby. Pro zjištění empirických jevů u daného souboru dat pomáhá využití statistických programů. Mezi statistické programy zařazujeme i program R. Pomocí R zjistíme grafickou metodou typ regresní funkce. Průběh závislosti mezi proměnnými x a y u grafické metody tvoří body. Dvojice pozorování x a y na grafu znázorňuje tzv. bodový diagram. Můžeme využit již zmíněné grafy v R. Při určování typu regresní funkce u vícenásobné lineární regrese nám nepomůže možnost zachycení pomocí grafického průběhu. U tohoto typu lineární regrese se opíráme o matematicko-statistické kritéria(směrodatné chyby, míry těsnosti, různé testy), která nám posoudí vhodný typ regresní funkce. 4.1. Výpočet Jednoduché lineární regrese v R Jednoduchá lineární regrese je nejčastější forma závislosti mezi proměnnými. R využívá příkaz „lm(Y ~ model)" pro jakýkoliv typ regrese. K použití příkazu „lm(.....)" je potřeba si stáhnout daný balíček, který jej obsahuje, neboť v základním složení balíčků v R tento typ příkazu neobsahuje. Na webové adrese http://cran.ma.imperial.ac.uk/ si může uživatel najít funkci, kterou momentálně potřebuje. Daná webová adresa je pro britský kontinent. Na webové adrese http://www.r-project.org/ si může uživatel vybrat zemi, která je pro něj jazykem bližší. Po výběru se dostane k potřebným balíčkům. Je zde také jednodušší možnost, jak si nainstalovat potřebnou funkci z balíčků. Na horní liště v programu R je v menu „Packages". Pokud je uživatel připojený k internetové síti, může z nabídky „packages" vybrat „Instal package(s)". Nejprve se mu zobrazí různé země, a je na uživateli, který jazyk dané země je mu bližší. Po vybrání země, se objeví seznam balíčku, a jestli uživatel má ve vědomí, který si musí nainstalovat, klikne na něj. Pro příkaz ,,lm(....)" je stažený balíček „Linear mixed models". y ~ xl y model pro xl( pouze u jednoduché lineární regrese) >lm(y~xly) Jestliže data nejsou lineární, vR můžeme data logicky aproximovat na lineární tvar. Tato metoda je stejná jako u ostatních statistických programů. Následující tabulka ukazuje různé způsoby syntaxe v R._ syntax model Y ~ A Y= Po + piA Y~-l + A Y= PIA Y~A + l(AA2) Y= 3o+ 31A+ (32A2 Y ~ A + B Y = 3o+31A + 32B Y ~ A:B Y= Po + PIAB Y ~ A*B Y = 3o+31A + 32B + 33AB Y~(A+B + C)A2 Y = 3o+31A + 32B + 33C + 34AB + 35AC + 36AC 23 23 „Using R for Linear Regression" 32 Regresní analýza v programu R Ukázka užití: Byl proveden experiment, vliv určité látky (mg) působící na snížení tepu lidského srdce. Byly zjištěny níže uvedeny hodnoty u 13 osob. Nezávislá proměnná je dávkování léku (v mg), a závislou proměnnou je rozdíl mezi nejnižší hodnotou po podání a před podáním léku. Množství (mg) látky na redukci srdečního tepu = z (x) 0.5,0.75,1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.25,3.5 O kolik byl snížen tep po podání látky = v (y) 10,8,12,12,14,12,16,18,17,20,18,20,21 1Ä- > z=c(0.5,0.75,1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.25,3.5) > v=c(10,8,12,12,14,12,16,18,17,20,18,20,21) > summary(lm(v~z)) Call: lmCformula = v ~ z) Residuals: Min IQ Median 3Q Max -2.2088 -0.3626 -0.1648 0.8571 1.7473 Coefficients: Estimate Std. Error t value Pr(> 11|) (Intercept) 7.0549 0.8876 7.949 6.94e-06 *** z 4.0879 0.4020 10.169 6.25e-07 *** Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 7 0.1 " 1 Residual standard error: 1.356 on 11 degrees of freedom Multiple R-squared: 0.9039, Adjusted R-squared: 0.8951 F-statistic: 103.4 on 1 and 11 DF, p-value: 6.25e-07 > Ď0=7,0549 bx= 4,0879 Y=7,0549 + 4,0879x Ke zvýšení rozdílu měření tepu srdce před a po podání léku o jednotku je třeba podat o 4,09 mg léku více. Příklad je danou lineární regresí popsán na 90,4%. Zbytek je část, která není popsána modelem. Biostatistics:A foundation for analysis in the health science, Wayne W.Daniel, ISBN: 0-471-52514-6 (str.376) ~ 33 ~ Regresní analýza v programu R > plot(lm(v~z)) Waiting to confirm page change... Waiting to confirm page change... Waiting to confirm page change... Waiting to confirm page change... > par(mfrow=c(2,2)) > plot(lm(v~z)) > plot(z,v) Residuals vs Fitted Normal Q O 1 -r ,o <-> ID 1^ 14 1Ei 1H Vt) 1 is 1] h D ŕ, 1 ŕ, Titled valu as Ttieoralical Quanliles y ľ ale-ĽJĽali u r 1 • 0 í= u---- Cŕŕok's distance^--■ ' " " ■ ■ w 1 1 II 1 1 10 12 H 1G 18 20 0.0c 0.10 0.20 Obrázek 23: Regrese > abline(lm(v~z)) >lm.result=simple.lm(z,v) y = 4.09 x +7.05 D C\l (D O CN O CO 0 1 1 0.5 1.0 I I I I I 1.5 2.0 2.5 3.0 3.5 Obrázek 24: Lineární regrese Při testu hypotézy o významnosti parametrů regresní funkce použijeme následující vzorce. Směrodatné chyby regresních koeficientů, se můžou vyčíst z výše uvedené tabulky pod příkazem „summary(... )". Druhou možností je použít následující vzorce a aplikovat je v R. Regresní analýza v programu R SE(V = . 5_ t(Ď!) = -^T H0:fa= 0 /i, * 0 Na 5 % hladině významnosti testujeme hypotézu o nulové hodnotě reg.parametru Jelikož t= 10,16917 tabulky^ zadaný příklad má 11 stupňů volnosti a hodnota s= 1,355 ío,975 = 2,201, zamítáme hypotézu o nulové hodnotě SE=0,402 regresního parametru. To znamená, že daný regresní parametr je v modelu významný. > data=(lm(v~z)) > es=resid(data) > bl=(coef(data))['z'] > s=sqrt(sum(es/v2)/(13-2)) > SE=s/sqrt(sum((z-mean(z))/v2)) > t=(bl-(0))/SE > pt(t,ll,lower.tail=FALSE) z 3.125215e-07 > SE [1] 0.4019909 > s [1] 1.355788 > bl z 4.087912 > t z 10.16917 > H0.p0= 0 Na 5 % hladině významnosti testujeme hypotézu o nulové hodnotě reg.parametru Jelikož t= 7,94854 tabulky zadaný příklad mám 11 stupňů volnosti a hodnota s= 1,355 řo,975 = 2,201, zamítáme hypotézu o nulové hodnotě SE=0,8875 regresního parametru. Daný reg.parametre je v modelu významný. > SE=s*sqrt(sum(z/v2)/(13*sum((z-mean(z))/v2))) > SE [1] 0.8875718 > b0=7.0549 > t=(b0-(0))/SE > pt(t,ll,lower.tail=FALSE) ~ 35 ~ Regresní analýza v programu R [1] 3.472605e-06 > t [1] 7.94854 > s [1] 1.355788 > 4.2. Výpočet vícenásobné lineární regrese v R Pro výpočet vícenásobné lineární regrese vR můžeme použít dva způsoby. Při vybrání způsobu výpočtu záleží pouze na uživateli. Nejjednodušší příkaz pro výpočet jak jednoduché lineární regrese, tak vícenásobné lineární regrese je pomocí příkazu ,,lm()", který musí být stažený a nainstalovaný. Pro výpočet vícenásobné regrese a při použití metody nejmenších čtverců může uživatel aplikovat pomocí příkazového řádku vzorec. Ukázka užití Mějme 20 pacientů s věkovým rozmezí 45-56. U každého z pacientů byl naměřen daný krevní tlak a váha. Pomocí vícenásobné lineární regrese vypočítáme, jestli krevní tlak závisí na věku a váze. t-patient Y=krevnítlak (mm Hg) Xl=věk X2=váha 1,00 105,00 47,00 85,40 2,00 115,00 49,00 94,20 3,00 116,00 49,00 95,30 4,00 117,00 50,00 94,70 5,00 112,00 51,00 89,40 6,00 121,00 48,00 99,50 7,00 121,00 49,00 99,80 8,00 110,00 47,00 90,90 9,00 110,00 49,00 89,20 10,00 114,00 48,00 92,70 11,00 114,00 47,00 94,40 12,00 115,00 49,00 94,10 13,00 114,00 50,00 91,60 14,00 106,00 45,00 87,10 15,00 125,00 52,00 101,30 16,00 114,00 46,00 94,50 17,00 106,00 46,00 87,00 18,00 113,00 46,00 94,50 19,00 110,00 48,00 90,50 20,00 122,00 56,00 95,70 25 Pomocí MNC vypočítám dané údaje. Pro kontrolu R uvádím výpočet také v Excelu. Biostatistics:A foundation for analysis in the health science, Wayne W.Daniel, ISBN: 0-471-52514-6 (str. 450) ~ 36 ~ Regresní analýza v programu R 4.2.1. Výpočet v EXCELU pomocí MNC V Excelu nejprve musí uživatel vypočítat matici transponovanou s danou maticí. Po výpočtu použije příkaz v Excelu pro výpočet inverzní matice. Inverzní matici vynásobí maticí, která vznikne vynásobením transponované matice X a matice Y. P"=(X'X)_1 X'Y Xt 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 47, 49, 49, 50, 51, 48, 49, 47, 49, 48, 47, 49, 50, 45, 52, 46, 46, 46, 48, 56, 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 85, 94, 95, 94, 89, 99, 99, 90, 89, 92, 94, 94, 91, 87, 101 94, 87, 94, 90, 95, 40 20 30 70 40 50 80 90 20 70 40 10 60 10 ,30 50 00 50 50 70 X 1 47,00 85,40 1 49,00 94,20 1 49,00 95,30 1 50,00 94,70 1 51,00 89,40 1 48,00 99,50 1 49,00 99,80 1 47,00 90,90 1 49,00 89,20 1 48,00 92,70 1 47,00 94,40 1 49,00 94,10 1 50,00 91,60 1 45,00 87,10 1 52,00 101,30 1 46,00 94,50 1 46,00 87,00 1 46,00 94,50 1 48,00 90,50 1 56,00 95,70 xt*x 20 972 1861,8 972 47358 90566,6 1861,8 90566,6 173665,4 inverze matice 31,875 -0,268 -0,202 -0,268 0,010 -0,002 -0,202 -0,002 0,003 inverzní matice * Xt 3x20 -16,5794 0,708251 1,032961 Y = -16,58 + 0,708*! + 1,033 x2 ~ 37 ~ Regresní analýza v programu R 4.2.2. Výpočet regrese v R pomocí příkazu „lni( )" První myšlenka, která musí uživatele napadnout, je dané data pomocí příkazu „c()" zavést do systému R. Po zadání dat použijeme příkaz „lm( )", a při vybrání vhodné syntaxe vypočítáme hodnoty regresních parametrů. Prostřednictvím přkazu „summary( )" a nového názvu celého vypočítaného souboru (např. regrese), zjistíme další důležité statistické hodnoty. >y=c(105,115,116,117,112,121,121,110,110,114,114,115,114,106,125,114,106,113,1 10,122) > xl=c(47,49,49,50,51,48,49,47,49,48,47,49,50,45,52,46,46,46,48,56) >x2=c(85.4,94.2,95.3,94.7,89.4,99.5,99.8,90.9,89.2,92.7,94.4,94.1,91.6,87.1,101.3,94. 5,87,94.5,90.5,95.7) > lm(y~xl+x2) Call: lm(formula = y ~ xl + x2) Coefficients: (Intercept) xl x2 -16.5794 0.7083 1.0330 > regrese=lm(y~xl+ x2) > summary(regrese) Call: lmCformula = y ~ xl + x2) Residuals: Min IQ Median 3Q Max -0.89968 -0.35242 0.06979 0.35528 0.82781 Coefficients: Estimate Std. Error t value Pr(> 11|) (Intercept) -16.57937 3.00746 -5.513 3.80e-05 *** xl 0.70825 0.05351 13.235 2.22e-10 *** x2 1.03296 0.03116 33.154 < 2e-16 *** Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 " 1 ^^^^^^^^^^^^^^^^^^^BB 1111 I' degrees of freedom Multiple R-squared: 0.9914, Adjusted R-squared: 0.9904 F-statistic: 978.2 on 2 and 17 DF, p-value: < 2.2e-16 Z výstupu se dají vyčíst hodnoty regresních parametrů a zapsat je do rovnice Y = -16,58 + 0,708*! + 1,033 x2 ~ 38 ~ Regresní analýza v programu R V horní části výstupu je vidět daný tvar modelu, vysvětlovaná proměnná, vysvětlující proměnné. V odstavci „Residuals" jsou základní statistické hodnoty modelu. Odstavec „Coeficients" zaznamenává ve sloupcích nejen hodnoty hledaných regresních koeficientů. Ve sloupci „Estimate" se nacházejí odhady regresních koeficientů, sloupec „Std.Error" zaznamenává odhady směrodatných chyb odhadů, sloupec „t value" jsou hodnoty testové statistiky a poslední sloupec „Pr....." zaznamenává minimální hladiny významnosti. Další hodnoty výstupu obsahují poměr determinace (0,9914), upravený poměr determinace (0,9904), residuální chybu (0,5327), F.statistiku atd. Výpočet residuálních chyb pro každé y, vypočítáme pomocí příkazu „resid( )". > resid(regrese) 123456789 10 11 0.07667 -0.42989 -0.56614 0.34538 0.11182 0.80367 -0.21447 -0.60461 -0.26508 0.82781 -0.21998 12 13 14 15 16 17 18 19 20 -0.32659 0.54756 0.73714 0.11133 0.38498 0.13219 -0.61502 -0.89968 0.06291 Výpočet předpokládaných hodnot pro y, vypočítáme pomocí příkazu ,,fitted()". > fitted(regrese) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 104.9 115.4 116.6 116.7 111.9 120.2 121.2 110.6 110.3 113.2 114.2 115.3 113.5 105.3 124.9 113.6 105.9 18 19 20 113.6 110.9 121.9 Pro zobrazení každého grafu s jiným významem, souvisí následující příkaz. > layout(matrix(l:4,2,2)) > plot(regrese) l R GraphicE.: Devices (ACTIVE] ^.es d,als vs Fitted -2-10 1 Theoretical Quantise Scale-Location 106 110 115 120 125 105 110 115 120 126 Fitted values Fitted values Residuals vs Leverage L1 0.2 0.3 0.4 0.5 Leverage Obrázek 25: Regrese ~ 39 ~ Regresní analýza v programu R 4.2.3. Grafické zobrazení příkladu pomocí roviny v R 3D Scatter p lot t— " y' .■■ r~ / s /-—"X —f t" 7 a \J í; x1 ■■; t. Obrázek 26: Grafické zobrazení vícenásobné regrese Pro zobrazení daného 3D grafu „Scatterplot" je nutné si stáhnout balíček „scatterplot3d_0.3-31". Tento balíček je v souboru „zip", a proto si uživatel musí daný balíček stáhnout do PC a ručně nainstalovat pomocí horní lišty v R (packages -> Install package(s) from local zip). Postup > scatterplot3d(xl,x2,y,pch=16,highlight.3d=TRUE) 44 4& 40 so g2 c4 gg .< 1 Obrázek 27: Postup-Grafického zobrazení 1 > scatterplot3d(xl,x2>y>pch=16>highlight.3d=TRUE>type="h",main="3D Scatterplot") JJ J$ J* Í0 52 id H Obrázek 28: Postup-Grafického zobrazení 2 Regresní analýza v programu R > s3d$plane3d(fit) > fit <- lm(y ~ xl+x2) > s3d$plane3d(fit) R fr ÍHphiei: Deviící (ACTlWtj | _ || UU |&^1 3D Scatterplot ...../' ■ r ŕ ■" y ŕ T / / 7 P 1 -h' 46"" -13 5q 52 54 56 Obrázek 29: Postup-Grafického zobrazení 3 4.2.4. Vypočet regresních koeficientů pomocí vzorců v R Při výpočtu regresních koeficientů rovnou pomocí vzorců zadáváme data novým způsobem. Zavedeme jednu proměnnou x jako matici, která obsahuje hodnoty obou vysvětlujících proměnných. Příkaz „byrow=F,20,3" znamená, že zadáváme matici, která je o velikosti 3x20 a v každém řádku je po 20 číslic z matice x. Stejné vysvětlení je také pro matici y. Další příkazy pro výpočet regresních koeficientů jsou zde logická, bez jakéhokoliv stahování balíčků. Příkaz ,,t(x)" znamená transponovaná matice k x. Veškeré příkazy jsou zde uváděny na základě vzorce P~=(X'X)-1 X'Y > x<- matrix(c(l,l,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,47,49,49,50,51,48,49,47,49,48,47,49,50 ,45,52,46,46,46,48,56,85.4,94.2,95.3,94.7,89.4,99.5,99.8,90.9,89.2,92.7,94.4,94.1,91.6 ,87.1,101.3,94.5,87,94.5,90.5,95.7),byrow=F,20,3) > y<- matrix(c(105,115,116,117,112,121,121,110,110,114,114,115,114,106,125,114,106,11 3,110,122),byrow=F,20,l) > xx<-solve(t(x)%*%x) > xy<-t(x)%*%y > beta<-xx%*%xy > options(digits=4) > beta [,1] [1,] -16.5794 [2,] 0.7083 [3,] 1.0330 > > (N<-length(y)) Regresní analýza v programu R [1] 20 > K<-3 > Ye <- beta[l]*x[,l]+beta[2]*x[,2] + beta[3]*x[,3] > erro <- y-Ye > sum(erro/v2) [1] 4.824 > sigma2 <- sum(erro/v2)/(N-K) > sigma2 [1] 0.2838 > sigma <- sqrt(sigma2) > sigma [1] 0.5327 Výpočet Kovarianční matice se provede podle následujících úvah: C(b)=cr2(FT)"1 C(b)=5W=52(F'F)_1 Hlavní diagonála matice C(b) obsahuje odhady rozptylů odhadovaných parametrů. Odhad rozptylu odhadu regresních parametru bj daným vzorcem sfy = s2x^^ Míra přesnosti odhaduje dána směrodatnou chybou odhadu sbj = s VxOT) > var.beta <- sigma2*xx > var.beta [,1] [,2] [,3] [1J 9.04481 -0.0759540 -0.0573558 [2J -0.07595 0.0028637 -0.0006792 [3J -0.05736 -0.0006792 0.0009707 Prostřednictvím příkazu „diag( proměnná)", se vypíšou hodnoty obsahující na hlavní diagonále dané kovarianční matice. Příkaz „sqrt(proměnná)" odmocní danou proměnou. > diag(var.beta) [1] 9.0448079 0.0028637 0.0009707 Následující hodnoty jsou odhady směrodatných chyb odhadů. > sqrt(diag(var.beta)) [1] 3.00746 0.05351 0.03116 > (sqrt(diag(var.beta)))/beta [, 1 ] [1] -0.18140 0.07556 0.03016 Poměr determinace vypočítáme podle následujícího vzorce r2=~-, Kde ST = £(Yr — y)2 (teoretický součet čtverců) a Sy = £(yi — y)2 (reziduálni součet čtverců) Koeficient determinace vdaném případě vyšel 99,14 % to znamená, že variabilita krevního tlaku vdaném souboru byla vysvětlena zvoleným regresním modelem na 99,14 %. Regresní analýza v programu R Nevysvětlená část může být způsobena působením dalších vlivů. Z výsledku teda vyplívá, že problém byl vyřešen správným modelem. > R2 <- l-sum(erro~2)/sum((y-mean(y))'v2) > R2 [1] 0.9914 > Výpočet korelačního koeficientu udává vlastnosti závislosti. Zaznamenáváme ho v intervalu <-l,l> a znaménko určuje směr závislosti. Naměřené hodnoty směřující k nule odpovídají na slabou lineární závislost mezi proměnnými xl a x2 a hodnoty směřující k 1 ukazují na vysokou kladnou korelaci. Hodnoty, které naopak směřují k -1, se nacházejí ve vysoké záporné korelaci. r = jestliže je b21 (b12) kladné r = - Vrž jestliže je b21 (b12) záporné > sqrt(R2) [1] 0.9957 Hodnoty regresních parametrů i na potřetí vyšli jak je níže popsané (xl-věk, x2- váha). Níže popsané výsledky udávají že bx = 0,708 tzn. věk pacienta, a při zvýšení o jednotku (1 rok) věku pacienta při neměnné váze pacienta, se krevní tlak zvýší o 0,708 mm Hg. Při zvýšení váhy o jednotku (1 kg) a při neměnném věku, se zvýší krevní tlak o 1,033 mm Hg. Z pohledu relativních směrodatných chyb odhadu regresních parametrů je velmi nízká uu^ =7,5% a u b2= 3,01%. b0 =~ 16,58 bt = 0,708 b2 = 1,033 Y = -16,58 + 0,708*! + 1,033 x2 Celkový F-test je pro daný příklad vhodný, neboť je jsou zde více jak jedna vysvětlující proměnná. Tento test udává významnost modelu jako celku. F-test používá Fischerovo rozdělení. Vypadá následovně: p _ fi2 n-(fc+l) 1-RZ k Pro samotný výpočet F testu je vhodné si nadefinovat hodnoty, a vypočítat F test v R vzorcem. Druhá možnost je to vyčíst pod příkazem „summary(proměnná)". Regresní analýza v programu R > n=20 > k=2 > Ftest=(R2/(l-R2))%*%((n-(k+ l))/k) > Ftest [,1] [1J 979.872 Hypotézy pro F- test: h0= r2 statisticky nevýznamný ht=r2 statisticky významný F test se porovná s tabulkovou hodnotou pro k a n-k-1 stupňů volnosti Tabulková hodnota pro daný příklad je 19,44 Z výše uvedených hodnot vyplývá, že se zamítá nulová hypotéza o nevýznamnosti modelu. Zpracování dat a Kontingenční analýza v programu R 5. Zpracování dat a Kontingenční analýza v programu R Jednorozměrná data, jsou v programu R popsaná vektorem. Můžeme pracovat s kategoriálními, numerickými a diskrétními daty. Pro každý druh dat, je manipulace v programu R j iná. 5.1.Kategoriální data Kategoriální data jsou data, která zachycují nečíselná data. Jedná se o kvalitativní znaky. Příklad na kvalitativní znak může nastat, když tazatel odpoví na otázku kouření „ano" či „ne", a nebo daný produkt mu vyhovuje „dobře", „velmi dobře", „výborně". Data řazená do kategorií se píšou do programu R v uvozovkách. Ukázka užití: V průzkumu o třídění odpadu, odpovídalo 10 lidí na otázku, zda třídí ve svém okolí odpad. Měli následující odpovědi: ano, ne, občas. ANO ANO NE OBČAS NE NE ANO ANO OBČAS OBČAS NE > odpad=c("ANO", "ANO", "NE", "OBČAS","NE", "NE", "ANO", "ANO", "OBČAS","OBČAS", "N E") > table(odpad) odpad ANO NE OBČAS 4 4 3 > factor(odpad) [1] ANO ANO NE OBČAS NE NE ANO ANO OBČAS OBČAS NE Levels: ANO NE OBČAS > odpad [1] "ANO" "ANO" "NE" "OBČAS" "NE" "NE" "ANO" "ANO" "OBČAS" [10] "OBČAS" "NE" > Pro procentní zhodnocení dat jsou vhodné následující dvě možnosti: > 100*table(odpad)/(sum(table(odpad))) odpad ANO NE OBČAS 36.36364 36.36364 27.27273 > nebo > table(odpad)/length(odpad) odpad ANO NE OBČAS 0.3636364 0.3636364 0.2727273 > Zpracování dat a Kontingenční analýza v programu R 5.2. Numerická data Numerická data jsou data, která číselně zobrazují určité hodnoty. Pro zjištění statistických hodnot v R platí příkazy podobné jako v předchozím příkladě („fivenum","summary" atd.) Rozdíl při použití „fivenum" a „summary" tkví v tom, že při sudých hodnotách se doporučuje příkaz „summary" a při lichých hodnotách „fivenum". Ukázka užití: Na jedné vysoké škole, psalo 10 studentů test z matematiky. Studenti mohli dostat nejméně 0 až 10 bodů. Výsledek byl následující:4;3,l;0,7;8;5;8,2;2;6,6;8,l;0,9 > test=c(4,3.1,0.7,8,5,8.2,2,6.6,8.1,0.9) > summary (test) Min. lst Qu. Medián Mean 3rd Qu. Max. 0.700 2.275 4.500 4.660 7.650 8.200 > quantile(test,c(.25,.75)) 25% 75% 2.275 7.650 > quantile(test,.25) 25% 2.275 > Hodnoty kvantilů se dají zjistit buď dohromady pomocí příkazu "quantile(prowáw2á,c(.25,.75))" nebo jednotlivě příkazem "quantile(prowe««á,.25). Hodnota rozpětí mezi kvartily se vypočítá pomocí příkazu „IQR.{proměnnáyí. Hodnotu mediánu průměrné odchylky zjistíme pomocí příkazu „mad(proměnná)" nebo ručním výpočtem v R. > IQR(test) [1] 5.375 > mad(test) [1] 4.4478 nebo > median(abs(test-median(test)))* 1.4826 [1] 4.4478 > Zpracování dat a Kontingenční analýza v programu R 5.3. Práce s kontingenčními tabulky v R Kontingenční tabulky slouží ke srovnání dvou napozorovaných statistických znaků. Řádky v kontingenční tabulce souvisí s první napozorovanou hodnotou a sloupce souvisí s druhou napozorovanou hodnotou. Typ kontingenční tabulky se hodnotí podle počtu řádků (r) a sloupců (s). 5.3.1. Dvojrozměrná kontingenční tabulka Dvojrozměrná kontingenční tabulka je například čtyřpolní tabulka ve tvaru 2x2. Tabulku s číselnými daty zadáváme do R pomocí příkazu „matrix(c(hodnoty) )". Pomocí daného příkazu jsou data maticí. Ukázka užití: Byla dána anketa, jestli lidé věří v posmrtný život nebo nevěří. Bylo dotazováno 1000 respondentů. Z toho věří 300 žen a 200 mužů, a nevěří 100 žen a 400 mužů. Data vdaném případě jsou pojmenována proměnnou život. Při zavedení proměnné a její hodnot do systému se použije příkaz „matrix(c(hodnoty))" a syntaxi „<-„ která naznačuje R, že hodnoty k proměnné patří. Uvedené syntaxe za příkazem „matrix(...)"naznačují, že tabulka bude typu 2x2 ( nrow=2) a že zadané hodnoty se budou řadit řádkově (byrow=TRUE). > život<-matrix(c(300,100,200,400),nrow=2,byrow=TRUE) > život [,1] [,2] [1,] 300 100 [2,] 200 400 > dimnames(život)<-list(c("ženy","muži"),c("ano","ne")) > život ano ne ženy 300 100 muži 200 400 > names(dimnames(život))<-c("pohlaví","odpověď") > život odpověď pohlaví ano ne ženy 300 100 muži 200 400 > Příkaz „dimnames( proměnná )" pojmenovává různé části tabulky v případě složeného příkazu a u jednoduchého příkazu, jak je výše uvedené, pojmenovává název celé tabulky. Za příkazem „dimnames(proměnná), musí uživatel napsat" < - „. Touto syntaxi dává najevo R, že k danému pojmenování patří další část. Po této tzv. šipce následuje příkaz „list (ciproměnné ),c(proměnné) )" která vede R ke konstrukci tabulky. Po samotném napsání proměnné život do příkazového řádku, se zobrazí potřebná tabulka. Zpracování dat a Kontingenční analýza v programu R Pro nadefinování proměnných v tabulce na dílčí proměnné, použije uživatel příkaz „names(dimnames( ))". Daný příkaz je tzv. složený příkaz, který dokáže pojmenovat hodnoty nad proměnnými. V uvedeném příkladě vidíme, že udává proměnnou (muži, ženy) pohlaví a proměnnou odpověď (ano,ne). Výpočet celkové velikosti vzorku (Pij) se provádí příkazem „sum( proměnná )". V níže nadefinovaném příkladě je celkový počet vzorku pojmenovaný proměnnou celkem. > celkem<-sum(život) > celkem [1] 1000 > život/celkem odpověď pohlaví ano ne ženy 0.3 0.1 muži 0.2 0.4 > Z následujících syntaxí bylo zjištěno, že je celkem 1000 dotazovaných. Zjistilo se také procentuální zastoupení odpovědí obou pohlaví a odpovědí na celkovém počtu dotazovaných. > početl<-apply(život,l,sum) > počet2<-apply(život,2,sum) > početl ženy muži 400 600 > počet2 ano ne 500 500 Pro další kumulativní výpočet proměnných se použije následující příkaz se syntaxí (která říká, jak již bylo výše uvedeno, že daná proměnná patří k následujícímu příkazu) „<-" a příkaz „apply(proměnná,! nebo 2,sum)" . Tento příkaz říká programu R, že má použít hodnoty dané proměnné (v daném příkladu je proměnnou život) za závorkou, a číslo 1 označuje řádky a číslo 2 sloupce, které pomocí konečného příkazu „sum" mají být sečteny. Po samotném napsaní proměnných (početl,početl) do příkazového řádku, se objeví hodnoty kumulativně sečtené. > kumproc<-sweep(život,l,početl,"/") > kumproc odpověď pohlaví ano ne ženy 0.7500000 0.2500000 muži 0.3333333 0.6666667 Dobrý výpočet Zpracování dat a Kontingenční analýza v programu R > kumproc<-sweep(život,2,početl,"/") > kumproc odpověď pohlaví ano ne ženy 0.75 0.1666667 muži 0.50 0.6666667 Špatný výpočet Prostřednictvím minulých výpočtů a příkazu „swee\)(proměnná, 1,proměnná,"/ ") R vypočítá výše uvedené hodnoty. Příkaz „sweep" je zajímavý svým složením. První část za závorkou je proměnná, v našem případě celá tabulka život. Číslo 1 a další proměnná (v našem případě tj .početl) zaznamenává, že vypočtené hodnoty budou podílem po řádcích. Tento systém dává i logické vysvětlení, neboť kdyby se napsalo číslo 2, program R by začal počítat po sloupcích. Jelikož vdaném příkladu výpočet po sloupcích je nelogický, musíme zde uvést číslo 1. V jiných příkladech by číslo 2 mohlo určitě figurovat. A nakonec poslední část, je syntaxe "/ ", která k příkazu patří, neboť je to binární hodnota. Z vypočtených hodnot vyčteme, že 75% žen z celkové populace dotazovaných žen věří na posmrtný život a 25% nevěří, a 33,3%) mužů z celkového počtu dotazovaných věří a 66,7%> nevěří. > round(kumproc,3) odpověď pohlaví ano ne ženy 0.750 0.250 muži 0.333 0.667 Příkaz „round(proměnná,3)" zaokrouhlí hodnoty v tabulce v našem případě na tři desetinná čísla. Číslo za proměnnou, naznačuje programu R, že má dané data zaokrouhlit na tři desetinná čísla. > mumi<-sweep(život,2,počet2,"/") > mumi odpověď pohlaví ano ne ženy 0.6 0.2 muži 0.4 0.8 Zde je podobný případ jak výše uvedený. Jsou zde procentuálně vypočítané hodnoty přes sloupce, závislé na proměnné počet2. Uživatel může rovnou napsat příkaz „sweep( )", bez pojmenování další proměnné(u nás mumi). >sweep(život,2,počet2,"/") odpověď pohlaví ano ne ženy 0.6 0.2 muži 0.4 0.8 Zpracování dat a Kontingenční analýza v programu R 5.3.2. Vícerozměrná kontingenční tabulka Ve vícerozměrné kontingenční tabulce se sleduje více napozorovaných znaků než dva. Vícerozměrné kontingenční tabulky se tvoří podobným způsobem jako u dvourozměrných, ale znázornění je docela obtížné. Ukázka užití: Mějme 8 měst. V každém městě bylo provedeno šetření mezi populací, zda kouří nebo ne a jestli byla u nich nalezena vyšetřujícím lékařem rakovina. Setření se provádělo ve velkých městech celého světa. Neboť zde byl velký předpoklad nalezení více kouřících lidí s rakovinou. Respondent na každou otázku zvlášť (kouří, má rakovinu) mohl odpovědět pouze „ano" nebo „ne".26 Pro zadání daných hodnot do programuje příkaz ^(„proměnné")" nejvhodnější způsob. > města<-c(,'beijing,',,'Shang,',,'SHEy,',,'Nanji,',,'Harbin,',,'Zhengu,',,'Taig,',,'Nanchin) > města [1] "beijing" "Shang" "SHEy" "Nanji" "Harbin" "Zhengu" "Taig" [8] "Nanchi" Níže popsaný příkaz udává pokyn programu, že proměnná města a její hodnoty se mají 4x po sobě opakovat. Příkaz „factor(proměnná)"se používá pro zakódování vektoru. Další složené příkazy uvnitř závorky objasňují opakování každé hodnoty proměnné města 4x. Celý složený příkaz „factor(rep(prowe««á,rep(¥,length(/?rowe««á))),levels=města" obsahuje příkaz„rep ( )" tzn. že říká programu R, že má hodnoty v závorce opakovat. Uvnitř příkazu „rep( )", je uvedená nejprve proměnná, jejíž hodnoty má opakovat(westa). Pro větší konkrétnost se musí napsat opět příkaz „rep ( )", který naznačuje další podmínku opakování. Jádro příkazu obsahuje, kolikrát se daná proměnná má opakovat (4) a délku souboru hodnot proměnné (města). Nakonec se píše „Level" proměnné. Při samotném napsání proměnné (město) do příkazového řádku, se objeví výsledek výše popsaného složeného příkazu. > město<-factor(rep(města,rep(4,length(města))),levels=města) > město [1] beijing beijing beijing beijing Shang Shang Shang Shang SHEy [10] SHEy SHEy SHEy Nanji Nanji Nanji Nanji Harbin Harbin [19] Harbin Harbin Zhengu Zhengu Zhengu Zhengu Taig Taig Taig [28] Taig Nanchi Nanchi Nanchi Nanchi Levels: beijing Shang SHEy Nanji Harbin Zhengu Taig Nanchi > Zadaný příklad obsahuje také dotazy na respondenta ohledně kouření a rakoviny. Aby tabulka byla kompletní, slouží k tomu následující dva složené příkazy, jak ke kouření, tak k otázce rakovina. Pro zadání hodnot „ano" a „ne" se použije podobná složená podmínka, která byla An Introduction to Categorical Data Analysis Using R, Brett Presnell, March 28 2000 ~ 50 ~ Zpracování dat a Kontingenční analýza v programu R výše popsaná. Malou změnou v následující podmínce, je pouze „(.....,c(2,2)),8)". Tento drobný rozdíl, říká programu R, že má opakovat 2x ano a 2x ne a to vždy po sobě v 8 hodnotách. Konec složeného příkazu logicky ukončuje tzv. „Level", který je v tomto případě jiný. Pro odpověď u otázky související s rakovinou, je v její složené podmínce pouze číslo 16. Znamená to, že odpovědi „ano" a „ne" bude opakovat po sobě 16x, a zase v 17 hodnotě začne znovu 16x opakovat, až se dostane na konec > kouří<-factor(rep(rep(c("ano","ne"),c(2,2)),8),levels=c("ano","ne")) > kouří [1] ano ano ne ne ano ano ne ne ano ano ne ne ano ano ne ne ano ano ne [20] ne ano ano ne ne ano ano ne ne ano ano ne ne Levels: ano ne > rakovina<-factor(rep(c("ano","ne"),16),levels=c("ano","ne")) > rakovina [1] ano ne ano ne ano ne ano ne ano ne ano ne ano ne ano ne ano ne ano [20] ne ano ne ano ne ano ne ano ne ano ne ano ne Levels: ano ne > Hodnoty, které byly v dotazníkovém šetření zjištěny, zavedeme do systému. Pomocí známého příkazu „c( )" a názvem proměnné „data". Již jsou všechny hodnoty zavedeny v systému, stačí jen udělat tabulku. Pro tabulku použijeme příkaz „AataXram^e(proměnná,proměnná,proměnná,proměnnáyí. Tabulka byla nazvána „ tabl " a po samotném napsání do příkazového řádku této proměnné se udělá následující tabulka (obr. 30). > data<- c(126,100,35,61,908,688,497,807,913,747,336,598,235,172,58,121,402,308,121,215, 182,156,72,98,60,99,11,43,104,89,21,36) ~ 51 ~ Zpracování dat a Kontingenční analýza v programu R > tabK-data . f ráme (nie3to f tou.řif rakovinar data) > taol ir.ěsto kouři rakovina data 1 fceijIng ano ano 126 2 ľ e i j Iľig ano ne 100 z t e i j Iľig ne ano 35 fceijIng ne ne ei = 5 ha ng ano ano 908 6 Shang ano ne ese 7 Shang ne ano 497 e Shang ne ne 807 9 SHEy ano ano 913 10 SHEy ano ne 747 11 SHEy ne ano 336 12 SHEy ne ne 598 13 Naľiji ano ano 235 14 Nanji ano ne 172 15 Nanji ne ano 5e 16 Nanji ne ne 121 17 Harfcin ano ano 402 18 Harfcin ano ne 308 19 Harfcin ne ano 121 20 Harfcin ne ne 215 21 Zhengj ano ano 182 22 Zhengj ano ne 156 23 Zhengj ne ano 72 24 Zhengj ne ne 98 25 Taig ano ano 60 26 Taig ano ne 99 27 Taig ne ano 11 28 Taig ne ne 43 29 Na nc hl ano ano 104 30 Na nc hl ano ne 3 9 31 Nanchi ne ano 21 32 Nanclii ne ne 36 Obrázek 30: Tab 1 Pro větší přehlednost je možnost zavedení i jiné tabulky. Prostřednictvím tří níže uvedených složených příkazu se zobrazí následující tabulka (obr.31). > x<-tapply (data,list(kouří,rakovina,město),c) > names(dimnames(x))<-c("kouří","rakovina","město") ~ 52 ~ Zpracování dat a Kontingenční analýza v programu R > ftable[x,row.var3=c( "iue3t.o", " kouřirl) , col .var 3= "rakovina" ) rakovina ano ne ir.e3tc kouří fceijing ano 12 6 100 r.e z ž ei Shang ano SZ> = 688 ne 497 807 SHEy ano 913 747 ne 336 598 Na n j i ano 235 172 ne 5 = 121 Harbin ano 402 308 ne 121 215 Zhengu ano 132 156 ne '2 9 = Taig ano 99 ne 11 43 Nanchi ano 104 3 9 ne 2 1 36 > 1 Obrázek 31: f-table Níže uvedené příkazy souvisí pro členění vrstev hodnot proměnných. Dané separované tabulky jsou vhodné pro různé testy v kontingenční tabulce např. test CMH.27 > ni.k<-apply(x,c(l,3),sum) > ni.k město kouří beijing Shang SHEy Nanji Harbin Zhengu Taig Nanchi ano 226 1596 1660 407 710 338 159 193 ne 96 1304 934 179 336 170 54 57 > n.jk<-apply(x,c(2,3),sum) > n.jk město rakovina beijing Shang SHEy Nanji Harbin Zhengu Taig Nanchi ano 161 1405 1249 293 523 254 71 125 ne 161 1495 1345 293 523 254 142 125 > Cochranovy-Mantelovy.Haenszelovy statistiky ~ 53 ~ Závěr Zaver Cílem této bakalářské práce bylo seznámení s programem R a jeho využitím v konkrétních situacích ve statistice. Přesné vymezení cílů, které mi pomohli zrealizovat tuto těžkou problematiku, byly již v úvodu nastíněny. Výsledek předložených cílů se pokusím zodpovědět. První cíl byl popsat základy regresní a kontingenční analýzy. Uznala jsem za vhodné, uvést různé typy regresního modelu a jeho grafické zobrazení. V dalších sub-kapitolách jsem pouze nastínila předpoklady použití regresní analýzy funkce a výpočet odhadů regresních funkcí. U kontingenční analýzy, jsem uvedla typy proměnných a jejich vlastnosti. Druhý cíl byl jádrem práce. Jak jsem již uvedla, prostředí programu R je velmi obtížné pochopit. Program R pracuje v prostředí různých příkazů a psaní syntaxe do příkazového řádku. V třetí kapitole, jsou uvedeny základy práce s programem R ve statistice a jeho technické zajištění. Základy jsem pojala v rámci zadávání dat do programu a práce s nimi (například: tabulky, grafy). Výhody programu R j sou studijní a ekonomické. V rámci studia, uživatel důkladně porozumí statistické látce, neboť ji zde vidí z jiného pohledu, než u klasických statistických programu například u SASu. Ekonomická výhoda je prostá. Program R je volně přístupný na webovém portálu, a proto se zde nemusíme zabývat koupí licencí, jak u ostatních programů. Nevýhodou může být uživatelův čas a nevědomosti. Neboť R není program se snadnou manipulací. Skoro veškeré informace o programu R bývají většinou v cizím než v českém jazyce. Dále může být velká nevýhoda pro uživatele, který není orientovaný na programování, protože si program R nemůže naprogramovat pro své potřeby a je odkázán na již naprogramované balíčky. Třetí cíl, spočíval v aplikace regresní a kontingenční analýzy v programu R. U regresní analýzy, jsem uvedla dvě možnosti způsobů výpočtu regresních koeficientů, které R nabízí. Protože je zde velká škála možností, určitě by se daly nalézt i další způsoby výpočtu. Při aplikaci kontingenční analýzy v programu R, jsou v páté kapitole uvedené různé možnosti práce s kontingenční mi tabulkami. Kontingenční analýza j e tak rozsáhlá, že do této práce jsem uvedla pouze práci s kontingenčními tabulkami. Literatura Literatura [I] SEGER, Jan; HINDLS, Richard. Statistické metody v tržním hospodářství. Praha 1 : VICTORIA PUBLISHING, as., 1995. 435 s. ISBN 80-7187-058-7 [2] REZ ANKO V A, Doc.Ing.Hana. Analýza kategoriálních dat. 2005. Praha : Oeconomica, 2005. 99 s. ISBN 80-245-0926-1 [3] HEBÁK, Petr. Regrese : I.část. Praha : Ediční oddělení VŠE Praha, 1998. 138 s. ISBN 80-7079-909-9 [4] Biostatistics:A foundation for analysis in the health science, Wayne W.Daniel, ISBN: 0-471-52514-6 [5] Hindis, R. - Hronová, S. - Seger, J. - Fischer, J. (2006): Statistika pro ekonomy. 7. vyd. Praha: Professional Publishing. 418 str. ISBN 80-86946-16-9 [6] Marek, L. a kol. (2005): Statistika pro ekonomy - aplikace. 1. vyd. Praha: Professional Publishing. 423 str. ISBN 80-86419-68-1 [7] Pecáková, I. (2008): Statistika v terénních průzkumech. 1. vyd. Praha: Professional Publishing. 231 str. ISBN 978-80-86946-74-0 Internetové zdroje [8] http://wwwl.lfl .cuni.cz/~ldohna/linear/index.htm [9] http://www.esphere.cz/kostka/Matematika/Funkce/specifikace.htm [10] http://homen.vsb.cz/~oti73/cdpastl/KAP09/KAP09.HTM [II] http://www.karlin.mff.cuni.cz/~kulich/vyuka/Rdoc/index.html [12] http://www.gardenersown.co.Uk/Education/Lectures/R/regression.htm [13] http://cs.wikipedia.org/wiki/Regresn%C3%AD_anal%C3%BDza [14] www.montefiore.ulg.ac.be/~kvansteen/FGBIO0009- l/Fac20092010/Class8/Using%2520R%2520for%25201inear%2520regression.pdf [15] www.cran.r-project.org/doc/contrib/Verzani-SimpleR.pdf [16] www.cran.r-project.org/doc/manuals/R-data.pdf [17] www.stat.ufl.edu/~presnell/Courses/sta4504-2000sp/R/R-CDA.pdf ~ 55 ~ Seznam obrázků Seznam obrázků Obrázek 1: Typy statistických závislostí..................................................................................................8 Obrázek 2: Přímková funkce...................................................................................................................9 Obrázek 3: Parabolická funkce................................................................................................................9 Obrázek 4: Hyperbolická funkce...........................................................................................................10 Obrázek 5: Exponenciální funkce..........................................................................................................10 Obrázek 6: Logaritmická funkce............................................................................................................10 Obrázek 7: Ukázka Vyrovnání hodnot...................................................................................................11 Obrázek 8: Ukázka programu R.............................................................................................................18 Obrázek 9: Sloupcový graf.....................................................................................................................22 Obrázek 10 Sloupcový graf....................................................................................................................22 Obrázek 11: Sloupcový graf...................................................................................................................23 Obrázek 12: Sloupcový graf...................................................................................................................23 Obrázek 13: Horizontální sloupcový graf..............................................................................................23 Obrázek 14: Kruhový graf......................................................................................................................24 Obrázek 15:Kruhový graf.......................................................................................................................24 Obrázek 16: Kruhový graf......................................................................................................................25 Obrázek 17: Boxplot 1 Obrázek 18:Boxplot 2....................................................................................25 Obrázek 20: Boxplot 4...........................................................................................................................26 Obrázek 21: Histogram..........................................................................................................................26 Obrázek 19: Boxplot 3...........................................................................................................................26 Obrázek 22: Barevný histogram............................................................................................................27 Obrázek 23: Regrese.............................................................................................................................34 Obrázek 24: Lineární regrese................................................................................................................34 Obrázek 25: Regrese.............................................................................................................................39 Obrázek 26: Grafické zobrazení vícenásobné regrese..........................................................................40 Obrázek 27: Postup-Grafického zobrazení 1.........................................................................................40 Obrázek 28: Postup-Grafického zobrazení 2.........................................................................................40 Obrázek 29: Postup-Grafického zobrazení 3.........................................................................................41 Obrázek 30:Tab 1..................................................................................................................................52 Obrázek 31: f-table................................................................................................................................53 ~ 56 ~