Saltar al contenido

Encontrar relaciones en los datos con Python

Muchos algoritmos de aprendizaje de máquinas requieren que las variables continuas no se correlacionen entre sí, un fenómeno llamado multicolinealidad. Establecer relaciones entre las variables numéricas es un paso común para detectar y tratar la multicolinealidad.

Matriz de correlación

La creación de una matriz de correlación es una técnica para identificar la multicolinealidad entre las variables numéricas. En Python, esto puede ser creado usando la función corr(), como en la línea de código de abajo.

Encontrar relaciones en los datos con Python
Encontrar relaciones en los datos con Python
1dat.corr()

pitón

Salida:

1234567| | Ingresos | Cantidad de préstamo | Inversión | edad | trabajo_exp ||------------- |------------------- |--------------------- |----------------------------- |------------------- | || Ingresos | 1.000000 | 0.020236 | 0.061687 | -0.200591 | 0.878455 || Cantidad de préstamo | 0.020236 | 1. 000000 | 0.780407 | -0.033409 | 0.031837 || Inversión | 0.061687 | 0.780407 | 1.000000 | -0.022761 | 0.076532 | edad | -0. 200591 | -0.033409 | -0.022761 | 1.000000 | -0.133685 || work_exp | 0.878455 | 0.031837 | 0.076532 | -0.133685 | 1.000000 |

El resultado anterior muestra la presencia de una fuerte correlación lineal entre las variables Income y Work_exp y entre Investment y Loan_amount.

Gráfica de correlación

La correlación también puede visualizarse mediante un gráfico de correlación, que se pone en práctica mediante la función de gráfico de pares en el paquete marítimo.

La primera línea de código de abajo crea un nuevo conjunto de datos, df, que contiene sólo las variables numéricas. La segunda línea crea el gráfico, donde el argumento kind=”scatter” crea el gráfico sin la línea de regresión. La tercera línea traza el gráfico.

1234df = dat[[$0027Ingresos$0027,$0027Monto_de_préstamo$0027,$0027Inversión$0027,$0027edad$0027,$0027trabajo_exp$0027]]sns.pairplot(df, kind="dispersión")plt.show()

pitón

Salida:

Prueba de correlación

Una prueba de correlación es otro método para determinar la presencia y el alcance de una relación lineal entre dos variables cuantitativas. En nuestro caso, nos gustaría probar estadísticamente si existe una correlación entre la inversión del solicitante y su experiencia laboral. El primer paso es visualizar la relación con un gráfico de dispersión, lo que se hace utilizando la línea de código que aparece a continuación.

12plt.scatter(dat[$0027work_exp$0027], dat[$0027Investment$0027])plt.show()

pitón

Salida:

El gráfico anterior sugiere la ausencia de una relación lineal entre las dos variables. Podemos cuantificar esta inferencia calculando el coeficiente de correlación mediante la línea de código que aparece a continuación.

1np.corrcoef(dat[$0027work_exp$0027], dat[$0027Investment$0027])

pitón

Salida:

12 array([[1. , 0.07653245], [0.07653245, 1. ]])

El valor de 0,07 muestra una relación lineal positiva pero débil entre las dos variables. Confirmemos esto con el test de correlación de regresión lineal, que se hace en Python con la función linregress() en el módulo scipy.stats.

12de scipy.stats import linregresslinregress(dat[$0027work_exp$0027], dat[$0027Investment$0027])

pitón

Salida:

1 LinregressResult(slope=15309.333089382928, intercept=57191.00212603336, rvalue=0.0765324479448039, pvalue=0.28142275240186065, stderr=14174.32722882554)

Dado que el valor p de 0,2814 es superior a 0,05, no rechazamos la hipótesis nula de que la relación entre la inversión del solicitante y su experiencia laboral no es significativa.

Consideremos otro ejemplo de correlación entre Income y Work_exp utilizando la línea de código que figura a continuación.

1linregress(dat[$0027work_exp$0027], dat[$0027Income$0027])

pitón

Salida:

1 LinregressResult(slope=6998.2868438531395, intercept=11322.214342089712, rvalue=0.8784545623577412, pvalue=2.0141691110555243e-65, stderr=270.52631667365495)

En este caso, el valor p es inferior a 0,05, por lo que rechazamos la hipótesis nula de que la relación entre los ingresos de los solicitantes y su experiencia laboral no sea significativa.