data <- data.frame(svetla = c(1768, 946, 115), kastan = c( 807, 1387, 438), cerna = c( 180, 746, 288), rezava = c( 47, 53, 16), row.names=c('modra', 'seda', 'hneda')) sum(data) # v tabulce jsou zaznamy celkem o 6791 lidech apply(data, 1, sum) # soucty po radcich apply(data, 2, sum) # soucty po sloupcich chisq.test(data)$expected # Overeni podminky dobre aproximace -> alespon 80% cisel musi byt > 5 a zbylych 20% nesmi klesnout pod 2 --> JE SPLNENO # Pearsonuv chi-kvadratovy test o nezavislosti barvy vlasu a barvy oci # H0: Barva oci a barva vlasu jsou nezavisle. # H1: Barva oci a barva vlasu nejsou nezavisle. chisq.test(data, correct=F) # Pearsonuv chi-kvadratovy test, kde jsme zakazali korekci na spojitost (Horsi test, nez kdybychom dali correct=T, # ale vysledky presne sedi s vysledky pocitanymi rucne pomoci vzorcu uvedenych na prednasce) # p-hodnota je mensi nez 0.05 -> H0 zamitame na hladine vyznamnosti 0.05. # Zaver: Barva oci a barva vlasu nejsou nezavisle znaky. #----------------------------------------------------------------------------------------------------------------- # Vypocet Cramerova koeficientu library(lsr) cramersV(data) # Crameruv koeficient = 0.283, tedy mezi barvou oci a barvou vlasu existuje slaby stupen zavislosti. # Zaver testovani: Barva vlasu a barva oci nejsou nezavisle, ovsem mezi znaky existuje pouze slaba zavislost. #----------------------------------------------------------------------------------------------------------------- # Scatterplot = 3D graf vykreslujici efektivne dvourozmerne kontingencni tabulky library(scatterplot3d) x <- rep(c(1,2,3,4), c(3,3,3,3)) # vytvoreni x-ovych souradnic bodu y <- rep(1:3,4) # vytvoreni y-ovych souradnic bodu z <- c(as.matrix(data)) # z-ove souradnice tvori absolutni cetnosti uvedene v kontingencni tabulce 'data' cbind(x, y, z) # prehledna tabulka zobrazujici x,y a z-ove souradnice vsech kombinaci barvy vlasu a barvy oci scatterplot3d(x, y, z, type='h', pch=18, xlab='barva vlasu', ylab='barva oci', zlab='pocetnosti', main='Scatterplot', x.ticklabs = c('svetla', '', 'kastan', '', 'cerna', '', 'rezava'), y.ticklabs = c('modra', '', 'seda', '', 'hneda'), color=rep('brown4',12), lwd=2) # Poznamka: Aby popisky barvy vlasu a barvy oci sedely s dolni mrizkou, musi byt v argumentech x.ticklabs a y.ticklabs # mezi jenotlivymi barvami uvedeno prazdne textove pole zadane pomoci hornich uvozovek ,'', #====================================================================================================== # Testovani v ctyrpolnich kontingencnich tabulkach data <- data.frame(muz=c(20,30), zena=c(30,20), row.names=c('A','B')) data n <- sum(data) # Ve ctyrpolni kontingencni tabulce muzeme H0 otestovat: # 1. Fisherovym testem (presny) # 2. Pearsonovym chi-kvadratovym testem (aproximacni, priblizny; presnost se zvetsuje s rostoucim n) # 3. Testem pomeru sanci (aproximacni, priblizny; presnost se zvetsuje s rostoucim n) #------------------------------------------------------------------------------------------------------ # Fisheruv presny test # H0: Preferovany napoj a pohlavi jsou nezavisle znaky. # H1: Preferovany napoj a pohlavi nejsou nezavisle znaky. fisher.test(data, alternative='two.sided') # p-hodnota = 0.07134 > 0.05 -> H0 nezamitame na hladine vyznamnosti 0.05. #------------------------------------------------------------------------------------------------------- # Test pomerem sanci (priblizny) chisq.test(data)$expected # Overeni podminky dobre aproximace (SPLNENO) a <- 20 b <- 30 c <- 30 d <- 20 data <- data.frame(muz=c(a,c), zena=c(b,d), row.names=c('A','B')) (OR <- (a/c)/(b/d)) # pomer sanci log(OR) # logaritmus pomeru sanci # Stanoveni H0 pomoci logaritmu pomeru sanci: # H0: ln(OR) = 0 (H0: Preferovany napoj a pohlavi jsou nezavisle znaky.) # H1: ln(OR) se nerovna 0 (H1: Preferovany napoj a pohlavi nejsou nezavisle znaky.) # Testovani pomoci 95% IS pro logaritmus pomeru sanci: alpha <- 0.05 dh <- log(OR)-sqrt(1/a+1/b+1/c+1/d)*qnorm(1-alpha/2) # dolni hranice IS hh <- log(OR)-sqrt(1/a+1/b+1/c+1/d)*qnorm(alpha/2) # horni hranice IS # Is = (-1.611082 ; -0.01077827) # 0 nenalezi do IS -> H0 zamitame na hladine vyznamnosti 0.05. #..................................................................................................... # Analogicky bychom mohli stanovit H0 pomoci pomeru sanci: # H0: OR = 1 (H0: Preferovany napoj a pohlavi jsou nezavisle znaky.) # H1: OR se nerovna 1 (H1: Preferovany napoj a pohlavi nejsou nezavisle znaky.) # Hranice 95% IS pro logaritmus pomeru sanci ln(OR) musime ale tim padem odlogaritmovat (opak zlogaritmovani). # Tim ziskame hranice 95% IS pro pomer sanci OR. exp(dh) # dolni hranice pro OR exp(hh) # horni hranice pro OR # IS = (0.1996714 ; 0.9892796) # 1 nenalezi do IS -> H0 zamitame na hladine vyznamnosti 0.05. #------------------------------------------------------------------------------------------------------ # Pearsonuv chi-kvadratovy test (priblizny) chisq.test(data)$expected # Overeni podminky dobre aproximace (SPLNENO) # H0: Preferovany napoj a pohlavi jsou nezavisle znaky. # H1: Preferovany napoj a pohlavi nejsou nezavisle znaky. chisq.test(data, correct=F) # Pearsonuv test bez korektury na spojitost (ucebnicovy test) # p-hodnota = 0.0455 < 0.05 -> H0 zamitame na hladine vyznamnosti 0.05. chisq.test(data, correct=T) # Pearsonuv test s korekturou na spojitost (presnejsi) # p-hodnota = 0.07186 > 0.05, a tedy H0 nezamitame na hladine vyznamnosti 0.05. #------------------------------------------------------------------------------------------------------ # ZAVER TESTOVANI: Fisheruv presny test nezamitnul H0 o nezavislosti, zatimco aproximacni test pomeru sanci # (resp. logaritmu pomeru sanci) i aproximacni Pearsonuv test (s argumentem correct=F) # H0 o nezavislosti zamitly. Pearsonuv chi-kvadratovy test s korekci (argument correct=F), # ktery je presnejsi nez klasicky Pearsonuv test bez korekce, podporil vysledek Fisherova testu a H0 o nezavislosti # nezamitl. # Presne testy jsou vzdy lepsi nez aproximacni, proto na zaklade Fisherova testu a Pearsonova testu s korekci # H0 o nezavislosti znaku preferovany napoj a pohlavi nezamitame na hladine vyznamnosti 0.05. # -> Znaky Preferovany typ napoje a Pohlavi jsou nezavisle. # Interpretace: Pri volbe napoje A nebo B nezalezi na tom, jakeho je clovek pohlavi.