##### Skript pro 11. cvičení ##### ----------------------------------- ## ## téma: párový a dvouvýběrový t-test ## regrese ## getwd() # měli bychom dostat "J:/statistika", pokud ne, pak: setwd("J:/statistika") getwd() # měli bychom dostat "J:/statistika" rm(list=ls()) ## # každý DVOUVÝBĚROVÝ test předpokládá NEZÁVISLÉ výběry # dvouvýběrový t-test předpokládá normální rozdělení # (případně velmi velké výběry) # klasický t-test předpokládá stejné populační rozptyly # datový soubor Kojeni data(Kojeni) summary(Kojeni) attach(Kojeni) # zpřístupníme proměnné v datovém souboru # Liší se porodní hmotnost hochů a dívek? plot(porHmotnost~Hoch) var.test(porHmotnost~Hoch) tapply(porHmotnost,Hoch,shapiro.test) t.test(porHmotnost~Hoch,var.equal=TRUE) # Vysvětli nulovou a alternativní hypotézu # Vysvětli rozhodnutí na 5% hladině # Co říká interval spolehlivosti? # Liší se hmotnost ve 24 týdni věku hochů a dívek? plot(hmotnost~Hoch) var.test(hmotnost~Hoch) tapply(hmotnost,Hoch,shapiro.test) t.test(hmotnost~Hoch,var.equal=TRUE) # Vysvětli nulovou a alternativní hypotézu # Vysvětli rozhodnutí na 5% hladině # Co říká interval spolehlivosti? # Liší se porodní délky hochů a dívek? plot(porDelka~Hoch) var.test(porDelka~Hoch) tapply(porDelka,Hoch,shapiro.test) t.test(porDelka~Hoch,var.equal=TRUE) # Byl tu nějaký problém? # Lze použít jiný test? wilcox.test(porDelka~Hoch,var.equal=TRUE) # jaké jsou předpoklady dvouvýběrového Wilcoxonova testu? # Jakou nulovou hypotézu testuje? # Na jaké myšlence je tento test založen? Jak funguje? # Co jsou pořadí? wilcox.test(porDelka~Hoch,subset=Porodnice=="okresní") wilcox.test(rank(porDelka)~Hoch,subset=Porodnice=="okresní") # je vidět, že záleží na pořadí délek, nikoliv na samotných délkách # připomeň si, co jsou pořadí: (xx = porDelka[Porodnice=="okresní"]) table(xx) cbind(xx,rank(xx),hoch[Porodnice=="okresní"]) # # závislost SPOJITÝCH PROMĚNNÝCH # # klasická Galtonova data (jejich část), výšky v anglických palcích data(GaltonSyn) summary(GaltonSyn) attach(GaltonSyn) # zpřístupnění obsahu datového souboru # # Vzájená souvislost výšek rodičů: # # pokud možno VŽDY ZAČÍNAT GRAFICKÝM ZNÁZORNĚNÍM plot(otec~matka,pch=3) abline(h=mean(otec),v=mean(matka),lty=3) # Kolik máme dvojic hodnot? (n = length(otec)) # kdy je otec vyšší, než je průměrná výška otců? otec-mean(otec)>0 # kdy je matka vyšší, než je průměrná výška matek? matka-mean(matka)>0 # kdy jsou odchylky od průměru u obou rodičů na stejnou stranu # tj. oba vyšší než průměr nebo oba menší než průměr? (STEJNĚ = (otec-mean(otec))*(matka-mean(matka))>0) # Kde jsou odchýlení na stejnou (různou) stranu na grafu? points(otec~matka,col=ifelse(STEJNĚ,"green","red")) # body které barvy převládají? c("stejně"=sum(STEJNĚ),"různě"=sum(!STEJNĚ)) # kovariance navíc přihlédně ke vzdálenosti od průměr # (od těžiště) (kovariance = cov(otec,matka)) sum((otec-mean(otec))*(matka-mean(matka)))/(n-1) # kdybychom měřili nikoliv v palcích, ale v cm, # byl by každý rozdíl větší asi 2,54-krát # kovariance by byla věší asi 2,54 * 2,54 krát # proto normujeme směrodatnými odchylkami, # dostaneme (výběrový) korelační koeficient, který je bezrozměrný cov(otec,matka)/(sd(otec)*sd(matka)) cor(otec,matka) # Prokázali jsme na 5% hladině závislost? # Testujeme nulovou hypotézu, podle které jsou # obě vlastnosti (náhodné veličiny) NEZÁVISLÉ. # Jsou-li dvě náhodné veličiny nezávislé, pak # jejich (POPULAČNÍ) korelační koeficient je roven NULE. # H0: rho = 0 cor.test(otec,matka) cor.test(vyskaO,vyskaM) # Prokázali jsme závislost? # Co říká interval spolehlivosti? # Které předpoklady měly být splněny? # Obě proměnné mají mít normální rozdělení, # u výšek vy to mělo být splněno. # Pokud je pochybnost o splnění předpokladu normality, # použijeme Spearmanův korelační koeficient. data(EU2010) summary(EU2010) attach(EU2010) plot(lesy~rozloha) # normalita nebude cor.test(lesy,rozloha,method="spearman") # závislost jsme PROKÁZALI # Princip Spearmanova korelačního koeficientu: # nahraď zjištěné hodnoty jejich pořadím: cor(rank(lesy),rank(rozloha),method="pearson") cor(rank(lesy),rank(rozloha)) # korelační koeficient vyšel opravdu stejně, # ############################################################################# ## ## regrese ## # Můžeme z výšky matky předpovídat výšku syna? plot(syn~matka,pch=3) summary(lm(syn~matka)) abline(lm(syn~matka)) # Jak bychom předpovídali výšku syna, # když matka Smithová je vysoká 65 palců? (b = coef(lm(syn~matka))) # 49,487 + 0,309 * 65 = 69,6 b[1]+b[2]*65 abline(v=65,h=b[1]+b[2]*65,lty=3,col=2) # Jakou výšku syna bychom předpovídali, když # matka Blacková má výšku 66 palců # (o jeden palec je vyšší než Smithová)? # 49,49 + 0,309 * 66 = 49,49 + 0,309 * (65 + 1) # = (49,49 + 0,309 * 65) + 0,309 # Pro každého syna můžeme spočítat předpověď jeho výšky: (synHat = fitted(lm(syn~matka))) # Rozdíly skutečná výška - predikce # se nazývají rezidua (U = syn - synHat) # Součet druhých mocnin reziuí = REZIDUÁLNÍ SOUČET ČTVERCŮ (S_E = sum(U^2)) # Celková variabilita výšek synů je charakterizována # součtem čtverců odchylek od průměru (S_T = sum((syn-mean(syn))^2)) # Jaká je variabilita předpovědí výšek synů? (S_R = sum((synHat-mean(synHat))^2)) # Je mezi čísly S_T, S_R a S_E nějaká souvislost? c(S_R + S_E,S_T) # Jakou část celkové variability jsme závislostí nevysvětlili? S_E/S_T # Jakou část celkové variability ST jsme závislostí vysvětlili? (R2 = S_R/S_T) # koeficient determinace 1-S_E/S_T summary(lm(syn~matka)) anova(lm(syn~matka)) # Prokázali jsme závislost? # Nezávislost znamená, že teoretická přímka je vodorovná # (aby y nezáviselo na x), tj. koeficient u x # (směrnice, sklon) je roven nule (nulová hypotéza). # Testová statistika je 3,989, p-hodnota nepatrná. # Lineární závislost jsme prokázali. ## Pokuste se prokázat závislost výšky otce na výšce matky. plot(otec~matka) summary(lm(otec~matka)) abline(lm(otec~matka)) ## Pokuste se prokázat závislost výšky syna na výšce otce.