Cómo calcular la correlación en Python

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

Actualizado 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/

Redactor del artículo

  • Dereck Amesquita
    Statistics content writer

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

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

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!