Modèle linéaire et applications

publicité
Modèle linéaire et applications
Atelier Statistique
Synopsis
“Statistical models are sometimes misunderstood in epidemiology. Statistical models for data are never
true. The question whether a model is true is irrelevant. A more appropriate question is whether we obtain the correct scientific conclusion if we pretend that the process under study behaves according to a
particular statistical model.”
—Scott Zeger (1991)
ANOVA vs. régression
Codage des variables qualitatives
Illustration
Analyse de covariance
Approche par comparaison de modèles
Interprétation des coefficients du modèle
ANOVA à un facteur
Références
ANOVA vs. régression
ANOVA : Expliquer les variations d’une réponse numérique en fonction de variables qualitatives (facteurs), le plus souvent dans le cadre d’un plan d’expérience.
Régression : Expliquer les variations d’une réponse numérique en fonction de
variables quantitatives (explicatives ou prédictrices), en supposant également
une relation asymétrique entre les variables.
Modélisation d’une réponse continue par une combinaison linéaire de variables
explicatives :
yi = β 0 +
k
∑
j=1
βj xi
Codage des variables qualitatives
> n <- 10
> x <- gl(2, 1, n, labels=letters[1:2])
> y <- 1.1 + 0.5 * as.numeric(x) + rnorm(n)
3.5
> m <- lm(y ~ x)
> formula(m)
3.0
y ~ x
> model.matrix(m)
2.5
1
1
0
2
1
1
3
1
0
4
1
1
5
1
0
6
1
1
7
1
0
8
1
1
9
1
0
10
1
1
attr(,"assign")
[1] 0 1
attr(,"contrasts")$x
[1] "contr.treatment"
y
(Intercept) xb
2.0
1.5
1.0
0 (a)
1 (b)
x
Rappel : dans le cas où la variable explicative est continue, le modèle de régression simple s’écrit yi = β0 + β1 xi + εi , où β0 représente l’ordonnée à l’origine, β1
la pente de la droite de régression, et εi est un terme d’erreur (résidus gaussiens
centrés). La partie structurale du modèle s’écrit également y = Xβ sous forme
matricielle, où X désigne la matrice de design.
Si x est catégoriel, avec deux modalités, on peut écrire :
y = β0 + β1 I(x = b)
où I(x = b) = 1 si x prend la valeur b, 0 sinon. D’où,
y = β0
= β0 + β1
(x=a)
(x=b)
L’interprétation de β1 reste la même et traduit la variation de y lorsque x augmente d’une unité (a → b). Le coefficient β0 représente la moyenne dans la
catégorie de référence. Si x a k modalités, on aura k − 1 indicatrices codant
pour les niveaux autres que celui de référence.
Illustration
À partir des données sur les poids à la naissance du TP 1 (Hosmer and Lemeshow,
1989), on cherche à modéliser le poids des bébés en fonction de l’ethnicité de la
mère (variable qualitative à 3 modalités).
> data(birthwt, package="MASS")
> ethn <- c("White","Black","Other")
> birthwt <- within(birthwt, {
race <- factor(race, labels=ethn)
race <- relevel(race, ref="White")
})
> xyplot(bwt ~ race, data=birthwt, jitter.x=TRUE)
5000
bwt
4000
3000
2000
1000
White
Black
race
Other
Modèle de régression linéaire :
> m <- lm(bwt ~ race, data=birthwt)
> summary(m)
Call:
lm(formula = bwt ~ race, data = birthwt)
Residuals:
Min
1Q
Median
3Q
Max
-2096.28
-502.72
-12.72
526.28
1887.28
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)
3102.72
72.92
42.548
< 2e-16 ***
raceBlack
-383.03
157.96
-2.425
0.01627 *
raceOther
-297.44
113.74
-2.615
0.00965 **
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 714.5 on 186 degrees of freedom
Multiple R-squared: 0.05017,
Adjusted R-squared: 0.03996
F-statistic: 4.913 on 2 and 186 DF,
p-value: 0.008336
> anova(m)
Analysis of Variance Table
Response: bwt
Df
race
2
Sum Sq Mean Sq F value
5015725 2507863
Residuals 186 94953931
Pr(>F)
4.9125 0.008336 **
510505
--Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
On obtiendrait des résultats identiques avec summary(aov(bwt ~ race, birthwt)).
Codage des contrastes :
http://www.ats.ucla.edu/stat/r/library/contrast_coding.htm
> options(contrasts=c("contr.sum", "contr.poly"))
> m2 <- lm(bwt ~ race, data=birthwt)
> coef(m2)
(Intercept)
race1
race2
2875.8982
226.8205
-156.2059
> (grp.means <- with(birthwt, tapply(bwt, race, mean)))
White
Black
Other
3102.719 2719.692 2805.284
> grp.means[2:3] - grp.means[1]
Black
# m
Other
-383.0264 -297.4352
> grp.means[1:2] - mean(grp.means)
White
Black
226.8205 -156.2059
# m2
Analyse de covariance
L’analyse de covariance consiste à tester différents niveaux d’un facteur en présence
d’un ou plusieurs co-facteurs continus. La variable réponse et ces co-facteurs
sont supposées reliés, et l’objectif est d’obtenir une estimation des réponses corrigée pour les éventuelles différences entre groupes (au niveau des cofacteurs).
Ce type d’analyse est fréquemment utilisé dans le cas des données pré/post avec
des mesures continues et un facteur de groupe, et reste préférable à une simple
analyse des scores de différences (Miller and Chapman, 2001; Senn, 2006).
Soit yij la jème observation dans le groupe i. À l’image du modèle d’ANOVA à un
facteur, le modèle d’ANCOVA s’écrit
yij = µ + αi + β(xij − x) + εij ,
où β est le coefficient de régression liant la réponse y et le cofacteur x (continu),
avec x la moyenne générale des xij , et toujours un terme d’erreur εij ∼ N(0, σ2 ).
Notons que l’on fait l’hypothèse que β est le même dans chaque groupe. Cette
hypothèse de parallélisme peut se vérifier en testant la significativité du terme
d’interaction αβ.
La réponse moyenne ajustée pour l’effet du co-facteur numérique s’obtient sim^ i − x), où xi est la moyenne des x dans le ième groupe.
plement comme αi + β(x
Pentes séparées
Groupes parallèles
Effet nul de x
Il s’agit d’une méthode d’ajustement a posteriori (lorsque certains facteurs n’ont pas été contrôlés
lors de la randomisation pour assigner les traitements).
Approche par comparaison de modèles
Weight change data for young female anorexia patients. (Hand et al., 1993)
Effet de différents type de thérapie (familiale vs. cognitive) sur la perte de poids dans un échantillon
de 72 femmes.
> data(anorexia)
> anorexia$Treat <- relevel(anorexia$Treat, ref="Cont")
> xyplot(Postwt ~ Prewt, data=anorexia, groups=Treat, aspect="iso", type=c("p","r"),
auto.key=list(space="right", lines=TRUE, points=FALSE))
> f <- function(x) c(mean=mean(x), sd=sd(x))
> aggregate(cbind(Prewt,Postwt) ~ Treat, data=anorexia, f)
Treat Prewt.mean
Prewt.sd Postwt.mean Postwt.sd
1
Cont
81.557692
5.707060
81.107692
4.744253
2
CBT
82.689655
4.845495
85.696552
8.351924
3
FT
83.229412
5.016693
90.494118
8.475072
100
90
Postwt
Cont
CBT
FT
80
70
70
75
80
85
Prewt
90
95
Modèle à pentes égales vs. séparées :
> anorex.aov0 <- aov(Postwt ~ Prewt + Treat, data=anorexia)
> anorex.aov1 <- aov(Postwt ~ Prewt * Treat, data=anorexia)
> anova(anorex.aov0, anorex.aov1)
Analysis of Variance Table
Model 1: Postwt ~ Prewt + Treat
Model 2: Postwt ~ Prewt * Treat
Res.Df
RSS Df Sum of Sq
1
68 3311.3
2
66 2844.8
2
F
Pr(>F)
466.48 5.4112 0.006666 **
--Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
On conclut que le terme d’interaction est nécessaire, celle-ci se manifestant essentiellement entre le
groupe contrôle et les deux autres groupes réunis. Le test F pour la comparaison des deux modèles
emboîtés (le premier modèle est une restriction de l’autre dans l’espace des paramètres) correspond
au test de l’interaction (summary(anorex.aov1)).
Interprétation des coefficients du modèle
Le modèle sans interaction (coef(anorex.aov0)) s’écrit
yi = 45.67 + 0.43 × Prewti + 4.10 × I(Treati = CBT) + 8.66 × I(Treati = FT).
Pour le groupe contrôle, yi = 45.67 + 0.43 × Prewti , alors que pour celles du groupe FT, yi = 45.67 + 0.43 ×
Prewti +8.66 : l’effet de Prewt est le même pour toutes les patientes et le facteur de groupe induit simplement
un changement moyen (+4.10 ou +8.66) par rapport au groupe contrôle.
Pour le modèle avec interaction avec Prewt centré sur sa moyenne, on a
yi = 80.99 − 0.13 × Prewti
+ 4.46 × I(Treati = CBT)
+ 8.75 × I(Treati = FT)
+ 0.98 × Prewti × I(Treati = CBT)
+ 1.04 × Prewti × I(Treati = FT).
ANOVA à un facteur
> m0 <- aov(bwt ~ 1, data=birthwt)
# modèle de base (grande moyenne)
> m1 <- aov(bwt ~ race, data=birthwt)
# modèle à un facteur (m0 inclus dans m1)
> summary(m1)
# pouvoir explicatif de m1
Df
race
2
Residuals
Sum Sq Mean Sq F value
5015725 2507863
186 94953931
Pr(>F)
4.913 0.00834 **
510505
> anova(m0, m1)
# différence de résiduelle entre m0 et m1
Analysis of Variance Table
Model 1: bwt ~ 1
Model 2: bwt ~ race
Res.Df
RSS Df Sum of Sq
1
188 99969656
2
186 94953931
2
F
Pr(>F)
5015725 4.9125 0.008336
Références
1
2
3
4
Hosmer, D. and Lemeshow, S. (1989). Applied Logistic Regression. New York: Wiley.
Miller, G. and Chapman, J. (2001). Misunderstanding analysis of covariance. Journal of
Abnormal Psychology, 110(1), 40–48.
Senn, S. (2006). Change from baseline and analysis of covariance revisited. Statistics in
Medicine, 25(24), 4334–4344.
Hand, D., Daly, F., McConway, K. and Ostrowski, E., editors (1993). A Handbook of Small
Data Sets. Chapman & Hall. Data set 285, p. 229.
ConTEXt version 2012.05.30 11:26, R version 2.15.2 (2012-10-26), 06-linmod.tex 2fbe539 on 2012/11/06
Téléchargement