andmed=read.csv("http://haldna.ee/r/Statistika/EMU_2023.csv",header=TRUE,sep=",", dec=".") attach(andmed) names(andmed) andmed summary(andmed) boxplot(pikkus,ylab="Pikkus, cm",main="Kõik tudengid") boxplot(kaal,ylab="Kaal, kg",main="Kõik tudengid") mean(pikkus) sd(pikkus) hist(pikkus) Pikkus=rnorm(n=300,mean=172,sd=9) par(mfrow=c(1,2)) # kaks graafikut kõrvuti hist(pikkus, main="Empiirilised ",ylab="tudengite arv") hist(Pikkus, main="Teoreetilised",ylab="") kaal2=rnorm(n=300,mean(kaal),sd(kaal)) hist(kaal, main="Empiirilised kaalud",ylab="tudengite arv") hist(kaal2, main="Teoreetilised kaalud",ylab="") table(mathinne) prop.table(table(mathinne)) # suhtelised sagedused prop.table(table(mathinne))*100 # suhtelised sagedused protsentides round(prop.table(table(mathinne))*100,1) T1=table(mathinne) prop.table(T1)*100 round(prop.table(T1)*100,1) barplot(T1) pie(T1) # võimalikud graafikud shapiro.test(pikkus) Kas naiste ja meeste pikkuste varieeruvused on sarnased ? bartlett.test(pikkus~factor(sugu)) fligner.test(pikkus~factor(sugu)) var.test(pikkus~factor(sugu)) table(sugu) sd(pikkus[sugu=="m"]) sd(pikkus[sugu=="n"]) names(andmed) boxplot(pikkus~factor(sugu),col=FALSE) boxplot(biolpunkte~factor(aeg),col=FALSE) boxplot(kaal~factor(aeg),col=FALSE) t.test(pikkus~factor(sugu)) t.test(pikkus) # Teine praktikum andmed=read.csv("http://haldna.ee/r/Statistika/EMU_2023.csv",header=TRUE,sep=",", dec=".") attach(andmed) names(andmed) T1=table(sugu,aeg);addmargins(T1) chisq.test(T1) barplot(T1,beside=TRUE,legend=TRUE) barplot(prop.table(T1,margin=2),legend=TRUE,ylab="Tudengite osakaal",xlim=c(0,4.5)) prop.test(c(38,42),n=c(50,150)) TT<-matrix(c(50,25,45,80),nrow=2,byrow=TRUE,dimnames=list(c("Suvila on","Suvilat pole"),c("Taime pole","Taim on")));TT fisher.test(TT) # kas suhe tuli sama, mis käsitsi arvutades? barplot(TT,legend=TRUE,xlim=c(0,3.5)) barplot(t(TT),legend=TRUE,xlim=c(0,3.5)) barplot(prop.table(t(TT),margin=2)*100,legend=TRUE,ylab="Taime olemasolu,%",xlim=c(0,3.5)) chisq.test(TT) T2=table(sugu,aeg) ;T2 fisher.test(T2) table(aeg) summary(andmed) table(tase) t.test(biolpunkte~factor(tase)) t.test(pikkus~sugu) names(andmed) kor_andmed=andmed[,-c(1,4,10:13)] maatriks=round(cor(kor_andmed, use="pairwise.complete.obs"),2) maatriks cor.test(biolpunkte,inglise,method="pearson") cor.test(pikkus,kaal,method="pearson") cor.test(pikkus,kaal,method="spearman") cor.test(pikkus,kaal) # mis see on? Iseseisev töö, kirjuta välja eelneva näite H0 ja H1. plot(pikkus,kaal) plot(kaal~pikkus) # vaatame kolme erinevat joonist kõrvuti par(mfrow=c(1,3)) plot(pikkus,kaal,main="plot(pikkus,kaal)") plot(kaal,pikkus,main="plot(kaal,pikkus)") plot(kaal~pikkus,main="plot(pikkus~kaal)") #Lisame ühikud telgedele plot(kaal~pikkus,main="Kaalu seos pikkusega",ylab="Kaal,kg",xlab="Pikkus, cm") #muudame graafiku akent, kui vaja pairs(kor_andmed) #install.packages("corrplot") library(corrplot) #Korrelatsioonimaatriksi graafiliseks esitamiseks corrplot(maatriks) # Lineaarsed mudelid fosfor<-read.table("http://ph.emu.ee/~haldna/Statistika/CY_naide2.csv", sep=",", dec=".", header=TRUE, na.strings=c("NA", "")) names(fosfor);attach(fosfor) summary(fosfor) punkt=factor(punkt) # kontrolli, millised PTOT ja PO4P väärtused on üldse andmebaasis olemas, # vaata ka jaotust! hist(PTOT) hist(PO4P) # kas on n.j.? cor.test(PTOT,PO4P) # kas lin.korrelatsioon on oluline plot(PTOT~PO4P) lin_mudel=lm(PTOT~PO4P) summary(lin_mudel) # arvutame prognoosid paberil käsitsi või kalkulaatori abil # üldfosfor=....+....*fosfaat # R abil # kui PO4P on 25 32.3714+1.7340*25 # Joonis, kõigepealt hajuvusgraafik uuesti plot(PTOT~PO4P) abline(lin_mudel) #Prognooside leidmiseks teeme valiku argumenttunnuse (PO4P) väärtustest. # Nendele leiab R on prognoosi, usaldusvahemiku ja prognoosi vahemiku. # Lihtsa regressioonimudeli korral piisab kahest etteantud väärtusest, # võtame näiteks minimaalse ja maksimaalse PO4P ja lisaks 10, kontrollimaks, kas arvutasime #eespool õigesti. uued=c(min(PO4P),10,max(PO4P)) uued prognoos=predict(lin_mudel,data.frame(PO4P=uued)) prognoos #vaatame prognoose us_piirid=predict(lin_mudel,data.frame(PO4P=uued),interval="conf") us_piirid # vaatame prognoose koos 95% usalduspiiridega pr_piirid=predict(lin_mudel,data.frame(PO4P=uued),interval="pred") pr_piirid # vaatame prognoose koos 95% prognoosi vahemikega # Joonis, kõigepealt hajuvusgraafik uuesti plot(PTOT~PO4P) abline(lin_mudel) # NB!abline(lin_mudel) annab sama, kuid seda tehakse vaid ühe faktoriga # mudeli korral lines(uued,prognoos) lines(uued,us_piirid[,2],lty=2);lines(uued,us_piirid[,3],lty=2) lines(uued,pr_piirid[,2],lty=3);lines(uued,pr_piirid[,3],lty=3)