Úloha A

1.)

library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
d <- read_excel("vokaly.xls")

table(d$Vowel, d$Sex)
##    
##       f   m
##   a 384 216
##   e 384 216
##   i 384 216
##   o 384 216
##   u 384 216
d$F2_Hz <- 650*sinh(d$F2_B / 7)  # převod na hertze

2.)

aMuzi <- d %>% filter(Vowel == "a" & Sex == "m")
aZeny <- d %>% filter(Vowel == "a" & Sex == "f")

nrow(aMuzi)
## [1] 216
nrow(aZeny)
## [1] 384

3.) Dle zadání v hertzech

hist(aMuzi$F2_Hz)

qqnorm(aMuzi$F2_Hz)

hist(aZeny$F2_Hz)

qqnorm(aZeny$F2_Hz)

shapiro.test(aMuzi$F2_Hz)
## 
##  Shapiro-Wilk normality test
## 
## data:  aMuzi$F2_Hz
## W = 0.99076, p-value = 0.185
shapiro.test(aZeny$F2_Hz)
## 
##  Shapiro-Wilk normality test
## 
## data:  aZeny$F2_Hz
## W = 0.99819, p-value = 0.9592

Nezamítáme H0: normálně rozdělená data. Sice to neznamená prokázání H0, ale zde bych postupoval tak, že když mě někdo nepřesvědčil, že nesmím použít t.test, tak bych ho použil. Jsou to kopcovitá rozdělení, dat je dost, takže žádné velké riziko nehrozí, maximálně by p-hodnota vyšla malinko jinak, ale určitě ne dramaticky.

4.) Dle zadání v hertzech

var.test(x = aMuzi$F2_Hz, y = aZeny$F2_Hz, conf.level = 0.95)  # zamítáme H0: shodnost rozptylů, tedy rozptyly jsou rozdílné
## 
##  F test to compare two variances
## 
## data:  aMuzi$F2_Hz and aZeny$F2_Hz
## F = 0.48722, num df = 215, denom df = 383, p-value = 1.164e-08
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.3860544 0.6198207
## sample estimates:
## ratio of variances 
##          0.4872209
t.test(x = aMuzi$F2_Hz, y = aZeny$F2_Hz, paired = FALSE, var.equal = FALSE, conf.level = 0.95)
## 
##  Welch Two Sample t-test
## 
## data:  aMuzi$F2_Hz and aZeny$F2_Hz
## t = -19.174, df = 570.87, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -234.3578 -190.8059
## sample estimates:
## mean of x mean of y 
##  1246.162  1458.744

Přijímáme H1: střední hodnoty jsou různé.

3.) A jak by to bylo barcích?

hist(aMuzi$F2_B)

qqnorm(aMuzi$F2_B)

hist(aZeny$F2_B)

qqnorm(aZeny$F2_B)

shapiro.test(aMuzi$F2_B)
## 
##  Shapiro-Wilk normality test
## 
## data:  aMuzi$F2_B
## W = 0.98684, p-value = 0.04327
shapiro.test(aZeny$F2_B)
## 
##  Shapiro-Wilk normality test
## 
## data:  aZeny$F2_B
## W = 0.99244, p-value = 0.04903

Zde H0: normálně rozdělená data zamítáme, použijeme proto univerzálnější test, který normální rozdělení nevyžaduje. Bohužel je tento test trochu slabší, takže obecně vyžaduje větší množství dat pro objevy H1, ale tentokrát máme dat docela dost, tak uvidíme, šance tu je.

4.) V barcích

wilcox.test(x = aMuzi$F2_B, y = aZeny$F2_B, alternative = "two.sided", paired = FALSE, conf.level = 0.95)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  aMuzi$F2_B and aZeny$F2_B
## W = 11497, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0

Přijímáme H1: střední hodnoty jsou různé.

Úloha B

# Jednostranný znaménkový test, H1 vyloženě specifikuje dotaz na zlepšení.
znamenkaPlus <- 35
znamenkaMinus <- 5

n <- znamenkaPlus + znamenkaMinus
Z <- znamenkaMinus

p <- pbinom(Z, n, 0.5)
p
## [1] 6.91306e-07

Přijímáme H1: lidé se zlepšili.

Úloha C

rok2013 = c(5, 15, 16)
rok2014 = c(7, 7, 10)

tabulka <- as.data.frame(rbind(rok2013, rok2014))
names(tabulka) <- c("intonace", "hlásky", "IPA")  # pojmenování sloupců - není nutné, ale je to hezké :-)
tabulka
##         intonace hlásky IPA
## rok2013        5     15  16
## rok2014        7      7  10
chisq.test(tabulka)
## Warning in chisq.test(tabulka): Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  tabulka
## X-squared = 2.3198, df = 2, p-value = 0.3135

Nezamítáme H0. Test je ale aproximací a zde už nadává, že vzhledem k malému množství dat nemusí být p-hodnota úplně přesná (ale asi to nebudou dramatické rozdíly pro překlopení na H1).

fisher.test(tabulka)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  tabulka
## p-value = 0.318
## alternative hypothesis: two.sided

Tady to máme přesně - skutečně žádný výrazný rozdíl p-hodnoty. Fisherův test řeší tu samou úlohu, ale přesně (proto také název Fisher’s exact test). Kvůli tomu ale občas selže a odmítá pro některá data vypočítat výsledek (a proto se v první řadě vyučuje chí-kvadrát test, který snese vše, i když za cenu určité nepřesnosti p-hodnoty). Zde naštěstí Fisherův test funguje.

Úloha D

Sice máme tři kategorie, ale není to tak, že když se jedna nepovede, tak to spadne do druhé či třetí. Ty kategorie takto nejsou propojeny. Jsou tři postupné pokusy, v každém to musí nějak dopadnout, a sice úspěch nebo neúspěch. A my se snažíme pro každou kategorii zvlášť odhadnout z našeho výběrového souboru chování základního souboru (populace).

Graficky bych to znázornil takto. Úloha kostka: náhoda se projevuje horizontálním přemísťováním četností (mezi kategoriemi 1 až 6). Úloha percepční test: náhoda se projevuje vertikálním přemísťováním četností mezi úspěch / neúspěch, a to pro každou nezávislou kategorii zvlášť (sloupce).