Estoy proporcionando códigos en R solo como un ejemplo, solo puede ver las respuestas si no tiene experiencia con R. Solo quiero hacer algunos casos con ejemplos.
correlación vs regresión
Correlación lineal simple y regresión con una Y y una X:
El modelo:
y = a + betaX + error (residual)
Digamos que solo tenemos dos variables:
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
plot(X,Y, pch = 19)
En un diagrama de dispersión, cuanto más cerca están los puntos de una línea recta, más fuerte es la relación lineal entre dos variables.
Veamos correlación lineal.
cor(X,Y)
0.7828747
Ahora regresión lineal y extracción de valores R al cuadrado .
reg1 <- lm(Y~X)
summary(reg1)$r.squared
0.6128929
Así, los coeficientes del modelo son:
reg1$coefficients
(Intercept) X
2.2535971 0.7877698
La beta para X es 0.7877698. Así nuestro modelo será:
Y = 2.2535971 + 0.7877698 * X
La raíz cuadrada del valor R cuadrado en la regresión es la misma que r
en la regresión lineal.
sqrt(summary(reg1)$r.squared)
[1] 0.7828747
Veamos el efecto de escala en la pendiente de regresión y la correlación usando el mismo ejemplo anterior y multiplique X
con una voz constante 12
.
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
X12 <- X*12
cor(X12,Y)
[1] 0.7828747
La correlación permanece sin cambios al igual que R-cuadrado .
reg12 <- lm(Y~X12)
summary(reg12)$r.squared
[1] 0.6128929
reg12$coefficients
(Intercept) X12
0.53571429 0.07797619
Puede ver los coeficientes de regresión cambiados pero no R-cuadrado. Ahora otro experimento permite agregar una constante aX
y ver qué tendrá efecto.
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
X5 <- X+5
cor(X5,Y)
[1] 0.7828747
La correlación aún no cambia después de agregar 5
. Veamos cómo esto tendrá efecto en los coeficientes de regresión.
reg5 <- lm(Y~X5)
summary(reg5)$r.squared
[1] 0.6128929
reg5$coefficients
(Intercept) X5
-4.1428571 0.9357143
El cuadrado R y la correlación no tienen efecto de escala, pero sí la intersección y la pendiente. Entonces la pendiente no es igual al coeficiente de correlación (a menos que las variables sean estandarizadas con la media 0 y la varianza 1).
¿Qué es ANOVA y por qué hacemos ANOVA?
ANOVA es una técnica en la que comparamos las variaciones para tomar decisiones. La variable de respuesta (llamada Y
) es una variable cuantitativa, mientras que X
puede ser cuantitativa o cualitativa (factor con diferentes niveles). AmbosX
y Y
pueden ser uno o más en número. Usualmente decimos ANOVA para variables cualitativas, ANOVA en contexto de regresión es menos discutido. Puede ser esto puede ser causa de su confusión. La hipótesis nula en la variable cualitativa (factores, por ejemplo, grupos) es que la media de los grupos no es diferente / igual, mientras que en el análisis de regresión probamos si la pendiente de la línea es significativamente diferente de 0.
Veamos un ejemplo en el que podemos hacer tanto el análisis de regresión como el factor cualitativo ANOVA, ya que tanto X como Y son cuantitativos, pero podemos tratar a X como factor.
X1 <- rep(1:5, each = 5)
Y1 <- c(12,14,18,12,14, 21,22,23,24,18, 25,23,20,25,26, 29,29,28,30,25, 29,30,32,28,27)
myd <- data.frame (X1,Y1)
Los datos se ven a continuación.
X1 Y1
1 1 12
2 1 14
3 1 18
4 1 12
5 1 14
6 2 21
7 2 22
8 2 23
9 2 24
10 2 18
11 3 25
12 3 23
13 3 20
14 3 25
15 3 26
16 4 29
17 4 29
18 4 28
19 4 30
20 4 25
21 5 29
22 5 30
23 5 32
24 5 28
25 5 27
Ahora hacemos tanto regresión como ANOVA. Primera regresión:
reg <- lm(Y1~X1, data=myd)
anova(reg)
Analysis of Variance Table
Response: Y1
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 684.50 684.50 101.4 6.703e-10 ***
Residuals 23 155.26 6.75
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
reg$coefficients
(Intercept) X1
12.26 3.70
Ahora ANOVA convencional (ANOVA medio para factor / variable cualitativa) convirtiendo X1 en factor.
myd$X1f <- as.factor (myd$X1)
regf <- lm(Y1~X1f, data=myd)
anova(regf)
Analysis of Variance Table
Response: Y1
Df Sum Sq Mean Sq F value Pr(>F)
X1f 4 742.16 185.54 38.02 4.424e-09 ***
Residuals 20 97.60 4.88
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Puede ver X1f Df modificado que es 4 en lugar de 1 en el caso anterior.
A diferencia del ANOVA para las variables cualitativas, en el contexto de las variables cuantitativas en las que hacemos análisis de regresión, el Análisis de varianza (ANOVA) consiste en cálculos que proporcionan información sobre los niveles de variabilidad dentro de un modelo de regresión y forman una base para pruebas de significación.
Básicamente, ANOVA prueba la hipótesis nula beta = 0 (con la hipótesis alternativa beta no es igual a 0). Aquí hacemos una prueba de F que relación de variabilidad explicada por el modelo vs error (varianza residual). La varianza del modelo proviene de la cantidad explicada por la línea que usted ajusta, mientras que la residual proviene del valor que el modelo no explica. Una F significativa significa que el valor beta no es igual a cero, significa que existe una relación significativa entre dos variables.
> anova(reg1)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 81.719 81.719 6.3331 0.0656 .
Residuals 4 51.614 12.904
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Aquí podemos ver una alta correlación o R-cuadrado pero aún no un resultado significativo. En algún momento puede obtener un resultado donde la correlación baja sigue siendo una correlación significativa. La razón de la relación no significativa en este caso es que no tenemos suficientes datos (n = 6, residual df = 4), por lo que la F debe considerarse en la distribución F con el numerador 1 df vs 4 denomerator df. Entonces, este caso no podríamos descartar la pendiente no es igual a 0.
Veamos otro ejemplo:
X = c(4,5,8,6,2, 5,6,4,2,3, 8,2,5,6,3, 8,9,3,5,10)
Y = c(3,6,9,8,6, 8,6,8,10,5, 3,3,2,4,3, 11,12,4,2,14)
reg3 <- lm(Y~X)
anova(reg3)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 69.009 69.009 7.414 0.01396 *
Residuals 18 167.541 9.308
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Valor R cuadrado para estos nuevos datos:
summary(reg3)$r.squared
[1] 0.2917296
cor(X,Y)
[1] 0.54012
Aunque la correlación es más baja que en el caso anterior, obtuvimos una pendiente significativa. Más datos aumentan df y proporcionan suficiente información para que podamos descartar hipótesis nulas de que la pendiente no es igual a cero.
Tomemos otro ejemplo donde hay una correlación negativa:
X1 = c(4,5,8,6,12,15)
Y1 = c(18,16,2,4,2, 8)
# correlation
cor(X1,Y1)
-0.5266847
# r-square using regression
reg2 <- lm(Y1~X1)
summary(reg2)$r.squared
0.2773967
sqrt(summary(reg2)$r.squared)
[1] 0.5266847
Como los valores fueron cuadrados, la raíz cuadrada no proporcionará información sobre la relación positiva o negativa aquí. Pero la magnitud es la misma.
Caso de regresión múltiple:
La regresión lineal múltiple intenta modelar la relación entre dos o más variables explicativas y una variable de respuesta ajustando una ecuación lineal a los datos observados. La discusión anterior se puede extender al caso de regresión múltiple. En este caso tenemos múltiples beta en el término:
y = a + beta1X1 + beta2X2 + beta2X3 + ................+ betapXp + error
Example:
X1 = c(4,5,8,6,2, 5,6,4,2,3, 8,2,5,6,3, 8,9,3,5,10)
X2 = c(14,15,8,16,2, 15,3,2,4,7, 9,12,5,6,3, 12,19,13,15,20)
Y = c(3,6,9,8,6, 8,6,8,10,5, 3,3,2,4,3, 11,12,4,2,14)
reg4 <- lm(Y~X1+X2)
Veamos los coeficientes del modelo:
reg4$coefficients
(Intercept) X1 X2
2.04055116 0.72169350 0.05566427
Por lo tanto, su modelo de regresión lineal múltiple sería:
Y = 2.04055116 + 0.72169350 * X1 + 0.05566427* X2
Ahora vamos a probar si la beta para X1 y X2 es mayor que 0.
anova(reg4)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 69.009 69.009 7.0655 0.01656 *
X2 1 1.504 1.504 0.1540 0.69965
Residuals 17 166.038 9.767
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Aquí decimos que la pendiente de X1 es mayor que 0, mientras que no podríamos descartar que la pendiente de X2 sea mayor que 0.
Tenga en cuenta que la pendiente no es correlación entre X1 e Y o X2 e Y.
> cor(Y, X1)
[1] 0.54012
> cor(Y,X2)
[1] 0.3361571
En una situación de variación múltiple (donde las variables son mayores que dos), entra en juego la correlación parcial. La correlación parcial es la correlación de dos variables mientras se controla una tercera o más variables.
source("http://www.yilab.gatech.edu/pcor.R")
pcor.test(X1, Y,X2)
estimate p.value statistic n gn Method Use
1 0.4567979 0.03424027 2.117231 20 1 Pearson Var-Cov matrix
pcor.test(X2, Y,X1)
estimate p.value statistic n gn Method Use
1 0.09473812 0.6947774 0.3923801 20 1 Pearson Var-Cov matrix