CLASE 10

CORRELACIÓN Y REGRESIÓN

1. OBJETIVO

El objetivo de este capítulo es demostrar una relación o asociación entre dos variables aleatorias pareadas

================================================================================

2. PUNTOS CLAVE

Parámetro Muestra Población
Proporción \(\hat{p}\) \(p\)
Media \(\bar{x}\) \(\mu\)
Desviación estandar \(s\) \(\sigma\)
Varianza \(s^2\) \(\sigma^2\)
\(H_0\) es verdadera \(H_0\) es falsa
Rechaza \(H_0\) ERROR TIPO I (\(\alpha\)) Decisión correcta
Acepta \(H_0\) Decisión correcta ERROR TIPO II (\(\beta\))

================================================================================

3. TEMARIO

================================================================================

4. CORRELACIÓN

4.1 Definiciones

Una correlación se define como una relación o asoación entre dos variables independientes pareadas. Una correlación lineal es cuando dicha asociación puede aproximarse a una linea recta.

4.2 Tipos de correlación

Podemos definir 4 tipos de correlación

  • Correlación positiva cuando el incremento en una variable se asocia en el incremento de otra variable
  • Correlación negativa cuando el incremento en una varibale se asocia con la disminución de la otra variable
  • Sin correlación cuando no encontramos una asociación entre la variación de las dos variables
  • relación no lienar cuando la asociación entre el cambio de las variables presenta una asociación distinta a la lineal

4.3 Simulaciones

a) Simulación correlación positiva

x1 <- sort(runif(n = 1000,min = 0,max = 10)) + rnorm(n = 1000, mean = 15, sd = 30)
y1 <- 16 + 5*x1 + rnorm(n = 1000, mean = 45, sd = 65)
plot(y1~x1, main = "Correlación positiva")

b) Simulación correlación negativa

y2 <- -y1
plot(y2~x1, main = "Correlación negativa")

c) Simulación sin correlación

y3 <- runif(n = 1000,min = 0,max = 10) + rnorm(n = 1000, mean = 65, sd = 60)
plot(y3~x1, main = "Sin correlación")

d) Simulación relación no lineal

y4 <- 2*x1^2 + rnorm(n = 1000, mean = 500, sd = 750)
plot(y4~x1, main = "Relación no lineal")

4.4 Medición de la fuerza de correlación lienal con r

El coeficiente de correlación lineal r mide la fuerza de la correlación lineal entre las dos variables cuantitivas continuas aleatorias.

  • correlación negativa \(= -1\leq r < 0\)
  • correlación positiva \(= 0 < r \leq 1\)

4.5 Notación

Parámetro Símbolo
Número de pares de muestras \(n\)
Coeficiente de correlación para muestras \(r\)
Coeficiente de correlación para la población \(p\)

4.6 Requisitos

  • La muestra de datos pareados \((x,y)\) correponden a datos cuantitativos aleatorios
  • La revisión visual del gráfico de dispersión es sugerente de una tendencia lineal.
  • Eliminar valores atípicos que pueden distorcionar fuertemente los resultados

4.7 Visualización de los datos

Para la visualización de los datos usaremos la función ggscatter() del paquete “ggpubr”. Esta función tiene varios parámetros que vamos a definir:

  • data= Donde se define la base de datos de donde sacaremos los vectores numéricos para determinar la correlación
  • x= se define el primer vector numérico de la variable cuantitativa continua independiente
  • y= se define el segundo vector numérico de la variable cuantitativa continua independiente
  • add= definimos si deseamos agregar la linea de tendencia
  • conf.int= es un parámetro lógico, define si deseamos agrgar el intervalo de confianza
  • cor.coef= es un parámetro lógico, define si deseaos agregar el valor del coeficiente de correlación
  • cor.method= se define el tipo de prueba que se va a realizar para determinar la correlación
    • “kendall”
    • “pearson”
    • “spearman”
  • xlab= se define la etiqueta del eje x
  • ylab= se define la etiqueta del eje y

Lo primero que tenemos que hacer es instalar la paquetería con el siguiente código

# install.packages("ggpubr", dependencies = T)

Una vez instalado, podemos generar la gráfica con la función ggscatter(), definida como se mencionó antes.

