zanim zapytasz „jak się uczysz”, powinieneś znaleźć odpowiedź na „jak zdefiniować” :-) BTW, jeśli rzutujesz zmienną kategorialną na liczby całkowite, możesz już dokonać korelacji.
Ciekawy
2
@Tomas, jeśli to zrobisz, szacunkowa siła związku zależy od tego, jak zdecydowałeś się oznaczyć punkty, co jest trochę przerażające :)
Makro
@Macro, masz rację - kolejny solidny argument za dobrą definicją!
Ciekawy
@Macro Chyba że źle zrozumiałem twój punkt widzenia, nie. Korelacja jest niewrażliwa na przekształcenia liniowe. Zatem cor (X, Y) = cor (a + bX, Y) dla skończonych a i b. Ponowne oznakowanie 0/1 jako 1/11 nie wpływa na korelacje przy użyciu tej zmiennej lub jej liniowej transformacji.
Alexis
@Curious patrz mój komentarz do makra powyżej. I zauważ: (1) X <- sample(c(0,1),replace=TRUE,size=100)(2) Y <- X + rnorm(100,0.5)(3) corr(Y,X)(4) X <- 1 + 10*X(5) corr(X,Y): takie same wyniki dla obu korelacji!
Alexis
Odpowiedzi:
19
Przez chwilę zignorujmy problem ciągły / dyskretny. Zasadniczo korelacja mierzy siłę liniowej zależności między zmiennymi, a wydaje się, że pytasz o alternatywny sposób pomiaru siły relacji. Być może zainteresuje Cię kilka pomysłów z teorii informacji . W szczególności myślę, że możesz chcieć spojrzeć na wzajemne informacje . Wzajemne informacje zasadniczo umożliwiają oszacowanie, ile znajomości stanu jednej zmiennej mówi o drugiej zmiennej. Myślę, że ta definicja jest bliższa temu, co większość ludzi ma na myśli, kiedy myśli o korelacji.
Dla dwóch zmiennych dyskretnych X i Y obliczenia są następujące:
I(X;Y)=∑y∈Y∑x∈Xp(x,y)log(p(x,y)p(x)p(y))
W przypadku dwóch zmiennych ciągłych całkujemy zamiast sumować:
I(X;Y)=∫Y∫Xp(x,y)log(p(x,y)p(x)p(y))dxdy
Twój szczególny przypadek użycia dotyczy jednego dyskretnego i jednego ciągłego. Zamiast całkować sumę lub sumować całkę, wyobrażam sobie, że łatwiej byłoby przekonwertować jedną ze zmiennych na inny typ. Typowym sposobem na to byłoby dyskretyzowanie zmiennej ciągłej na dyskretne przedziały.
Istnieje wiele sposobów dyskrecji danych (np. Równe odstępy) i uważam, że pakiet entropii powinien być pomocny w obliczeniach MI, jeśli chcesz użyć R.
Dzięki. Ale jak wysoki MI odpowiada corr = 1, a jak niski MI odpowiada corr = 0?
Luna
MI ma wartość minimalną 0, a MI = 0 wtedy i tylko wtedy, gdy zmienne są niezależne. MI nie ma jednak stałej górnej granicy (górna granica jest związana z entropiami zmiennych), więc możesz spojrzeć na jedną ze znormalizowanych wersji, jeśli jest to dla ciebie ważne.
Michael McGowan
6
Jeśli zmienna kategorialna jest porządkowa, a zmienną ciągłą dzielisz na kilka przedziałów częstotliwości, możesz użyć wartości gamma. Dostępne również dla sparowanych danych w postaci porządkowej są tau Kendala, tau Stuarta i Somers D. Wszystkie są dostępne w SAS przy użyciu Proc Freq. Nie wiem, jak są obliczane przy użyciu procedur R. Oto link do prezentacji, która zawiera szczegółowe informacje:
http://faculty.unlv.edu/cstream/ppts/QM722/measuresofassociation.ppt#260,5,Środki stowarzyszenia dla zmiennych nominalnych i porządkowych
Zmienna kategoryczna jest w rzeczywistości tylko zbiorem zmiennych wskaźnikowych. Podstawową ideą teorii pomiarów jest to, że taka zmienna jest niezmienna w przypadku ponownego etykietowania kategorii, więc nie ma sensu stosowanie numerycznego oznaczania kategorii w żadnej miary związku między inną zmienną (np. „Korelacja”) . Z tego powodu pomiar zależności między zmienną ciągłą a zmienną kategorialną powinien opierać się całkowicie na zmiennych wskaźnikowych pochodzących z tej ostatniej.
Biorąc pod uwagę, że potrzebna jest miara „korelacji” między dwiema zmiennymi, warto spojrzeć na korelację między ciągłą zmienną losową a losową zmienną wskaźnikową I wyprowadzoną ze zmiennej kategorialnej. Letting ϕ ≡ P (XI mamy:ϕ≡P(I=1)
Cov(I,X)=E(IX)−E(I)E(X)=ϕ[E(X|I=1)−E(X)],
co daje:
Corr(I,X)=ϕ1−ϕ−−−−−√⋅E(X|I=1)−E(X)S(X).
Tak więc korelacja między ciągłą zmienną losową a losową zmienną wskaźnikową I jest dość prostą funkcją prawdopodobieństwa wskaźnika ϕ i znormalizowanego przyrostu oczekiwanej wartości X z warunkowania na I = 1 . Zauważ, że ta korelacja nie wymaga dyskretyzacji ciągłej zmiennej losowej.XIϕXI=1
Dla ogólnego skategoryzowany o zakresie 1 , . . . , m po prostu rozszerzyłbyś ten pomysł, aby mieć wektor wartości korelacji dla każdego wyniku zmiennej kategorialnej. Dla każdego wyniku C = k możemy zdefiniować odpowiedni wskaźnik I k ≡ I ( C = k ) i mamy:C1,...,mC=kIk≡I(C=k)
Corr(Ik,X)=ϕk1−ϕk−−−−−−√⋅E(X|C=k)−E(X)S(X).
Corr(C,X)≡(Corr(I1,X),...,Corr(Im,X))
∑kCov(Ik,X)=0Xm−1
(x1,c1),...,(xn,cn)
ϕ^k≡1n∑i=1nI(ci=k).
E^(X)≡x¯≡1n∑i=1nxi.
E^(X|C=k)≡x¯k≡1n∑i=1nxiI(ci=k)/ϕ^k.
S^(X)≡sX≡1n−1∑i=1n(xi−x¯)2−−−−−−−−−−−−−−−√.
Substitution of these estimates would yield a basic estimate of the correlation vector. If you have parametric information on X then you could estimate the correlation vector directly by maximum likelihood or some other technique.
R package mpmi has the ability to calculate mutual information for mixed variable case, namely continuous and discrete.
Although there are other statistical options like (point) biserial correlation coefficient to be useful here, it would be beneficial and highly recommended to calculate mutual information since it can detect associations other than linear and monotonic.
X <- sample(c(0,1),replace=TRUE,size=100)
(2)Y <- X + rnorm(100,0.5)
(3)corr(Y,X)
(4)X <- 1 + 10*X
(5)corr(X,Y)
: takie same wyniki dla obu korelacji!Odpowiedzi:
Przez chwilę zignorujmy problem ciągły / dyskretny. Zasadniczo korelacja mierzy siłę liniowej zależności między zmiennymi, a wydaje się, że pytasz o alternatywny sposób pomiaru siły relacji. Być może zainteresuje Cię kilka pomysłów z teorii informacji . W szczególności myślę, że możesz chcieć spojrzeć na wzajemne informacje . Wzajemne informacje zasadniczo umożliwiają oszacowanie, ile znajomości stanu jednej zmiennej mówi o drugiej zmiennej. Myślę, że ta definicja jest bliższa temu, co większość ludzi ma na myśli, kiedy myśli o korelacji.
Dla dwóch zmiennych dyskretnych X i Y obliczenia są następujące:
W przypadku dwóch zmiennych ciągłych całkujemy zamiast sumować:
Twój szczególny przypadek użycia dotyczy jednego dyskretnego i jednego ciągłego. Zamiast całkować sumę lub sumować całkę, wyobrażam sobie, że łatwiej byłoby przekonwertować jedną ze zmiennych na inny typ. Typowym sposobem na to byłoby dyskretyzowanie zmiennej ciągłej na dyskretne przedziały.
Istnieje wiele sposobów dyskrecji danych (np. Równe odstępy) i uważam, że pakiet entropii powinien być pomocny w obliczeniach MI, jeśli chcesz użyć R.
źródło
Jeśli zmienna kategorialna jest porządkowa, a zmienną ciągłą dzielisz na kilka przedziałów częstotliwości, możesz użyć wartości gamma. Dostępne również dla sparowanych danych w postaci porządkowej są tau Kendala, tau Stuarta i Somers D. Wszystkie są dostępne w SAS przy użyciu Proc Freq. Nie wiem, jak są obliczane przy użyciu procedur R. Oto link do prezentacji, która zawiera szczegółowe informacje: http://faculty.unlv.edu/cstream/ppts/QM722/measuresofassociation.ppt#260,5,Środki stowarzyszenia dla zmiennych nominalnych i porządkowych
źródło
Zmienna kategoryczna jest w rzeczywistości tylko zbiorem zmiennych wskaźnikowych. Podstawową ideą teorii pomiarów jest to, że taka zmienna jest niezmienna w przypadku ponownego etykietowania kategorii, więc nie ma sensu stosowanie numerycznego oznaczania kategorii w żadnej miary związku między inną zmienną (np. „Korelacja”) . Z tego powodu pomiar zależności między zmienną ciągłą a zmienną kategorialną powinien opierać się całkowicie na zmiennych wskaźnikowych pochodzących z tej ostatniej.
Biorąc pod uwagę, że potrzebna jest miara „korelacji” między dwiema zmiennymi, warto spojrzeć na korelację między ciągłą zmienną losową a losową zmienną wskaźnikową I wyprowadzoną ze zmiennej kategorialnej. Letting ϕ ≡ P (X I mamy:ϕ≡P(I=1)
co daje:
Tak więc korelacja między ciągłą zmienną losową a losową zmienną wskaźnikową I jest dość prostą funkcją prawdopodobieństwa wskaźnika ϕ i znormalizowanego przyrostu oczekiwanej wartości X z warunkowania na I = 1 . Zauważ, że ta korelacja nie wymaga dyskretyzacji ciągłej zmiennej losowej.X I ϕ X I=1
Dla ogólnego skategoryzowany o zakresie 1 , . . . , m po prostu rozszerzyłbyś ten pomysł, aby mieć wektor wartości korelacji dla każdego wyniku zmiennej kategorialnej. Dla każdego wyniku C = k możemy zdefiniować odpowiedni wskaźnik I k ≡ I ( C = k ) i mamy:C 1,...,m C=k Ik≡I(C=k)
Substitution of these estimates would yield a basic estimate of the correlation vector. If you have parametric information onX then you could estimate the correlation vector directly by maximum likelihood or some other technique.
źródło
R package mpmi has the ability to calculate mutual information for mixed variable case, namely continuous and discrete. Although there are other statistical options like (point) biserial correlation coefficient to be useful here, it would be beneficial and highly recommended to calculate mutual information since it can detect associations other than linear and monotonic.
źródło
IfX is a continuous random variable and Y is a categorical r.v.. the observed correlation between X and Y can be measured by
It should be noted, though, that the point-polyserial correlation is just a generalization of the point-biserial.
For a broader view, here's a table from Olsson, Drasgow & Dorans (1982)[1].
[1]: Source: Olsson, U., Drasgow, F., & Dorans, N. J. (1982). The polyserial correlation coefficient. Psychometrika, 47(3), 337–347
źródło