Jak uzyskać korelację między dwiema zmiennymi jakościowymi a zmienną jakościową i zmienną ciągłą?


63

Buduję model regresji i muszę obliczyć poniżej, aby sprawdzić korelacje

  1. Korelacja między 2 wielopoziomowymi zmiennymi kategorialnymi
  2. Korelacja między wielopoziomową zmienną kategorialną a zmienną ciągłą
  3. VIF (współczynnik inflacji wariancji) dla zmiennych kategorialnych wielopoziomowych

Uważam, że niewłaściwe jest stosowanie współczynnika korelacji Pearsona w powyższych scenariuszach, ponieważ Pearson działa tylko dla 2 zmiennych ciągłych.

Odpowiedz na poniższe pytania

  1. Który współczynnik korelacji działa najlepiej w powyższych przypadkach?
  2. Obliczenia VIF działają tylko dla ciągłych danych, więc jaka jest alternatywa?
  3. Jakie założenia muszę sprawdzić, zanim użyję zaproponowanego przez ciebie współczynnika korelacji?
  4. Jak wdrożyć je w SAS & R?

4
Powiedziałbym, że CV.SE jest lepszym miejscem do zadawania pytań na temat takich teoretycznych statystyk. Jeśli nie, powiedziałbym, że odpowiedź na twoje pytania zależy od kontekstu. Czasami sensowne jest spłaszczanie wielu poziomów w zmienne fikcyjne, innym razem warto modelować dane zgodnie z rozkładem wielomianowym itp.
zaprzyjaźnij się

Czy twoje zmienne kategoryczne są uporządkowane? Jeśli tak, może to wpłynąć na rodzaj korelacji, którego szukasz.
nassimhddd

w moich badaniach muszę zmierzyć się z tym samym problemem. ale nie mogłem znaleźć właściwej metody rozwiązania tego problemu. więc jeśli możesz, bądź na tyle uprzejmy, aby podać mi znalezione referencje.
user89797,

masz na myśli, że wartość p jest taka sama jak współczynnik korelacji r?
Ayo Emma

Powyższe rozwiązanie z ANOVA dla jakościowego vs. ciągłego jest dobre. Mały czkawka. Im mniejsza wartość p, tym lepsze „dopasowanie” między dwiema zmiennymi. Nie na odwrót.
myudelson

Odpowiedzi:


73

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:

zaobserwowane wartości

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

wartość oczekiwana

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

crammers v

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 )

pączki

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


1
Dzięki Alexey za szczegóły. W oparciu o więcej badań dowiedziałem się o korelacji poliserialnej i polichlorowej. Jak twoje podejście jest lepsze od tych? Proszę wyjaśnić
GeorgeOfTheRF

1
Przepraszam, nie jestem tego świadomy.
Alexey Grigorev,

Fasntastyczna odpowiedź @Alexey. Po przeczytaniu twojego komentarza czytam korelacje polichoryczne / polserie online. Są techniką szacowania korelacji między dwiema ukrytymi zmiennymi na podstawie dwóch obserwowanych zmiennych. Nie sądzę, że o to prosiłeś i nie jest to porównywalne z odpowiedzią Alexeya.
KarthikS

1
Twój pierwszy przykład NIE dotyczy kategorycznego vs kategorycznego, raczej kategorycznego vs liczbowego, w rzeczywistości patrzysz na miasto w porównaniu z liczbą mężczyzn (odpowiednio kobiet), która jest liczbowa. Kategoryczny vs kategoryczny byłby, powiedzmy, miasto kontra kolor oczu lub kształtów, czy cokolwiek innego, ale w żadnym wypadku nie byłby to liczba przedstawicieli płci.
gented

1
@AlexeyGrigorev Jeśli nasze dane nie są normalnie dystrybuowane, należy kruskal-wallicje wykorzystać zamiast one-way anova? Z góry dziękuję.
ebrahimi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.