Дві категоріальні змінні
Перевірка незалежності двох категоричних змінних може бути здійснена за допомогою тесту Chi-Squared на незалежність.
Це типовий тест Chi-Square : якщо припустити, що дві змінні є незалежними, то значення таблиці надзвичайних ситуацій для цих змінних слід розподілити рівномірно. А потім ми перевіряємо, наскільки далеко від рівномірних фактичні значення.
Також існує V V Краммера, який є мірою кореляції, що випливає з цього тесту
Приклад
Припустимо, у нас є дві змінні
- стать: чоловік та жінка
- місто: Блуа і Тур
Ми спостерігали такі дані:
Чи незалежні гендер і місто? Давайте проведемо тест Chi-Squred. Нульова гіпотеза: вони незалежні, Альтернативна гіпотеза полягає в тому, що вони певним чином співвідносяться.
Під гіпотезою Нуля ми припускаємо рівномірний розподіл. Тож наші очікувані значення такі
Отже, ми запускаємо тест чи-квадрата і отримане тут значення p може розглядатися як міра кореляції між цими двома змінними.
Щоб обчислити V Краммера, спочатку знаходимо нормалізуючий коефіцієнт chi-kvadrat-max, який зазвичай є розміром вибірки, ділимо на нього квадрат-chi і беремо квадратний корінь
R
tbl = matrix(data=c(55, 45, 20, 30), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))
chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)
Тут значення р становить 0,08 - досить мало, але все ж недостатньо, щоб відкинути гіпотезу про незалежність. Тож можна сказати, що "кореляція" тут становить 0,08
Ми також обчислюємо V:
sqrt(chi2$statistic / sum(tbl))
І отримаємо 0,14 (чим менша v, тим нижча кореляція)
Розглянемо інший набір даних
Gender
City M F
B 51 49
T 24 26
Для цього було б дано наступне
tbl = matrix(data=c(51, 49, 24, 26), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))
chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)
sqrt(chi2$statistic / sum(tbl))
Значення р 0,72, що набагато ближче до 1, а v 0,03 - дуже близьке до 0
Категоричні та числові змінні
Для цього типу ми зазвичай проводимо однобічний тест ANOVA : ми обчислюємо дисперсію в групі та внутрішню групу, а потім порівнюємо їх.
Приклад
Ми хочемо вивчити взаємозв'язок поглиненого жиру з пончиків та типу жиру, який використовується для отримання пончиків (приклад наведено звідси )
Чи є залежність між змінними? Для цього ми проводимо тест ANOVA і бачимо, що значення p становить всього 0,007 - немає кореляції між цими змінними.
R
t1 = c(164, 172, 168, 177, 156, 195)
t2 = c(178, 191, 197, 182, 185, 177)
t3 = c(175, 193, 178, 171, 163, 176)
t4 = c(155, 166, 149, 164, 170, 168)
val = c(t1, t2, t3, t4)
fac = gl(n=4, k=6, labels=c('type1', 'type2', 'type3', 'type4'))
aov1 = aov(val ~ fac)
summary(aov1)
Вихід є
Df Sum Sq Mean Sq F value Pr(>F)
fac 3 1636 545.5 5.406 0.00688 **
Residuals 20 2018 100.9
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Таким чином, ми також можемо взяти р-значення як міру кореляції і тут.
Список літератури