R
I- Régression linéaire simple
II- Analyse de variance à 1 facteur
III- Tests statistiques
I- Le modèle de régression linéaire simple:
théorie
Y = aX + b + ε
où ε est une variable aléatoire gaussienne de moyenne nulle et de variance σ²
n n
• La droite d’ajustement y = ax
ˆ + bˆ s’appelle droite de régression ou des
moindres carrés.
∑e 2
i
SSR
s² = i =1
=
n−2 n−2
I- Le modèle de régression linéaire simple:
théorie
Validation du modèle sur les données : il faut que le modèle soit de
bonne qualité (bon pouvoir explicatif et prédictif)
Au plus SSM est grand (ou SSR faible), au meilleur est l’ajustement.
I- Le modèle de régression linéaire simple:
théorie
Les indicateurs de variabilité sont résumés dans le tableau d’analyse de la
variance ci-dessous :
Autres indicateurs :
SSM
- Le F de Fisher F= doit être le plus grand possible
s²
- Le s² doit être le plus faible possible pour garantir de bonnes prévisions.
- Les coefficients doivent être stables pour garantir de bonnes prévisions, i.e.
leurs écarts type s(aˆ ) et s(bˆ) doivent être faibles. On montre que
avec
2
s ²(aˆ ) = n
s 1
; s ²(bˆ) = s ² + n
x² ci = xi − x
n
∑ ci ² ∑ c ²
i=1 i=1 i
I- Le modèle de régression linéaire simple:
théorie
Vérification des hypothèses sur les aléas ε i: il faut que les aléas
soient i.i.d. et gaussiens
Tests graphiques :
• Le graphe des résidus versus les valeurs prédites ne doit pas présenter de
structure (indépendance, homoscedasticité, normalité).
• d’une variance non constante : Les estimations ne sont pas bonnes il faut utiliser les
moindres carrés pondérés.
I- Le modèle de régression linéaire simple:
théorie
Solutions
Tests graphiques
• Le graphe des résidus réduits versus les valeurs prédites doit normalement
être compris entre –2 et 2 pour au moins 95% des observations dès lors que
la normalité est vérifiée.
I- Le modèle de régression linéaire simple:
théorie
• Des observations dont le résidu réduit est >2 en v.a. sont des points
contribuant fortement à la valeur de s². Ils peuvent constituer des points
aberrants. Il faut les analyser plus avant.
Une fois la gaussianité vérifiée, on peut effectuer des tests afin d’asseoir la
pertinence du modèle sur la population étudiée. Ces tests testent
l’hypothèse :
H 0 : a = 0 contre H1 : a ≠ 0
SSM
• Test de Fisher. Basé sur la statistique : F = F ∼ F(1,n-2) sous H 0
s²
I- Le modèle de régression linéaire simple:
exemple
Exemple 1 : On cherche à expliquer les variations de y par celles d’une fonction linéaire
de x à partir de 30 observations de chacune des variables, i.e. à ajuster le modèle
yi = axi + b + ε i , i = 1,...,30.
où εi est une suite de variables aléatoires i.i.d.gaussiennes de moyenne nulle et de variance σ²
>x=1:100; X=sample(x,30,replace=TRUE)
>Y=3+7*X+rnorm(30,0,100)
>regression=lm(Y~X); regression
Call:
lm(formula = Y ~ X)
Coefficients:
(Intercept) X
-30.26 7.42
Le modèle de régression linéaire simple:
exemple
Dessin du nuage de points :
> plot(X,Y)
>text(40,600, substitute(y==a*x+b, list(a=regression$coef[2],
b=regression$coef[1])))
> lines(X,regression$fitted.values) #ou abline(regression)
> M=locator(); v=locator()
> segments(0,M$y,M$x,M$y)
> arrows(M$x,M$y,M$x,v$y,angle=30, code=3)
> segments(M$x,v$y,0,v$y,lty=2)
> text(0,350, "yi",col="red")
> text(0,200, "^yi",col="red")
> text(25,250, "ei",col="red")
> title("nuage de points et droite de regression")
Le modèle de régression linéaire simple:
exemple
Le modèle de régression linéaire simple:
exemple
Explication des sorties R
> names(regression)
[1] "coefficients" "residuals" "effects" "rank"
[5] "fitted.values" "assign" "qr" "df.residual"
[9] "xlevels" "call" "terms" "model«
SSM
Response: Y
SSR
Df Sum Sq Mean Sq F value Pr(>F)
X 1 1485466 1485466 159.83 4.312e-13 ***
Residuals 28 260238 9294 MSM=SSM/dl=SSM
--- n-2 MSR=SSR/dl=SSR/n-2
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Le modèle de régression linéaire simple:
exemple
â
>summary(regression)
Call:
lm(formula = Y ~ X)
^b
Residuals:
Min 1Q Median 3Q Max s(^b)
-206.89 -76.47 12.28 61.42 192.04
s(â)
Coefficients: tb=^b/s(^b)
Estimate Std. Error t value Pr(>|t|)
(Intercept) -30.2553 34.3536 -0.881 0.386
X 7.4199 0.5869 12.642 4.31e-13 *** ta=â/s(â)
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 S=sqrt(MSR)
Fonctions R utiles:
- influence(): étude des points contribuant à l’instabilité du modèle
(prédiction).
- residuals()
- rstudent() : résidus réduits
- acf() : graphe d’autocorrelation des résidus
- plot()
- qqnorm()
Le modèle de régression linéaire simple:
exemple
Graphe1 : doit être sans structure réparti de part et d’autre de l’axe des x
Graphe 2 : doit suivre la bissectrice
Graphe 3 : doit être sans structure
Graphe 4 : distances de Cook ou courbe de niveaux de leverage de distances de Cook’s
égales
Le modèle de régression linéaire simple:
exemple
>plot(regression$fitted,rstudent(regression),xlabel="fitted values",
ylabel="standardized residuals");
>abline(h=2,col="red");abline(h=-2,col="red")
Le modèle de régression linéaire simple:
exemple
> par(mfrow=c(1,2))
> plot(regression$residuals)
> acf(regression$res)
Le modèle de régression linéaire simple:
exemple
Conclusion 2 : Les résidus semblent approximativement gaussiens
(qqnorm) et i.i.d. (pas de structure, de part et d’autre de 0 sur les
plots et le corrélogramme).Deux points devraient être
éventuellement enlevés du modèle : les points 2 et 3.
Le modèle de régression linéaire simple:
exemple
Le modèle de régression linéaire simple:
exemple
Validité du modèle sur la population
>summary(regression)
Call:
lm(formula = Y ~ X) La variable X a une influence
significative sur Y à 5%: le
Residuals:
coefficient est significativement
Min 1Q Median 3Q Max différent de zero: le modèle est
-206.89 -76.47 12.28 61.42 192.04
pertinent par student
Coefficients: Le terme constant n’est
Estimate Std. Error t value Pr(>|t|) pas significativement
(Intercept) -30.2553 34.3536 -0.881 0.386 different de zero: on peut
X 7.4199 0.5869 12.642 4.31e-13 *** decider de refaire tourner
--- le modèle sans lui
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pour cela, on observe ces deux variables sur un ensemble de n individus, on suppose
yij = µ + α j + ε ij i = 1....n j , j = 1,...p. p
n =n
avec ∑ j
j =1
et on veut valider l’hypothèse précédente. On fait généralement l’hypothèse implicite que
les ε ij sont iid gaussiens.
II- Analyse de variance : théorie
p
• y=1 ∑ n y
n j=1 j j
E1 (X = x1 ) E j (X = x j ) E p (X = x p )
…. ……
n j
y1 y j = ∑i =1
y ij yp
II- Analyse de variance : théorie
• Moyennes
On a p+1 inconnues du modèle ( µ ,α1,...,α p ) et uniquement p groupes donc
on doit imposer une contrainte. On impose :
p
∑ n jα j = 0 (ce qu’un groupe perd l’autre le gagne)
j =1
• On trouve :
µˆ = y αˆ j = y j − y
et
yˆ j = αˆ
j −µ
ˆ est la moyenne estimée ou prédite dans le niveau j du facteur
eij = y − yˆ j est le i° résidu du niveau j du facteur
ij
∑ ∑e ij ²
s² =
i j
n− p
II- Analyse de variance : théorie
Validation du modèle : on doit d’abord vérifier que le facteur X discrimine bien Y,
c’est à dire que la majeure partie de la variabilité est bien expliquée par le modèle.
Décomposition de la variabilité
Le modèle est d’autant meilleur que SSinter est grand (que SSintra est faible)
II- Analyse de variance : théorie
SS INTER SS
η2 = = 1 − INTRA
SST SST
VINTER
F=
VINTRA
SS INTER SS INTRA
VINTER = VINTER =
p −1 n− p
II- Analyse de variance : théorie
Voir régression
II- Analyse de variance : théorie
Dès lors qu’on a vérifié que les erreurs sont i.i.d. gaussiennes, on peut
tester
H 0 : α1 =...=α j =...=α p
VINTER
F= sous H 0 , F ∼ F ( p − 1, n − p )
VINTRA
II- Analyse de variance :exemple
Six (k) insecticides (spray) ont été testés chacun sur 12 cultures. La
réponse observée (count) est le nombre d'insectes. Les données sont
contenues dans le data.frame « InsectSprays ». On veut savoir si il
existe un effet significatif du facteur insecticide, i.e. on veut valider
le modèle d’analyse de variance :
Countij = µ + α j + ε ij , i = 1,...12; j = 1,...6.
où ε i est une suite de variables aléatoires i.i.d. de moyenne nulle et de
variance σ ²
> names(anov)
[1] "coefficients" "residuals" "effects" "rank"
[5] "fitted.values" "assign" "qr" "df.residual"
[9] "contrasts" "xlevels" "call" "terms"
[13] "model"
Le Boxplot montre :
>plot(rstudent(anov))
II- Analyse de variance
>par(mfrow=c(2,1))
> acf(anov$res)
>plot(anov$res)
II- Analyse de variance
>summary(anov)
>anov$coeff
Soient (X1, . . . , Xn) un echantillon issu d’une population iid N(1, 1) et (Y1, . . . ,
Ym) un échantillon issu d’une population iid E(1). On veut tester:
H 0 : E ( X ) = E (Y ) contre H1 : E ( X ) ≠ E (Y )
X
III- Test de comparaison de moyenne
Avec la fonction t-test : Cas où on suppose les variances inégales
data: x and y
t = 0.8249, df = 118.758, p-value = 0.4111
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval: Rejet de H0 si <5%
-0.2472865 0.6004484
sample estimates:
mean of x mean of y
1.182571 1.005990
Nombre de ddl
corrigé=178,46
X Y
Valeur de la Statistique de
Welch
III- Test de comparaison de moyenne
> names(st)
[1] "statistic" "parameter" "p.value" "conf.int" "estimate"
[6] "null.value" "alternative" "method" "data.name"
statistic : valeur de t
alternative : type d’alternative two-sided, one-sided.
estimate : moyennes empiriques des echantillons
null.value : hypothese nulle
conf.int: intervalles de confiances
parameter :ddl
Conclusion : pour les deux exemples, on ne peut pas rejeter l’hypothèse nulle
au seuil 5% : les moyennes ne sont pas significativement différentes.
IV – Test du chi2
On veut tester à partir d’un tableau de contingence de n individus s’il y a une
relation entre deux caractères X et Y
Statistique de test :
On rejette H0 si la p-value est <5%. Ici, c’est le cas, les caractères sexe et
cecite ne sont pas indépendants.