Primena R jezika u osnovnoj statistikoj i grafikoj

  • Slides: 124
Download presentation
Primena R jezika u osnovnoj statističkoj i grafičkoj analizi podataka Miljan G. Jeremić Milan

Primena R jezika u osnovnoj statističkoj i grafičkoj analizi podataka Miljan G. Jeremić Milan Lj. Gocić miljan. jeremic@gmail. com milan. gocic@gaf. ni. ac. rs Knjaževačka gimnazija Građevinsko-arhitektonski fakultet Niš Beograd, 10. februar 2019.

Kome je namenjeno predavanje? v Predavanje je namenjeno nastavnicima koji se po prvi put

Kome je namenjeno predavanje? v Predavanje je namenjeno nastavnicima koji se po prvi put susreću kako sa okruženjem programskog R jezika, tako i sa analizom podataka. Preduslov v Poznavanje osnova rada s računarom i operativnim sistemom MS Windows v Poznavanje osnova rada na internetu v Minimalno iskustvo u programiranju

Ciljevi predavanja v Upoznati se sa instalacijom i osnovnim okruženjem R jezika i njegovom

Ciljevi predavanja v Upoznati se sa instalacijom i osnovnim okruženjem R jezika i njegovom sintaksom v Upoznati se sa osnovnim mogućnostima R jezika u oblasti statističke analize i grafičke prezentacije podataka v Prikaz praktičnih primera

Struktura predavanja v Uvod u R jezik v Osnove programskog jezika R v Osnovne

Struktura predavanja v Uvod u R jezik v Osnove programskog jezika R v Osnovne strukture podataka v Vektor v Lista v Skup podataka v Osnovne statističke funkcije v Grafika u jeziku R

Nauka o podacima i big data v Nauka o podacima (engl. data science) prisutna

Nauka o podacima i big data v Nauka o podacima (engl. data science) prisutna je u računarstvu oko 50 godina. v U novije vreme izražene su potrebe da se ogromne količine podataka (engl. big data) modeliraju u poslovne svrhe. v Osnovni alati poslovne inteligencije (engl. Business Intelligence) daju zbirne izveštaje, zahtevajući znanja i veštine iz računarstva, matematike i statistike, ali i visok stepen kreativnosti i veština komunikacije. v Primena R jezika u analizi informacija, u cilju praćenja poslovnih rezultata preduzeća i poslovnog odlučivanja.

Šta je nauka o podacima?

Šta je nauka o podacima?

Uvod u R jezik v R je programski jezik i okruženje za statistička izračunavanja

Uvod u R jezik v R je programski jezik i okruženje za statistička izračunavanja i vizuelizaciju podataka. v Predstavlja slobodan programski jezik (GNU) što znači da se može slobodno koristiti i distribuirati. v Otvorenog je koda (engl. open-source). v Implementiran je iz jezika S kojeg je razvio John Chambers sa kolegama u Bel laboratorijama, kao i Robert Gentleman sa fakulteta u Oklandu.

Uvod u R jezik v Njegovi tvorci su R. Ihaka i R. Gentleman sa

Uvod u R jezik v Njegovi tvorci su R. Ihaka i R. Gentleman sa Univerziteta u Aucklandu, Novi Zeland. Ovaj programski jezik je delimično i dobio ime po prvim slovima imena autora. v Lako proširiv sa velikim izborom grafičkih tehnika. v Razvijeno je više stotina specijalizovanih statističkih procedura za širok spektar primena putem pridodatih paketa (engl. contributed packages). v Paketi su slobodno dostupni i mogu se integrisati direktno u R jezik.

Uvod u R jezik v Pruža širok izbor statističkih metoda za linearno i nelinearno

Uvod u R jezik v Pruža širok izbor statističkih metoda za linearno i nelinearno modeliranje, klasične statističke testove, analize vremenskih serija ili klasterizaciju. v Do skora je postojalo mišljenje da R jezik koristi uglavnom akademska zajednica, ali se to danas promenilo. v Federalna agencija za lekove (Federal Drug Administration - FDA) identifikovala je delove R jezika pogodnim za tumačenje podataka iz kliničkih istraživanja. v Veliki je broj kompanija (Google, Oracle, Microsoft), koje sada prelaze na R jezik za analizu i prezentaciju svojih podataka.

Izbor algoritama u jeziku R

Izbor algoritama u jeziku R

Prednosti R jezika v Proizvod je međunarodne saradnje vrhunskih statističara i dizajnera programskih jezika.

Prednosti R jezika v Proizvod je međunarodne saradnje vrhunskih statističara i dizajnera programskih jezika. v R je dostupan kao slobodan softver pod uslovima Free Software Foundation GNU. v Dostupan je putem interneta. v Radi na raznim platformama: UNIX (uključujući Free. BSD i Linux), Windows i Mac OS.

Prednosti R jezika v Omogućava statističke analize i vizuelizaciju podataka. v Omogućava rad sa

Prednosti R jezika v Omogućava statističke analize i vizuelizaciju podataka. v Omogućava rad sa velikim i kompleksnim objektima. v Nudi mogućnost razmene podataka sa drugim programima korišćenjem datoteka različitih formata (MS Excel, teksta, SAS, CSV). v Omogućava pristup bazama podataka (Oracle i MS Access).

