Jak wykonać test korelacji w pythonie (z przykładem)


Jednym ze sposobów ilościowego określenia związku między dwiema zmiennymi jest użycie współczynnika korelacji Pearsona , który mierzy liniowy związek między dwiema zmiennymi .

Zawsze przyjmuje wartość z zakresu od -1 do 1, gdzie:

  • -1 oznacza doskonale ujemną korelację liniową
  • Wartość 0 oznacza brak korelacji liniowej
  • 1 wskazuje doskonale dodatnią korelację liniową

Aby określić, czy współczynnik korelacji jest istotny statystycznie, można obliczyć odpowiedni wynik t i wartość p.

Wzór na obliczenie wyniku t współczynnika korelacji (r) jest następujący:

t = r * √ n-2 / √ 1-r 2

Wartość p jest następnie obliczana jako odpowiadająca dwustronna wartość p dla rozkładu t z n-2 stopniami swobody.

Przykład: Test korelacji w Pythonie

Aby określić, czy współczynnik korelacji pomiędzy dwiema zmiennymi jest istotny statystycznie, można wykonać w Pythonie test korelacji, korzystając z funkcji pearsonr z biblioteki SciPy .

Funkcja ta zwraca współczynnik korelacji między dwiema zmiennymi, a także dwustronną wartość p.

Załóżmy na przykład, że w Pythonie mamy następujące dwie tabele:

 #create two arrays
x = [3, 4, 4, 5, 7, 8, 10, 12, 13, 15]
y = [2, 4, 4, 5, 4, 7, 8, 19, 14, 10]

Możemy zaimportować funkcję pearsona i obliczyć współczynnik korelacji Pearsona pomiędzy dwiema tabelami:

 from scipy. stats . stats import pearsonr

#calculation correlation coefficient and p-value between x and y
pearsonr(x, y)

(0.8076177030748631, 0.004717255828132089)

Oto jak zinterpretować wynik:

  • Współczynnik korelacji Pearsona (r): 0,8076
  • Dwustronna wartość p: 0,0047

Współczynnik korelacji bliski 1 oznacza, że istnieje silny pozytywny związek pomiędzy obiema zmiennymi.

A ponieważ odpowiadająca wartość p jest mniejsza niż 0,05, dochodzimy do wniosku, że istnieje statystycznie istotny związek między obiema zmiennymi.

Należy zauważyć, że możemy również wyodrębnić indywidualny współczynnik korelacji i wartość p z funkcji Pearsona :

 #extract correlation coefficient (rounded to 4 decimal places)
r = round(pearsonr(x, y)[ 0 ], 4)

print (r)

0.8076

#extract p-value (rounded to 4 decimal places) 
p = round(pearsonr(x, y)[ 1 ], 4)

print (p) 

0.0047

Wartości te są nieco łatwiejsze do odczytania w porównaniu z wynikami oryginalnej funkcji pearsonr .

Dodatkowe zasoby

Poniższe samouczki zawierają dodatkowe informacje na temat współczynników korelacji:

Wprowadzenie do współczynnika korelacji Pearsona
Co uważa się za „silną” korelację?
Pięć hipotez korelacji Pearsona

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *