Universit´e de Strasbourg S´egolen Geffray
M2 Statistique geffray@math.unistra.fr
Mod`eles lin´eaires g´en´eralis´es Ann´ee 2020/2021
TP : Mod`ele lin´eaire (mixte) et mod`ele lin´eaire g´en´eralis´e (mixte)
Ces exercices seront effectu´es au moyen du logiciel R.
Exercice 1.
Notons β le vecteur des param`etres de r´egression `a estimer dans le cadre d’un mod`ele GLM et βbson estimateur.
1. D´ecrire le sc´enario de simulations de Monte-Carlo permettant d’illustrer la convergence asymptotique de βbvers β dans le cadre de l’ajustement
(a) d’un mod`ele gaussien, (b) d’un mod`ele de Poisson,
(c) d’un mod`ele logistique binaire,
lorsque le mod`ele propos´e s’adapte bien aux donn´ees. Mettre en oeuvre.
2. D´ecrire le sc´enario de simulations de Monte-Carlo permettant de comparer le comporte- ment des diff´erents types de r´esidus introduits en cours dans le cadre de l’ajustement (a) d’un mod`ele gaussien,
(b) d’un mod`ele de Poisson, (c) d’un mod`ele logistique binaire.
Mettre en oeuvre.
3. D´ecrire le sc´enario de simulations de Monte-Carlo permettant d’illustrer la robustesse du mod`ele dans le cadre
(a) d’un mod`ele gaussien, (b) d’un mod`ele de Poisson,
(c) d’un mod`ele logistique binaire.
Mettre en oeuvre.
Vous veillerez notamment `a
— faire varier n, la taille de l’´echantillon,
— ´etudier l’impact d’´eventuelles interactions,
— ´etudier l’impact d’´eventuelles transformations des pr´edicteurs quantitatifs,
— ´etudier l’impact du nombre de pr´edicteurs,
— ´etudier l’impact de l’inclusion de pr´edicteurs superflus,
— ´etudier l’impact d’une ´eventuelle colin´earit´e entre pr´edicteurs,
— ´etudier l’impact du choix de la fonction de lien.
Pensez ´egalement `a quantifier votre analyse au moyen de crit`eres objectifs tels que biais empi- rique, ´ecart-type estim´e, probabilit´e de couverture dans le cas d’intervalles de confiance, erreurs de type I et II dans le cas de tests.
Exercice 2.
Analyser les donn´ees contenues dans les jeux de donn´ees suivantes : gala (faraway), variable r´eponse : Species
SwissLabor (AER), variable r´eponse : participation RecreationDemand (AER), variable r´eponse : trips heart.data (glmpath), variable r´eponse : y
pulp (faraway), variable r´eponse : bright
Penicillin (lme4), variable r´eponse : diameter (`a ne pas confondre avec le jeu de donn´ees peni- cillin du package faraway)
sleepstudy (lme4), variable r´eponse : Reaction gasoline (pls), variable r´eponse : octane
savings (faraway), variable r´eponse : savings
De nombreux autres jeux de donn´ees disponibles sans la distribution de R peuvent aussi servir d’entrainement :
dicentric (faraway), variable r´eponse : ca swiss (datasets), variable r´eponse : Fertility
esoph (datasets), variable r´eponse : nombre de cas de cancers rock (datasets), variable r´eponse : perm
mtcars (datasets), variable r´eponse : mpg attitude (datasets), variable r´eponse : rating prostate (faraway), variable r´eponse : lpsa teengamb (faraway), variable r´eponse : gamble bliss (faraway), variable r´eponse : statut =dead/alive hormone (faraway), variable r´eponse : orientation solder (faraway), variable r´eponse : skips
dvisits (faraway), variable r´eponse : doctorco wafer (faraway), variable r´eponse : resist mammalsleep (faraway), variable r´eponse : pdr eggs (faraway), variable r´eponse : Fat
abrasion (faraway), variable r´eponse : wear vision (faraway), variable r´eponse : acuity ctsib (faraway), variable r´eponse : stable epilepsy (faraway), variable r´eponse : seizures cake (lme4), variable r´eponse : angle
cbpp (lme4), variable r´eponse : incidence yarn (pls), variable r´eponse : density
Quelques fonctions utiles et quelques recommandations
Pour ajuster un mod`ele de r´egression lin´eaire, utiliser lm(formula,data)
Supposons que Y, X1, X2 et X3 sont des variables quantitatives (donc du type numeric), A est une variable qualitative (donc du type factor). Voici quelques formules possibles pour ´ecrire un mod`ele lin´eaire.
Y∼X1 r´egression lin´eaire simple avec intercept implicite
Y∼1+X1 r´egression lin´eaire simple (identique au pr´ec´edent) avec intercept explicite Y∼-1+X1 r´egression lin´eaire simple sans intercept
Y∼0+X1 r´egression lin´eaire simple sans intercept (identique au pr´ec´edent) Y∼X1-1 r´egression lin´eaire simple sans intercept (identique au pr´ec´edent) log(Y)∼X1+X2 r´egression lin´eaire multiple sur log(Y) (avec intercept implicite) Y∼X1*X2 r´egression lin´eaire multiple avec interaction d’ordre 2
Y∼X1*X2*X3-X1:X2:X3 r´egression lin´eaire multiple avec interaction d’ordre 2
Y∼(X1+X2+X3)b2 r´egression lin´eaire multiple avec interaction d’ordre 2 (identique au pr´ec´edent) Y∼A analyse de la variance `a un crit`ere de classification
Y∼A+X1 analyse de la covariance
Y∼X2%in%X1 r´egression lin´eaire avec 2 covariables,X2 ´etant emboit´ee dansX1
L’ajustement d’un mod`ele GLM au moyen du logiciel R se fait au moyen de l’instruction sui- vante :
glm(y~x,family=myfamily(link=’’mylink’’),data=mydata)
o`u y d´esigne le vecteur du dataframe mydata contenant la r´eponse des n sujets, x d´esigne le vecteur du dataframe mydatacontenant le pr´edicteur desnsujets, myfamilyest `a choisir parmi gaussian, binomial,poisson, Gamma etinverse.gaussian.
Avec le choix gaussian, les fonctions de lien sont `a choisir parmiidentity, loget inverse.
Avec le choixbinomial, les fonctions de lien sont `a choisir parmi logit,probit,cauchit,log et cloglog.
Avec le choix poisson, les fonctions de lien sont `a choisir parmilog,identity etsqrt.
Avec le choix Gamma, les fonctions de lien sont `a choisir parmiinverse, identityet log.
Avec le choix inverse.gaussian, les fonctions de lien sont `a choisir parmi 1/mu^2, identity, log etinverse.
Pour des donn´ees de proportion (qui ne sont pas dans le continuum [0; 1] mais qui sont is- sues d’un mod`ele binˆomial), l’ajustement d’un mod`ele GLM binˆomial (avec la fonction de lien canonique) au moyen du logiciel R se fait au moyen de l’instruction suivante :
glm(y~x, family=binomial(link=’’logit’’), weights=myN, data=mydata)
o`u myNd´esigne le vecteur du dataframe mydata contenant les poids Ni pouri= 1, ..., n.
set.seed (base) permet de r´ealiser des simulations reproductibles read.table / scan importe les donn´ees
str (utils) donne la structure d’un jeu de donn´ees
head (utils) permet de voir les premi`eres lignes d’un jeu de donn´ees rmvnorm (mvtnorm) simule des vecteurs gaussiens
xtabs (stats) r´ealise des tables de contingence scatter.smooth (stats) fournit des trac´es exploratoires scatterplotMatrix (car) fournit des trac´es exploratoires
ggPairs (GGally) idem avec estimation des coefficients de corr´elation lin´eaire pairs (graphics) trace les covariables 2 par 2
boxcox (MASS) transformation de Box-Cox dans le cas d’un LNM bcPower (car) transformation de Box-Cox, Yeo-Johnson ou puissance lm (stats) ajuste un mod`ele de r´egression lin´eaire gaussien standard gls (nlme) =lm.gls (MASS) ajuste un LNM par moindres carr´es g´en´eralis´es
glm (stats) ajuste un mod`ele de r´egression lin´eaire g´en´eralis´e
glm2 (glm2) similaire `a glm mais plus stable en mati`ere de convergence de l’algorithme d’estimation
geeglm (geepack) similaire `a glm avec “family=quasi” `a ceci pr`es que la m´ethode anova est ici disponible
glm.nb (MASS) ajuste un mod`ele de r´egression binomial n´egatif summary (base) renvoie les r´esultats de l’ajustement du mod`ele model.matrix (stats) renvoie la matrice exp´erimentale
deviance (stats) renvoie la d´eviance du mod`ele
logLik (stats) renvoie la log-vraisemblance du mod`ele
confint (stats) d´etermine un IC pour chaque coefficient d’un LNM confint (MASS) d´etermine un IC pour chaque coefficient d’un GLM shapiro.test (stats) effectue un test de Shapiro-Wilk
ks.test (stats) effectue un test de Kolmogorov-Smirnov qqPlot (car) effectue un QQ-plot avec bandes de confiance
qqnorm (stats) effectue un QQ-plot
qqline (stats) ajoute `a un QQplot une droite qui passe par les 1ers et 3`emes quartiles
influence.measures (stats) effectue un diagnostic d’individus influents hatvalues (stats) =hat (stats) renvoie les leviers
cooks.distance (stats) =cookd (car) calcule la distance de Cook
dffits (stats) calcule les dffits
dfbetas (stats) calcule les dfbetas
covratio (stats) calcule le covariance ratio
vif (car) calcule le variance inflation factor
coeftest (lmtest) effectue des tests z et (quasi-)t sur les coefficients anova (stats) comparaison de deux mod`eles emboit´es avec un F-test waldtest (lmtest) effectue un test de Wald pour mod`eles emboit´es dwtest (lmtest) effectue un test de Durbin-Watson
bgtest (lmtest) effectue un test de Breusch-Godfrey
bptest (lmtest) test d’h´et´erosc´edasticit´e de Breusch-Pagan
leveneTest (car) test d’homog´en´eit´e des variances entre diff´erents groupes linearHypothesis (car) effectue des tests lin´eaires d’hypoth`eses
outlierTest (car) test d’outliers de Bonferroni sur les residus studentis´es chisq.out.test (outliers) test d’outlier dans un vecteur de donn´ees
NB : rejette seulement les outliers extremes
crPlots (car) effectue un trac´e des r´esidus partiels avPlots (car) effectue un trac´eadded-variables plot ceresPlots (car) effectue un trac´e des r´esidus CERES residuals (stats) renvoie les r´esidus de base
rstandard (stats) renvoie les r´esidus standardis´es d’un LNM rstudent (stats) renvoie les r´esidus studentis´es d’un LNM residualsAnscombe (wle) renvoie les r´esidus d’Anscombe
= anscresid (modtools)
qresiduals (statmod) calcule les r´esidus quantiles randomis´es
modplot (modtools) effectue le trac´e de plusieurs graphiques utiles pour l’´evaluation de l’ad´equation
dispersiontest (AER) effectue un test de surdispersion halfnorm (faraway) effectue un halfnormal plot
pseudoR2 (modtools) calcule le pseudo R2 de McFadden
Rsq.glm (binomTools) calcule un pseudoR2 pour mod`eles binomiaux
AIC (stats) renvoie l’AIC du mod`ele
stepAIC (MASS) ou step (stats) proc`ede au choix automatique des covariables
HLtest.Rsq (binomTools) effectue un test d’ajustement du mod`ele de r´egression binomial negbin (aod) ajuste un mod`ele de r´egression binˆomial n´egatif
vglm (VGAM) permet d’ajuster des mod`eles de r´egression de Poisson et binomial n´egatifs tronqu´es
zeroinfl (pscl) ajuste un zero-inflated model hurdle (pscl) ajuste un mod`ele de Hurdle ncvTest (car) test d’h´et´erosc´edasticit´e xyplot (lattice) trac´e en treillis
dotplot (lattice) trac´e en treillis
lme (nlme) ou lmer (lme4) ajuste un mod`ele lin´eaire gaussien mixte glmer (lme4) ajuste un mod`ele lin´eaire g´en´eralis´e mixte
glmmPQL (MASS) ajuste les GLMM au moyen de la technique PQL fixef (lme4) estimation des effets fixes dans un mod`ele mixte ranef (lme4) pr´evision des effets al´eatoires dans un mod`ele mixte VarCorr (lme4) estime les composantes de la variance d’un mod`ele mixte princomp (stats) d´etermine les composantes principales
lm.ridge (MASS) effectue une r´egression ridge
linear.pls (plsdof) ajuste un mod`ele de r´egression PLS plsr (pls) ajuste un mod`ele de r´egression PLS
pcr (pls) = pcr (plsdof) ajuste un mod`ele de r´egression sur composantes principales lars (lars) solveur de la r´egression LASSO
glmnet (glmnet) ajuste un GLM avec m´ethode de LASSO ou elastic net
Utilisation du package sandwich : coeftest(model,vcov= vcovHC)
coeftest(model,vcov= vcovHC(model, type="HC4") coeftest(model,vcov= vcovHAC(model))
coeftest(model,vcov= NeweyWest(model)) avec
vcov (sandwich) renvoie la matrice de variance estim´ee (na¨ıve)
vcovHC (sandwich) renvoie la matrice de variance estim´eeheteroskedasticity-consistent vcovHAC (sandwich) renvoie la matrice de variance estim´ee
Heteroskedasticity and Autocorrelation Consistent NeweyWest (sandwich) renvoie la matrice de variance estim´ee
Heteroskedasticity and Autocorrelation Consistent, version Newey-West
lowess r´egression par polynˆomes locaux pour la r´egression simple avec erreur gaussienne
lowess = locally weighted scatterplot smoother
loess r´egression par polynˆomes locaux pour la r´egression multiple avec erreur gaussienne
smooth.spline estimation par spline de la r´egression simple
locfit (locfit) r´egression non-param´etrique g´en´eralis´ee estim´ee par vraisemblance locale (dont loess est un cas particulier) ; Loader (1999)
gam (gam) mod`ele g´en´eralis´e additif ajust´e par spline ou vraisemblance locale GAM = generalized additive model, Hastie & Tibshirani (1990) gam (mgcv) mod`ele g´en´eralis´e additif dont le param`etre de lissage est choisi
par validation crois´ee