############### Prvi termin vezbi############## ### Ucitavanje SPSS baze ### install.packages("foreign") #instaliranje i ucitavanje paketa library("foreign") Sleep=read.spss("E:/baze/sleep3ED.sav", to.data.frame = TRUE) #ucitavanje spss baze Sleep fix(Sleep) # i fix i View sluze da steknemo uvid u bazu podataka View(Sleep) attach(Sleep) ##### Deskriptivna statistika ####### #### Kategorijska obelezja ###### install.packages("summarytools") library("summarytools") freq(marital) freq(marital, report.nas = FALSE) #izbacuje red NA iz tabele ### Neprekidna obelezja ### descr(age) #osnovni deskriptivni pokazatelji obelezja (nedostaje Mod) descr(Sleep) # ovde je jako zgodno sto je kod kategorijskih obelezja R povukao obajsnjenja, # a ne brojne oznake kategorija. Posto se descr primenjuje na sva numericka obelezja, # kategorijske promenljive nisu ukljucene u descr(Sleep,transpose = TRUE) # bolja preglednost u transponovanoj matrici descr(age, stats=c("mean", "med","sd")) #ako zalimo samo pojedine deskriptivne statistike stby( # stby omogucava racunanje deskriptivnih statistika po grupama data = age, # neprekidno obelezje, nosilac istrazivanja INDICES = marital, # po bracnim stanjima, kategorijsko obelezje koje obezbedjuje grupe FUN = descr, # deskriptivne statistike stats = "common" # ovo oznacava da ce se racunati samo najbitnije deskriptivne statistike ) ### Mod (nije dat u prethodnom paketu) ### getmode=function(v) { #ne postoji kao gotova funkcija, pa moramo da je napravimo uniqv=unique(v) # funkcija koja izdvaja sve elemente niza, ali jedinstveno, bez duplikata uniqv[which.max(tabulate(match(v, uniqv)))] } getmode(marital) getmode(alchohol) getmode(caffeine) ### Trimovana sredina ### mean(age) #vraca NA jer postoje NA podaci mean(age,na.rm = TRUE) #resava problem sa NA mean(age,trim=0.3,na.rm = TRUE) #odbacuje tri najmanje i tri najvece vrednosti i ponovo racuna mean ############################################################################################################### ##################### TESTIRANJE NORMALNOSTI RASPODELE ####################### ### Kolmogorov-Smirnov test ### ks.test(age,"pnorm") #problem nastaje jer funkcija ks.test ne tolerise duplicirane vrednosti ks.test(unique(age),"pnorm") #problem resavamo uvodjenjem funkcije unique ks.test(unique(caffeine),"pnorm") ### Alternativa: Anderson-Darling test ############### install.packages("nortest") library(nortest) ad.test(age) ### Shapiro-Wilk test ### Experim=read.spss("E:/baze/experim3ED.sav", to.data.frame = TRUE) fix(Experim) shapiro.test(Experim$fost1) # Ispitivanje normalnosti po grupama my_packages <- c("dplyr", "broom", "nortest") lapply(my_packages, require, character.only = TRUE) Sleep %>% group_by(marital) %>% do(glance(shapiro.test(.$age))) Sleep %>% group_by(marital) %>% do(glance(ad.test(.$age))) # shapiro test za vise oblelezja odjednom install.packages("tidyverse") library("tidyverse") library("rstatix") Sleep %>% shapiro_test(height, weight) #trazi bazu na pocetku komande ## Los primer ispitivanja normalnosti po grupama Shapiro-Wilk metodom library(dplyr) library(broom) Sleep %>% group_by(marital) %>% do(tidy(shapiro.test(age))) ###################### GRAFICI U R-u ##################### ### Histogram ############ hist(age) hist(age,breaks=15) # definise broj podeoka hist(age, breaks=c(11,22,33,44,55,66,77,88)) hist(age~sex,col="red") install.packages("lattice") #paket omogucava graficka resenja drugacija od ranije ponudjenih library("lattice") histogram( ~ age | marital) ### Boxplot ### boxplot(age) boxplot(age~marital,col="lightgray") ### Stubicasti dijagram ### barplot(table(marital)) # kategorijska obelezja barplot(prop.table(table(marital))) #dobijamo relativne frekvencije umesto frekvencija barplot(table(marital,sex)) barplot(table(marital,sex), beside=TRUE) # dva kategorijska obelezja barplot(table(marital,sex), beside=TRUE,legend.text=T) ### Scater (dijagram rasturanja) ### plot(weight, height) install.packages("lattice") #paket omogucava graficka resenja drugacija od ranije ponudjenih library("lattice") xyplot(weight ~ height | marital) #scater za svaku od grupa ############################################################################################## ################ TABELE KONTIGENCIJE ################# ctable(marital,agegp3) # deo paketa 'summarytools', po default-u imamo procente preko vrsta ctable(marital,agegp3,prop="c") # procenti po kolonama ctable(marital,agegp3,prop="t") # ukupni procenti ctable(marital,agegp3,prop="n") # bez procenata