Muchos algoritmos de aprendizaje de máquinas requieren que las variables continuas no se correlacionen entre sí, un fenómeno llamado «multicolinealidad». El establecimiento de 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. Las líneas de código de abajo crean la matriz.
123cordata = dat[,c(3,4,7,9,10)]corr <- round(cor(cordata), 1)corr
{r}
Salida:
123456 Ingreso Monto de préstamo Inversión edad trabajo_experiencia Ingreso 1.0 0.0 0.1 -0.2 0.9 Monto de préstamo 0.0 1.0 0.8 0.0 0.0 Inversión 0.1 0.8 1.0 0.0 0.1 edad -0.2 0.0 0.0 1.0 -0.1 trabajo_exp 0.9 0.0 0.1 -0.1 1 1.0
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 aplica mediante el paquete ggcorrplot. Esta librería se carga con la primera línea de código de abajo.
La segunda línea crea la gráfica del correlograma, donde argumentos como colores, contorno.color y leyenda de muestra se utilizan para controlar la visualización de la gráfica.
123library(ggcorrplot)ggcorrplot(corr, hc.order = TRUE, type = "lower", lab = TRUE, lab_size = 3, method="circle", colors = c("blue", "white", "red"), outline.color = "gray", show.legend = TRUE, show.diag = FALSE, title="Correlogram of loan variables")
{r}
Salida:
Prueba de correlación
La 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 y la experiencia laboral de los solicitantes.
El primer paso es visualizar la relación con una gráfica de dispersión, lo cual se hace en la línea de código que se muestra a continuación.
1plot(dat$Inversión,dat$work_exp, main="Correlación entre los niveles de inversión & Work Exp", xlab="Experiencia laboral en años", ylab="Inversión en USD")
{r}
Salida:
El gráfico anterior sugiere la ausencia de 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.
1cor(dat$Inversión, dat$trabajo_exp)
{r}
Salida:
1[1] 0.07653245
El valor de 0,07 muestra una relación lineal positiva pero débil entre las dos variables. Confirmemos esto con la prueba de correlación, que se hace en R con la función cor.test().
La sintaxis básica es cor.test(var1, var2, método = «método»), siendo el método por defecto pearson. Esto se hace utilizando la línea de código que aparece a continuación.
1cor.test(dat$Inversión, dat$trabajo_exp)
{r}
Salida:
123456789101112 Correlación producto-momento de Pearsondatos: dat$Inversión y dat$work_expt = 1,0801, df = 198, p-valor = 0,2814hipótesis alternativa: la correlación verdadera no es igual al 095 por ciento intervalo de confianza: -0,0628762, 0,2130117estimaciones de la muestra: cor - 0,07653245
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.
1cor.test(dat$Income, dat$work_exp)
{r}
Salida:
123456789101112 Datos de correlación producto-momento de Pearson: dat$Income y dat$work_exp t = 25.869, df = 198, p-valor < 2.2e-16 hipótesis alternativa: la correlación verdadera no es igual a 0 intervalo de confianza del 95 por ciento: 0.8423810; 0.9066903 estimaciones de la muestra: cor - 0.8784546
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 del solicitante y su experiencia laboral no sea significativa.