Nedostaci R jezika v Postoji slaba podrška analizama korišćenjem grafičkogkorisničkog interfejsa (Graphical User Interface

Nedostaci R jezika v Postoji slaba podrška analizama korišćenjem grafičkogkorisničkog interfejsa (Graphical User Interface – GUI). v Zahteva pisanje naredbi kako bi se vršile analize i napravila vizuelizacija rezultata.

R – analiza tržišta v Istraživanja upotrebe softverskih alata u oblasti analitike, mašinskog učenja

R – analiza tržišta v Istraživanja upotrebe softverskih alata u oblasti analitike, mašinskog učenja i nauke o podacima pokazuju veću upotrebu različitih metoda direktno iz programskog koda. v Najviše se koriste programski jezici R i Python i njihove programske biblioteke, kao što su Tensorflow i scikit-learn.

R – analiza tržišta

R – analiza tržišta

Language Platform What is • The most popular statistical programming language • A data

Language Platform What is • The most popular statistical programming language • A data visualization tool • Open source • 2. 5+M users Community Ecosystem • Taught in most universities • New and recent grad’s use it • Thriving user groups worldwide • 8000+ contributed packages • Rich application & platform integration

Četiri trenda transformacije cloud computing 2011 2016 5 x increase data science Universities filling

Četiri trenda transformacije cloud computing 2011 2016 5 x increase data science Universities filling 300, 000 US talent gap big data 90% of the data in the world today has been created in the last two years alone open source including R, Linux, Hadoop

Instalacija R jezika v U internet čitač uneti adresu https: //cran. rproject. org/bin/windows/base/ v

Instalacija R jezika v U internet čitač uneti adresu https: //cran. rproject. org/bin/windows/base/ v Instalirati odgovarajuću verziju koja odgovara vašem operativnom sistemu. v Ako posedujete operativni sistem Windows, treba izabrati verziju R 3. 5. 2 za Windows.

Instalacija R jezika

Instalacija R jezika

Koraci tokom instalacije

Koraci tokom instalacije

Pokretanje programa v Nakon instaliranja treba pokrenuti R za unos naredbi i kreiranje statističkih

Pokretanje programa v Nakon instaliranja treba pokrenuti R za unos naredbi i kreiranje statističkih interpretacija i grafika. v U ovom materijalu su naredbe pisane proporcionalnim slovima (na primer, naredba install. packages()). v Sintaksa naredbi pisana je crvenim proporcionalnim slovima sa sivim komentarima za delove koje program ne izvodi. v Izlazni rezultati predstavljeni su plavom bojom.

Radno okruženje

Radno okruženje

Instalacija RStudio v Instalacija RStudio za Windows: https: //www. rstudio. com/products/rstudio/download/

Instalacija RStudio v Instalacija RStudio za Windows: https: //www. rstudio. com/products/rstudio/download/

Upoznavanje sa RStudio IDE

Upoznavanje sa RStudio IDE

Upoznavanje sa RStudio IDE

Upoznavanje sa RStudio IDE

R ekosistem Tools -> Install Packages… Image source: The network structure of R packages

R ekosistem Tools -> Install Packages… Image source: The network structure of R packages on CRAN and Bio. Conductor, Andrie de Vries & Joseph Rickert, Microsoft.

CRAN: The Comprehensive R Archive Network

CRAN: The Comprehensive R Archive Network

Instaliranje paketa > install. packages(“ggplot 2”) # Uputstvo: ne instaliraju se *svi* R paketi

Instaliranje paketa > install. packages(“ggplot 2”) # Uputstvo: ne instaliraju se *svi* R paketi ovako; > installed. packages() # alternativno: > library() > library(ggplot 2) # šta je trenutno u okruženju od paketa > old. packages() # šta je zastarelo? > update. packages() # update svega

Programske biblioteke jezika R v Biblioteka programa na referentnom sajtu trenutno sadrži 11. 682

Programske biblioteke jezika R v Biblioteka programa na referentnom sajtu trenutno sadrži 11. 682 programska paketa: https: //cran. r-project. org/ v Osim matematičkih i statističkih metoda, veliki broj paketa razvijen je za potrebe istraživanja podataka metodima mašinskog učenja, npr. paketi: q caret (učenje stabala odlučivanja) q random. Forest (učenje slučajnih šuma) q nnet (učenje veštačkih neuronskih mreža) q e 1071 q ksvm (učenje nosećih vektora)

Radni direktorijum v Pre početka rada potrebno je definisati radni direktorijum. v Informacija o

Radni direktorijum v Pre početka rada potrebno je definisati radni direktorijum. v Informacija o trenutnom radnom direktorijumu > getwd() v Postavljanje radnog direktorijuma > setwd("putanja/moj_direktorijum") v Informacije o funkciji koju želimo koristiti dobijaju se unosom upitnika ispred željene naredbe. Na primer, za funkciju lm(): > ? lm

Radni direktorijum > getwd() # ispisuje koji je radni direktorijum > setwd("C: /") #

Radni direktorijum > getwd() # ispisuje koji je radni direktorijum > setwd("C: /") # menja radni direktorijum > dir() # ispisuje sadržaj radnog direktorijuma > savehistory() # sprema sve naredbe u radni direktorijum > loadhistory() # učitava spremljene naredbe

Spremanje radnog prostora > ls() ili objects() # daje listu svih objekata > rm(a)

Spremanje radnog prostora > ls() ili objects() # daje listu svih objekata > rm(a) # briše objekat a > rm(list=ls()) # briše sve objekte > save. image() # sprema objekte u radni direktorijum u. RData > save(a, "file") # sprema objekat a u zadati dokument > load("file") # učitava sačuvane objekte iz datog dokumenta

Osnove programskog jezika R v Vrste podataka v Operacije u R jeziku v Osnovne

Osnove programskog jezika R v Vrste podataka v Operacije u R jeziku v Osnovne matematičke funkcije v Promenljive, dodela vrednosti i izrazi

Osnovne vrste podataka v Jezik R prepoznaje šest osnovnih atomskih (engl. atomic) vrsta podataka:

Osnovne vrste podataka v Jezik R prepoznaje šest osnovnih atomskih (engl. atomic) vrsta podataka: q znak / slovo / tekst (engl. character, string) q realan broj (engl. numeric) q celobrojni broj (engl. integer) q kompleksni broj (engl. complex) q logički (engl. logical) q sirovi (engl. raw)

Podaci v Definisani su i specijalni brojevi beskonačnosti Inf (engl. infinity) koji se mogu

Podaci v Definisani su i specijalni brojevi beskonačnosti Inf (engl. infinity) koji se mogu dobiti deljenjem nulom, na primer 1/0, dok je 1/Inf = 0. > 1/0 > 1/Inf v Generalno definisane, a nedostajuće vrednosti u R okruženju označene su oznakom NA (engl. not available). v Nedefinisane vrednosti, kao što je slučaj sa 0/0 označavaju se sa Na. N i predstavljaju nedefinisanu vrednost (engl. not a number).

Primer > a <- c(10, 25) > a[3] [1] NA > is. na(c(0/0, NA))

Primer > a <- c(10, 25) > a[3] [1] NA > is. na(c(0/0, NA)) [1] TRUE > is. nan(c(0/0, NA)) [1] TRUE FALSE v U ovom kontekstu za ispitivanje svojstava brojeva koriste se naredbe is. finite() i is. infinite().

Operacije u R jeziku R znakovi za operatore Operator +, -, *, /, %,

Operacije u R jeziku R znakovi za operatore Operator +, -, *, /, %, ^ aritmetički >, >=, <, <=, ==, != relacioni !, &, |, &&, ||, xor(x, y) logički ~ model formule <-, -> pridruživanje $ indeksiranje liste : kreiranje sekvence

Primer > 5 + 6 + 3 + 6 + 4 [1] 24 >

Primer > 5 + 6 + 3 + 6 + 4 [1] 24 > 2 + 7; 5 * 6; 3 - 8 [1] 9 [1] 30 [1] -5

Osnovne matematičke funkcije Funkcija abs(x) log(x) exp(x) log(x, n) log 10(x) sqrt(x) factorial(x) choose(n,

Osnovne matematičke funkcije Funkcija abs(x) log(x) exp(x) log(x, n) log 10(x) sqrt(x) factorial(x) choose(n, x) gamma(x) floor(x) ceiling(x) trunc(x) Značenje apsolutna vrednost za x logaritam od x za osnovu e (ln) eksponent broja x logaritam od x za osnovu n logaritam od x za osnovu 10 kvadratni koren od x faktorijel broja x, x! binomni koeficijent, n!/(x! (n-x)!) Γ(x), za realno x (x-1)!, za celobrojnu vrednost x najveći ceo broj manji od x najmanji ceo broj veći od x ceo broj najbliži vrednosti x između x i 0; trunc(1. 5) = 1, trunc(-1. 5) = -1

Osnovne matematičke funkcije Funkcija Značenje round(x, digits=0) zaokružena vrednost x na ceo broj signif(x,

Osnovne matematičke funkcije Funkcija Značenje round(x, digits=0) zaokružena vrednost x na ceo broj signif(x, digits=6) x na 6 decimala runif(n) n slučajnih brojeva između 0 i 1 (uniformna distribucija) cos(x), sin(x), tan(x) trigonometrijske funkcije u radijanima acos(x), asin(x), atan(x) acosh(x), asinh(x), atanh(x) inverzne trigonometrijske funkcije inverzne hiperboličke trigonometrijske funkcije

Primer > log(10) [1] 2. 302585 > log(42/7. 3) [1] 1. 749795 > pi

Primer > log(10) [1] 2. 302585 > log(42/7. 3) [1] 1. 749795 > pi [1] 3. 141593 > exp(1) [1] 2. 718282 > log 10(10) [1] 1 > cos(pi/2) [1] 6. 123032 e-17 > sin(pi/2) [1] 1

Promenljive, dodela vrednosti i izrazi v Sintaksa jezika inspirisana je jezikom C. Promenljive se

Promenljive, dodela vrednosti i izrazi v Sintaksa jezika inspirisana je jezikom C. Promenljive se ne deklarišu, već dobijaju tip vrednosti koja im se dodeli v Dodela vrednosti promenljivoj vrši se naredbom oblika > x <- 5 > x [1] 5 v Dodela rezultata aritmetičkog izraza i prikaz vrednosti > x <- 5 * x ^ 2 + 1 > x [1] 126

Promenljive, dodela vrednosti i izrazi v Dodela rezultata nenumeričkog izraza i prikaz vrednosti >

Promenljive, dodela vrednosti i izrazi v Dodela rezultata nenumeričkog izraza i prikaz vrednosti > x <- "abcd " + "efg" > x [1] "abcdefg"

Strukture podataka v Pregled struktura podataka u R okruženju na osnovu njihove dimenzionalnosti i

Strukture podataka v Pregled struktura podataka u R okruženju na osnovu njihove dimenzionalnosti i homogenosti podataka (svi sadržaji moraju biti iste vrste) ili heterogeni (sadržaj može biti različitih vrsta) N- dimenzija Homogeni Heterogeni 1 Vektori (Atomic Vector) Liste (List) 2 Matrice (Matrix) Skupovi podataka (Data Frame) N Nizovi / polja (Array)

Strukture podataka v Može se primetiti jedna osobina okruženja R, a to je da

Strukture podataka v Može se primetiti jedna osobina okruženja R, a to je da ne postoji skalar, odnosno vrsta podataka bez dimenzije. v Svi skalari (alfanumerički znakovi) su u okruženju R definisani kao vektori dužine 1. v Ako želite da bolje razumete strukturu nekog objekta u okruženju R, najvažnija je funkcija str(), što je skraćenica engleske reči structure koja nam na konzoli daje opis objekta na jednostavno čitljiv način. > x <- 5 > str(x) num 5

Vektori v Vektori se sreću u dva oblika: atomski (engl. atomic) i liste (engl.

Vektori v Vektori se sreću u dva oblika: atomski (engl. atomic) i liste (engl. list). v Ove dve vrste razlikuju se po svom sadržaju. v Dok podaci unutar atomskog vektora nužno moraju biti iste vrste, sadržaj liste to ne mora biti.

Osnovna svojstva vektora 1. Ko su? Koje su vrste? > typeof() 2. Dužina vektora

Osnovna svojstva vektora 1. Ko su? Koje su vrste? > typeof() 2. Dužina vektora > length() 3. Atributi – dodatni metapodaci o vektoru > attributes()

Vektori v Vektori se najčešće generišu funkcijom c() što predstavlja prvo slovo engleske reči

Vektori v Vektori se najčešće generišu funkcijom c() što predstavlja prvo slovo engleske reči combine. v U literaturi se sreće i „c“ kao prvo slovo reči concatenate, što znači povezivanje u obliku lanca.

Indeksiranje i selekcija podskupa vektora v Selekcija elemenata vektora (engl. subset) izvodi se operandom

Indeksiranje i selekcija podskupa vektora v Selekcija elemenata vektora (engl. subset) izvodi se operandom []. v Unutar zagrada indeksom rednog broja elementa u vektoru dobija se željena vrednost. v Selekcija drugog elementa objekta vektor_1: > vektor_1[2] v Selekcija prvog i trećeg elementa vektor_3: > vektor_3[c(1, 3)]

Selekcija kod vektora v Selekcija nad vektorima, matricama, poljima i skupovima podataka može biti

Selekcija kod vektora v Selekcija nad vektorima, matricama, poljima i skupovima podataka može biti u uslovu, odnosno iz objekta će biti prepoznati samo oni elementi koji odgovaraju zadatom uslovu: > selekt <- vektor_d > 10 #daje logički vektor označavajući sve elemente koji zadovoljavaju uslov > vektor_d[selekt] ili korišćenjem funkcije which() > select_2 <- which(vektor_d > 10, arr. in = TRUE) > vektor_d[select_2]

Primer > A <- 1: 20 > A [1] 1 2 3 4 5

Primer > A <- 1: 20 > A [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > B <- c(3, 5, 7) > B [1] 3 5 7 > x <- c(4, 3, 8, 7, 2, 7, 6) > x[4] # IV element u vektoru x [1] 7

Primer > y <- 4 > z <- y[1] > length(z) [1] 1

Primer > y <- 4 > z <- y[1] > length(z) [1] 1

Kreiranje različitih tipova vektora v Vektor stringova > tekstualni_vektor <- c("tekst 1", "tekst 2",

Kreiranje različitih tipova vektora v Vektor stringova > tekstualni_vektor <- c("tekst 1", "tekst 2", "tekst 3") > tekstualni_vektor [1] "tekst 1" "tekst 2" "tekst 3" v Vektor numeričkih vrednosti > numericki_vektor <- c(1, 3. 5, 6, 4. 4) > numericki_vektor_2 <- c(1, 5, 28, 13) > celobrojni_vektor <- c(2 L, 4 L, 6 L) #eksplicitna izrada celobrojnog vektora > celobrojni_vektor [1] 2 4 6 > celobrojni_vektor_2 <- 1: 10 #sekvenca celobrojnih vrednosti

Kreiranje različitih tipova vektora v Vektor logičkih vrednosti > logicki_vektor <- c(TRUE, FALSE, T,

Kreiranje različitih tipova vektora v Vektor logičkih vrednosti > logicki_vektor <- c(TRUE, FALSE, T, F) > logicki_vektor [1] TRUE FALSE v Vektor se može generisati i funkcijom vector(). > logicki_vektor_2 <- vector("logical", length = 10) v Određivanje tipa vektora radi se upitima typeof(), ili specifičnim testovima kao što su: is. character(), is. double(), is. integer(), is. logical(), ili posebnim kao: is. atomic(), is. na().

Operacije sa vektorima Funkcija max(x) min(x) sum(x) mean(x) median(x) range(x) var(x) cor(x, y) sort(x)

Operacije sa vektorima Funkcija max(x) min(x) sum(x) mean(x) median(x) range(x) var(x) cor(x, y) sort(x) rank(x) order(x) Značenje funkcije Maksimalna vrednost vektora x Minimalna vrednost vektora x Suma vrednosti vektora x Aritmetička sredina vrednosti vektora x Vrednost funkcije medijane vektora x Vektor od minimalnog x i maksimalnog x Varijansa vektora x Korelacija između vektora x i y Sortirane vrednosti vektora x Vektor rangova vektora x Celobrojni vektor koji sadrži indekse elemenata sortiranih vrednosti vektora x u rastućem redosledu

Operacije sa vektorima Funkcija quantile(x) cumsum(x) cumprod(x) cummax(x) cummin(x) pmax(x, y, z) Značenje funkcije

Operacije sa vektorima Funkcija quantile(x) cumsum(x) cumprod(x) cummax(x) cummin(x) pmax(x, y, z) Značenje funkcije Vektor koji sadrži minimum, niži kvartil, medijan, gornji kvartil i maksimum vektora x Vektor koji sadrži sumu svih elemenata do tog trenutka Vektor koji sadrži proizvod svih elemenata do tog trenutka Vektor neopadajućih brojeva koji su kumulativni maksimumi vrednosti u vektoru x do te tačke Vektor neopadajućih brojeva koji su kumulativni minimumi vrednosti u x do te tačke Vektor dužine jednake najdužem od x i y i z za i-ti položaj u svakom od njih

Primer > x <- c(4, 3, 8, 7, 2, 7, 6) > max(x) [1]

Primer > x <- c(4, 3, 8, 7, 2, 7, 6) > max(x) [1] 8 > min(x) [1] 2 > sum(x) [1] 37 > mean(x) [1] 5. 285714 > median(x) [1] 6 > range(x) [1] 2 8 > var(x) [1] 5. 238095 > sort(x) [1] 2 3 4 6 7 7 8 > rank(x) [1] 3. 0 2. 0 7. 0 5. 5 1. 0 5. 5 4. 0 > order(x) [1] 5 2 1 7 4 6 3 > quantile(x) 0% 25% 50% 75% 100% 2. 0 3. 5 6. 0 7. 0 8. 0 > cumsum(x) [1] 4 7 15 22 24 31 37

Primer > x <- c(4, 3, 8, 7, 2, 7, 6) > cumprod(x) [1]

Primer > x <- c(4, 3, 8, 7, 2, 7, 6) > cumprod(x) [1] 4 12 96 672 1344 9408 56448 > cummax(x) [1] 4 4 8 8 8 > cummin(x) [1] 4 3 3 3 2 2 2 > y <- c(3, 6, 4, -1, -2, 5, 8) > cor(x, y) [1] 0. 2487543

Imenovanje vektora Vektor možemo imenovati na tri načina: q prilikom kreiranja vektora > x

Imenovanje vektora Vektor možemo imenovati na tri načina: q prilikom kreiranja vektora > x <- c(var 1 = 1, var 2 = 2, var 3 = 3) q izmenom postojećeg vektora > x <- 1: 3 > names(x) <- c("var 1", "var 2", "var 3") q kreiranjem proizvoljnog vektora > x <- set. Names(1: 3, c("var 1", "var 2", "var 3"))

Matrice i polja v Polje (engl. array) je struktura podataka. v Može biti višedimenzionalno,

Matrice i polja v Polje (engl. array) je struktura podataka. v Može biti višedimenzionalno, a poseban slučaj dvodimenzionalnog polja je matrica (engl. matrix) i one čine osnovu za veliki deo statističke analize. Sadrže atribut dimenzija koji se traži funkcijom dim(). v Matrica se može generisati sa argumentima broja redova i kolona, a pritom treba obratiti pažnju na način popunjavanja matrice vektorom. > matrica_1 <- matrix(1: 20, ncol = 4, nrow = 5)

Primer > X <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow

Primer > X <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3) > X [, 1] [, 2] [, 3] [1, ] 1 4 7 [2, ] 2 5 8 [3, ] 3 6 9 > attributes(X) $dim [1] 3 3

Primer > array <- 1: 25 > is. matrix(array) [1] FALSE > dim(array) NULL

Primer > array <- 1: 25 > is. matrix(array) [1] FALSE > dim(array) NULL > dim(array) <- c(5, 5) > dim(array) [1] 5 5 > is. matrix(array) [1] TRUE > array [, 1] [, 2] [, 3] [, 4] [, 5] [1, ] 1 6 11 16 21 [2, ] 2 7 12 17 22 [3, ] 3 8 13 18 23 [4, ] 4 9 14 19 24 [5, ] 5 10 15 20 25 > is. table(array) [1] FALSE

Indeksiranje i selekcija podskupa matrice v Selekcija elemenata matrice (engl. subset) radi se operatorom

Indeksiranje i selekcija podskupa matrice v Selekcija elemenata matrice (engl. subset) radi se operatorom []. Unutar zagrada, indeksom reda i kolone željenog elementa u matrici dobija se njegova vrednost. v Selekcija elemenata u drugom redu i trećoj koloni matrice > matrica_1[2, 3] ili putem atributa, drugi element u promenljivoj var_3: > matrica_1[2, "var_3"]

Generisanje sekvenci v Funkcija seq() koristi se za generisanje sekvenci > vektor_d <- seq(1,

Generisanje sekvenci v Funkcija seq() koristi se za generisanje sekvenci > vektor_d <- seq(1, 100, by = 5) > vektor_d [1] 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 > vektor_d[c(T, F)] [1] 1 11 21 31 41 51 61 71 81 91

Svojstva matrica v Osnovna svojstva vektora length() i names() sada dobijaju višedimenzionalnu nadgradnju kod

Svojstva matrica v Osnovna svojstva vektora length() i names() sada dobijaju višedimenzionalnu nadgradnju kod matrica i polja na način: q funkcija length() nadograđuje se funkcijama nrow() i ncol() za matrice, kao i dim() za polja. qfunkcija names() nadograđuje se funkcijama rownames() i colnames() za matrice, kao i dimnames() za polja.

Osnovne operacije s matricama v Kreiranje matrice 2 x 3 od dve matrice 1

Osnovne operacije s matricama v Kreiranje matrice 2 x 3 od dve matrice 1 x 3, koje su kreirane konkatenacijom niza skalarnih vrednosti > y <- rbind(c(1, 2, 3), c(4, 5, 6)) > y [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 v Transponovanje matrice i dodavanje skalarne vrednosti > z <- t(y) + 1 > z [, 1] [, 2] [1, ] 2 5 [2, ] 3 6 [3, ] 4 7

Lista v Lista (engl. list) za razliku od atomskih vektora, može sadržati i druge

Lista v Lista (engl. list) za razliku od atomskih vektora, može sadržati i druge vrste vektora, uključujući i same liste. Zbog ovog svojstva još ih nazivamo i rekurzivnim vektorima. v Mogu se generisati pomoću funkcije list(), a ne više uz pomoć funkcije c().

Primer > lista_1 <- list(10, "z", TRUE, matrix(1: 15, ncol = 5, nrow =

Primer > lista_1 <- list(10, "z", TRUE, matrix(1: 15, ncol = 5, nrow = 3)) > lista_1 [[1]] [1] 10 [[2]] [1] "z" [[3]] [1] TRUE [[4]] [, 1] [, 2] [, 3] [, 4] [, 5] [1, ] 1 4 7 10 13 [2, ] 2 5 8 11 14 [3, ] 3 6 9 12 15

Selekcija elemenata liste v Selekcija drugog reda, treće kolone, na četvrtom elementu liste bi

Selekcija elemenata liste v Selekcija drugog reda, treće kolone, na četvrtom elementu liste bi se radila na ovaj način: > lista_1[[4]][2, 3] [1] 8 v Traženje drugog elementa u listi: > lista_1[[2]] [1] "z"

Dodavanje imena u listi > lista_2 <- list("Pera", 1, matrix(runif(10)), 5. 3) > names(lista_2)

Dodavanje imena u listi > lista_2 <- list("Pera", 1, matrix(runif(10)), 5. 3) > names(lista_2) <- c("ime", "broj", "moja_matrica", "starost") > lista_2 $ime [1] "Pera" $broj [1] 1 $moja_matrica [, 1] [1, ] 0. 43173665 [2, ] 0. 87019483 [3, ] 0. 32389248 [4, ] 0. 05303274 [5, ] 0. 43557863 [6, ] 0. 44810105 [7, ] 0. 09058317 [8, ] 0. 69548471 [9, ] 0. 80159780 [10, ] 0. 87850047 $starost [1] 5. 3

Traženje elementa sa nazivom u listi v Traženje elementa određenog naziva u listi >

Traženje elementa sa nazivom u listi v Traženje elementa određenog naziva u listi > lista_2[["starost"]] [1] 5. 3

Skupovi podataka – Data frames v Skupovi podataka (engl. data frames) su najuobičajeniji način

Skupovi podataka – Data frames v Skupovi podataka (engl. data frames) su najuobičajeniji način čuvanja podataka u okruženju R. v Skup podataka je ispis vektora iste dužine. Prema ovoj definiciji oni imaju dve dimenzije i dele svojstva i matrica i ispisa. v Skup podataka ima names(), colnames() i rownames() s obzirom da su u ovom slučaju names() i colnames() iste stvari.

Konstruisanje data frames v Struktura podataka u kojoj su vektori iste dužine složeni u

Konstruisanje data frames v Struktura podataka u kojoj su vektori iste dužine složeni u matricu kao kolone konstruišu se naredbom data. frame > Zemlje <- c("Španija", "Francuska", "Japan", "Indija") > Gustina. Naseljenosti <- c(79, 113, 337, 329) > d <- data. frame(Zemlje, Gustina. Naseljenosti) > d Zemlje Gustina. Naseljenosti 1 Španija 79 2 Francuska 113 3 Japan 337 4 Indija 329

Ispisivanje imena v. Data frame ima dodatni red s imenima objekata (ako su zadati)

Ispisivanje imena v. Data frame ima dodatni red s imenima objekata (ako su zadati) i dodatnu kolonu s imenima redova koji se mogu menjati > names(d) #ispisuje imena objekata [1] "Zemlje" "Gustina. Naseljenosti“ > row. names(d) #ispisuje imena redova [1] "1" "2" "3" "4“

Uređivanje podataka v Podaci se mogu uređivati koristeći tabele u R-u > novid <-

Uređivanje podataka v Podaci se mogu uređivati koristeći tabele u R-u > novid <- edit(d)

Indeksiranje v Indeksiranje se vrši na jedan od sledećih načina > d[i, j] #

Indeksiranje v Indeksiranje se vrši na jedan od sledećih načina > d[i, j] # element u i-tom redu i j-toj koloni > d[i, ] # i-ti red > d[, j] # ili samo d[j] j-ta kolona

Funkcije za rad sa skupovima podataka > subset(d, Gustina. Naseljenosti > 150) # ispisuje

Funkcije za rad sa skupovima podataka > subset(d, Gustina. Naseljenosti > 150) # ispisuje deo od d koji zadovoljava zadati kriterijum Zemlje Gustina. Naseljenosti 3 Japan 337 4 Indija 329 > transform(d, e) # dodaje kolonu e u d

Učitavanje postojećih podataka u R v U okruženju R podatke možemo da učitamo na

Učitavanje postojećih podataka u R v U okruženju R podatke možemo da učitamo na više načina. v Osnovni tipovi učitavanja: q tabeliranih podataka (read. table() unutar kojih je moguće definisati veliki broj parametara, q teksta read. Lines(), q koda okruženja R source(), q objekata okruženja R dget(), q binarnih objekata unserialize(), q radnog prostora okruženja R (engl. workspace) load().

Ulaz-izlaz v Čitanje tekstualnih podataka s fajla > x <-as. matrix(read. table(file("tabela. txt")) v

Ulaz-izlaz v Čitanje tekstualnih podataka s fajla > x <-as. matrix(read. table(file("tabela. txt")) v Podaci u Excel formatu > library(xts) > x <- as. xts(read. zoo('podaci. csv', header=T))

Učitavanje postojećih podataka u R v Posebno su razvijeni paketi i funkcije za učitavanje

Učitavanje postojećih podataka u R v Posebno su razvijeni paketi i funkcije za učitavanje SAS datoteka (paket sas 7 bdat), kao i prostornih podataka (paketi rgdal, shapefiles, maptools, . . . ). v Postoji niz razvijenih specifičnih paketa za rad sa datotekama programa Excel (paketi xlsx i openxlsx). Veliki broj formata zapisa moguće je učitati uz pomoć paketa foreign. v SPSS, STATA i SAS datoteka se mogu učitati uz pomoć paketa Hmisc.

Funkcije u R jeziku v R je tzv. funkcionalni program koji se fokusira na

Funkcije u R jeziku v R je tzv. funkcionalni program koji se fokusira na izradu i upravljanje funkcijama. v Osnovno je pravilo da se unutar okruženja R sa funkcijama može napraviti sve što se može napraviti s vektorima - mogu se dodeliti nekoj promenljivoj, spremiti za ispis, biti argumenti nekih drugih funkcija.

Kreiranje funkcije v Korisnik može kreirati svoju funkciju upotrebom naredbe function(): > f <-

Kreiranje funkcije v Korisnik može kreirati svoju funkciju upotrebom naredbe function(): > f <- function(<arguments>) {# funkcija nešto radi} > args(f) #traženje informacije o definisanim argumentima funkcije

Primer > fakt <- function(n) { n <- 1 for (i in 1: n)

Primer > fakt <- function(n) { n <- 1 for (i in 1: n) n <- n * i return (n) } > fakt(6) [1] 120

Primer # elementarne: definicija fun <- function(x) x+10; fun(5) # sa 2 argumenta fun

Primer # elementarne: definicija fun <- function(x) x+10; fun(5) # sa 2 argumenta fun 2 <- function(x, y) x+y; fun 2(3, 4) # koriste se "{" i "}" da zatvore R # izraze u telu f-je fun <- function(x, y) { a <- sum(x); b <- sum(y); a-b } r <- c(5, 4, 3); q <- c(1, 1, 1); fun(r, q) fun(c(5, 4, 3), c(1, 1, 1)) # Napomena: "{" and "}" koriste se u R jeziku za početak i kraj bloka # da li je funkcija: is. function(fun) is. function(log) # log je ugrađen

Primeri funkcija > min(x) > max(x) > sum(x) > range(x) > cumsum(x) > cumprod(x)

Primeri funkcija > min(x) > max(x) > sum(x) > range(x) > cumsum(x) > cumprod(x) > diff(x) > summary(x) > mean(x) > median(x) > sd(x) > sd(X) > var(X) > cor(X) > quantile(x, 0. 75) > quantile(x) > rank(x) > sort(x) > order(x)

Selekcija v Selekcija: naredba if > x <- 0 > if (x < 0)

Selekcija v Selekcija: naredba if > x <- 0 > if (x < 0) { print("Negativan broj") } else if (x > 0) { print("Pozitivan broj") } else print("Nula") [1] Nula

Iteracija v Iteracija, naredba for: inicijalizacije matrice > x <- as. matrix(10) > for(i

Iteracija v Iteracija, naredba for: inicijalizacije matrice > x <- as. matrix(10) > for(i in 1: 10) x[i] <- i * 2 > x [1] 2 4 6 8 10 12 14 16 18 20

Primer > p <- 0. 01 > if(p < 0. 05) print("Dobar podatak!") [1]

Primer > p <- 0. 01 > if(p < 0. 05) print("Dobar podatak!") [1] "Dobar podatak!" For-petlja: > for(i in 1: 10) print(i) While-petlja: > i <- 1 > while(i < 10){ print(i) i = i + 1 }

Osnovno o petljama u R jeziku v Unutar okruženja R postoji nekoliko načina kojim

Osnovno o petljama u R jeziku v Unutar okruženja R postoji nekoliko načina kojim se definišu petlje. v Osim standardnih for i while petlji, okruženje R ima razvijene i nestandardne petlje koje su izrađene kako bi radile ponavljajuće stvari u specifičnim slučajevima (apply petlja, a osim funkcije sadrži i lapply(), sapply() i tapply()).

Funkcija apply() v Izvršava drugu zadatu funkciju sa zadatim marginama (red ili kolona) matrice

Funkcija apply() v Izvršava drugu zadatu funkciju sa zadatim marginama (red ili kolona) matrice ili niza (polja). > apply(X, MARGIN, FUN, . . . ) Primer: > apply(moji_podaci, 2, mean) # sredine po kolonama > apply(moji_podaci, 1, mean) # sredine po redovima

Funkcija lapply() v Primenjuje zadatu funkciju na svaki element ispisa (liste). Rezultat funkcije je

Funkcija lapply() v Primenjuje zadatu funkciju na svaki element ispisa (liste). Rezultat funkcije je ispis. > numericka_lista <- list(ime 1 = 1: 5, ime 2 = rnorm(10)) > lapply(numericka_lista, max) $ime 1 [1] 5 $ime 2 [1] 0. 05009413

Funkcija sapply() v Slična funkciji lapply() s tom razlikom da rezultat pokušava struktuirati u

Funkcija sapply() v Slična funkciji lapply() s tom razlikom da rezultat pokušava struktuirati u jednostavniji oblik ako je to moguće. > sapply(numericka_lista, max) ime 1 ime 2 5. 0000 0. 05009413

Funkcija tapply() v Radi određeni proces na selekciji vektora sa poljima promenljivih dužina. Grupisanje

Funkcija tapply() v Radi određeni proces na selekciji vektora sa poljima promenljivih dužina. Grupisanje unutar petlje tapply definiše se faktorskom promenljivom. > set. seed(1) # reproduktivan primer > podaci <- data. frame(osoba = 1: 100, pritisak = rnorm(100, mean = 120, sd = 80), tretman = gl(2, 50, labels = c("Tretman", "Kontrola"))) osoba pritisak tretman 1 69. 883695 Tretman 2 134. 691466 Tretman 3 53. 149711 Tretman . . . 98 74. 138767 Kontrola 99 22. 030991 Kontrola 100 82. 127949 Kontrola

Primer > summary(podaci) osoba pritisak tretman Min. : 1. 00 Min. : -57. 18

Primer > summary(podaci) osoba pritisak tretman Min. : 1. 00 Min. : -57. 18 Tretman : 50 1 st Qu. : 25. 75 1 st Qu. : 80. 46 Kontrola: 50 Median : 50. 50 Median : 129. 11 Mean : 50. 50 Mean : 128. 71 3 rd Qu. : 75. 25 3 rd Qu. : 175. 32 Max. : 100. 00 Max. : 312. 13 > names(podaci) #imena promenljivih u skupu podataka [1] "osoba" "pritisak" "tretman" > tapply(podaci$pritisak, podaci$tretman, mean) Tretman Kontrola 128. 0359 129. 3861

Raspodele u R jeziku v Okruženje R poseduje bogatu familiju funkcija distribucije verovatnoće: normalna,

Raspodele u R jeziku v Okruženje R poseduje bogatu familiju funkcija distribucije verovatnoće: normalna, beta, binomna, gama, hipergeometrijska, itd. v Funkcija ? distributions iz paketa stats daće popis svih ugrađenih distribucija u okruženju R.

Raspodele u R jeziku v Funkcija d(x, . . . ) računa gustinu raspodele

Raspodele u R jeziku v Funkcija d(x, . . . ) računa gustinu raspodele na x-osi > dnorm(0) #gustina na 0; standardna normalna distribucija [1] 0. 3989423 v Funkcija p(q, . . . ) računa kumulativnu verovatnoću do q P(x # q) > pnorm(1. 96) #kumulativna distribucija P(Z<1. 96) [1] 0. 9750021

Raspodele u R jeziku v Funkcija q(p, . . . ) za dato p

Raspodele u R jeziku v Funkcija q(p, . . . ) za dato p > qnorm(0. 89) #98 -i kvantil [1] 1. 226528 v Funkcija r(n, . . . ) generiše slučajnu promenljivu zadate veličine > set. seed(1) > rnorm(10) [1] -0. 6264538 0. 1836433 -0. 8356286 1. 5952808 0. 3295078 -0. 8204684 [7] 0. 4874291 0. 7383247 0. 5757814 -0. 3053884

Grafika u okruženju R jezika v Grafika osnovnog okruženja nalazi se automatski nakon instalacije

Grafika u okruženju R jezika v Grafika osnovnog okruženja nalazi se automatski nakon instalacije softvera. v Funkcije za rad sa grafikom nalaze se u osnovnom paketu graphics, a uključuju funkcije kao što su plot() za crtanje grafika, hist() za izradu histograma, boxplot() za Box-Whiskers plot itd. v Više detalja o paketu graphics mogu se dobiti naredbom > help(package = graphics)

Grafika v Ako pozovemo funkciju plot() u paketu base i nemamo otvoren grafički prozor

Grafika v Ako pozovemo funkciju plot() u paketu base i nemamo otvoren grafički prozor (engl. plotting device), ona ga automatski otvara. v Ako želimo da imamo veći broj otvorenih grafičkih prozora možemo sami otvoriti novi grafički prozor funkcijom dev. new(). Ovo nije slučaj ako se radi sa RStudiom. v Ako se kreira neka grafika radi prezentacije u nekom dokumentu bolje je otvoriti datotečki uređaj (engl. file device) nego ekran (engl. screen device).

Grafički prikaz podataka > plot(y) # crta vrednosti od y u pripadnim indeksima >

Grafički prikaz podataka > plot(y) # crta vrednosti od y u pripadnim indeksima > plot(x, y) #crta vrednosti od y u tačkama iz vektora x v Neki argumenti funkcije plot su: main, sub, xlab, ylab, axes, type. > points(x, y) #dodaje tačke na postojeći grafik > lines(x, y) #dodaje linije na postojeći grafik

Primer > x = 0: 100 > x [1] 0 1 2 3 4

Primer > x = 0: 100 > x [1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [19] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 [37] 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 [55] 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 [73] 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 [91] 90 91 92 93 94 95 96 97 98 99 100 > xx = x * 2 * pi/100 > y = sin(xx) > plot(xx, y)

Grafički prikaz podataka > abline(a, b) # dodaje pravac y = a + b

Grafički prikaz podataka > abline(a, b) # dodaje pravac y = a + b x na postojeći grafik > text(x, y) # dodaje tekst na mesto (x, y) > curve(f, from = a, to = b) #crta grafik funkcije f iznad [a, b] v Za crtanje preko postojećeg grafika dodaje se argument add = TRUE. Slika se može sačuvati u recimo ". pdf" formatu na sledeći način: > pdf("file. pdf") > curve(sin, 0, 4 * pi) > dev. off()

Korišćenje boja > data(volcano) > library(RColor. Brewer) > boje <- brewer. pal(5, "Blues") #biramo

Korišćenje boja > data(volcano) > library(RColor. Brewer) > boje <- brewer. pal(5, "Blues") #biramo pet boja iz plave palete > boje [1] "#EFF 3 FF" "#BDD 7 E 7" "#6 BAED 6" "#3182 BD" "#08519 C"

Primer Ako želimo, na primer 20 boja, ali na osnovu gore izabranih 5 pisaćemo

Primer Ako želimo, na primer 20 boja, ali na osnovu gore izabranih 5 pisaćemo > boje 20 <- color. Ramp. Palette(boje)(20) ili > boje 20 <- color. Ramp. Palette(brewer. pal(5, "Blues"))(20) > str(volcano) num [1: 87, 1: 61] 100 101 102 103 104 105 106 107 108. . .

Primer > image(volcano, col = boje 20)

Primer > image(volcano, col = boje 20)

Vizuelizacija podataka v Spomenućemo još jednu funkciju koja je vrlo korisna pri vizuelizaciji velikog

Vizuelizacija podataka v Spomenućemo još jednu funkciju koja je vrlo korisna pri vizuelizaciji velikog broja tačaka > X <- rnorm(10000) > Y <- rnorm(10000) > Z <- cbind(X, Y) > plot(X, Y) > smooth. Scatter(Z) > graphics: : plot(Z, col = dens. Cols(Z), pch = 20, main = "Gustina tacaka") > save. Plot(filename = "Proba_smooth. jpg", type = "jpg") > dev. copy(png, 'myplot. png')

save. Plot() v. Funkcija save. Plot() kreira grafike trenutno prikazane u aktivnom grafičkom prozoru,

save. Plot() v. Funkcija save. Plot() kreira grafike trenutno prikazane u aktivnom grafičkom prozoru, ali ne radi iz RStudio-ja. Ovo nije optimalan način da se prikaže grafik, trebalo bi da se uradi to ovako: > jpeg('rsmoothplot. jpg') #otvaramo zeljeni medij - jpg > smooth. Scatter(Z) #crtamo u medij > dev. off() #zatvaramo medij

rgb() v Tačno određena boja može se napraviti funkcijom rgb() definisanjem tačnih specifikacija crvene,

rgb() v Tačno određena boja može se napraviti funkcijom rgb() definisanjem tačnih specifikacija crvene, zelene i plave boje uz mogućnost definisanja prozirnosti boje kao poslednjeg argumenta funkcije. > plot(X, Y, pch = 19) #gotovo nista se ne vidi > plot(X, Y, col = rgb(0, 0, 0, 0. 2), pch = 19, main = "Scatterplot prozirno") #prozirno > save. Plot(filename = "Proba_smooth. jpg", type = "jpg“)

Linearni model podataka v Prilikom istraživanja međusobnih veza dveju promenljivih primenjuju se metode proste

Linearni model podataka v Prilikom istraživanja međusobnih veza dveju promenljivih primenjuju se metode proste (linearne i nelinearne) regresione i korelacione analize. v U slučaju više promenljivih reč je o metodama višestruke (linearne i nelinearne) regresione i korelacione analize. v Prost regresioni model je matematički model koji ima samo dve promenljive: zavisnu i nezavisnu. v Prost linearni regresioni model je regresioni model kojim se opisuje linearna veza između zavisne i nezavisne promenljive.

Primer Pretpostavimo da imamo eksperiment da vidimo koliko ljudi odrastaju (po visini) u skladu

Primer Pretpostavimo da imamo eksperiment da vidimo koliko ljudi odrastaju (po visini) u skladu sa svojim godinama. Bira se nekoliko osoba različite starosti bez obzira na njihov pol, rasu i sl. Godine Visina (cm) 5 55 15 120 20 170 25 175 Linearni model nam pokazuje relaciju i korelaciju između starosti i visine, dok se mora uzeti u obzir greška, jer ako se stavi rasa i pol kao parametar rezultat je promenjen.

Primer Formula za fiksni element linearnog modela je: > visina ~ godine + error

Primer Formula za fiksni element linearnog modela je: > visina ~ godine + error "visina" zavisna promenljiva jer se meri na osnovu "doba", a "godine" se naziva nezavisna promenljiva ili prediktor ili fiksni efekat error uključuje sve ostale faktore i parametre koji bi mogli uticati na rezultat, ali ih nismo svesni ili ih ne uzimamo u obzir namerno ili nedovoljno.

Primer > visina <- c(55, 120, 175) > godine <- c(5, 15, 20, 25)

Primer > visina <- c(55, 120, 175) > godine <- c(5, 15, 20, 25) > mojdf <- data. frame(godine, visina) > moj_model <- lm(visina ~ godine, mojdf) # "lm" je komanda za linearni model > summary(moj_model) # daje informacije o podacima

Rezultat Call: lm(formula = visina ~ godine, data = mojdf) Residuals: 1 2 3

Rezultat Call: lm(formula = visina ~ godine, data = mojdf) Residuals: 1 2 3 4 -3 -2 16 -11 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 26. 0000 16. 8565 1. 542 0. 2629 godine 6. 4000 0. 9442 6. 779 0. 0211 * --Signif. codes: 0 ‘***’ 0. 001 ‘**’ 0. 01 ‘*’ 0. 05 ‘. ’ 0. 1 ‘ ’ 1 Residual standard error: 13. 96 on 2 degrees of freedom Multiple R-squared: 0. 9583, Adjusted R-squared: 0. 9374 F-statistic: 45. 95 on 1 and 2 DF, p-value: 0. 02108

Primer > hist(residuals(moj_model)) # pravi model histograma > qqnorm(residuals(moj_model)) # dijagram reziduala kojim se

Primer > hist(residuals(moj_model)) # pravi model histograma > qqnorm(residuals(moj_model)) # dijagram reziduala kojim se uporedjuje naš skup podataka sa normalnom distribucijom v Rezidual je razlika između stvarne vrednosti visine i predviđene visine. Komanda plot(godine, visina) može ilustrovati razbacane tačke, dok plot(moj_model) ima više smislenog grafikona o našem modelu.

Grafici

Grafici

Primer Zadavanje: Istraživač je ispitivao vezu holesterola u krvi sa sistolnim i dijastolnim krvnim

Primer Zadavanje: Istraživač je ispitivao vezu holesterola u krvi sa sistolnim i dijastolnim krvnim pritiskom kod 11 muškaraca i žena. Izmerene vrednosti je poslagao u tabelu. Postupak: U prvom koraku napravio je matricu (tabelu) izmerenih vrednosti, tako da je najpre stavio izmerene vrednosti u pojedine promenljive, a onda je od njih napravio matricu pr 1.

Primer > uzrast <- c(23, 45, 36, 29, 56, 54, 33, 27, 23, 47,

Primer > uzrast <- c(23, 45, 36, 29, 56, 54, 33, 27, 23, 47, 45) > hol <- c(6. 8, 4. 5, 6. 4, 4. 7, 5. 1, 6. 2, 19, 6. 2, 16. 9, 4. 9, 7. 3) > skp <- c(135, 145, 157, 145, 135, 155, 146, 176, 135, 129, 144) > dkp <- c(75, 80, 75, 90, 75, 80, 75, 90) > mas <- c(66, 88, 72, 67, 82, 102, 65, 88, 55, 70, 63)

Primer Komanda cbind() spojiće pojedine vektore u matricu po kolonama, a ako želimo da

Primer Komanda cbind() spojiće pojedine vektore u matricu po kolonama, a ako želimo da spaja po redovima koristićemo analognu komandu rbind(). > pr 1 <- cbind(uzrast, hol, skp, dkp, mas) uzrast hol skp dkp mas [1, ] 23 6. 8 135 75 66 [2, ] 45 4. 5 145 80 88 [3, ] 36 6. 4 157 80 72 [4, ] 29 4. 7 145 75 67 [5, ] 56 5. 1 135 90 82 [6, ] 54 6. 2 155 90 102 [7, ] 33 19. 0 146 75 65 [8, ] 27 6. 2 176 80 88 [9, ] 23 16. 9 135 80 55 [10, ] 47 4. 9 129 75 70 [11, ] 45 7. 3 144 90 63

Primer Øsummary(pr 1)

Primer Øsummary(pr 1)

Primer Istraživač prilikom merenja krvnog pritiska nije saznao jednu vrednost u četvrtom merenju i

Primer Istraživač prilikom merenja krvnog pritiska nije saznao jednu vrednost u četvrtom merenju i naveo ju je kao nedostajuću. U programu R zadaće se nedostajuću vrednost slovima NA. > skp <- c(135, 145, 157, NA, 135, 155, 146, 176, 135, 129, 144) > skp [1] 135 145 157 NA 135 155 146 176 135 129 144 Komanda sumary() onda daje sledeću tabelu, koja karakteriše zadate podatke > summary(skp) Min. 1 st Qu. Median Mean 3 rd Qu. Max. NA's 129. 0 135. 0 144. 5 145. 7 152. 8 176. 0 1. 0

HELP v R ima ugrađen sistem za pomoć. Ako se već zna koja se

HELP v R ima ugrađen sistem za pomoć. Ako se već zna koja se funkcija koristi, onda se može upisati > help(plot) > library(help = "base") #pomoć za paket base ili > ? plot

HELP v U slučaju da se želi videti koje se sve funkcije imaju na

HELP v U slučaju da se želi videti koje se sve funkcije imaju na raspolaganju > help. start() v Na kraju se izlazi iz programa sa > quit()

Literatura v v v Chambers (2008) Software for data analysis, Springer Chambers (1998) Programming

Literatura v v v Chambers (2008) Software for data analysis, Springer Chambers (1998) Programming with data, Springer Murrel (2005) R Graphics, Chapman & Hall / CRC Press Use R! Serija knjiga, Springer http: //www. r-project. org/doc/bib/R-books. html The R Journal – http: //journal. r-project. org/current. html. vhttp: //cran. r-project. org/doc/manuals/R-intro. pdf v Priručnici su dostupni i upotrebom funkcije help. start(). > help. start()

Literatura The Comprehensive R Archive Network http: //cran. r-project. org/ Korisno: • Inside R:

Literatura The Comprehensive R Archive Network http: //cran. r-project. org/ Korisno: • Inside R: http: //www. inside-r. org/ • Quick R: http: //www. statmethods. net/ • R-bloggers: http: //www. r-bloggers. com/ Knjige: • The Art of R Programming, Norman Matloff, September 1, 2009: http: //heather. cs. ucdavis. edu/~matloff/132/NSPpart. pdf