Régression linéaire et analyse de la variance avec R
Objectifs pédagogiques
- Comprendre et savoir mettre en œuvre un modèle de régression linéaire.
- Savoir mesurer la qualité et la performance d’un modèle de régression.
- Comprendre et savoir mener une analyse de la variance à un ou deux facteurs.
Programme détaillé
La formation traite de modèles entrant dans le cadre du modèle linéaire général (GLM), pour modéliser des phénomènes quantitatifs.
Régression linéaire simple 4h
- Point de vue descriptif : méthode des moindres carrés (MCO)
- Point de vue inférentiel : validation et qualité du modèle
- Généralisation du modèle en prévision
- Applications sur cas pratiques
Régression linéaire multiple 10h
- Estimation et validation du modèle
- Sélection de modèles : sélections backward, forward ou stepwise à l’aide des critères AIC, BIC ou Cp de Mallows
- Traitements des variables explicatives qualitatives
- Evaluation de la qualité prédictive d’un modèle
- Applications sur cas pratiques
Analyse de la variance à un facteur 2h
- Le modèle à effets fixes, tests de comparaisons multiples, analyse de la variance non paramétrique
- Applications sur cas pratiques
Analyse de la variance à deux facteurs et plus 2h
- La notion d’interactions
- Utilisation de variables quantitatives et qualitatives dans le cadre du modèle linéaire général (analyse de la covariance)
- Applications sur cas pratiques
Public visé
Data analysts, chargés d’études statistiques
Prérequis
- Connaissances de base en statistiques descriptives (formation Statistiques descriptives avec R).
- Connaissances de base en statistique inférentielle (formation Statistique inférentielle : estimation ponctuelle, intervalle de confiance et test statistique).
- Connaissances de base du logiciel R (formation R initiation).
Approche pédagogique
Calculés à partir de 9 avis recueillis depuis 18/11/2016, lors de 2 sessions de cette formation.
Régression et ANOVA avec R : tout part de la formule
Sous R, régression linéaire et analyse de la variance s’écrivent de la même façon : une formule du type y ~ x1 + x2, passée à la fonction lm(). Cette notation vient de loin, et sa logique explique plusieurs résultats qui surprennent les nouveaux utilisateurs.
Une notation née pour l’analyse de la variance
La syntaxe des formules a été proposée en 1973 par Graham Wilkinson et Caroline Rogers pour décrire les plans d’expérience en analyse de la variance. Elle a été reprise dans le langage S au début des années 1990 (Statistical Models in S, Chambers et Hastie, 1992), puis dans R, et aujourd’hui dans d’autres langages comme Python. a + b ajoute deux effets, a:b désigne leur interaction et a * b les deux à la fois.
modele <- lm(salaire ~ experience + diplome * sexe, data = df)
summary(modele)
predict(modele, newdata = nouveaux, interval = "prediction")
Variables qualitatives : la modalité de référence
Une variable qualitative déclarée comme factor est automatiquement codée en indicatrices. Par défaut, R prend comme référence la première modalité (dans l’ordre alphabétique, sauf indication contraire), alors que la procédure GLM de SAS prend la dernière. Les coefficients affichés diffèrent donc d’un logiciel à l’autre, mais les valeurs prédites sont identiques. relevel() permet de changer la référence.
Le tableau d’analyse de la variance dépend de l’ordre des variables
anova() calcule des sommes de carrés séquentielles (dites de type I) : chaque variable est testée après celles qui la précèdent dans la formule. Sur des données déséquilibrées, changer l’ordre des variables change le tableau. La fonction Anova() du package car (Companion to Applied Regression, de John Fox et Sanford Weisberg) fournit des tests de type II, indépendants de l’ordre :
anova(modele) # type I : dépend de l'ordre des termes
car::Anova(modele, type = 2) # type II
Sélection, comparaisons multiples et non paramétrique
Les outils essentiels sont dans le package stats, installé avec R. step() mène une sélection backward, forward ou stepwise selon l’AIC, ou selon le BIC avec l’argument k = log(n). TukeyHSD() réalise les comparaisons multiples de moyennes après une analyse de la variance ajustée avec aov(), et kruskal.test() en est la version non paramétrique.
step(modele, direction = "both")
TukeyHSD(aov(salaire ~ diplome, data = df))
kruskal.test(salaire ~ diplome, data = df)
Les mêmes formules, avec glm(), servent à modéliser une variable qualitative : voir la classification supervisée avec R.