Je fournis des codes dans R juste un exemple, vous pouvez simplement voir les réponses si vous n'avez pas d'expérience avec R. Je veux juste faire quelques cas avec des exemples.
corrélation vs régression
Corrélation linéaire simple et régression avec un Y et un X:
Le modèle:
y = a + betaX + error (residual)
Disons que nous n'avons que deux variables:
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
plot(X,Y, pch = 19)
Sur un diagramme de dispersion, plus les points sont proches d'une ligne droite, plus la relation linéaire entre deux variables est forte.
Voyons la corrélation linéaire.
cor(X,Y)
0.7828747
Maintenant régression linéaire et retrait des valeurs R au carré .
reg1 <- lm(Y~X)
summary(reg1)$r.squared
0.6128929
Ainsi les coefficients du modèle sont:
reg1$coefficients
(Intercept) X
2.2535971 0.7877698
La version bêta de X est 0,7877698. Ainsi, notre modèle sera:
Y = 2.2535971 + 0.7877698 * X
La racine carrée de la valeur R au carré dans la régression est la même que r
dans la régression linéaire.
sqrt(summary(reg1)$r.squared)
[1] 0.7828747
Voyons l' effet d'échelle sur la pente de régression et la corrélation en utilisant le même exemple ci-dessus et multiplions X
avec un mot constant 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 corrélation reste inchangée, tout comme le R au carré .
reg12 <- lm(Y~X12)
summary(reg12)$r.squared
[1] 0.6128929
reg12$coefficients
(Intercept) X12
0.53571429 0.07797619
Vous pouvez voir les coefficients de régression modifiés, mais pas le carré R. Maintenant, une autre expérience permet d'ajouter une constante X
et de voir ce que cela aura.
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 corrélation n'est toujours pas modifiée après l'ajout 5
. Voyons comment cela aura un effet sur les coefficients de régression.
reg5 <- lm(Y~X5)
summary(reg5)$r.squared
[1] 0.6128929
reg5$coefficients
(Intercept) X5
-4.1428571 0.9357143
Le carré R et la corrélation n'ont pas d'effet d'échelle, mais l'ordonnée à l'origine et la pente le font. La pente n'est donc pas la même chose que le coefficient de corrélation (sauf si les variables sont normalisées avec la moyenne 0 et la variance 1).
qu'est-ce que l'ANOVA et pourquoi nous faisons l'ANOVA?
L'ANOVA est une technique où nous comparons les variances pour prendre des décisions. La variable de réponse (appelée Y
) est une variable quantitative alors qu'elle X
peut être quantitative ou qualitative (facteur à différents niveaux). Les deux X
etY
peuvent être un ou plusieurs en nombre. Habituellement, nous disons ANOVA pour les variables qualitatives, l'ANOVA dans le contexte de régression est moins discutée. Peut-être que cela peut être à l'origine de votre confusion. L'hypothèse nulle dans la variable qualitative (facteurs, par exemple, les groupes) est que la moyenne des groupes n'est pas différente / égale tandis que dans l'analyse de régression, nous testons si la pente de la ligne est significativement différente de 0.
Voyons un exemple où nous pouvons faire à la fois une analyse de régression et une ANOVA de facteur qualitatif car X et Y sont quantitatifs, mais nous pouvons traiter X comme facteur.
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)
Les données se présentent comme suit.
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
Maintenant, nous faisons à la fois la régression et l'ANOVA. Première régression:
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
Maintenant ANOVA conventionnelle (ANOVA moyenne pour facteur / variable qualitative) en convertissant X1 en facteur.
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
Vous pouvez voir le X1f Df modifié qui est 4 au lieu de 1 dans le cas ci-dessus.
Contrairement à l'ANOVA pour les variables qualitatives, dans le contexte des variables quantitatives où nous effectuons une analyse de régression - l'analyse de la variance (ANOVA) consiste en des calculs qui fournissent des informations sur les niveaux de variabilité dans un modèle de régression et constituent une base pour les tests de signification.
Fondamentalement, l'ANOVA teste l'hypothèse nulle bêta = 0 (avec l'hypothèse alternative bêta n'est pas égale à 0). Ici, nous testons F quel rapport de variabilité expliqué par le modèle vs l'erreur (variance résiduelle). La variance du modèle provient du montant expliqué par la ligne que vous ajustez tandis que le résiduel provient de la valeur qui n'est pas expliquée par le modèle. Un F significatif signifie que la valeur bêta n'est pas égale à zéro, ce qui signifie qu'il existe une relation significative entre deux 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
Ici, nous pouvons voir une corrélation élevée ou un résultat R au carré mais toujours pas significatif. Parfois, vous pouvez obtenir un résultat où une faible corrélation reste une corrélation significative. La raison de la relation non significative dans ce cas est que nous ne disposons pas de suffisamment de données (n = 6, df résiduel = 4), donc le F doit être considéré comme la distribution de F avec le numérateur 1 df vs 4 dénomérateur df. Donc, ce cas, nous ne pouvions pas exclure la pente n'est pas égale à 0.
Voyons un autre exemple:
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
Valeur au carré R pour ces nouvelles données:
summary(reg3)$r.squared
[1] 0.2917296
cor(X,Y)
[1] 0.54012
Bien que la corrélation soit plus faible que dans le cas précédent, nous avons obtenu une pente significative. Plus de données augmentent df et fournissent suffisamment d'informations pour que nous puissions exclure l'hypothèse nulle que la pente n'est pas égale à zéro.
Prenons un autre exemple où il existe une corrélation négative:
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
Comme les valeurs étaient au carré, la racine carrée ne fournira pas d'informations sur les relations positives ou négatives ici. Mais l'ampleur est la même.
Cas de régression multiple:
La régression linéaire multiple tente de modéliser la relation entre deux variables explicatives ou plus et une variable de réponse en ajustant une équation linéaire aux données observées. La discussion ci-dessus peut être étendue aux cas de régression multiple. Dans ce cas, nous avons plusieurs bêta dans le terme:
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)
Voyons les coefficients du modèle:
reg4$coefficients
(Intercept) X1 X2
2.04055116 0.72169350 0.05566427
Ainsi, votre modèle de régression linéaire multiple serait:
Y = 2.04055116 + 0.72169350 * X1 + 0.05566427* X2
Permet maintenant de tester si la bêta de X1 et X2 est supérieure à 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
Ici, nous disons que la pente de X1 est supérieure à 0 alors que nous ne pouvions pas exclure que la pente de X2 soit supérieure à 0.
Veuillez noter que la pente n'est pas une corrélation entre X1 et Y ou X2 et Y.
> cor(Y, X1)
[1] 0.54012
> cor(Y,X2)
[1] 0.3361571
Dans une situation à variables multiples (où la variable est supérieure à deux, une corrélation partielle entre en jeu. La corrélation partielle est la corrélation de deux variables tout en contrôlant une troisième ou plusieurs autres 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