Korelacje

Liczenie i testowanie korelacji pomiędzy parą zmiennych to jedno z najczęściej wykonywanych czynności w celu zbadania związku pomiędzy parą zmiennych. Bardzo często korzysta się przy tym ze współczynnika korelacji Pearsona, czyli narzędzia, które ma już prawie 120 lat!!!

Gdy zmienne mają ,,niepokojące” rozkłady, np są silnie skośne czy posiadają grube ogony to korelacja Persona źle się zachowuje, jest np. wrażliwa na pojedyncze odstające obserwacje. W takich sytuacjach często stosuje się korelacje Spearmana (która ma 110 lat).

Ale sposobów liczenia i testowania korelacji jest znacznie więcej. Dziś o kilku z nich napisze Krzysztof Trajkowski.

Kody użyte do wyznaczania poniższych wyników umieszczone są na naszym GitHubie pod tym adresem.

——————————

Testy korelacji

Krzysztof Trajkowski

Test korelacji liniowej Pearsona [1895] to jeden z bardziej znanych testów statystycznych badających zależność dwóch zmiennych losowych o rozkładzie normalnym.
W przypadku naruszenia założenia normalności (np. występowanie obserwacji odstających) zwykle stosuje się nieparametryczny test korelacji rang Spearmana [1904].
Poniżej przykład korelacji liniowej dwóch zmiennych.

Normalność rozkładu

Oszacowany współczynnik korelacji liniowej Pearsona wynosi rho_P=0.7094 i jest istotny statystycznie, podobne wyniki daje test nieparametryczny Spearmana rho_S=0.6894.

Jeśli liczebność obserwacji jest mała warto zwrócić uwagę na permutacyjny test korelacji Pearsona perm.cor.test z pakietu RVAideMemoire.

Z kolei gdy w zbiorze danych występują obserwacje odstające można skorzystać z testu korelacji Pearsona dla zmiennych poddanych procesowi winsoryzacji.

Inne ciekawe rozwiązanie to Gaussian rank correlation test.

W przestawionej powyżej bibliotece rococo jest jeszcze kilka innych metod badania korelacji.
Szczegóły tego pakietu są omówione w dokumencie An R Package Implementing a Robust Rank Correlation Coefficient and a Corresponding Test, Ulrich Bodenhofer and Martin Krone który jest dołączony do dokumentacji tego pakietu.
Także w artykule The Gaussian Rank Correlation Estimator: Robustness Properties, Kris Boudt, Jonathan Cornelissen, Christophe Croux można znaleźć wiele ciekawych informacji na temat tego testu. Jest on dostępny po adresem: http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1689465

Należy w tym miejscu podkreślić, że współczynnik Pearsona jest miarą
liniowej zależności. Oznacza to, że w przypadku dowolnego nieliniowego związku, stosowanie testu korelacji Pearsona może prowadzić do błędnych wniosków.

Zatem oprócz testu Pearsona warto stosować także inne metody które służą do badania korelacji liniowej oraz nieliniowej. Poniżej kilka przykładów takich statystyk dostępnych w środowisku R:

  • distance correlation:

Parametr korelacji należy do przedziału <0;1>, gdzie 0 oznacza brak korelacji.

  • Heller-Heller-Gorfine Tests:

Do badania relacji pomiędzy jednowymiarowymi zmiennymi z dużych zbiorów danych (z takimi danymi mamy coraz częściej do czynienia w takich dziedzinach jak fizyka, biologia, ekonomia) statystyka Hoeffding's D oraz współczynnik MIC może być również ciekawą propozycją.

  • Maximal Information Coefficient:

MIC to wskaźnik który informuje nas o tym jak bardzo dwie zmienne są skorelowane.
Wyniki wahają się od 0 (nieskorelowane) do 1 (wysokie korelacje).
Warto zauważyć, że wskaźnik MIC ma wartość porównywalną z współczynnikiem determinacji funkcji regresji nieliniowej R^2:

  • Hoeffding's D Statistics [1948]:

Wartości statystyki D zwykle mieszczą się w przedziale od -0,5 do 1, gdzie 1 będzie oznaczać pełne
uzależnienie.

Należy podkreślić, że MIC oraz D Statistics mają zastosowanie tylko dla jednowymiarowych danych podczas gdy HHG.test i dcor.ttest można stosować także dla dwóch wielowymiarowych zmiennych.

Więcej o metodach badania zależności za pomocą wyżej wymienionych metod można przeczytać w dokumencie:
A comparative study of statistical methods used to identify dependencies between gene expression signals, Fujita Suzana de Siqueira Santos, Daniel YasumasaTakahashi, Asuka Nakata and Andre.

Na zakończenie warto także wspomnieć o innej ciekawej funkcji która znajduje się w pakiecie localgauss. Służy ona do graficznej identyfikacji korelacji lokalnej.

6 myśli na temat “Korelacje”

  1. Rozumiem że znalezienie korelacji między dwiema zmiennymi, nie dowodzi związku przyczynowo-skutkowego. Ale czy można powiedzieć że brak korelacji świadczy o braku związku?

    1. Brak korelacji może być argumentem za brakiem liniowego związku pomiędzy zmiennymi,
      ale łatwo pokazać przykłady zmiennych zależnych nieliniowo, dla których korelacja wynosi dokładnie 0
      (np oparte o funkcję abs lub sinus).

  2. W ramach konstruktywnej krytyki chciałbym stwierdzić, że notka jest raczej z serii “pokazuję, że wiem” niż “pokazuję, jak zrozumieć”. Chodzi mi o to, że poszczególnym testom brakuje 1-2 zdań opisu, w jakich sytuacjach warto ich użyć i jak interpretować wynik. Przeczytałem notkę, pojawiły się w niej testy, których nie znałem, ale dowiedziałem się w zasadzie tylko tego, że mogę zajrzeć do podręczników, żeby czegoś się o nich dowiedzieć. Tylko, że to wiedziałem już wcześniej :)

    1. @WW, @Maciej, dziękuję za komentarze, przekażę dalej.
      Nie wiem czy takie regułowe przedstawianie narzędzi statystycznych jest najlepsze (tzn. jeżeli rozkład X to użyj narzędzia Y, wyniki mają następującą interpretację),
      Jestem teraz pod wrażeniem sposobu w jaki dzieci poznają nowe narzędzia. Nie pytają (zazwyczaj) o instrukcje, tylko eksperymentują, eksperymentują, eksperymentują, które klocki są lepsze do jakich budowli czy można je łączyć ze sobą itp.
      Jest to bardziej czasochłonne ale pokazuje zawodność i trudność w wyborze poszczególnych narzędzi. Oczywiście testy statystyczne to nie klocki dla dzieci, chociaż podobieństw jest też niemało.

      Może dobrym pomysłem w przyszłości, będzie rozdzielanie wpisów typu ,,gadżety dla statystyka” od ,,komentarze metodologiczne”.

      1. Komentarz do komentarza, warto oczywiście szukać reguł, pytanie czy lepiej uczyć sie reguł z innych zródeł czy je samodzielnie znajdować.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">