Dwie zmienne kategoryczne
Sprawdzanie, czy dwie zmienne kategorialne są niezależne, można wykonać za pomocą testu niezależności Chi-Squared.
Jest to typowy test chi-kwadrat : jeśli założymy, że dwie zmienne są niezależne, wówczas wartości tabeli kontyngencji dla tych zmiennych powinny być równomiernie rozłożone. A następnie sprawdzamy, jak daleko od jednolitości są rzeczywiste wartości.
Istnieje również Crammer V, który jest miarą korelacji wynikającą z tego testu
Przykład
Załóżmy, że mamy dwie zmienne
- płeć: mężczyzna i kobieta
- miasto: Blois and Tours
Zaobserwowaliśmy następujące dane:
Czy płeć i miasto są niezależne? Wykonajmy test Chi-Squred. Hipoteza zerowa: są niezależne, hipoteza alternatywna polega na tym, że są one w jakiś sposób skorelowane.
Zgodnie z hipotezą zerową zakładamy równomierny rozkład. Zatem nasze oczekiwane wartości są następujące
Przeprowadzamy więc test chi-kwadrat, a uzyskaną tutaj wartość p można postrzegać jako miarę korelacji między tymi dwiema zmiennymi.
Aby obliczyć V Crammera, najpierw znajdujemy współczynnik normalizujący chi-kwadrat-max, który zazwyczaj jest wielkością próbki, dzielimy przez nią chi-kwadrat i przyjmujemy pierwiastek kwadratowy
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)
Tutaj wartość p wynosi 0,08 - dość mała, ale wciąż niewystarczająca, aby odrzucić hipotezę niezależności. Możemy więc powiedzieć, że „korelacja” wynosi tutaj 0,08
Obliczamy również V:
sqrt(chi2$statistic / sum(tbl))
I uzyskaj 0,14 (im mniejsze v, tym mniejsza korelacja)
Rozważ inny zestaw danych
Gender
City M F
B 51 49
T 24 26
W tym celu dałoby to następujące
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))
Wartość p wynosi 0,72, co jest znacznie bliższe 1, a v wynosi 0,03 - bardzo blisko 0
Zmienne kategoryczne a liczbowe
Dla tego typu zazwyczaj wykonujemy jednokierunkowy test ANOVA : obliczamy wariancję wewnątrzgrupową i wariancję wewnątrzgrupową, a następnie porównujemy.
Przykład
Chcemy zbadać związek między wchłoniętym tłuszczem z pączków a rodzajem tłuszczu używanego do produkcji pączków (przykład wzięty tutaj )
Czy istnieje zależność między zmiennymi? W tym celu przeprowadzamy test ANOVA i widzimy, że wartość p wynosi zaledwie 0,007 - nie ma korelacji między tymi zmiennymi.
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)
Dane wyjściowe to
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
Możemy więc również wziąć tutaj wartość p jako miarę korelacji.
Bibliografia