-
Notifications
You must be signed in to change notification settings - Fork 7
/
325-chisq.qmd
61 lines (40 loc) · 3.37 KB
/
325-chisq.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Тесты хи-квадрат
Тесты хи-квадрат -- это целый набор статистических методов для исследования связи между переменными. Значения делятся по группам
$$\chi^2 = \sum^n_{i = 1} \frac{{(O_i - E_i)^2}}{{E_i}}$$
$E_i$ -- ожидаемая частота, $O_i$ -- наблюдаемая частота.
Соответственно, чем *больше* расхождения между ожидаемым распределением по группам и реальным, тем *больше* статистика $\chi^2$ и тем меньше *p-value.*
### Тест хи-квадрат Пирсона на независимость
Тест хи-квадрат Пирсона на независимость -- это статистический метод, используемый для определения того, есть ли статистическая связь между категориальными переменными.
Например, с помощью этого теста мы можем посмотреть, различается ли распределение по полу супергероев у двух основных издателей супергероики -- Marvel Comics и DC Comics.
```{r}
library(tidyverse)
heroes <- read_csv("https://raw.githubusercontent.com/Pozdniakov/tidy_stats/master/data/heroes_information.csv",
na = c("-", "-99", "NA", " "))
```
Для начала нам нужно создать таблицу сопряженности (contingency table) для двух переменных с помощью встроенной функции `table()`. Эта функция похожа на `count()` из пакета `{dplyr}`.
```{r}
gender_publisher <- heroes %>%
drop_na(Gender) %>%
filter(Publisher %in% c("Marvel Comics", "DC Comics")) %>%
select(Gender, Publisher)
gender_publisher
```
```{r}
table(gender_publisher)
```
С помощью дженерик-функции `summary()` примененной на построенной таблице сопряженности можно посчитать тест на независимость хи-квадрат.
```{r}
summary(table(gender_publisher))
```
То же самое можно сделать и с помощью специальной функции `chisq.test()`:
```{r}
chisq.test(table(gender_publisher))
```
Как можно заметить, в этом случае p-value несколько отличается. Дело в том, что *p-value* для хи-квадрат рассчитывается по непрерывному хи-квадрат распределению, тогда как хи-квадрат статистики распределены таким образом только в случае достаточно большой выборке. Чтобы скорретировать на малый размер групп используется поправка на непрерывность Йейтса.
```{r}
chisq.test(table(gender_publisher), correct = FALSE)
```
Другой подход для более точного подсчета p-value -- это использование точного теста Фишера:
```{r}
fisher.test(table(gender_publisher))
```