Crear una array de correlación usando Python

Una array de correlación es una tabla que contiene coeficientes de correlación entre variables. Cada celda de la tabla representa la correlación entre dos variables. El valor se encuentra entre -1 y 1. Se utiliza una array de correlación para resumir los datos, como diagnóstico para análisis avanzados y como entrada para un análisis más avanzado. Los dos componentes clave de la correlación son:

  • Magnitud: a mayor magnitud, mayor correlación.
  • Signo: si es positivo, existe una correlación regular. Si es negativo, hay una correlación inversa.

Se ha creado una array de correlación utilizando las siguientes dos bibliotecas:

  1. biblioteca numpy
  2. Biblioteca de pandas

Método 1: Crear una array de correlación usando la biblioteca Numpy

La biblioteca Numpy hace uso de la función corrcoef() que devuelve una array de 2 × 2. La array consta de correlaciones de x con x (0,0), x con y (0,1), y con x (1,0) e y con y (1,1). Solo nos interesa la correlación de x con y, es decir, la celda (0,1) o (1,0). Vea a continuación un ejemplo.

Ejemplo 1: Suponga que una heladería realiza un seguimiento de las ventas totales de helados en comparación con la temperatura de ese día.

Python3

import numpy as np
 
 
# x represents the total sale in
# dollars
x = [215, 325, 185, 332, 406, 522, 412,
     614, 544, 421, 445, 408],
 
# y represents the temperature on
# each day of sale
y = [14.2, 16.4, 11.9, 15.2, 18.5, 22.1,
     19.4, 25.1, 23.4, 18.1, 22.6, 17.2]
 
# create correlation matrix
matrix = np.corrcoef(x, y)
 
# print matrix
print(matrix)

Producción

[[1.         0.95750662]
 [0.95750662 1.        ]]

De la array anterior, si vemos que la celda (0,1) y (1,0) ambas tienen el mismo valor igual a 0.95750662 lo que nos lleva a concluir que siempre que la temperatura es alta tenemos más ventas.

Ejemplo 2: Supongamos que nos dan el nivel de glucosa en un niño correspondiente a la edad. Encuentre la correlación entre la edad (x) y el nivel de glucosa en el cuerpo (y).

Python3

import numpy as np
 
 
# x represents the age
x = [43, 21, 25, 42, 57, 59]
 
# y represents the glucose level
# corresponding to that age
y = [99, 65, 79, 75, 87, 81]
 
# correlation matrix
matrix = np.corrcoef(x, y)
print(matrix)

Producción

[[1.        0.5298089]
 [0.5298089 1.       ]]

De la array de correlación anterior, 0.5298089 o 52.98% eso significa que la variable tiene una correlación positiva moderada.

Método 2: crear una array de correlación usando la biblioteca Pandas 

Para crear una array de correlación para un conjunto de datos dado, usamos el método corr() en marcos de datos.

Ejemplo 1:

Python3

import pandas as pd
 
 
# collect data
data = {
    'x': [45, 37, 42, 35, 39],
    'y': [38, 31, 26, 28, 33],
    'z': [10, 15, 17, 21, 12]
}
 
# form dataframe
dataframe = pd.DataFrame(data, columns=['x', 'y', 'z'])
print("Dataframe is : ")
print(dataframe)
 
# form correlation matrix
matrix = dataframe.corr()
print("Correlation matrix is : ")
print(matrix)

 Producción:

Dataframe is : 
    x   y   z
0  45  38  10
1  37  31  15
2  42  26  17
3  35  28  21
4  39  33  12
Correlation matrix is :
          x         y         z
x  1.000000  0.518457 -0.701886
y  0.518457  1.000000 -0.860941
z -0.701886 -0.860941  1.000000

Ejemplo 2:

Archivo CSV utilizado:

Python3

import pandas as pd
 
 
# create dataframe from file
dataframe = pd.read_csv("C:\\GFG\\sample.csv")
 
# show dataframe
print(dataframe)
 
# use corr() method on dataframe to
# make correlation matrix
matrix = dataframe.corr()
 
# print correlation matrix
print("Correlation Matrix is : ")
print(matrix)

Producción:

Correlation Matrix is : 
                     AVG temp C  Ice Cream production
AVG temp C              1.000000              0.718032
Ice Cream production    0.718032              1.000000

Publicación traducida automáticamente

Artículo escrito por rohanchopra96 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *