Установка пакетов

Установим необходимые для занятия пакеты (это действие необходимо, только если пакеты ещё не установлены на ваш компьютер) (для установки выполните следующую строку без символа # вначале).

# install.packages(c('descr'))

Подгружаем загруженные пакеты для их использования в текущей сессии работы R.

library(descr)

Сравнение пропорций

Всего мальчик подошёл к 300 девочкам: к 100 с гитарой, к 100 с сумкой. В условии гитары 31 девочка дала номер телефона, в условии с сумкой только 9 девочек дали номер телефона. Насколько существенны различия между условиями?

yes <- c(31, 9)
total <- c(100, 100)
prop.test(yes, total)
## 
##  2-sample test for equality of proportions with continuity
##  correction
## 
## data:  yes out of total
## X-squared = 13.781, df = 1, p-value = 0.0002054
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  0.1034025 0.3365975
## sample estimates:
## prop 1 prop 2 
##   0.31   0.09

Таблица сопряжённости и критерий Хи-квадрат

Те же данные можно проанализировать с помощью таблицы сопряженности и критерия Хи-квадрат. Но для этого их нужно организовать по-другому. Нужно расчитать, сколько раз девочки дали и не дали номер телефона в каждом из условий.

Вернёмся к примеру с экспериментом с гитарой.

guitar <- c(31, (100-31))
bag <- c(9, (100-9))

Объединим результаты в матрицу.

guitar_exp <- rbind(guitar, bag)
guitar_exp
##        [,1] [,2]
## guitar   31   69
## bag       9   91

Проверим, если ли статистически значимые различия в частоте предоставления номер телефона между двумя разными условиями с помощью критерия хи-квадрат.

chisq.test(guitar_exp)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  guitar_exp
## X-squared = 13.781, df = 1, p-value = 0.0002054

В случае малого количества наблюдений в некоторых ячейках можно использовать точный тест Фишера (Fisher’s Exact Test)

fisher.test(guitar_exp)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  guitar_exp
## p-value = 0.0001544
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##   1.938541 11.500399
## sample estimates:
## odds ratio 
##   4.508986

Избразим результаты графически

mosaicplot(guitar_exp, shade = TRUE)

Таблицы сопряжённости можно строить и прямо из сырых данных. Самый простой и быстрай вариант - команда table()

table(mtcars$cyl, mtcars$am)
##    
##      0  1
##   4  3  8
##   6  4  3
##   8 12  2

Можно подписать переменные

table(Number_of_cylinders=mtcars$cyl, Transmission=mtcars$am)
##                    Transmission
## Number_of_cylinders  0  1
##                   4  3  8
##                   6  4  3
##                   8 12  2

Более красивый и информативный вариант - функция crosstab() из пакета descr.

crosstab(mtcars$cyl, mtcars$am, format = "SPSS", expected = TRUE)

##    Cell Contents 
## |-------------------------|
## |                   Count | 
## |         Expected Values | 
## |-------------------------|
## 
## ===============================
##               mtcars$am
## mtcars$cyl      0     1   Total
## -------------------------------
## 4               3     8      11
##               6.5   4.5        
## -------------------------------
## 6               4     3       7
##               4.2   2.8        
## -------------------------------
## 8              12     2      14
##               8.3   5.7        
## -------------------------------
## Total          19    13      32
## ===============================

По умолчанию строится иллюстрирующий график, который можно отключить с помощью аргумента plot = FALSE

На этой таблице также можно использовать критерий хи-квадрат.

tab <- table(mtcars$cyl, mtcars$am)
chisq.test(tab)
## 
##  Pearson's Chi-squared test
## 
## data:  tab
## X-squared = 8.7407, df = 2, p-value = 0.01265

Избразим графически

mosaicplot(tab, shade = TRUE)