Een correlatietest uitvoeren in python (met voorbeeld)
Eén manier om de relatie tussen twee variabelen te kwantificeren is door de Pearson-correlatiecoëfficiënt te gebruiken, die de lineaire associatie tussen twee variabelen meet .
Er is altijd een waarde tussen -1 en 1 nodig, waarbij:
- -1 duidt op een volkomen negatieve lineaire correlatie
- 0 geeft aan dat er geen lineaire correlatie is
- 1 geeft een perfect positieve lineaire correlatie aan
Om te bepalen of een correlatiecoëfficiënt statistisch significant is, kun je de bijbehorende t-score en p-waarde berekenen.
De formule voor het berekenen van de t-score van een correlatiecoëfficiënt (r) is:
t = r * √ n-2 / √ 1-r 2
De p-waarde wordt vervolgens berekend als de overeenkomstige tweezijdige p-waarde voor de t-verdeling met n-2 vrijheidsgraden.
Voorbeeld: correlatietest in Python
Om te bepalen of de correlatiecoëfficiënt tussen twee variabelen statistisch significant is, kun je in Python een correlatietest uitvoeren met behulp van de peersonr- functie uit de SciPy- bibliotheek.
Deze functie retourneert de correlatiecoëfficiënt tussen twee variabelen, evenals de tweezijdige p-waarde.
Stel dat we bijvoorbeeld de volgende twee tabellen in Python hebben:
#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]
We kunnen de Pearsonr- functie importeren en de Pearson-correlatiecoëfficiënt tussen de twee tabellen berekenen:
from scipy. stats . stats import pearsonr #calculation correlation coefficient and p-value between x and y pearsonr(x, y) (0.8076177030748631, 0.004717255828132089)
Zo interpreteert u het resultaat:
- Pearson-correlatiecoëfficiënt (r): 0,8076
- Tweezijdige p-waarde: 0,0047
Omdat de correlatiecoëfficiënt dicht bij 1 ligt, betekent dit dat er een sterk positief verband bestaat tussen de twee variabelen.
En aangezien de overeenkomstige p-waarde kleiner is dan 0,05, concluderen we dat er een statistisch significant verband bestaat tussen de twee variabelen.
Merk op dat we ook de individuele correlatiecoëfficiënt en p-waarde uit de peersonfunctie kunnen extraheren:
#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
Deze waarden zijn iets gemakkelijker te lezen vergeleken met de uitvoer van de originele Pearsonr- functie.
Aanvullende bronnen
De volgende tutorials bieden aanvullende informatie over correlatiecoëfficiënten:
Een inleiding tot de Pearson-correlatiecoëfficiënt
Wat wordt beschouwd als een “sterke” correlatie?
De vijf hypothesen van Pearson’s correlatie