# 2. přednáška 8. října 2012 rm(list=ls()) # načtení dat, zpřístupnění jejich kopie data(Kojeni) attach(Kojeni) Tolary = read.csv2("data/tolary.txt") attach(Tolary) data(EU2010) attach(EU2010) dim(EU2010) names(EU2010) země V4 = which(země %in% c("CZ","PL","SK","HU")) V4 země[V4] EU2010[V4,c("země","obyvatel","HDP")] mean(HDP[V4]) # průměr bez vážení weighted.mean(HDP[V4],w=obyvatel[V4]) podílPct = 100*obyvatel[V4]/sum(obyvatel[V4]) podílPct names(podílPct) = země[V4] podílPct weighted.mean(HDP[V4],w=podílPct) # # známky Statistika 2011/12 nn = c(52,52,55,12) mean(1:4) weighted.mean(1:4,w=nn) podílZnámek = 100*nn/sum(nn) cbind("známka"=1:4,nn,podílZnámek) weighted.mean(1:4,w=podílZnámek) ## quantile(vek.m,probs=c(1/4,2/4,3/4)) quantile(vek.m,probs=1:3/4) boxplot(vek.m) boxplot(tolary) quantile(tolary,probs=c(1/4,2/4,3/4)) # mean(vek.m) mean(tolary) (četnosti = table(tolary)) tolary (tolaryHvězdička = unique(sort(tolary))) weighted.mean(tolaryHvězdička,četnosti) (b <- c(10:13,17,21,31,51)-.5) # levé okraje intervalů # source("psGraf.R") # psGraf(file="../tolaryMMM.ps") hist(tolary,breaks=b,col="yellow",main="",xlab="",ylab="") průměr = mean(tolary) medián = median(tolary) hodnoty = sort(unique(tolary)) maximálníČetnost = max(table(tolary)) modusy = hodnoty[which(table(tolary)==maximálníČetnost)] modusy # nemusí být jednoznačný abline(v=c(průměr,medián),col=c("red","blue"),lty=1:2) abline(v=modusy,col="green",lty=3) legend("topright", legend=c("prů mě r (mean) 17,04", "medián (median) 14","modus (mode) 12"), col=c("red","blue","green"),lty=1:3) # dev.off() mean(vek.m,trim=0.1) # vážený průměr (znamky <- c(1,1,2,3)) (kredity <- c(6,6,4,3)) mean(znamky) # nevážený weighted.mean(znamky,w=kredity) sum(znamky*kredity)/sum(kredity) # průměr (x <- c(1,3,8)) (xBar = sum(x)/length(x)) mean(x) # rozptyl ((1-4)+(3-4)+(8-4))/2 ((1-4)^2+(3-4)^2+(8-4)^2)/2 var(x) # směrodatná odchylka sqrt(var(x)) sd(x) # věk matek data(Kojeni) attach(Kojeni) # zpřístupní "vnitřek" datového souboru range(vek.m) # příprava výpočtu rozpětí quantile(vek.m,probs=c(1,3)/4) # kvartily var(vek.m) # rozptyl sd(vek.m) # směr. odchylka # # histogram a vážený průměr histVM = hist(vek.m,seq(17,38,by=3)+0.5,col="yellow") str(histVM) # co všechno si v objektu nazvaném histVM poznamená # postupně v řádcích četnost, střed intervalu, součin: rbind(histVM$counts,histVM$mids,histVM$counts*histVM$mids) # součiny četnost * střed intervalu histVM$counts*histVM$mids # vážený průměr podle vzorečku: sum(histVM$counts*histVM$mids)/sum(histVM$counts) # vážený průměr snadno a rychle (meanW = weighted.mean(histVM$mids,histVM$counts)) # rozptyl s korekcí musíme sami, nejdřív bez korekce (s2Weight = sum(histVM$counts*(histVM$mids-meanW)^2)/(sum(histVM$counts)-1)) # ještě s korekcí (h = 3) (s2Sh = sum(histVM$counts*(histVM$mids-meanW)^2)/(sum(histVM$counts)-1)-(3^2)/12) sqrt(s2Sh) # střední dochylka sum(abs(vek.m-median(vek.m)))/length(vek.m) # střední diference x = c(1,3,8) outer(x,x,"-") mean(abs(outer(x,x,"-"))) dif = outer(vek.m,vek.m,"-") k = 4 vek.m[1:k] # prvních k matek dif[1:k,1:k] # rozdíl věku i-té a j-té matky (delta = mean(abs(dif))) (gini = delta/(2*mean(vek.m)))