####### kategorijalni podaci -- stupcasti dijagram (barplot) ## na uzorku od n=500 ljudi ispitano politicko opredjeljenje n=500 ## ukupno 5 razlicitih stranaka + ostali stranke = c(190,137,66,27,22,58) ## tzv. apsolutne frekvencije ## (koliko je ce od ispitanika glasati za pojedinu stranku) barplot(stranke,names=c("MFL","KMS","UI","NNP","SSR","Ostali")) rel.frekvencije = stranke/n ## tzv. relativne frekvencije (postoci) barplot(rel.frekvencije,names=c("MFL","KMS","UI","NNP","SSR","Ostali")) ## postoji i tzv. tortni dijagram (pie chart) pie(stranke,labels=c("MFL","KMS","UI","NNP","SSR","Ostali")) ## popularni u medijima, ali ih treba izbjegavati (!!) ## jer su ljudi losi u usporedivanju povrsina ?pie ####### diskretni numericki podaci -- opet stupcasti dijagram ## na uzorku od 40 ocjena prikupljene ocjene iz nekog predmeta n=40 ocjene = c(2,14,18,5,1) ## od jedan od pet rel.frekvencije = ocjene/n barplot(rel.frekvencije, names=c("1","2","3","4","5")) ## za razliku od prethodnog slucaja, bitan je poredak! ############# neprekidni numericki podaci -- histogram ili box plot ###### 1. histogram ## visine 40 slucajno odabranih studenata visine = scan() 159 188 175 176 177 168 162 188 183 187 187 162 184 161 180 169 195 171 170 199 181 169 189 191 172 182 183 178 180 165 185 202 183 187 188 182 163 179 178 188 hist(visine) hist(visine, probability=TRUE) ## sada je povrsina stupaca tocno 1, ## te histogram predstavlja procjenu za gustocu varijable X histogram=hist(visine, probability=TRUE) histogram ## razredi su (155,160], (160, 165], itd. ## simulirani uzorak iz N(0,1) razdiobe set.seed(10) n=100 x=rnorm(n) hist(x, probability = TRUE) t=seq(-3,3, by=0.1) points(t, dnorm(t), type="l") ## vise podataka, bolja procjena set.seed(10) n=1000 x=rnorm(n) hist(x, probability = TRUE) t=seq(-3,3, by=0.1) points(t, dnorm(t), type="l") ### odabir broj razreda je najbitniji dio (R to radi automatski), i nije ga uvijek jednostavno odrediti ## previse razreda hist(x, probability = TRUE, breaks=100) t=seq(-3,3, by=0.1) points(t, dnorm(t), type="l") ## premalo razreda hist(x, probability = TRUE, breaks=4) t=seq(-3,3, by=0.1) points(t, dnorm(t), type="l") ######## 2. boxplot summary(visine) ## daje nam osnovne statistike uzorka boxplot(visine) ## graficka reprezentacije tih statistika # par(mfrow=c(2,1)) # hist(visine, probability= TRUE) # boxplot(visine, horizontal = TRUE) # par(mfrow=c(1,1)) boxplot(x) ## oba relativno simetricna oko medijana, bez puno "outliera" ### kada imamo diskretne numericke podatke s puno razlicitih vrijednosti, mozemo ih tretirati kao neprekidne, npr. library(MASS) data("epil") ?epil head(epil) ### y sadrzi mjerenja o broju epileptickih napada u dva tjedna za 59 osobe (p 4 mjerenja za svaku osobu) hist(epil$y, prob=TRUE) boxplot(epil$y, horizontal = TRUE) ### kazemo da je razdioba "desno nagnuta" (engl. right skewed) ################################### dvije varijable, tj. imamo dva mjerenja (x_i, y_i) za svaku jedinku iz uzorka ### obje neprekidne numericke -- dijagram rasprsenosti (engl. scatter plot) # jednostavno crtamo parove (x_i, y_i), i=1,...,n ?faithful data("faithful") y=faithful$eruptions x=faithful$waiting plot(x,y, xlab="duration", ylab="eruptions") ## vidi se pozitivna korelacija izmedu ove dvije varijable (duze cekanje povezano s duzom erupcijom), formalno cor(x,y) ## tzv. korelacija uzorka [1] 0.9008112 ## to je procjenitelj za korelaciju slucajnih varijabli X i Y library(ggplot2) data("diamonds") ?diamonds y=diamonds$price x=diamonds$carat plot(x,y, xlab="carat", ylab="cijena") ## vidi se pozitivna korelacija izmedu ove dvije varijable, ipak ovdje scatter plot manje koristan ## jer je jako puno podataka pa se tocke preklapaju ### jedna neprekidna numericka, druga kategorijalna ili diskretna --- boxplotovi boxplot(price~cut, data = diamonds) ## Intuicija? Zasto se Ideal cut cine najjeftiniji? ## carat (tezina dijamanta) ipak vise utjece na cijenu, a u uzorku su Ideal cut cesce bili manje tezine: boxplot(carat~cut, data=diamonds)