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