Cours7

publicité
Cours 7 : Exemples
I- Régression linéaire simple
II- Analyse de variance à 1 facteur
III- Tests statistiques
Le modèle de régression linéaire simple
Exemple 1 : On cherche à expliquer les variations de y par celles d’une
fonction linéaire de x, i.e., à valider le modèle de RLS
yi = axi + b + ε i , i = 1,...,30.
où
εi
est une suite de variables aléatoires i.i.d. 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
> 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)
> 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
Le modèle de régression linéaire simple
> names(regression)
[1] "coefficients" "residuals"
"effects"
[5] "fitted.values" "assign"
"qr"
[9] "xlevels"
"call"
"terms"
"rank"
"df.residual"
"model«
coefficients (ou coef) : estimations des paramètres aˆ et bˆ
fitted.values (ou fitted): valeurs estimées yˆ i
Residuals (ou res) : résidus ei = yi − yˆ i
df.residual : nombre de ddl des résidus (n-2)
Le modèle de régression linéaire simple
> anova(regression)
F=MSM/MSR
Analysis of Variance Table
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
â
>summary(regression)
Call:
lm(formula = Y ~ X)
Residuals:
Min
1Q
-206.89 -76.47
Median
12.28
^b
3Q
61.42
Max
192.04
s(^b)
s(â)
Coefficients:
tb=^b/s(^b)
Estimate Std. Error t value Pr(>|t|)
(Intercept) -30.2553
34.3536 -0.881
0.386
ta=â/s(â)
X
7.4199
0.5869 12.642 4.31e-13 ***
--S=sqrt(MSR)
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 96.41 on 28 degrees of freedom
Multiple R-Squared: 0.8509,
Adjusted R-squared: 0.8456
F-statistic: 159.8 on 1 and 28 DF, p-value: 4.312e-13
R²=SSM/(SSM
+SSR)
Le modèle de régression linéaire simple
¾ Pertinence du modèle sur les données :
De petites valeurs sont un gage
>summary(regression)
de stabilité du modèle donc du
Call:
lm(formula = Y ~ X)
Residuals:
Min
1Q
-206.89 -76.47
Median
12.28
pouvoir prédictif: valeur de b
pas très stable ici
3Q
61.42
Max
192.04
% de variations expliquées
par le modèle R² doit être
proche de 1 pour bon
pouvoir explicatif: ok ici
Coefficients:
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 ***
Écart-type résiduel
--Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1doit être faible
Residual standard error: 96.41 on 28 degrees of freedom
Multiple R-Squared: 0.8509,
Adjusted R-squared: 0.8456
F-statistic: 159.8 on 1 and 28 DF, p-value: 4.312e-13
pour bon pouvoir
prédictif
Le modèle de régression linéaire simple
• Conclusion 1 : le modèle a un bon pouvoir explicatif sur les
données, mais le pouvoir prédictif risque d’être entaché par
l’instabilité du coefficient b et une variance résiduelle importante.
Le modèle de régression linéaire simple
¾ Analyse des résidus
Fonctions R utiles:
- influence(): étude des points contribuant à l’instabilité du modèle
(prédiction).
e
ei
- residuals()
rei = i =
s (ei ) s (1 − hii )
- rstudent() : résidus réduits
- acf() : graphe d’autocorrelation des résidus
- plot()
- qqnorm()
Le modèle de régression linéaire simple
- Repérage des points aberrants et des points contribuant fortement à
la détermination du modèle :
Est suspect un point tel que le résidu réduit est supérieur à 2
en valeur absolue : si sa distance de Cook’s est >1, le point
suspect contribue trop fortement à la détermination du modèle
- Vérifier les hypothèse sur les résidus : iid et normalité (préalable à
l’interprétation des tests)
Le graphe des résidus ne doit pas présenter de structure
(variance constante sur la verticale et symetrie par rapport
aux abscisses).
. Le graphe des résidus réduits doit être compris entre –2 et 2 et
ne doit pas présenter de structure. D’autres graphiques tels
que le qqnorm() ou acf() peuvent aider.
Le modèle de régression linéaire simple
Le modèle de régression linéaire simple
> regression$res
1
-124.555774
7
62.303811
13
-32.171872
19
-25.642668
25
1.090471
2
3
192.039037 -206.889677
8
9
49.992064
58.754097
14
15
66.230754
14.259927
20
21
-90.246235
50.526061
26
27
94.392800
29.988159
4
5
66.405930 134.778691
10
11
-59.526887 -122.429844
16
17
-85.047904 -10.456005
22
23
40.156580 -54.350556
28
29
20.679500 -162.341983
6
84.971904
12
164.829565
18
-85.910834
24
10.292678
30
-82.121786
Le modèle de régression linéaire simple
> rstudent(regression)
1
2
3
4
5
6
-1.33891051 2.18030419 -2.35658586 0.69563804 1.44970973 0.90378230
7
8
9
10
11
12
0.67206553 0.54684103 0.61362322 -0.63902844 -1.37190197 1.80811221
13
14
15
16
17
18
-0.33693306 0.72519680 0.14970613 -0.92811721 -0.11319206 -0.91236104
19
20
21
22
23
24
-0.27792699 -0.96174524 0.53172811 0.43253471 -0.58014349 0.10726922
25
26
27
28
29
30
0.01142126 1.03392757 0.31123595 0.21446494 -1.79851278 -0.86589500
Le modèle de régression linéaire simple
> par(mfrow=c(2,2)); plot(regression)
Le modèle de régression linéaire simple
>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
> par(mfrow=c(1,2))
> plot(regression$residuals)
> acf(regression$res)
Le modèle de régression linéaire simple
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
•
Les conséquences de la non-normalité sont :
–
Les estimateurs ne sont pas optimaux
- Les tests et intervalles de confiances sont invalides. En réalité seulement
les distribution à queue très longue posent problème et une légère nonnormalité peut être ignorée, d’autant plus que l’échantillon est grand.
Dans ce cas, on essaie généralement des transformations.
•
Les conséquences d’une variance non constante sont: Les estimations ne sont pas
bonnes il faut utiliser les moindres carrés pondérés.
Le modèle de régression linéaire simple
¾ Validité du modèle sur la population
La variable X a une influence
significative sur Y à 5%: le
coefficient est significativement
différent de zero
>summary(regression)
Call:
lm(formula = Y ~ X)
Residuals:
Min
1Q
-206.89 -76.47
Median
12.28
3Q
61.42
Max
192.04
Le terme constant n’est
pas significativement
different de zero: on peut
decider de refaire tourner
le modèle sans lui
Coefficients:
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 ***
--Le modèle est
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1pertinent à 5%
Residual standard error: 96.41 on 28 degrees of freedom
Multiple R-Squared: 0.8509,
Adjusted R-squared: 0.8456
F-statistic: 159.8 on 1 and 28 DF, p-value: 4.312e-13
Le modèle de régression linéaire simple
Conclusion 3: le modèle linéaire est pertinent pour expliquer
variations de Y sur la population.
Conclusion : L’ajustement linéaire est pertinent ici. Pour obtenir un
meilleur pouvoir prédictif, il faudrait éventuellement retirer les
points 2 et 3 de l’analyse et utiliser un modèle sans terme constant.
II- Analyse de variance
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 σ ²
>anov=aov(sqrt(count) ~ spray, data = InsectSprays)
II- Analyse de variance
SSInter
> summary(anov)
SSIntra
Df Sum Sq Mean Sq F value
5 88.438 17.688 44.799
66 26.058
0.395
spray
Residuals
--Signif. codes:
Pr(>F)
< 2.2e-16 ***
P(F>Fvalue)
F suit F(k-1,n-k)
V Inter
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
V intra
k-1
n-k
V inter/V intra
II- Analyse de variance
> names(anov)
[1] "coefficients" "residuals" "effects"
"rank"
[5] "fitted.values" "assign"
"qr"
"df.residual"
[9] "contrasts" "xlevels"
"call"
"terms"
[13] "model"
coefficients : moyennes dans les niveaux αˆ j
residuals : résidus estimes du modèle eij = yij − yˆij
fitted.values : valeurs estimées yˆij = µˆ + αˆ j
>boxplot(sqrt(InsectSpray$count))~InsectSpray$spray
II- Analyse de variance
Le Boxplot montre :
- les points aberrants
- l’asymetrie de la distribution
- une inégalité dans les variances. Cependant, comme souvent il y
a peu de données dans chaque niveau du facteur on peu s’attendre
à une grande variabilité même si les variances des souspopulations sont en réalité égales.
II- Analyse de variance
Analyse des résidus (cf régression)
>par(mfrow=c(2,2)); plot(anov)
II- Analyse de variance
>plot(rstudent(anov))
II- Analyse de variance
>par(mfrow=c(2,1))
> acf(anov$res)
>plot(anov$res)
II- Analyse de variance
Les moyennes sont différentes
La distribution des résidus semble gaussienne
Les résidus sont i.i.d. si l’on ne tient pas compte de la variance
Il existe des points aberrants 39, 27, 25 dont les distances de Cook’s
.
montrent qu’ils influencent trop les coefficients
II- Analyse de variance
>summary(anov)
Df Sum Sq Mean Sq F value
5 88.438 17.688 44.799
66 26.058
0.395
spray
Residuals
--Signif. codes:
Pr(>F)
< 2.2e-16 ***
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Le test de Fisher montre que l’on rejette fortement l’hypothèse nulle
(avec un risque de se tromper presque nul): le modèle est significatif
:il existe un fort effet du facteur spray sur le nombre d’insectes.
>boxplot(sqrt(InsectSpray$count))~InsectSpray$spray
II- Analyse de variance
>anov$coeff
(Intercept)
3.7606784
sprayB
0.1159530
sprayC
-2.5158217
sprayD
-1.5963245
sprayE
-1.9512174
sprayF
0.2579388
Le groupe A est le groupe de référence avec une moyenne de 3.76. Le groupe B
a une moyenne de 3.76+0.11,….
Les écarts les plus significatifs sont entre les groupes A B et F et les groupes C
D et E, qui sont plus efficaces que les premiers.
III- Test de comparaison de moyenne
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 = rnorm(100,1,1)
>y = rexp(200,1)
>st=t.test(x,y); st
III- Test de comparaison de moyenne
Généralisation du test de Student au cas de
Welch Two Sample t-test
variances inégales
data: x and y
t = -0.2178, df = 178.446, p-value = 0.8278
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
P(|T|>t)
-0.2648092 0.2121608
T suit T(179)
sample estimates: mean of x : 0.9544127 mean of y : 0.9807369
> summary(st)
Length
statistic
1
parameter
1
p.value
1
conf.int
2
estimate
2
null.value 1
alternative 1
method
1
data.name
1
Class
-none-none-none-none-none-none-none-none-none-
Mode
numeric
numeric
numeric
numeric
numeric
numeric
character
character
character
X
Y
Nombre de ddl corrigé=179
Statistique t
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 : on ne peut pas rejeter l’hypothèse nulle au seuil 5% : les moyennes
ne sont pas significativement différentes.
Téléchargement