Cómo calcular la correlación en Python

Actualizado por ultima vez el 20 de octubre de 2022, por Dereck Amesquita.

Una forma de cuantificar la relación entre dos variables es utilizar el coeficiente de correlación de Pearson , que es una medida de la asociación lineal entre dos variables.

¿Cómo interpretar el coeficiente de correlación?

Siempre toma un valor entre -1 y 1 donde:

  • -1 indica una correlación lineal perfectamente negativa entre dos variables
  • 0 indica que no hay correlación lineal entre dos variables
  • 1 indica una correlación lineal perfectamente positiva entre dos variables

Cuanto más lejos esté el coeficiente de correlación de cero, más fuerte será la relación entre las dos variables.

Este tutorial explica cómo calcular la correlación entre variables en Python.

¿Cómo calcular la correlación en Python?

Para calcular la correlación entre dos variables en Python, podemos usar la función Numpy corrcoef () .

import numpy as np

np.random.seed(100)

# Creamos un array de 50 números aleatorios entre el 0 y el 10
var1 = np.random.randint(0, 10, 50)

# Creamos una correlación positiva sumandole al primer array un ruido blanco
# En sí, estamos añadiendo un termino de erro que se distribuye de forma normal.
var2 = var1 + np.random.normal(0, 10, 50)

# Calculamos el nivel de correlación, si no hubieramos añadido ese error, hubiera sido una correlación perfecta.
np.corrcoef(var1, var2)

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

Podemos ver que el coeficiente de correlación entre estas dos variables es 0.335 , que es una correlación positiva.

Por defecto, esta función produce una matriz de coeficientes de correlación. Si solo quisiéramos devolver el coeficiente de correlación entre las dos variables, podríamos usar la siguiente sintaxis:

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

Calcular la significancia de la correlación

Para probar si esta correlación es estadísticamente significativa, podemos calcular el valor p asociado con el coeficiente de correlación de Pearson utilizando la función Scipy pearsonr () , que devuelve el coeficiente de correlación de Pearson junto con el valor p de dos colas.

from scipy.stats.stats import pearsonr

pearsonr(var1, var2)

(0.335, 0.017398)

El coeficiente de correlación es 0,335 y el valor p de dos colas es 0,017 . Dado que este valor de p es menor que .05, concluiríamos que existe una correlación estadísticamente significativa entre las dos variables.

Calcular la correlación para más de 2 variables en python

Si está interesado en calcular la correlación entre varias variables en un Pandas DataFrame, puede simplemente usar la función .corr () .

import pandas as pd

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

  A B C
0 8 0 9
1 4 0 7
2 9 6 8
3 1 8 1
4 8 0 8

# Calculamos la correlación para las 3 variables
data.corr()

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

Y si solo está interesado en calcular la correlación entre dos variables específicas en el DataFrame, puede especificar las variables:

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

-0.775567
  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

I’m a Bachelor of Economics gratuaded from the National University of San Agustin. I have experience in Python, R and other languages with aplications in Finance or Econometrics, I also have knowledge of statistics and econometrics. If you need help on some issues you can write to me.

Deja un comentario

Una variable al acecho es una variable que no se incluye en un análisis estadístico, pero que impacta la relación…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!