Método Scipy scipy.stats.pearsonr
-
Sintaxis de
scipy.stats.pearsonr()
: -
Códigos de ejemplo: método
scipy.stats.pearsonr()
para encontrar el coeficiente de correlación -
Códigos de ejemplo: Uso del método
scipy.stats.pearsonr()
para encontrar correlación entre variables dentro de un archivo CSV
El método Python Scipy scipy.stats.pearsonr()
se usa para encontrar el coeficiente de correlación de Pearson, que representa relaciones lineales entre dos variables. También da el valor p
para probar la no correlación.
El valor del coeficiente de correlación de Pearson oscila entre -1
a +1
. Si está cerca de -1
, existe una fuerte relación lineal negativa entre las variables. Si es 0
, no hay relación lineal, y en +1
, hay una fuerte relación entre variables.
Una relación positiva indica que si el valor de una variable aumenta o sube, el valor de otra también aumenta.
Sintaxis de scipy.stats.pearsonr()
:
scipy.stats.pearsonr(x, y)
Parámetros
x |
Son los elementos de matriz de entrada de la primera variable o atributo. |
y |
Son los elementos de matriz de entrada de la segunda variable o atributo. La longitud debe ser igual a x. |
Regreso
Devuelve una tupla de dos valores:
r
: Es el coeficiente de correlación de Pearson. Muestra el grado de relación entrex
ey
.- valor
p
: Es el valor de significancia de la probabilidad. Comprueba si acepta o rechaza la hipótesis nula.
La hipótesis nula significa que no existe relación entre las variables consideradas.
Códigos de ejemplo: método scipy.stats.pearsonr()
para encontrar el coeficiente de correlación
import scipy
from scipy import stats
arr1 = [3, 6, 9, 12]
arr2 = [12, 10, 11, 11]
r, p = scipy.stats.pearsonr(arr1, arr2)
print("The pearson correlation coefficient is:", r)
print("The p-value is:", p)
Producción:
The pearson correlation coefficient is: -0.31622776601683794
The p-value is: 0.683772233983162
Aquí, se consideran dos matrices que tienen elementos iguales y se pasan como argumento a la función pearsonr
. Aquí vemos el coeficiente de correlación negativo como una salida porque la primera matriz tiene elementos con valores que aumentan linealmente, mientras que los elementos se toman aleatoriamente en la segunda matriz.
Dado que el valor p
(0.683772233983162
) es mayor que 0.05
, la hipótesis nula es verdadera.
Códigos de ejemplo: Uso del método scipy.stats.pearsonr()
para encontrar correlación entre variables dentro de un archivo CSV
import numpy as np
import pandas as pd
import scipy
from scipy import stats
data = pd.read_csv("dataset.csv")
newdata = data[["price", "mileage"]].dropna()
r, p = scipy.stats.pearsonr(newdata["price"], newdata["mileage"])
print("The pearson correlation coefficient between price and mileage is:", r)
print("The p-value is:", p)
Producción:
The pearson correlation coefficient between price and mileage is: -0.4008381863293672
The p-value is: 4.251481046096957e-97
Aquí, usamos la biblioteca de pandas para cargar datos como un marco de datos de pandas. Se lee el archivo dataset.csv
. El archivo contiene datos del automóvil con las columnas name
, price
, mileage
, brand
y year of manufacture
. Luego, bajamos todas las columnas excepto price
y mileage
para verificar la fuerza de su relación.
Al analizar el valor de salida, podemos ver que el coeficiente de correlación de Pearson es negativo, lo que significa que el precio y el kilometraje tienen una relación lineal negativa relativamente fuerte. Aquellos autos cuyo precio sea menor proporcionarán el mayor kilometraje, y una vez que el precio del auto aumenta, el valor del kilometraje comienza a disminuir.
Dado que p
es muy pequeño (aproximadamente 0), la hipótesis de prueba es falsa
y debe rechazarse.