Rosana Ferrero
Data Scientist
Juan L. López
Data Scientist
A menudo nos interesa observar y medir la relación entre 2 variables numéricas mediante el análisis de correlación. Se trata de una de las técnicas más habituales en análisis de datos y el primer paso necesario antes de construir cualquier modelo explicativo o predictivo más complejo.
Contenidos
La correlación es un tipo de asociación entre dos variables numéricas, específicamente evalúa la tendencia (creciente o decreciente) en los datos.
Dos variables están asociadas cuando una variable nos da información acerca de la otra. Por el contrario, cuando no existe asociación, el aumento o disminución de una variable no nos dice nada sobre el comportamiento de la otra variable.
Dos variables se correlacionan cuando muestran una tendencia creciente o decreciente.
NOTA: Te recomiendo siempre comenzar a analizar la correlación realizando un diagrama de dispersión entre las variables que quieres analizar, te evitarás posibles problemas como el del ejemplo del cuarteto de Anscombe que les comenté en este post.
La correlación nos permite medir el signo y magnitud de la tendencia entre dos variables. En la figura 1 vemos diferentes valores del coeficiente de correlación y sus diagramas de dispersión correspondientes. Podemos ver que:
Figura 1: Diferentes valores del coeficiente de correlación y su correspondiente diagrama de dispersión.
En estadística, el tamaño del efecto es una medida de la fuerza o magnitud de un fenómeno. El coeficiente de correlación es una medida del tamaño del efecto para la relación (lineal) entre dos variables numéricas.
Se trata de un dato esencial para interpretar los resultados de nuestro estudio y su ausencia en los artículos científicos se ha identificado como uno de los 7 fallos más comunes en investigación (según la APA 19961 , 20012 ).
Para interpretar qué tan fuerte es la correlación podemos utilizar el criterio de Cohen (1988)3, quien para valores absolutos indica que valores entre:
Son valores arbitrarios que te pueden servir de guía, pero te recomiendo interpretar la fuerza (o tamaño) de la correlación según el contexto de tu investigación. No es lo mismo analizar datos de un experimento físico controlado donde habrá poco ruido en los datos, que analizar datos sociales o biológicos donde se espera encontrar menores valores de correlación debido a la gran cantidad de dispersión o variabilidad de los datos.
Veamos ahora los coeficientes de correlación más utilizados.
Tenemos el coeficiente de correlación lineal de Pearson que se sirve para cuantificar tendencias lineales, y el coeficiente de correlación de Spearman que se utiliza para tendencias de aumento o disminución, no necesariamente lineales pero sí monótonas (las variables tienden a moverse en la misma dirección relativa, pero no necesariamente a un ritmo constante; Figura 2).
Figura 2. Relación lineal y relación no lineal (monótona). Vemos representado con una «r» negra el coeficiente de Pearson y con una «s» en rojo el de Spearman. Cuando la relación es lineal, ambos coeficientes coinciden (valen 1), pero cuando la relación no es lineal el coeficiente de correlación de Spearman representa mejor la relación entre las variables
Es el método de correlación más utilizado, pero asume que:
Los dos primeros supuestos se pueden evaluar simplemente con un diagrama de dispersión, mientras que para los últimos basta con mirar los datos y evaluar el diseño que tenemos.
En los casos donde no se cumplen los requisitos del coeficiente de correlación lineal de Pearson, es conveniente utilizar la correlación de Spearman. Es una prueba no paramétrica (no asume una distribución previa de los datos) y es más robusta frente a la presencia de outliers que la prueba paramétrica de Pearson
Para calcular el coeficiente de correlación de Pearson utilizaremos la función cor() que viene instalada por defecto en los paquetes básicos de R.
Podemos ingresar las variables como vectores con cor(x, y). Recuerda, no importa cuál es “x” y cuál es “y”, porque la relación es simétrica.
Utilizaremos el conjunto de datos stackloss del paquete MASS (Brownlee, 1965) que corresponde a datos de una fábrica de oxidación de amonio (NH3) a ácido nítrico (HNO3). Son 21 observaciones de 4 variables: – flujo del aire (representa la tasa de operación en la fábrica; AirFlow),
Vamos a observar cómo se relaciona la producción de la fábrica con su eficiencia (stack.loss y Air.Flow). Como ambas son variables numéricas, vamos a estudiar su asociación mediante el coeficiente de correlación.
Primero activamos el paquete donde se encuentran los datos con la función library(), y accedemos a ellos con la función data(). Luego vemos el encabezado (las 6 primeras líneas) del conjunto de datos.
library(MASS)
data(stackloss)
head(stackloss)
## Air.Flow Water.Temp Acid.Conc. stack.loss
## 1 80 27 89 42
## 2 80 27 88 37
## 3 75 25 90 37
## 4 62 24 87 28
## 5 62 22 87 18
## 6 62 23 87 18
Podemos activar las variables con la función attach() para que sea más fácil trabajar con las variables.
attach(stackloss)
cor(x=Air.Flow, y=stack.loss)
## [1] 0.9196635
Vemos que la correlación entre ellas es positiva y fuerte r = .92. Es decir, cuando aumenta la producción de la fábrica (Air.Flow) aumenta la ineficiencia del proceso (stack.loss). O dicho de otro modo, cuando se opera en bajas cantidades en la fábrica, la ineficiencia del proceso de oxidación también es bajo.
Si tenemos más de 2 variables en una matriz o data frame (donde cada columna representa una variable distinta) utilizamos cor(x) donde “x” es una matriz o data frame.
Podemos calcular en un paso todas las correlaciones entre las variables del conjunto de datos stackloss.
cor(stackloss)
## Air.Flow Water.Temp Acid.Conc. stack.loss
## Air.Flow 1.0000000 0.7818523 0.5001429 0.9196635
## Water.Temp 0.7818523 1.0000000 0.3909395 0.8755044
## Acid.Conc. 0.5001429 0.3909395 1.0000000 0.3998296
## stack.loss 0.9196635 0.8755044 0.3998296 1.0000000
Por defecto, cuando tenemos en nuestros datos algún valor ausente o perdido (identificado en R por un “NA” de Not Available), la función cor() nos devuelve otro “NA”. Si queremos evitar este error y obtener el valor de correlación, podemos especificar cómo queremos que se traten los valores ausentes en la función mediante el argumento:
Para calcular la correlación de Spearman en R podemos utilizar las funciones que hemos visto hasta ahora, simplemente indicando ”spearman” en el argumento method (por defecto se utiliza ”pearson”).
Si bien hemos visto que la relación entre Air.Flow y stack.loss sigue una tendencia lineal. Veamos ahora, por motivos didácticos, cómo calcularíamos el coeficiente de correlación de Spearman para el caso en que la tendencia fuera no lineal monótona.
cor(x=Air.Flow, y=stack.loss, method=»spearman»)
## [1] 0.9180247
Utilizamos la misma función cor() que antes pero ahora especificamos que el método sea el de Spearman.
Obtenemos un valor de correlación positivo y alto, que no varía mucho de la anterior, vale r = .92. Los valores de correlación son similares debido a que si se cumplen las condiciones de la correlación de Pearson.
Sencillo, ¿no?
En el siguiente post «Cómo evaluar si la correlación es significativa: pruebas de hipótesis para la correlación» aprenderemos a evaluar la significación de la correlación mediante pruebas de hipótesis, ¡te espero!
Referencias
1, Fuente https://rcompanion.org/handbook/G_09.html
2. American Psychological Association. (2001). Publication manual of the American Psychological Association (5th ed.). Washington, DC: Author.
3. Cohen, J. (1988). Statistical power analysis for the behavioral sciences (2nd ed.). Hillsdale, NJ: Lawrence Erlbaum.
impecable la explicación.
Muchas Gracias
Es un buen artículo pero… aún sigo sin enternder, ¿que son las variables correlacionadas?
¿Que tipo de proporcionalidad se puede presentar entre dos variables?
¿Como se saca el valor constante de la proporcionalidad?
Si me pueden hacer el favor de ayudarme
Gracias
Hola Hanne,
se dice que dos variables están correlacionadas cuando existe una asociación entre ellas. Si en particular hablas de correlación lineal, implica que la asociación o relación entre las variables es de tipo lineal. Lineal significa que la relación es proporcional, a un mismo aumento de la variable «x» aumenta una misma cantidad en «y», y esa proporción te la da la pendiente de la recta que mejor se ajusta a la nube de puntos. Si la asociación no fuera lineal, no sería proporcional.
Saludos
Muy buen artículo, gracias por compartirlo pero me quedé picado queriendo aprender más de la correlación ¿Dónde puedo encontrar el siguiente post?
«En el siguiente post «Cómo evaluar si la correlación es significativa: pruebas de hipótesis para la correlación» aprenderemos a evaluar la significación de la correlación mediante pruebas de hipótesis, ¡te espero!»
Les agradecería mucho que nos envíen el link de ese nuevo post…
Buenos días Pedro, gracias por tu comentario.
Aquí tienes el link del siguiente post sobre correlación: https://www.maximaformacion.es/blog-dat/como-evaluar-si-la-correlacion-es-significativa-pruebas-de-hipotesis-para-la-correlacion/#:~:text=Regla%20de%20decisi%C3%B3n%3A%20En%20la,interpretar%20su%20signo%20y%20magnitud.
Saludos
Todavia no entiendo bien alguien me puede explica el coeficiente correlacion entre estress y presion alta es .73. Como se interpreta en palabras esta relacion entre estas dos variables. Gracias si alquien me ayuda
Hola Anaili,
los coeficientes de correlación miden el grado de asociación (lineal para el coeficiente de Pearson) entre dos variables. Toma un valor entre -1 (correlación negativa perfecta) a 1 (correlación positiva perfecta), y donde el 0 indica ausencia de correlación. (Esto siempre y cuando no tengas datos atípicos o relaciones no lineales que estén perturbando el resultado). Por lo tanto, si tienes una correlación de 0.73 puedes decir que es una correlación positiva (al aumentar la presión aumenta el estrés) y alta (es un valor cercano al límite 1).
Saludos
El artículo creo,si lo leí bien, no explica que no debe confundirse la relación de dos variables cuando son independientes (sentido común) que si puede medirse la correlación y dos variables que una es independiente y la otra dependiente, donde debe medirse el coeficiente de determinación (r cuadrado). Son dos conceptos muy distintos
Hola Alfredo. Puedes calcular la correlación (r) entre dos variables cualesquiera. El coeficiente de determinación (R2) se presenta en el contexto de la regresión, y es la proporción de la varianza total de una variable que es explicada por la regresión. Si estás utilizando un modelo de regresión lineal simple el coeficiente de determinación R2 equivaldría al coeficiente de correlación r elevado al cuadrado. El concepto de variable independiente y dependiente tiene sentido en el contexto de la regresión, ya que la variable dependiente es el evento que se espera que cambie cuando se manipula la variable independiente (manipulada por un experimentador).
Saludos y gracias por participar!
Excelente. Gracias
Agradezco mucho esta explicación.
Está muy clara.
Excelente explicación, gracias