View
6
Download
0
Category
Preview:
Citation preview
Programmation dans R 2016-17
Programmation dansM2 CEE
Pr. Philippe Polomé, Université Lumière Lyon 2
2016 – 2017
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régressions linéaire
Outline
Ch 2. Régression Linéaire & ExtensionsRégressions linéaireFactors, interactions, splinesMoindres Carrés PondérésDiagnostics de régressionRégression Quantile
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régressions linéaire
Commandes de base de régression dans RI Le Modèle de Régression Linéaire MRL
yi = x
0i � + ✏i
avec i = 1...nI En forme matricielle y = X� + ✏I Hyp. typiques en coupe-transversale (cross-section)
I E (✏|X ) = 0 (exogénéité)I Var (✏|X ) = �2
I (“sphericité” : homoscédasticité & pasd’autoc.)
I Dans R, les modèles sont usuellement estimés en appelant unefonction
I Pour le MRL (en coupe) : fm <- lm(formula, data,...)I L’argument ... remplace une séries d’arguments
I de description du modèleI ou de choix de mode de calcul (algorithme)I optionnels
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régressions linéaire
Commandes de base de régression dans R
I La fonction renvoie un objet
I Ici : le modèle ajusté, stocké sous le nom fmI Peut être imprimé, visualisé (graphe) ou résumé
I On peut calculer sur cet objet :I Prédictions, résidus, tests & divers diagnostics postestimations
I La plupart des commandes d’estimation marchent de la mêmemanière
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régressions linéaire
SWIRL
I Faites le cours « Regression Models » dans SwirlI Lessons 1-6
I Les autres : + tardI diapos disponibles en ligne, je pense qu’on peut faire sansI Concentrez-vous sur le code, l’ectrie est connueI Pensez à fermer les fichiers ouverts à la lesson précédente
1. “Introduction”I une phrase à retenir « A coefficient will be within 2 standard
errors of its estimate about 95% of the time »2. “Residuals” est assez difficile (lecture +
programmation+concepts)I Permet d’expliquer les bouclesI Oblige a relire des commandes antérieuresI Attention d’exécuter le program res_eqn.r qd il se montre
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régressions linéaire
SWIRL
3. “Least Squares Estimation” – RAS4. Introduction to Multivariable Regression
I Installer manipulate au préalableI Je ne suis pas très sûr de la stabilité de cette lessonI Ne pas éditer la fonction myplot qui apparaitI Attention cor(gpa_nor, gch_nor) va être 6= �, SWIRL attend
=, bug
5. “Residual Variation”I “Gaussian elimination” montre qu’une régression à k variables
I peut être vue comme une succession de k régressions à 1variable
I mais ne pas prendre cela comme une manière de sélectionnerles résultats
6. “MultiVar Examples” – RAS
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Outline
Ch 2. Régression Linéaire & ExtensionsRégressions linéaireFactors, interactions, splinesMoindres Carrés PondérésDiagnostics de régressionRégression Quantile
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Factors
I Factors sont des vecteurs catégoriquesI avec de la métadonnée
I p.e. nom des catégoriesI g <- rep(0 :1, c(2,4))I g <- factor(g, levels=0 :1, labels=c("male", "female"))
I Nomme les catégories (0,1) de g en “Male”(=0), “Female”I donc g est [1] male male female female female female
I SWIRL Cours « Regression Models »I lesson 7 : “MultiVar Examples2”
I BD : Plots pour le BoxPlotI sapply : utilisez help en BD
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Régression linéaire multiple avec facteurs : Équation desalaire
I L’objectif de cet exemple est de montrer diverses utilités de RI servant à transformer & combiner les régresseurs
I Jeu de données : cps1988 préchargéI Enquête de pop. mars 1988 du US Census BureauI 28 155 obs. en coupe transv.
I hommes de 18-70 ans,I revenu > US$ 50 en 1988I pas auto-employé et ne travaillant pas sans salaire
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
data("CPS1988")
I summary(CPS1988)I Cardinales
I wage $/semaineI education & experience (=age-education-6) en années
I Catégoriques (factors)I ethnicity vaut caucasian “cauc” & african-american “afam”I smsa résidence en zone urbaineI regionI parttime travail à mi-temps
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Équation de salaireI Modèle :
log (wage) = �1
+�2
exp+�3
exp
2+�4
education+�5
ethnicity+✏
cps_lm<-lm(log(wage)~experience+I(experience^2)+education+ethnicity, data=CPS1988)
I “Insulation function” I( )I permet que ^2 soit compris par R comme le carré de la
variableI sinon, R n’est pas sûr de ce qu’on dire et retire experience^2
I c’est + clair avec une formule y ~ a + (b+c)I Est-ce qu’il y 2 variables à droite : a et (b+c) ou 3 ?I Pour clarifier on écrit y ~ a + I(b+c)
I summary(cps_lm)I Remarquez que le rendement de l’éducation est 8.57%/annéeI Les variables catégoriques sont gérées automatiquement par R
I qui choisit la cat. de référence
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Comparaison de modèles anidés (nested)
I Tables Anova (Anaylis of Variance)I Régression + contrainteI cps_noeth<-lm(log(wage)~experience+
I(experience^2)+education, data=CPS1988)I Habituellement, le test porte sur + d’une variable
I anova(cps_noeth,cps_lm)I Plus de 2 modèles peuvent être passés à anova
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Interactions
I Effets combinés de régresseursI p.e. en travail, effet combiné d’éducation & ethnicité
I Capturé par des termes multiplicatifs
I Soit a, b, c des factorsI donc chacun avec pls niveaux discrets
I et x, y des variables continues (cardinales)
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Différents modèles à interactionsI y~a+x : pas d’interaction
I une seule pente mais le factor induit un intercept par niveauI y~a*x : même modèle que le précédent
I plus un terme d’interaction pour chaque niveau (variabledichotomique) de a et de x (différentes pentes)
I Dans une notation plus conventionnelle, avec dai = I (a = i) :
[y ⇠ a ⇤ x ] ⌘"
y = �ai
X
i
dai + �aixX
i
dai
#
I y~(a+b+c)^2I modèle avec toutes les interactions à 2 variables
I mais pas à 3I Donc, autant de dichotomiques que le nombre de
dai�bj = I (a = i ^ b = j) pour a & bI et pareillement pour a & c et c & b
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
SWIRL
I “Regression Models”I Lesson 8 : MultiVar Examples3
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Interactions éq. de salaire : ethnicité & éducationI cps_int<-lm(log(wage)~experience+I(experience^2)
+education*ethnicity, data=CPS1988)I Un seul des “+” de cps_lm a été remplacé par *
I coeftest(cps_int)I Une version + compacte de summary( )
I La régression donne les effets de education & ethnicityI appelés “principaux” – main effectsI et le produit de education et d’un idicateur pour le niveau
“afam” de ethnicityI afam a un effet nég. sur l’intercept
I moindre salaire moyen pour les african-americanI et sur la pente de education
I moindre rendement de education pour les african-americanI L’effet est assez faible
I car une significativité à 5% dans un éch. de près de 30 000individus est peu
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Régressions partiellement linéaires
I Les termes quadratiques sont courants en régressions,I Mais la taille de CPS1988 peut permettre des outils +
flexibles, p.e.
log (wage) = �1+g (experience)+�2education+�3ethnicity+✏
g est une fonction inconnue à estimerI Les splines peuvent servir à cela
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Splines
I Un spline est un polynome continu par morceau
I qui relie x et yI Polynome : linéaire, quadratique, cubique...
I Souvent cubiqueI Continu par morceau veut dire
I Les coefficients du polynome peuvent différer dans différentesrégions du plan (x , y)
I Les différents “morceaux” polynome soint joints à des noeuds
(knots)I Donc, en régression, un spline, pour un certain régresseur veut
dire queI L’effet de ce régresseur sur y est modélisé à l’aide d’un
polynome
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Splines : représentation graphique
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Factors, interactions, splines
Régressions partiellement linéairesI Dans R, les splines font partie de la distribution de base
I Pas besoin de les charger spécifiquementI Pls types existent, on a vu les B-splines
I Ils sont pratiques : on choisi le degré du polynomeI Les noeuds sont équidistants
I 2 noeuds =) 3 régionscps_plm <- lm(log(wage)~bs(experience, df=5)+education+ethnicity, data=CPS1988)
I Les coefficients du spline n’ont pas bcp d’interprétation,I mais les autres gardent leur sensI p.e. rendement de education = 8.82%/année avec cette
spécificationI L’expression bs(experience, df=...) implique par défaut un
polynome de degré 3I On écrit df=5 qui définit implicitement le nombre de noeuds à
5-3=2
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Moindres Carrés Pondérés
Outline
Ch 2. Régression Linéaire & ExtensionsRégressions linéaireFactors, interactions, splinesMoindres Carrés PondérésDiagnostics de régressionRégression Quantile
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Moindres Carrés Pondérés
Moindres Carrés Pondérés (Weighted Least Squares)
I MCP est une réponse classique à l’hétéroscédasticitéI Alors que MCO donne un poids 1 à toutes les obs.I MCG est équivalent à pondérer chaque obs. par la variance de
l’erreurI Supposons que la variance de l’erreur dépende d’une variable z
E
�
✏2i |xi , zi�
= g
⇣
z
0i �⌘
g : une fonction à valeurs positivesI Souvent on suppose E
�
✏2i |xi , zi�
= �2
z
2
iI Alors, si le modèle original est yi = �1 + �2xi + ✏iI Les variables transformées sont yi/zi et xi/ziI On passe zi à R par un argument weight
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Moindres Carrés Pondérés
Moindres Carrés Pondérés (Weighted Least Squares)
I Illustration avec données Journals vues + tôt
data("Journals", package = "AER")Journals$citeprice <- Journals$price/Journals$citationsjour_wls1 <- lm(log(subs)~log(citeprice), data=Journals, weights=1/citeprice^2)
jour_wls2 <- lm(log(subs)~log(citeprice), data=Journals, weights=1/citeprice)jour_lm <- lm(log(subs)~log(citeprice), data=Journals)plot(log(subs)~log(citeprice), data=Journals)abline(jour_lm)abline(jour_wls1, lwd=2, lty=2)abline(jour_wls2, lwd=2, lty=3)legend("bottomleft", c("OLS", "WLS1", "WLS2"), lty=1 :3,lwd=2, bty="n")
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Moindres Carrés Pondérés
Moindres Carrés Pondérés (Weighted Least Squares)I La plupart du temps, la forme de l’hét. est inconnue
I On fait une hyp. linéaire dont on estimer les paramètresI p.e. E
�✏2i |xi
�= exp (�
1
+ �2
log (xi ))
I En pratique1. estimer le modèle original yi = �1 + �2xi + ✏i2. calculer les résidus ✏i = yi � �1 � �2xi3. régresser ln
�
✏2i�
= �1 + �2log (xi ) + µiI appelé “régression auxiliaire”
4. 1/p
exp (�1 + �2log (xi ))appelé p.e. wi est passé commel’argument weight
I Ne pas oublier que misspécifier Het peut faire pire que bienI MCO inefficient mais consistantI MCP/MCG efficient si correctement spécifié mais sinon peut
être inconsistantI Exercice : appliquer aux données Journals
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Outline
Ch 2. Régression Linéaire & ExtensionsRégressions linéaireFactors, interactions, splinesMoindres Carrés PondérésDiagnostics de régressionRégression Quantile
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Diagnostics de régressionI Même en l’absence de collinéarité ou d’autres problèmes
évidents de donnéesI il est utile d’examiner les données pour 2 raisons
1. identifier les outliers (données “aberrantes”)2. identifier les obs. influentes, s’il en est
I La limite entre aberrant & influent n’est pas netteI Une donnée aberrante n’est pas forcément influente (voir
SWIRL)
I L’identification de ces données peut alors enclencher une étude+ poussée
I La matrice de projection s’utilise pour des diagnosticsI dite aussi matrice chapeau
P = X
⇣
X
0X
⌘�1
X
0
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Diagnostics de régressionI 8y , Py est le vecteur de valeurs ajustées de la régression MC
de y sur X :
Py = X
⇣
X
0X
⌘�1
X
0y = X �
I Si on écrit M = I � P , les résidus MC sont
✏ = y�y = (I � P) y = (I � P) (X� + ✏) = X��PX�+(I � P) ✏
donc ✏ = (I � P) ✏
I L’espérance de la matrice de covariance des résidus MC est
E
⇣
✏✏0⌘
= E
⇣
(I � P) ✏✏0(I � P)
⌘
= �2 (I � P)
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Diagnostics de régressionI Pour identifier les résidus qui sont significativement grands
I Calculer les résidus standardisés
ei =✏i
[s2 (1 � pii )]1/2
où s
2 = ✏0✏/ (n � k)
I On peut montrer que
✏i/ (1 � pii ) = yi � Xib(i)
où b(i) l’estimation MC de � sans l’observation i
I Intuitivement, si ce résidu est trop grand p/r aux autres, obs i
est influente ou aberranteI En divisant par s2 ou s(i)2, on remet tous les cas à la même
échelleI Il est suggéré que 2 est un bon benchmark
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
SWIRL
I cours « Regression Models » dans SwirlI Lesson 9 : “Residuals Diagnostics and Variation”
I La suite de cette section du coursI reprend les concepts de la lessonI un peu plus formellement
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Diagnostics de régression
I Pour une autre illustrationI data “PublicSchools” du package sandwich préchargé avec
AERI données per capita sur les dépenses pour les écoles publiques
& le revenu (income)I par US states en 1979
I Attention au mode de financement des écoles publiques auxUSA
I Principalement publicI + 1 part subtantielle privéeI Assez bien comme les écoles privées en France
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Instructions R
data("PublicSchools", package = "sandwich")summary(PublicSchools)ps<-na.omit(PublicSchools)
I omettre les obs avec des na (données manquantes)ps$Income<-ps$Income/10000
I changer l’échelle de revenu pour les plotsplot(Expenditure~Income, data=ps)ps_lm<-lm(Expenditure~Income, data=ps)abline(ps_lm)id<-c(2,24,48)
I crée un petit vecteur d’obs intéressantes
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Diagnostics de régression
text(ps[id, 2 :1], rownames(ps)[id], pos=1, xpd=TRUE)I Nomme les données du vecteur précédent
I Cette commande n’est pas facile car la position du texteautour du point doit être précisée
I Cette position se trouve dans ps[id, 2 :1] oùI id indique les numéros des obs. qui doivent être nomméesI 2 :1 est ce qui indique la position du texte autour du point
I Pas de mode d’emploi bien clair
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Diagnostics de régression
I Le plot résultant montre qu’il y a une corrélation positive entreIncome et Expenditure
I mais Alaska pourrait être une obs. dominante car elle est loinde la masse des données
I Washington DC & Mississippi pourraient aussi être dominantesI La droite de régression pourrait être influencée par ces points
I Cela pourrait indiquer que ces états suivent des règles 6= debudget
I p.e. on peut imaginer que les coûts de transport en Alaskasont + importants, justifiant d’autres politiques
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Diagnostics de régression
I Lorsque la fonction plot( ) est appliquée à un objet lmI l’option “which = 1 :6” retourne 6 plots de diagnosticsI plot(ps_lm, which = 1 :6)I par défaut “which” retourne les plots 1, 2, 3, 5
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Plot 1 “residuals versus fitted”I permet de repérer des résidus anormalement grandsI montre si les résidus ont un comportement non-linéaireI Les plots présentés ne correspondent pas aux données du
AE2016.rI il s’agit d’exemples
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Plot 2 “QQ plot”I les résidus vs. une normale idéale
I si les résidus dévient subtantiellement de la diagonale, il nesont pas normaux
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Plot 3 “Scale location”I résidus standardisés
p
|ri | vs. valeurs ajustées (fitted)I montre si les résidus sont répartis également autour des valeurs
ajustéesI Idéalement, on voit une ligne horiz. avec les résidus bien
répartisI sinon, on peut soupçonner de l’hétéroscédasticitéI en général : identiquement distribués
I des valeurs dep
|ri | > 2 sont supectesI on espère 1 si le modèle est correct
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
3 autres plots
I Plot 4 “Cook’s distance”I Plot 6 “Leverage against Cook’s distance”I Plot 5 “Standardized residuals against leverage”
I Le “leverage” d’une obs est piiI l’élément diagonal de la matrice chapeau P
I Comme var (✏i |X ) = �2 (1 � pii ), un grand leverage est associéà une petite variance
I Plot 5 aide à repérer les obs influentes par opposition à desoutliers
I On cherche les obs qui s’approchent des coins droits du plot,hors des lignes pointillées (distance de Cook)
I Alaska se fait remarquer, mais aussi, dans unemoindre mesure,Nevada et Washington DC
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Plot 5 “Standardized residuals against leverage”
Case 1 : pas d’obs. influentes – Case 2 : obs. 49
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Function R influence.measures( )I
5 diagnostics d’élimination obtenus en retirant une obs. dela régression
I �(i) est le vecteur de paramètres estimés sans l’obs. iI idem pour �(i) et y(i) = X �(i)
I DFBETAi = � � �(i)I DFFIT = yi � yi,(i)I CovRatioi
I déterminant de la mat. de var-cov des �(i) divisé déterminantde la mat. de var-cov des �
ID
2i =
(y�y(i))T (y�y(i))
k�2 distance de CookI variance de DFFIT relativement à la variance totale
I Hat InfI + petit élément de la diag de la matrice chapeauI indique le + grand leverage
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Diagnostics de régression
Diagnostics de régression
influence.measures(ps_lm)I retourne une matrice 6x50 array
I 1 col par coef + 5 stat, par obs.I marque les obs. influentes
I À ne pas faire avec trop de données
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Outline
Ch 2. Régression Linéaire & ExtensionsRégressions linéaireFactors, interactions, splinesMoindres Carrés PondérésDiagnostics de régressionRégression Quantile
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Motivation : Techniques de régression robustesI MC peut être assez influencé par peu d’obs.
I C’est peut-être encore + vrai pour Logit car la distributionlogistique a des queues épaisses
I Si l’échantillon est très grand, des dizaines de milliers d’obs,cette discussion est - importante
I p.e. en financeI Les diagnostics comme on a vu (“leave-one-out”) ne sont pas
très bons pour détecter pls outliersI Les graphiques ne marchent bien que si l’on est assez sûr des
regresseurs / de la forme fonctionnelleI ces condidérations ont amené à proposer des estimateurs
“robustes” ou “résistants”I qui sont peu ou pas affectés par des outliers
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
1. Régression Résistante
I Estimateur Least Trimmed Squares (LTS)I MC après retrait des outliers (sous-échantillon)I moindres carrés “élagués” ?
I Les outliers sont définis comme correspondant à un certainquantile des plus grand résidus / leverages
I après une première estimation MCO sur tout l’échantillonI LTS ne fait pas sens sur une série temporelle
I et pas bcp sens dans un groupe homogène, p.e. de paysI Le modèle ne s’applique-t-il que certaines années ou à certains
pays ?
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
2. Régression Moindres déviations absolues
I Autre régression robuste : Least Absolute Deviation (LAD)estimator :
minb
nX
i=1
�
�
�
yi � X
0i b
�
�
�
“Moindres Écarts Absolus” ?I Plusieurs autres noms similaires
I LAD est + vieux que MCOI mais n’a été vraiment appliqué qu’à partir de années 2000
pour des questions de puissance de calculI LAD est un cas particulier de régression quantile
I Prochaine diapo
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
3. Régression QuantileI En général, on cherche �q t.q.
Prn
yi X
0i �q
o
= q
I Lorsque q = 0.5, c’est la régression médiane
I Trouver �median t.q. la moitié des obs. yi sont + grandes queleur valeur prédite Xi �median
I Même chose que LADI Donc, si on choisit 1 obs au hasard (proba 1/n)
I Il y a 50% chance qu’elle soit + grande que sa valeur préditeI On voit que c’est + ordinal que MC
I “+ grand” simplementI de combien n’importe pasI et donc les outliers n’ont pas plus de poids que n’importe
quelle obsI Lorsque q est quelconque, on passe aux quantiles
I prochaine dia
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Rappel : Quantiles d’une Population
I Pour une v.a. continue y
I Le q
emequantile population est la valeur µq t.q. y µq avec
proba q
I Donc q = Pr [y µq] = Fy (µq)I
Fy est fonction de distribution (fonction de densité cumulative- cdf) de y
I Pour le modèle de régressionI Le q
emequantile population de y conditionnellement à X
I est la fonction µq (X ) t.q. y conditionnel à X (l’erreur aufinal) est à µq avec proba q
I la proba est évaluée en utilisant la distribution de y
conditionnelle à X
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Quantiles de l’échantillon
I Pour une v.a. y , on a un échantillon {y1
, . . . , yn}I L’estimation du quantile de µq sur base de l’échantillon est la
[nq]eme plus petite valeur de l’échantillon
I autrement dit, on ordonne du + petit au + grandI on prend l’observation yi qui se trouve en position n ⇥ q
I notée µq
I où n est la taille de l’échantillonI [nq] indique nq arrondi à l’entier supérieur le + proche
I p.e. pour le quartile inférieur µ1/4, q = 1/4
I dans un échantillon de taille n = 97I l’estimateur est la 25ème obs. de l’échantillon
I car 97 ⇥ 1/4 = 24.25 arrondi à l’entier sup. = 25
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Quantiles de l’échantillonI Le q
eme quantile de l’échantillon µqI peut être exprimé comme la solution de la minimisation
suivante p/r �n
X
i :yi��
q|yi � �|+n
X
i :yi<�
(1 � q)|yi � �|
I Ce résultat peut être étendu à la régression linéaire :I l’estimateur régression du q
eme quantile est le vecteur �q quiminimies sur �q
nX
i :yi�X0i �q
q|yi � X
0i �q|+
nX
i :yi<X0i �q
(1 � q)|yi � X
0i �q|
I Interprétation : l’estimateur partitionne l’échantillon entreI une part q des prédictions + petites que les obsI et une autre part (1 � q) + grandes
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Régression Quantile
I Différents choix de q mènent à différentes estimations de �qI
q = 0.5 mène à la régression médianeI La fonction objectif qu’on vient de voir n’est pas
différentiableI On ne peut pas calculer de dérivéeI Des méthodes de programmation math type Kuhn-Tucker,
optimisation sous contraintes d’inégalité, sont employéesI Donc pas de solution explicite pour �q
I Il a été montré queI �q est consistant pour �q et asymp. normalI sa matrice de var-cov est compliquée
I et peut être estimée par bootstrap (+ loin)
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Interprétation des résultats d’une régression quantile
I Se rappeler que �q est t.q. Prn
yi X
0i �q
o
= q
I Donc : pas la même chose que “� t.q. yi = X
0
i � + ✏i ”I Cependant, µq = yq = X
0�q
I Interprétation similaire à MC dans le sens où �q reflète unchangement de X sur µq
I µq étant la valeur espérée du quantile q de y
I Puisque �q est généralement différent pour différents q
I L’effet d’un régresseur peut changer selon les niveaux de y
I p.e. l’élasticité revenu peut être faible à un bas niveau derevenus et + forte lorsque ce niveau augmente
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Interprétation des résultats d’une régression quantile
I MCO est souvent comparé à la régression médianeI car si la distribution de l’erreur est symmétrique, alors médiane
= moyenneI Les régressions quantiles impliquent qu’en se concentrant sur
la seule moyenne contionnelleI MC donne une image incomplète de la distribution de y
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Régression quantile : Exemple des déterminants du salaire
I Estimation d’un équation de salaireI Données de Berndt 1991
I Sous-échantillon aléatoire d’une coupe transversale,I Mai 1985 “Current Population Survey”, 533 observations
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Régression quantile : les instructions
data("CPS1985", package="AER") to load the dataset, then werename it withcps<-cps1985library(“quantreg”) Loads the quantile regression packagecps_lm<-lm(log(wage)~experience+I(experience^2)+education,data=cps)
I Régression MCOI “Insulation function” comme on a vuI “standard Mincer equation”
cps_rq<-rq(log(wage)~experience+I(experience^2)+education,data=cps, tau=seq(0.2, 0.8, by=0.15))
I Exécute 5 régressions quantiles avec q= 0.2 0.35 0.5 0.65 0.8
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Régression quantile : sortiessummary(cps_rq)
I Summary fonctionne sur la plupart des objetsI 5 régressions, une est la médianeI Présente les coef + plus un IC
I pas de t ou équivalentI Signale des difficultés de l’optimisation
I “solution may be non-unique”summary(cps_rq, se="boot")
I Calcule des t-stat par bootstrapI Va lentement
I Possible de tester via anova( ) si les coefficients sont lesmêmes sur l’ensemble des régressions quantiles
plot(summary(cps_rq))I donne les changements des coefficients des régressions sur les
5 quantilesI avec IC à 90%
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Exemple quantile. PrédictionsI À présent, focus sur les évaluations graphiques des 2
estimateursI On veut calculer les prédictions des 2 estimateurs
I à éducation constante.I D’abord on crée un nouveau dataset :
cps2<-data.frame(education=mean(cps$education), experience=min(cps$experience) :max(cps$experience))
I 2 columnsI la 1º est constante (moyenne de education)I la 2º a toutes les valeurs de experience
I Pour les 2 estimateursI on calcule les prédictions en utilisant predict( )
I format predict(estimateur, nvlle données, options )I et on concatène les résultats dans de nvlles colonnes de cps2
I ensuite on mettra ça dans un plot
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Exemple quantile. Prédictionscps2<-cbind(cps2, predict(cps_lm, newdata=cps2,interval="prediction"))
I Rappel cbind combine des obejts R par colonneI donc on a ajouté les prédictions “fit” du l’estimateur lm aux
nouvelles données cps2,I avec les limites d’intervale à 95% : lwr et upr pour la basses et
la haute respectivementI ceci vient de l’option interval="prediction"
I cps2 a à présent 5 cols :I Moyenne(Educ), experience, prédiction lm, borne inf, borne sup
cps2<-cbind(cps2, predict(cps_rq, newdata=cps2, type=""))I Même chose avec les prédictions de l’estimateur rq
I pas d’intervale de confiance, mais 5 quantilesI type n’est pas vraiment utile ici, mais permettrait de calculer
des IC (par bootstrap)I voir ?predict.rq
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Exemple quantile. Évaluations graphiquesI On visualise les résultats des régressions quantiles dans un
scatterplot de log(wage) vs. experienceI en ajoutant les lignes de régression pour tous les quantiles
(0.2, 0.35, 0.5, 0.65, 0.8)I à la moyenne de education :
plot(log(wage)~experience, data=cps)for(i in 6 :10) lines(cps2[,i]~experience, data=cps2, col="red")
I On ajoute les cols 6 à 10 de cps2 en lignes rouges dans le plotI On pourrait ajouter les lignes une par uneI Utiliser for permet de garder le code + compact
lines(cps2[,3]~experience, data=cps2, col="blue")I prédiction lm, en blue
for(i in 4 :5) lines(cps2[,i]~experience, data=cps2, col="green")I même chose avec les 2 bornes de l’IC de la prédistion lm, en
green
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Exemple quantile. Évaluations graphiques
I Comme il y a 533 observations, bcp sont cachées dans le plotI On ne se rend donc pas compte de la densité des observations
I Ceci peut être résolu en estimant une densité noyau bivariéeI et en faire un plot : la “heatmap” - voir cours np
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Exemple quantile. Évaluations graphiquesI L’estimateur était bkde2D( )
library("KernSmooth")cps_bkde<-bkde2D(cbind(cps$experience, log(cps$wage)),bandwidth=c(3.5, 0.5), gridsize=c(200, 200))
I Pour rappel, bkde2D ne fonctionne pas comme lm( ) or rq( )I il faut extraire les cols pertinentes du dataset cpsI et choisir la bandwidth et la taille de grille où veut la
représentationI chacun doit être défini sur les 2 dimensions (experience &
log(wage))
image(cps_bkde$x1, cps_bkde$x2, cps_bkde$fhat,col=rev(gray.colors(10, gamma=1)), xlab = "experience",ylab="log(wage)")
I c’est la heatmap
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Exemple quantile. Évaluations graphiques
box( )I améliore la présentation
lines(fit~experience, data=cps2)I la ligne de régression
lines(lwr~experience, data=cps2, lty=2)I borne inf de l’IC de la prédiction de la régression lm
lines(upr~experience, data=cps2, lty=2)I borne sup
for(i in 6 :10) lines(cps2[,i]~experience, data=cps2, col="blue")I les prédictions rq
Programmation dans R 2016-17
Ch 2. Régression Linéaire & Extensions
Régression Quantile
Devoir 21. Considérer le dataset CigarettesB de Baltagi (2002)
I Régresser “real per capita consumption” sur “real price” et “realper capita income”
I Toutes les variables en logI Obtenir les diagnostics influence.measures(). Quelles
observations sont influentes ? À quels étatscorrespondent-elles ? Ces résultats sont-ils intuitifs ?
2. En discutant les régressions quantiles, on est resté sur lastandard Mincer equation. Cependant les données CPS1985que nous avons utilisées contiennent d’autres régresseurs, entreautres les factors ethnicity, sector, region, et married.Répliquer notre analyse avec ces factors, discuter vos résultats.
3. Adapter les questions 1 et 2 à un autre dataset, que voustrouvez dans R ou ailleurs.
4. SWIRL cours « Regression Models »I Lessons 12 Binary outcomes & 13 Count outcomes
Recommended