Hoe de correlatie in python te berekenen


Eén manier om de relatie tussen twee variabelen te kwantificeren is door dePearson-correlatiecoëfficiënt te gebruiken, een maatstaf voor de lineaire associatie tussen twee variabelen . Er is altijd een waarde tussen -1 en 1 nodig, waarbij:

  • -1 geeft een perfect negatieve lineaire correlatie aan tussen twee variabelen
  • 0 geeft aan dat er geen lineaire correlatie is tussen twee variabelen
  • 1 geeft een perfect positieve lineaire correlatie aan tussen twee variabelen

Hoe verder de correlatiecoëfficiënt van nul verwijderd is, hoe sterker de relatie tussen de twee variabelen.

In deze tutorial wordt uitgelegd hoe u de correlatie tussen variabelen in Python kunt berekenen.

Hoe de correlatie in Python te berekenen

Om de correlatie tussen twee variabelen in Python te berekenen, kunnen we de functie Numpy corrcoef() gebruiken.

 import numpy as np

np.random.seed(100)

#create array of 50 random integers between 0 and 10
var1 = np.random.randint(0, 10, 50)

#create a positively correlated array with some random noise
var2 = var1 + np.random.normal(0, 10, 50)

#calculate the correlation between the two arrays
np.corrcoef(var1, var2)

[[ 1. 0.335]
[ 0.335 1. ]]

Het is duidelijk dat de correlatiecoëfficiënt tussen deze twee variabelen 0,335 is, wat een positieve correlatie is.

Standaard produceert deze functie een matrix van correlatiecoëfficiënten. Als we alleen de correlatiecoëfficiënt tussen de twee variabelen wilden retourneren, zouden we de volgende syntaxis kunnen gebruiken:

 np.corrcoef(var1, var2)[0,1]

0.335

Om te testen of deze correlatie statistisch significant is, kunnen we de p-waarde berekenen die is gekoppeld aan de Pearson-correlatiecoëfficiënt met behulp van de Scipy- peasonr()- functie, die zowel de Pearson-correlatiecoëfficiënt als de tweezijdige p-waarde retourneert.

 from scipy.stats.stats import pearsonr

pearsonr(var1, var2)

(0.335, 0.017398)

De correlatiecoëfficiënt is 0,335 en de tweezijdige p-waarde is 0,017 . Omdat deze p-waarde kleiner is dan 0,05, kunnen we concluderen dat er een statistisch significante correlatie bestaat tussen de twee variabelen.

Als u de correlatie tussen meerdere variabelen in een Pandas DataFrame wilt berekenen, kunt u eenvoudig de functie .corr() gebruiken.

 import pandas as pd

data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C'])
data

  ABC
0 8 0 9
1 4 0 7
2 9 6 8
3 1 8 1
4 8 0 8

#calculate correlation coefficients for all pairwise combinations
data.corr()

          ABC
A 1.000000 -0.775567 -0.493769
B -0.775567 1.000000 0.000000
C -0.493769 0.000000 1.000000

En als u alleen de correlatie tussen twee specifieke variabelen in het DataFrame wilt berekenen, kunt u de variabelen opgeven:

 data['A'].corr(data['B'])

-0.775567

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in Python kunt uitvoeren:

Hoe u een correlatiematrix in Python maakt
Hoe de Spearman Rank-correlatie in Python te berekenen
Hoe autocorrelatie in Python te berekenen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert