Coeficiente de correlación en R

Es relativamente frecuente que haya cierta confusión en relación a lo que estudia un análisis de regresión y un análisis de correlación. Sin embargo, ambos análisis ofrecen información complementaria. El Análisis de Regresión estudia la forma en que ambas variables aleatorias están relacionadas, mientras que el Análisis de Correlación investiga la fuerza de dicha relación. En esta entrada vamos a conocer cómo se  calcula el coeficiente de correlación en R, coeficiente que nos va a medir la fuerza y la dirección de la relación entre las dos variables.

Curiosamente, la abreviatura del coeficiente de correlación es una r minúscula. De forma predeterminada, R nos va a calcular el coeficiente de correlación de Pearson. Este tema sobre las regresiones y correlaciones no es nuevo en Viva el Software Libre, como lo atestiguan estes tema sobre intervalos de predicción, este otro sobre intervalos de confianza, o este último sobre regresiones polinomiales. Y si estás interesado, en este curso online es lo explico en detalle.

¿Qué es el coeficiente de correlación (r)?

Como ya se ha mencionado anteriormente, el coeficiente de correlación nos va a medir la fuerza y la dirección de la relación lineal entre dos variables. Los valores que puede tomar siempre se encuentran comprendidos entre +1 ó -1. O expresado matemáticamente:

-1 ≤ r ≤ +1

Veamos algunos ejemplos:

Coeficiente de correlación en R

¿Cómo podemos interpretar esos valores? Pues a ello vamos:
  • Si r = -1, existe una relación lineal perfecta negativa.
  • Si r  está próximo a -1, existe una relación lineal negativa muy fuerte.
  • Si r está próximo a 0, significa que no hay una relación lineal.
  • Si r está próximo a +1, existe una relación lineal positiva muy fuerte.
  • Si r = +1, existe una relación lineal perfecta positiva.

Cálculo del coeficiente de correlación en R: ejemplo con cars

Antes de adentrarnos en el cálculo del coeficiente de correlación en R, vamos a poner un ejemplo. En este caso, vamos a cargar unos datos (cars), contenidos en el paquete datasets, para ilustrar el coeficiente de correlación. Para ello, ejecutamos el siguiente comando:

data(cars, package="datasets")

Ahora tenemos una tabla de datos donde tenemos dos columnas: una representa la velocidad del coche (speed) y la otra la distancia de frenado (dist). Vamos a representar un diagrama de dispersión con este código:

scatterplot(dist~speed, reg.line=lm, smooth=FALSE, spread=FALSE, 
boxplots=FALSE, span=0.5, ellipse=FALSE, levels=c(.5, .9), data=cars)
Ya podemos intuir que tiene que que existir, viendo la línea de tendencia verde anterior, una correlación positiva. Pero lo que nos interesa realmente es cuantificar dicha correlación, no solo describirla con palabras. Y para ello vamos a cuantificar cómo es es la fuerza que relaciona ambas variables con el coeficiente de correlación en R.

2 modos de calcular el coeficiente de correlación en R

Existen dos formas de calcular el coeficiente de correlación en R: haciendo la raíz cuadrada del coeficiente de determinación o ejecutando la función cor().

Haciendo la raíz cuadrada del coeficiente de determinación (r2)

Hacemos una regresión lineal y nos fijamos en el coeficiente de determinación (Multiple R-squared), señalado en negrita en la parte inferior del siguiente código:

RegModel.1 <- lm(dist~speed, data=cars) 
summary(RegModel.4) 

Call: 
lm(formula = dist ~ speed, data = cars) 

Residuals: 
Min 1Q Median 3Q Max 
-29.069 -9.525 -2.272 9.215 43.201 
Coefficients: 
Estimate Std. Error t value Pr(>|t|) 
(Intercept) -17.5791 6.7584 -2.601 0.0123 * 
speed 3.9324 0.4155 9.464 1.49e-12 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 15.38 on 48 degrees of freedom
Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438 
F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12
El coeficiente de determinación no es ni más ni menos que el coeficiente de correlación elevado a 2. Por lo tanto, si queremos obtener el coeficiente de correlación en R tendremos que hacer la operación inversa, es decir, la raíz cuadrada.
Lo podemos hacer así:
sqrt(0.6511)
[1] 0.8069077
Ya vemos que nuestro coeficiente de correlación es de 0.81.

Utilizando la función cor()

Esta es una función muy sencilla de ejecutar. Y de serie nos ofrece el

Veamos el siguiente código:

cor(cars$speed, cars$dist)
[1] 0.8068949

Solo tiene dos partes dentro de la función, la x y la y. En la x hacemos referencia a los datos cars y a la columna speed (uniéndolos con el símbolo de dólar $). En la y lo hacemos de modo equivalente con la columna dist.

El resultado del coeficiente de correlación también es 0.81.

Comparación de los coeficientes de correlación usando los dos métodos

Si nos fijamos bien, a nivel de decimales (a partir de la diezmilésima), los coeficientes de correlación han variado entre uno y otro método. ¿Quiere esto decir que hacen cosas diferentes? No.

Lo que está pasando es que nosotros hemos usado los 4 primeros decimales a la hora de hacer la raíz cuadrada, no todos los decimales del coeficiente. Es por eso que a partir de la diezmilésima dan valores algo diferentes. Pero si contáramos con más de 4 decimales a la hora de transformar el coeficiente de determinación en el de correlación, seguro que el coeficiente sería igual al ofrecido usando la función cor().

Por lo tanto, ambos métodos dan coeficientes de correlación idénticos.

Interpretación del coeficiente de correlación

Por ambos métodos hemos obtenidos un coeficiente de correlación de +0.81. Esto nos indica que tienen una relación positiva muy fuerte, ya que su valor está próximo al máximo de +1. De hecho, si vemos el p-valor de la regresión nos da altamente significativa, lo que nos indica que efectivamente, están relacionados linealmente.

Más información

1 comentario en “Coeficiente de correlación en R

Deja un comentario

*