37
Cours 7 : Exemples I- Régression linéaire simple II- Analyse de variance à 1 facteur III- Tests statistiques

Cours 7 : Exemples - iml.univ-mrs.friml.univ-mrs.fr/~reboul/R-cours7.pdf · Cours 7 : Exemples I- Régression linéaire simple II- Analyse de variance à 1 facteur III- Tests statistiques

Embed Size (px)

Citation preview

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

où 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); regressionCall:

lm(formula = Y ~ X)

Coefficients:

(Intercept) X

-30.26 7.42

, 1,...,30.i i iy ax b iε= + + =²σ

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" "rank"

[5] "fitted.values" "assign" "qr" "df.residual"

[9] "xlevels" "call" "terms" "model«

coefficients (ou coef) : estimations des paramètres

fitted.values (ou fitted): valeurs estimées

Residuals (ou res) : résidus

df.residual : nombre de ddl des résidus (n-2)

ˆˆ et a b

ˆi i ie y y= −ˆiy

Le modèle de régression linéaire simple

> anova(regression)Analysis of Variance Table

Response: Y

Df Sum Sq Mean Sq F value Pr(>F) X 1 1485466 1485466 159.83 4.312e-13 ***

Residuals 28 260238 9294

---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

SSM

SSR

MSM=SSM/dl=SSM

MSR=SSR/dl=SSR/n-2

F=MSM/MSR

n-2

Le modèle de régression linéaire simple

>summary(regression) Call:lm(formula = Y ~ X)

Residuals:Min 1Q Median 3Q Max

-206.89 -76.47 12.28 61.42 192.04

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 ***---Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 96.41 on 28 degrees of freedomMultiple R-Squared: 0.8509, Adjusted R-squared: 0.8456 F-statistic: 159.8 on 1 and 28 DF, p-value: 4.312e-13

^b

â

s(^b)

s(â)tb=^b/s(^b)

ta=â/s(â)

S=sqrt(MSR)

R²=SSM/(SSM+SSR)

Le modèle de régression linéaire simple

Pertinence du modèle sur les données : >summary(regression) Call:lm(formula = Y ~ X)

Residuals:Min 1Q Median 3Q Max

-206.89 -76.47 12.28 61.42 192.04

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 ***---Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 96.41 on 28 degrees of freedomMultiple R-Squared: 0.8509, Adjusted R-squared: 0.8456 F-statistic: 159.8 on 1 and 28 DF, p-value: 4.312e-13

% de variations expliquées par le modèle R² doit être

proche de 1 pour bon pouvoir explicatif: ok ici

De petites valeurs sont un gage de stabilité du modèle donc du pouvoir prédictif: valeur de b

pas très stable ici

Écart-type résiduel doit être faible

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).

- residuals()

- rstudent() : résidus réduits

- acf() : graphe d’autocorrelation des résidus

- plot()

- qqnorm()

( ) (1 )i i

ii ii

e eres e s h

= =−

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 2 3 4 5 6 -124.555774 192.039037 -206.889677 66.405930 134.778691 84.971904

7 8 9 10 11 12 62.303811 49.992064 58.754097 -59.526887 -122.429844 164.829565

13 14 15 16 17 18 -32.171872 66.230754 14.259927 -85.047904 -10.456005 -85.910834

19 20 21 22 23 24 -25.642668 -90.246235 50.526061 40.156580 -54.350556 10.292678

25 26 27 28 29 30 1.090471 94.392800 29.988159 20.679500 -162.341983 -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 non-normalité 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

>summary(regression) Call:lm(formula = Y ~ X)

Residuals:Min 1Q Median 3Q Max

-206.89 -76.47 12.28 61.42 192.04

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 ***---Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 96.41 on 28 degrees of freedomMultiple R-Squared: 0.8509, Adjusted R-squared: 0.8456 F-statistic: 159.8 on 1 and 28 DF, p-value: 4.312e-13

La variable X a une influence significative sur Y à 5%: le

coefficient est significativement différent de zero

Le terme constant n’est pas significativement

different de zero: on peut decider de refaire tourner

le modèle sans lui

Le modèle est pertinent à 5%

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 :

où est une suite de variables aléatoires i.i.d. de moyenne nulle et de variance

>anov=aov(sqrt(count) ~ spray, data = InsectSprays)

σiε

.,...j;,...iijjijCount 61121, ==++= εαµ

²

II- Analyse de variance

> summary(anov)

Df Sum Sq Mean Sq F value Pr(>F) spray 5 88.438 17.688 44.799 < 2.2e-16 ***

Residuals 66 26.058 0.395 ---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

SSInter

P(F>Fvalue)F suit F(k-1,n-k)SSIntra

V Inter

V intra

k-1n-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 niveauxresiduals : résidus estimes du modèlefitted.values : valeurs estimées ˆˆ ˆij jy µ α= +

ˆij ij ije y y= −ˆ 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 sous-populations 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 Pr(>F)

spray 5 88.438 17.688 44.799 < 2.2e-16 ***Residuals 66 26.058 0.395 ---

Signif. codes: 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) sprayB sprayC sprayD sprayE sprayF 3.7606784 0.1159530 -2.5158217 -1.5963245 -1.9512174 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 populationiid N(1, 1) et (Y1, . . . , Ym) un échantillon issu d’une population iid E(1). On veut tester:

> x = rnorm(100,1,1)

>y = rexp(200,1)

>st=t.test(x,y); st

0 1: ( ) ( ) contre : ( ) ( )H E X E Y H E X E Y= ≠

III- Test de comparaison de moyenne

Welch Two Sample t-testdata: x and yt = -0.2178, df = 178.446, p-value = 0.8278alternative hypothesis: true difference in means is not equal to 095 percent confidence interval:-0.2648092 0.2121608sample estimates: mean of x : 0.9544127 mean of y : 0.9807369

> summary(st)Length Class Mode

statistic 1 -none- numeric parameter 1 -none- numeric p.value 1 -none- numeric conf.int 2 -none- numeric estimate 2 -none- numeric null.value 1 -none- numeric alternative 1 -none- charactermethod 1 -none- characterdata.name 1 -none- character

Généralisation du test de Student au cas de variances inégales

Nombre de ddl corrigé=179

Statistique t

P(|T|>t)T suit T(179)

X Y

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.