library("ggpubr")
## Loading required package: ggplot2
ggscatter(data = iris, x = "Sepal.Length", y = "Sepal.Width",
          add = "reg.line", conf.int = TRUE, 
          cor.coef = TRUE, cor.method = "pearson",
          xlab = "Sepal length", ylab = "Sepal width")
## `geom_smooth()` using formula 'y ~ x'

Hay otra forma de obtener una gráfica para evaluar la tendencia con la función scatter.smooth()

scatter.smooth(x = iris$Sepal.Length, y = iris$Sepal.Width, main = "Longitud Vs ancho")

A la inspección visual podemos observar que los datos no guardan una correlación lineal.

4.8 Determinar el valor de r

En R para determinar el coeficiente de correlación podemos usar la función cor, que tiene 3 parámetros:

  • x= se define el primer vector numérico de la variable cuantitativa continua independiente
  • y= se define el segundo vector numérico de la variable cuantitativa continua independiente
  • method= se define el tipo de prueba que se va a realizar para determinar la correlación
    • “kendall”
    • “pearson”
    • “spearman”
cor(x = iris$Sepal.Length, y = iris$Sepal.Width,method = "pearson")
## [1] -0.1175698
cor(x = iris$Sepal.Length, y = iris$Sepal.Width,method = "kendall")
## [1] -0.07699679
cor(x = iris$Sepal.Length, y = iris$Sepal.Width,method = "spearman")
## [1] -0.1667777

Como se ve, cada método para calcular r obtiene r distintas. Para saber si estas tienen una diferencia estadisticamente significativa es necesario hacer una prueba estadistica de correlación.

4.9 Prueba de correlación

R nos permite hacer al menos 3 pruebas de correlación en nuestros datos: + Spearman + Kendall + Pearson

Estas pruebas las podemos hacerlas con la función cor.test() que tiene 3 parámetros:

  • x= se define el primer vector numérico de la variable cuantitativa continua independiente
  • y= se define el segundo vector numérico de la variable cuantitativa continua independiente
  • method= se define el tipo de prueba que se va a realizar para determinar la correlación
    • “kendall”
    • “pearson”
    • “spearman”
cor.test(x = iris$Sepal.Length, y = iris$Sepal.Width,method = "pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  iris$Sepal.Length and iris$Sepal.Width
## t = -1.4403, df = 148, p-value = 0.1519
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.27269325  0.04351158
## sample estimates:
##        cor 
## -0.1175698
cor.test(x = iris$Sepal.Length, y = iris$Sepal.Width,method = "kendall")
## 
##  Kendall's rank correlation tau
## 
## data:  iris$Sepal.Length and iris$Sepal.Width
## z = -1.3318, p-value = 0.1829
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##         tau 
## -0.07699679
cor.test(x = iris$Sepal.Length, y = iris$Sepal.Width,method = "spearman")
## Warning in cor.test.default(x = iris$Sepal.Length, y = iris$Sepal.Width, :
## Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  iris$Sepal.Length and iris$Sepal.Width
## S = 656283, p-value = 0.04137
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##        rho 
## -0.1667777

4.10 Errores de las conclusiones de la correlación

  • Concluir una relación de causalidad entre las variables
  • Usar promedios para establecer la correlación
  • Ignorar la posibilidad de una relación no lienel

5. REGRESIÓN

La regresión es la formulación de la ecuación lineal que mejor se ajusta a la correlación de nuestros datos.

reg <- lm(iris$Sepal.Length~iris$Sepal.Width)
reg
## 
## Call:
## lm(formula = iris$Sepal.Length ~ iris$Sepal.Width)
## 
## Coefficients:
##      (Intercept)  iris$Sepal.Width  
##           6.5262           -0.2234
summary(reg)
## 
## Call:
## lm(formula = iris$Sepal.Length ~ iris$Sepal.Width)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.5561 -0.6333 -0.1120  0.5579  2.2226 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        6.5262     0.4789   13.63   <2e-16 ***
## iris$Sepal.Width  -0.2234     0.1551   -1.44    0.152    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8251 on 148 degrees of freedom
## Multiple R-squared:  0.01382,    Adjusted R-squared:  0.007159 
## F-statistic: 2.074 on 1 and 148 DF,  p-value: 0.1519