¿Qué es una correlación?

Una correlación mide la relación lineal entre dos variables. Por ejemplo la relación entre el la experiencia laboral y el salario.

Esta se mide con un coeficiente que va de -1 a 1. * r = 1, la relación es positiva perfecta * 0 < r < 1 la relación es positiva
* r = 0 no hay relación lineal
* -1 < r < 0 la relación es negativa
* r = -1 la relación es negativa perfecta

#(recordar instalar paquetes si no se tienen)
install.packages("readxl")
install.packages("dplyr")
install.packages("ggplot2")
install.packages("GGally")
install.packages("Hmisc")
install.packages("corrplot")
install.packages("PerformanceAnalytics")
#Cargar paquetes
library(readxl)
library(dplyr)
library(ggplot2)
library(GGally)
library(Hmisc)
library(corrplot)
library(PerformanceAnalytics)

#importar base de datos (recordar cambiar directorio)
base <- read_excel("~/Proyectos/Elecciones 2018/baseejemplo.xlsx")

La base de datos que importamos contiene varios indicadores de escolaridad y de porcentaje de votación por partidos. Como recomendación, importen una base de datos que únicamente tenga los indicadores numéricos.

Calcular el coeficiente de correlación

Este comando calcula la matriz de correlación:

round(cor(base),2)  
##               porcentajeprn porcentajepac rezago  nini educ_superior   ips
## porcentajeprn          1.00         -0.80   0.68  0.74         -0.57 -0.75
## porcentajepac         -0.80          1.00  -0.71 -0.87          0.69  0.80
## rezago                 0.68         -0.71   1.00  0.81         -0.77 -0.82
## nini                   0.74         -0.87   0.81  1.00         -0.80 -0.84
## educ_superior         -0.57          0.69  -0.77 -0.80          1.00  0.64
## ips                   -0.75          0.80  -0.82 -0.84          0.64  1.00
#NOTA: usamos round con dos decimales, para redondear el resultado, si no se quiere redondear
#solamente podemos usar el comando cor(base)

Podemos interpretar que por ejemplo, la correlación entre el porcentaje de votos que obtuvo el prn y el indicador de rezago escolar es de 0,67. Es decir, es una relación positiva que indica que a mayor porcentaje de votación del PRN mayor es el indicador de rezago escolar.

Calcular la matriz, con el p-value

Una vez que calculamos el coeficiente de correlación, es necesario identificar si es estadísticamente significativo, por lo que calculamos el p-value.

Si el p-value es menor al nivel de significancia que nosotros escogemos, por ejemplo 5%, entonces el coeficiente es estadísticamente significativo.

rcorr(as.matrix(base))
##               porcentajeprn porcentajepac rezago  nini educ_superior   ips
## porcentajeprn          1.00         -0.80   0.68  0.74         -0.57 -0.75
## porcentajepac         -0.80          1.00  -0.71 -0.87          0.69  0.80
## rezago                 0.68         -0.71   1.00  0.81         -0.77 -0.82
## nini                   0.74         -0.87   0.81  1.00         -0.80 -0.84
## educ_superior         -0.57          0.69  -0.77 -0.80          1.00  0.64
## ips                   -0.75          0.80  -0.82 -0.84          0.64  1.00
## 
## n= 79 
## 
## 
## P
##               porcentajeprn porcentajepac rezago nini educ_superior ips
## porcentajeprn                0             0      0    0             0 
## porcentajepac  0                           0      0    0             0 
## rezago         0             0                    0    0             0 
## nini           0             0             0           0             0 
## educ_superior  0             0             0      0                  0 
## ips            0             0             0      0    0

Este comando nos da la misma matriz de correlación que obtuvimos arriba, y abajo nos da el p-value. En todos el casos el p-value es muy bajo (=0), lo cual quiere decir que sí es estadísticamente significativo.

Ver la matriz de forma gráfica

Podemos graficar con el comando corrplot. Ver más en este enlace:

Lo primero es calcular la matriz de correlación y guardarla en un objeto y luego graficarlo. En este caso vamos a graficar los coeficientes.

correlacion<-round(cor(base), 1)

corrplot(correlacion, method="number", type="upper")

También podemos hacer gráficos de dispersión, calcular los coeficientes de una sola vez y ver si son estadísticamente significativos, con un solo comando:

chart.Correlation(base, histogram = F, pch = 19)

En ese gráfico podemos observar gráficamente que hay una relación entre el porcentaje de votos del prn y el rezago escolar (tercera fila, primera columna) y que el coeficiente es de 0,68 y es estadístcamente significativo (esto se representa con los tres puntos rojos).