conomtrie applique avec StataNicolas Couderc1
Dans un temps peut-tre pas trs lointain, on comprendra que pour
former le citoyen efcace, il est aussi ncessaire de calculer, de
penser en termes de moyenne de maxima et de minima quil est
maintenant ncessaire de savoir lire et crire H. G. Wells, Mankind
in the Making, 1903, Chap. 6
IntroductionStata est un logiciel complet permettant lanalyse
statistique et conomtrique, dvelopp par Stata Corporation. Ce
logiciel en est aujourdhui la version 9.1 (une version majeure sort
tous les deux ou trois ans), et existe pour peu prs tous les
systmes dexploitation. Ce petit guide a pour but de vous faire
dcouvrir Stata et de vous donner les bases pour une utilisation
efcace. Il naborde bien videmment quune inme fraction des capacits
de Stata, et prsente simplement les commandes basiques. Pour
approfondir, vous pouvez vous reporter laide incluse dans le
logiciel ou aux manuels. Stata nest pas le seul logiciel dconomtrie
existant. Il en existe en effet plusieurs dizaines. Ils possdent
des capacits diffrentes, sont plus ou moins conviviaux, exibles, et
leur prix peut aller de 0 plusieurs milliers deuros... Il est
frquent de devoir passer dun logiciel un autre, en fonction de
leurs points forts respectifs (les rendements croissants
sappliquent ici, il est en gnral assez simple de passer de lun
lautre). Parmi les logiciels les plus connus : E-views. Trs
convivial, assez performant pour les sries temporelles, mais
rapidement limit et peu exible en ce qui concerne la programmation
et certains modles complexes. Excel. On peut faire de lconomtrie
avec Excel. Toutefois, pour aller au del des MCO, cela impose de la
programmation VB assez lourde. La taille de la base de donnes est
limite par le nombre de cases de la feuille Excel. SAS. Extrmement
exible et puissant, mais peu intuitif. Aucune limite la quantit de
donnes quil peut traiter. Gauss. Logiciel trs peu convivial (il
faut presque tout programmer soi-mme), mais trs rapide et puissant.
Presque indispensable pour traiter de trs grosses bases de donnes.
RATS : Spcialis sries temporelles.1
TEAM-CNRS. Universit Paris 1 Panthon-Sorbonne, 106-112 boulevard
de lHpital, 75647 Paris Cdex 13, France. mail :
[email protected] . Pour tout commentaire, nhsitez pas me
contacter.
1
R : Logiciel open source gratuit. Fonctions encore en nombre
limit (mais logiciel en volution rapide). Stata : Intuitif, assez
exible et complet. Possibilit de programmer. Stata a toutefois des
problmes pour grer de trs grosses bases de donnes. Cest le logiciel
que nous prsentons ici. Avant de dbuter la prsentation de Stata,
quelques prcisions syntaxiques : Dans ce document, la fonte
commande identie des lments qui doivent tre entrs dans Stata. Ces
lments peuvent tre de 3 ordres : commande variable, options. Le
premier argument (gras) est entrer tel quel dans Stata, le second
(italique) est choisi par lutilisateur (nom de chier, de variable,
etc) et le troisime est, comme son nom lindique, optionnel. En ce
qui concerne les noms de variables, Stata fait la diffrence entre
majuscules et minuscules. Par ailleurs, Stata ne reconnat pas les
caractres accentus, pas plus que les espaces et caractres spciaux.
Les renvois dune section lautre sont indiqus par le symbole : . La
syntaxe Stata est conome : toute commande peut tre autant abrge que
possible, i.e. que cela ne cre aucune ambigut. Ainsi, summarize
peut sabrger indiffremment en summari, sum ou su. On ne peut pas
labrger en s, car il y aurait alors confusion possible avec une
autre commande, sort.
11.1
Prise en main de StataPrincipes de base de
StataLinstallation
1.1.1
Linstallation de Stata pour Windows seffectue comme celle de
nimporte quel autre logiciel. Il est par contre important, une fois
le logiciel install, de le mettre jour. Pour savoir sil existe des
mises jour, update query, ou partir de Stata 9, utiliser la
fonction Vrication automatique de mises jour . Ces mises jour sont
de deux types : mise jour de lexcutable (update exe, suivi de
update swap) et/ou des chiers programmes (update ado). Pour tout
mettre jour, update all. Il faut bien entendu rgulirement vrier la
disponibilit de mises jour. Pour vrier que linstallation de Stata
est correcte, verinst. En cas de problme, supprimez Stata et
rinstallez le intgralement. Il est possible, une fois Stata install
et mis jour, dajouter des programmes supplmentaires (appels modules
externes ) crs par des utilisateurs. Par exemple, il nest pas
possible destimer un modle de panel dynamique la Arellano-Bover
(1995) avec Stata ofciel . Heureusement, il existe un module
externe permettant de le faire. Celui-ci sappelle xtabond2. Avant
de pouvoir lutiliser, il convient de linstaller. La plupart de ces
modules externes sont disponibles sur le serveur du Boston College.
Si cest le cas, pour installer le module souhait, sous Stata, tapez
ssc install nom_du_module, all (ici, le nom_du_module est
xtabond2). Il est galement possible dinstaller un module externe
manuellement ( 1.1.3). On trouve galement de nombreux modules sur
le site du Stata Journal ( 1.2). Il existe plusieurs centaines de
modules externes disponibles sur Internet. Dune manire gnrale, pour
savoir sil existe un module proposant une fonctionnalit donne, on
peut le chercher et linstaller sans quitter Stata : net search
mot-cl, puis net install nom_module, all 2
1.1.2
Les fentres
Stata se prsente sous la forme de 4 fentres. De haut en bas, et
de droite gauche (g. 1), on trouve successivement la fentre Review,
qui afche lhistorique des commandes tapes par lutilisateur et
permet den rappeler une facilement. La fentre Results est celle
quutilise Stata pour afcher tous les rsultats des commandes tapes
par lutilisateur. La fentre Variables dtaille toutes les variables
prsentes dans la base de donnes actuellement ouverte dans Stata
(Stata ne peut ouvrir quune seule base de donnes en mme temps).
Enn, la fentre Command permet lutilisateur dentrer les commandes. F
IG . 1 Stata 9.1
On trouve au dessus de ces fentres une barre de menus,
permettant dexcuter les commandes les plus courantes sous Stata
sans avoir se servir de la fentre Command. On trouve par exemple
deux icnes permettant dafcher la base de donnes (Data Editor ou
Data Browser), commandes galement accessibles par le biais du menu
(Data/Data Editor ou Data/Data Browser) et directement partir de la
fentre de commandes (edit ou browse). De mme, louverture du Do-File
Editor peut se faire en appuyant sur licne correspondante dans la
barre de menu, en slectionnant dans le menu Data/Do-le Editor/New
le, ou en entrant doedit dans la fentre Command. Lutilisation de
ces barres de menu est donc facultative, et nalement assez rare
lorsquon utilise Stata. 1.1.3 Fichiers et rpertoires
Stata utilise plusieurs types de chiers, nomms daprs leurs
extensions : Fichier .do : Fichiers de commandes, au format ASCII,
lisibles dans nimporte quel diteur de texte et bien entendu par le
Do-le Editor (doedit) inclus dans Stata. Ils permettent
lutilisateur de lancer plusieurs commandes Stata en une seule
opration et de garder une trace des commandes excutes ( 6.2). Pour
lancer un do-le, il suft de 3
cliquer sur Run ou Do dans le Do-File Editor. La seule diffrence
entre Run et Do est que la seconde commande afche les rsultats dans
la fentre Results, alors que la premire est silencieuse. Il est
possible de lancer lintgralit du do-le ou den excuter seulement une
partie. Pour cela, il suft de slectionner la partie souhaite du .do
avant de cliquer sur Do ou Run. Fichier .ado : Fichier de
programmes, dnissant une ou plusieurs commandes. Ces chiers sont au
format ASCII (lisible dans nimporte quel diteur de texte) ;
lutilisateur peut en crer de nouveaux ou en installer partir
dInternet ( 1.1.1). Fichier smcl : Fichiers daide (.hlp, 1.2) ou de
log (extension libre, en gnral .log. 1.3.2). Ces chiers safchent
dans le Viewer Stata ou dans nimporte quel diteur de texte, ils
sont au format ASCII. La syntaxe smcl permet Stata dafcher le gras,
les italiques, etc... Fichier .dta : chiers de donnes au format
Stata. Lutilisation de ce format de donnes permet dacclrer
louverture de bases de donnes de grande taille ( 2). Linstallation
de Stata cre plusieurs rpertoires : un rpertoire qui contient le
programme (Stata.exe) et les chiers indispensables au
fonctionnement du logiciel. Ce rpertoire contient deux
sous-rpertoires. Le premier ado , contient les versions originales
des chiers .ado ofciels installs par Stata et le second updates
contient les versions mises jour par Stata des chiers .ado ofciels.
un rpertoire (par dfaut c :\ado) qui contient le sous-rpertoire
personal , dans lequel doivent se trouver tous les chiers .ado crs
par lutilisateur ou installs manuellement, et un rpertoire plus ,
qui contient les .ado crs par dautres utilisateurs et installs
directement par Stata. un rpertoire de travail (par dfaut c
:\data), appel contenir bases de donnes, do-les, etc...
1.2
O trouver de laide ?
De nombreuses ressources existent pour aider lutilisateur de
Stata faisant face un problme. Parmi celles-ci, les plus utiles
sont probablement : Laide incluse dans le logiciel whelp, ou whelp
command. Les manuels Stata (Stata Press). Ils reprennent et
compltent laide en ligne, dtaillent des exemples, etc... On peut
les acheter indpendamment du logiciel. Le Stata Technical Bulletin
et le Stata Journal, disponibles dans quelques BU franaises,
prsentent des mthodes et programmes nouveaux. Plusieurs sites Web
proposent des ressources, des aides ou des programmes pour Stata.
Les deux principaux : http ://www.stata.com et http
://www.stata-press.com. Le site web de U.C.L.A. (http
://www.ats.ucla.edu/stat/stata/) propose un annuaire des ressources
disponibles sur Internet pour Stata. http ://www.indiana.edu/
jslsoc/, le site de J. Scott Long et Jeremy Freese, propose ainsi
des programmes trs utiles pour qui veut faire de lconomtrie des
variables qualitatives. Il en existe des dizaines. La Statalist.
Liste de diffusion utilise pour poser des questions techniques la
communaut Stata. De nombreux Stata gurus y sont abonns et rpondent
frquemment des questions poses par les autres membres. Pour
consulter les archives, cf. http
://www.stata.com/statalist/archive/. Cest une source extrmement
prcieuse de renseignements, plusieurs milliers de messages sont
archivs, dcrivant les problmes rencontrs par certains utilisateurs
et les solutions proposes par un membre de la liste. Pour sy
inscrire (et pouvoir envoyer des mails la liste !), il suft
denvoyer un mail [email protected], avec pour objet
subscribe statalist . Attention : vriez avant de poster un message
que votre question est claire, quelle appelle une rponse, et
surtout que celle-ci ne fait pas lobjet dune rponse dans laide
Stata, les manuels et les archives de la liste. . . Vous risqueriez
de recevoir une rponse expditive. 4
1.31.3.1
Commandes diverses (et utiles !)Gestion de la mmoire
Lorsque Stata doit ouvrir une base de donnes, celle-ci est
intgralement charge en mmoire. Pour un tat des lieux de la mmoire,
memory. Stata dispose par dfaut de 10 mgas de mmoire. Rsultat :
toute base de plus de 10 mgas ne souvrira pas. . . sauf si on modie
la quantit de mmoire disponible pour Stata. Pour vrier la taille de
la base charger, on utilise la commande describe using mabase.dta.
Si celle-ci ncessite 100 mgas, set memory 100m. Lorsque la base est
plus grosse que la taille de la mmoire vive installe, il faut
recourir la mmoire virtuelle, set virtual on. Cela ralentit
considrablement Stata. Pour conomiser de lespace mmoire, on peut
compresser la base compress. Il existe trois versions de Stata
(Small, Intercooled et SE). La seule diffrence entre ces trois
versions tient la quantit de mmoire qui peut tre alloue diffrentes
oprations. set maxvar nombre permet daugmenter le nombre de
variables (max : 32 700 pour Stata SE). Lorsque la limite de mmoire
touche la taille des matrices, on peut laugmenter grce la commande
: set matsize nombre. 1.3.2 Log
Pour conserver une trace complte de tout ce qui safche dans la
fentre Results au cours dune session (commandes/rsultats...), il
est possible de crer un chier log. Stata permet de crer des log au
format texte (option text), ou au format smcl (option smcl, 1.1.3).
Ce dernier format permet un afchage du log dans le Viewer Stata trs
propre, mais complique la lecture du log avec dautres logiciels.
Pour commencer un nouveau chier de log : log using monfichier. Pour
le fermer log : log close. Pour mettre le log la suite du log issu
de la prcdente session Stata : append, pour dbuter partir dun chier
vierge : replace. Exemple : Dbut de session : log using monfichier,
text replace Fin de session : log close 1.3.3 Gestion de
lafchage
Pour supprimer lafchage des rsultats dune commande, quietly
commande. Pour dtailler au maximum les oprations ralises par Stata
( utiliser principalement pour debugger un .ado) : set trace on.
Pour que Stata ne stoppe pas au cours de lexcution dun do-le
lorsque lafchage des rsultats atteint le bas de la fentre Results,
set more off.
1.41.4.1
Fonctions et expressionsOprateurs et fonctions mathmatiques
Le tableau 1 dtaille les oprateurs mathmatiques et logiques
reconnus par Stata. Quelques remarques leur propos : En ce qui
concerne le signe =, il existe une particularit. Lorsque le signe =
est une conjecture ( tester) ou une condition et non une dnition,
on doit le remplacer par ==. Les valeurs manquantes (symbolises par
un point . sous Stata) sont les plus grandes valeurs. Ainsi,
lexpression salaire>1500 est vraie si le salaire est suprieur
strictement 1500, ou manquant. Pour ne conserver que les valeurs
suprieures 1500 et nonmanquantes, il faut prciser : salaire>1500
& salaire (resp. = (resp. 20 & age10 & y !=.. Remplace
la valeur de x par celle de y, si y est suprieur 10 et contient une
valeur. 5. drop x. Supprime la variable x. 6. drop _all. Supprime
toutes les variables (conserve en mmoire les matrices, constantes,
etc...). Pour nettoyer compltement la mmoire, il faut utiliser
clear. 7. keep x. Conserve la variable x, supprime toutes les
autres. 8. label var variable "label". Attribue une variable x un
label (une tiquette). Exemple : label var lnsal "logarithme du
salaire brut". 9. describe x y afche les types et les labels des
variables x et y. 2.3.3 Types de variables
Les variables sous Stata peuvent tre numriques ou
alphanumriques. Les variables numriques peuvent tre de diffrents
types (voir tableau 2), selon la prcision (et la place en mmoire)
ncessaire. Les variables alphanumriques sont des chanes de
caractres quelconques (string, str), dune longueur maximale de 244
caractres. Pour transformer une chane en variable numrique,
destring variable, options. Parmi les options, gen(var) ou replace.
La premire option cre une nouvelle variable, nomme var contenant la
transformation demande, la seconde crase au contraire la variable
chane pour la remplacer par sa transformation. Stata stocke par
dfaut une variable sous forme de chane lorsque pour au moins une
observation, la variable contient au moins un caractre
non-numrique. Lorsquune variable est au format alphanumrique, il
est impossible de lutiliser dans une rgression. Si le code pour les
valeurs manquantes dans une base de donnes est "na", toutes les
variables dont une valeur au moins manque seront ainsi
automatiquement sauves sous forme de chane. Pour contraindre Stata
ignorer les caractres non numriques (et les remplacer par des
valeurs manquantes), loption force est ajouter la commande
destring. Pour faire lopration inverse (dune variable numrique une
chaine de caractres, la commande est tostring (mmes syntaxe et
options). Pour changer le format dafchage dune variable, format
variable format. Pour nafcher que les 20 premiers caractres dune
chane de caractres, format chaine %20s.
2.42.4.1
Gestion des donnesFusion de bases
Stata ne peut ouvrir quune seule base de donnes en mme temps.
Pour nettoyer la mmoire de Stata, clear. Cest une opration
indispensable avant de charger une autre base2
Cette commande peut aussi sutiliser directement lors dune
rgression, 4.1.
8
Nom byte int long oat double
TAB . 2 Datatypes numriques Min/Max Valeur la plus proche de 0
127/100 +/ 1 32 767/32 740 +/ 1 2 147 483 647/2 147 483 620 +/ 1 1,
70... 1038 /1, 70... 1036 +/ 1036 / + 8, 98... 10307 +/ 10323
Taille mmoire (bytes) 1 2 4 4 8
de donnes. Pour utiliser plusieurs bases, deux solutions.
Premire solution : on ouvre la premire, on lutilise, on la ferme,
puis on ouvre la seconde, etc. Simple, mais lorsquon a besoin en
mme temps de variables ou dobservations prsentes dans diffrentes
bases il faut fusionner ces bases pour les unier. Pour cela, trois
possibilits : 1. Il sagit dajouter de nouvelles observations. On
doit ouvrir la premire base sous Stata, puis append using
nom_de_la_seconde_base. Il faut sauver la nouvelle base, contenant
les observations des deux bases initiales. Attention : si dans la
premire base, le salaire est nomm sal et dans la seconde salaire,
la base nale comprendra deux variables, sal et salaire... 2. Il
sagit dajouter de nouvelles variables des observations dj
existantes. Deux possibilits : les observations sont les mmes dans
les deux bases (one to one merge). Par exemple, les deux bases
concernent les 100 mmes individus. Il faut alors classer les deux
bases dans le mme ordre, puis les fusionner. Il faut donc ouvrir la
premire base, la classer, la sauvegarder, la fermer. Ouvrir la
seconde, la classer. Puis on fusionne les deux, merge using
nom_de_la_premire_base. Second cas, les observations sont pour
certaines communes aux deux bases, pour certaines diffrentes (match
merge). Il faut tout de mme que les observations soient classes de
la mme manire dans les deux bases. Par exemple, si les observations
dans les deux bases concernent des entreprises identies par leur
code SIRET, il faut classer les observations des deux bases par
SIRET. Il faut donc ouvrir la premire base, la classer, la
sauvegarder, la fermer. Ouvrir la seconde, la classer. Puis on
fusionne les deux, en utilisant la variable siret pour faire se
correspondre les donnes : merge siret using nom_de_la_premire_base.
La fusion implique que le nom de la variable servant fusionner soit
exactement le mme dans les deux bases. Dans la nouvelle base, une
variable _merge a t cre ; elle donne le rsultat du merging. Si
_merge= 1, les donnes de cette observation proviennent
exclusivement de la base matre (i.e. la seconde). Si _merge= 2, les
donnes de cette observation proviennent exclusivement de la base
using (ie la premire). Enn, si _merge= 3, les donnes proviennent
des deux bases. 3. Il sagit de complter ou de mettre jour des
donnes (remplacer des valeurs anciennes ou manquantes par de
nouvelles donnes). Dans ce cas, la premire base est celle contenant
les nouvelles donnes. Aprs avoir class les deux bases, et ouvert la
base contenant les donnes mettre jour, merge using
nom_de_la_premire_base, update. Attention : la fusion de bases est
une opration qui peut rapidement crer des erreurs dans la base si
lutilisateur ne prend pas toutes les prcautions. Ainsi, un tab
_merge et une vrication visuelle pousse des rsultats de la procdure
de fusion sont plus que conseills. 2.4.2 Oprations sur des
observations
Pour rorganiser la base de donnes, lorsquelle est lenvers (wide
format dans le langage Stata), lutilisation de reshape simpose.
Quest ce quune base de donnes lenvers ? Cest une base qui se
prsente comme celle du tableau 3. Pour lutiliser des ns
conomtriques, il faut la transformer pour quelle ressemble celle du
tableau 4, grce la 9
commande reshape long salaire, i(id) j(annee). Pour faire
linverse (passer dun format long un format wide), reshape wide
salaire, i(id) j(annee). TAB . 3 Base de donnes wide salaire1995
salaire1996 salaire1997 1500 1500 2000 1000 1200 1400 3000 3000
3000 etc...
id 1 2 3
sexe 0 1 0
TAB . 4 Base de donnes long id annee sexe salaire 1 1995 0 1500
1 1996 0 1500 1 1997 0 2000 2 1995 1 1000 2 1996 1 1200 2 1997 1
1400 3 1995 0 3000 3 1996 0 3000 3 1997 0 3000 etc... Il est
possible de slectionner des observations dans une base de donnes
pour les supprimer drop in ou les conserver (supprimer les autres)
keep in, avec la mme logique que les commandes drop et keep
appliques aux variables : drop in 1/10 supprime les 10 premires
observations de la base, keep in 1/10 conserve les 10 premires et
supprime les autres. Pour classer les observations dans la base de
donnes, les commandes sort et gsort sont utiliser. sort variable
classe la base par ordre croissant des valeurs de la variable. Pour
des tris en ordre dcroissant, gsort -variable. Par exemple, gsort
-nom +annee classe la base dans lordre alphabtique inverse et
classe les observations correspondant un individu donn dans lordre
chronologique croissant. Il est possible dattribuer des labels
diffrents chaque valeur dune variable. Si la variable sexe est gale
1 pour les hommes et 0 pour les femmes, il est possible de labliser
les valeurs : label define deflab 1 "Hommes" 0 "Femmes" puis label
values sexe deflab. La variable sexe est toujours numrique, bien
que soient associes ces valeurs des chanes de caractres.
33.1
Statistique descriptiveStatistiques descriptives
summarize variable permet dobtenir les statistiques descriptives
usuelles. Loption detail permet den avoir plus. La commande tabstat
variable permet de faire presque la mme chose que summarize, mais
permet plus de exibilit pour faire un tableau de statistiques.
tabulate variable calcule les frquences des valeurs prises par une
variable, et permet de crer des tableaux croiss pour deux
variables. collapse permet de crer une base de donnes contenant les
statistiques descriptives dune autre. Exemple : collapse (mean) age
educ (median)revenu, by(pays) cal10
cule les ges et niveaux dducation nationaux moyens et les
revenus nationaux mdians et ne conserve que ces moyennes dans la
base de donnes. Voir galement histogram, section 5.1 et outtex,
section 6.1.
3.2
Corrlation
pwcorr variable1 variable2 donne la matrice de corrlations entre
les variables. Loption sig permet dobtenir le rsultat du test de
nullit du coefcient de corrlation. corr variable1 variable2, cov
permet dobtenir la matrice des variance-covariances. pwcorr
variable1 variable2 variable3 permet dobtenir les coefcients de
corrlation partielle entre les variables prises deux deux.
3.3
Tests sur la moyenne, la variance et la distribution des
variables
ttest permet de comparer les moyennes de deux variables.
Attention : ce test repose sur lhypothse implicite dgalit des
variances des deux variables. Loption unequal permet de relcher
celle-ci. Exemples : 1. ttest salaire, by(sexe), pour tester la
signicativit de la diffrence de salaire entre hommes et femmes. 2.
ttest salaire=1000 pour savoir si la moyenne des salaires est gale
1 000 euros. sdtest permet de comparer les variances de deux
variables. La syntaxe et le fonctionnement de cette commande sont
identiques ceux de ttest. Exemple : sdtest salaire, by sexe.
tabulate var1 var2, chi2 permet de procder au test du 2 de Pearson
(H0 : indpendance des lignes et colonnes du tableau crois).
44.1
Lconomtrie avec StataGnralits sur lconomtrie avec Stata
Toutes les commandes destimation fonctionne de la mme manire
sous Stata. La syntaxe est identique : by variable : commande y x1
x2... if/in condition, options3 Lorsque plusieurs quations sont
estimer, on crit les variables par quation : (y1 x1 x2) (y2 x3 x4).
On peut trs facilement ajouter aux variables de lquation des
variables indicatrices, grce la commande xi. Ainsi, xi : regress y
x i.pays lance une rgression qui comporte comme variables
explicatives x et n 1 variables indicatrices (sil y a n pays dans
la base). Lorsquon tape la commande sans rien ensuite (commande),
les rsultats du dernier modle estim avec cette commande sont afchs
nouveau.
4.2
Donnes transversales
regress permet de raliser une rgression MCO. Sa syntaxe,
identique celle de la majorit des commandes Stata est : regress y
x1 x2, options. Il est inutile de se proccuper de la constante,
Stata lajoute automatiquement toutes les rgressions (pour forcer
Stata ne pas la rajouter, option nocons). Les options possibles
sont level((nombre)), pour dnir la taille de lintervalle de conance
(par dfaut : intervalle de conance 95 %, nombre=95). Loption vce
permet dafcher la matrice de variance-covariance des
estimateurs.3
by, if et in sont bien videmment optionnels.
11
4.3
Variables qualitatives
On peut utiliser le modle logit ou probit. Voir les packages
spost.ado pour lconomtrie des variables qualitatives, ils proposent
de nombreuses commandes trs utiles. Parmi les modles disponibles
sous Stata, le logit multinomial (mlogit), le logit conditionnel
(clogit), le logit ordonn (ologit), le probit bivari (biprobit),
etc... Pour obtenir les effets marginaux, on peut, aprs lestimation
dun modle, utiliser la commande mfx compute, options, ou bien
utiliser les commandes dlogit2 et dprobit pour calculer directement
les effets marginaux. lstat permet dobtenir le taux de bonnes et
mauvaises prdictions. A partir de Stata 9, estat gof permet
dobtenir les test de qualit de la rgression de Pearson et de
Hosmer-Lemeshow.
4.44.4.1
Sries temporellesOprateurs de sries temporelles
Les commandes Stata concernant les sries temporelles dbutent
toutes par ts. Lorsquon sintresse aux sries temporelles, pour crer
des variables retardes ou avances, il convient dviter de crer une
variable grce [_n-1] ou [_n+1]. Au contraire, il faut dnir la
nature temporelle des variables : tsset var_temporelle. La commande
tsfill permet de complter une base de donnes en remplissant tous
les trous par des valeurs manquantes. tsreport permet de vrier la
structure des sries temporelles prsentes dans la base (trous,
observations multiples pour un mme identiant temporel, etc). Stata
dnit les oprateurs temporels courants, lag, lead, etc : 1. L.
Oprateur retard (xt1 ). 2. L2. Deuxime retard (xt2 ). 3. F.
Oprateur lead (xt+1 ). 4. D. Oprateur diffrence xt xt1 . 5. D2.
Oprateur diffrence xt xt1 (xt1 xt2 ). 6. S. Oprateur diffrence
saisonnire xt xt1 . 7. S2. Oprateur diffrence saisonnire xt xt2 .
Ces oprateurs peuvent tre utiliss de manire synthtique : L(1/3).PIB
signie ainsi : L.PIB L2.PIB L3.PIB . Ils tiennent compte des
valeurs manquantes. On peut les utiliser dans la majorit des
commandes Stata, en particulier dans les commandes de rgression,
sans avoir besoin de crer par avance la variable concerne :
tabulate L.pib, par exemple. 4.4.2 Modles disponibles
Une fois prcis le caractre temporel des donnes, on peut
simplement utiliser la commande regress. Les modles spciques sries
temporelles suivants sont galement disponibles : Les modles AR(p),
MA(q) ou ARMA(p,q) : arima y x1 x2, ar(nombre) ma(nombre))4 , Les
modles ARIMA(p,d,q) : arima y x1 x2, arima(p,d,q), Les modles ARCH
et leurs drivs (arch, garch, etc...), Les modles VAR, S-VAR, VECM
(var, svar, vec). Pour obtenir les autocorrlogrammes et
autocorrlogrammes partiels jusquau kime retard corrgram variable,
lags(k).4
Les nombres sont les termes de retards autorgressifs et de
moyenne mobile inclure dans le modle : (nombre) peut tre (1 4)
(premier et quatrime termes) ou (1/4) du premier au quatrime
terme.
12
4.54.5.1
Donnes de panelDonnes de panel
Les commandes Stata concernant les donnes de panel dbutent en
gnral par xt. Il faut dnir la nature de panel des donnes : tsset
var_individu var_temps. xtsum et xttab permettent dobtenir des
statistiques descriptives intra et inter-individuelles. Leurs
syntaxes sont identiques sum et tab. 4.5.2 Modles effets xes
Pour estimer un modle statique en donnes de panel, xtreg y x1
x2, option. Plusieurs modles sont possibles : loption fe estime le
modle effets xes. Ce modle repose sur la diffrenciation des
variables par rapport la moyenne individuelle pour liminer les
effets xes5 . Quelques particularits des rsultats : trois
statistiques de R2 sont afches. Le R2 within donne la part de la
variabilit intra-individuelle de la variable de gauche explique par
celles des variables de droite. Cest le plus important des trois.
Le R2 between estime lapport des effets xes au modle. Le R2 overall
traduit la qualit globale de la rgression. Dautre part, deux F-stat
sont proposes. La premire indique la signicativit jointe des
variables explicatives, la seconde la signicativit jointe des
effets xes. Le LM-test de Breush-Pagan (xttest2) teste la
corrlation entre observations dans le modle effets xes. Le test
dautocorrlation srielle au premier ordre des rsidus peut seffectuer
grce la commande pantest2 id_temps. On peut aussi utiliser xtserial
y x1 x2 qui nimpose pas de choix entre le modle effets xes ou
alatoires. Enn, la commande xtregar y x1 x2, lbi permet destimer
modles a effets xes ou alatoires avec erreurs autocorrles dordre 1.
Loption lbi permet deffectuer le test de Baltagi-Wu et celui de
Durbin-Watson. 4.5.3 Modles effets alatoire
xtreg y x1 x2, re estime le modle effets alatoires. On retrouve
les trois R2 . Le R2 within donne la contribution des effets
alatoires au modle. Le R2 between indique la part de la variabilit
inter-individuelle explique par celles des variables de droite. Il
se focaliser sur celui-ci. Le R2 overall est le mme que prcdemment.
Le test de Breush-Pagan (xttest0) teste la signicativit des effets
alatoires. La commande xttest1 permet dobtenir plusieurs les
rsultats de plusieurs tests classiques effectuer aprs le modle
effets alatoires (test de Breush-Pagan, test de Baltagi-Li (1995)
de corrlation srielle dordre 1, le test joint de Baltagi-Li (1991)
de corrlation srielle et deffets alatoires, etc...). Le test
dautocorrlation srielle au premier ordre des rsidus peut seffectuer
grce la commande xtserial y x1 x2. Le test de Hausman est a
utiliser pour dterminer sil faut recourir un modle effets xes ou
alatoires. Pour limplmenter, il faut estimer le modle effets xes,
stocker les rsultats (est store fixe), estimer le modle effets
alatoires puis effectuer le test : hausman fixe .. 4.5.4 Autres
modles
Lestimation de modles logit (xtlogit) et probit (xtprobit), avec
effets xes (option fe) ou alatoires (option re) est possible avec
Stata. Syntaxe et fonctionnement proches des commandes logit et
probit.5
Lautre possibilit pour estimer un modle effets xes est dintgrer
des variables indicatrices pour chaque individu, voir areg. On peut
galement avoir recours lestimateur de Hausman-Taylor, xthtaylor
lorsquon doit intgrer dans les variables explicatives des variables
invariantes au l du temps. Pour estimer un modle effets xes en
utilisant des variables instrumentales, voir xtivreg, fe
13
Pour lestimation dun modle de panel dynamique, utiliser xtabond
et/ou le module externe xtabond2. On peut galement estimer des
modles de frontire stochastique en panel (xtfrontier), etc...
4.6
Commandes "post-estimation"
Lorsque Stata estime un modle, les rsultats sont afchs lcran et
disponibles pour lutilisateur sous forme de scalaires, matrices ou
fonctions (Stata qualie ces lments crs lors dune rgression de
e()-class ). Il existe dans Stata des commandes qualies de
post-estimation , i.e. commandes excuter aprs lestimation dun
modle. Ces commandes, par dfaut, sappliquent aux rsultats du
dernier modle estim. La majorit de ces commandes utilise,
explicitement ou non les lments e-class . Pour savoir quels lments
e-class sont disponibles la suite dune rgression, il suft de taper
ereturn list. Pour rcuprer le R2 dune rgression, par exemple,
scalar rdeux=e(r2). La matrice des coefcients est e(b) et celle des
variances-covariances e(V)6 . Une fonction trs utile est e(sample).
Elle permet de slectionner dans la base les observations qui ont
rellement t utilise lors de lestimation. Tous les coefcients et
cart-types estims sont disponibles : scalar coeff=_b[nomvariable]
pour les coefcients (le nom de la constante est _cons) et scalar
stand=_se[nomvariable] pour les cart-types. Il est possible de
stocker ces lments pour utilisation ultrieure : estimates store
nom7 . En effet, si on lance une seconde rgression, les lments
e-class de la premire seront effacs. Les commandes que lutilisateur
peut excuter aprs une rgressions sont predict et les multiples
commandes de test. 4.6.1 predict
La commande predict permet dobtenir, suite lestimation dun modle
quelconque, les rsidus, les valeurs prdites, etc... Attention :
Stata applique par dfaut la commande predict toutes les
observations de la base pour lesquelles les variables explicatives
sont disponibles, mme si lestimation a t ralise sur un
sous-chantillon (prdiction out-of-sample). Pour nappliquer la
commande quaux observations effectivement utilises lors de la
rgression (prdiction in-sample), predict var if e(sample),
options). Les possibilits de la commande dpendent du modle estim.
En gnral : predict var, xb permet dobtenir les valeurs prdites pour
la variable explique. predict stand, stdp permet dobtenir
lcart-type de la prdiction linaire. predict residus, re permet
dobtenir les rsidus. predictnl permet dobtenir des prdictions
non-linaires, lorsque le modle sy prte. Des options supplmentaires
apparaissent suivant le modle estim. Ainsi, aprs lestimation dun
logit, predict var, pr permet dobtenir la probabilit dune issue
positive. Se reporter laide de chaque commande destimation pour
connatre lintgralit des options de predict.
4.6.2
Tests dhypothse sur les coefcients
Ces tests sont fonds sur la matrice de variance-covariance des
estimateurs (tests de Wald). La commande est test. Loption accum
permet dajouter le test prcdent au test en cours.6 7
Sous Stata 9, il suft de taper la commande vce pour lobtenir.
Cest indispensable pour procder au test dun modle contre un autre.
Voir hausman section 3, suest et lrtest, section 3.
14
Exemples : reg salaire age homme diplome france italie allemagne
espagne test france=allemagne Test dgalit de coefcients test italie
Test de nullit du coefcient test espagne=1 Teste que le coef soit
gal 1 test (france = allemagne) (italie = espagne) Teste que le
coef de fr. est gal celui dall. ET que le coef dit. est gal celui
desp. test france = allemagne test italie = espagne, accum Test
joint au prcdent, quivalent au test ci-dessus Pour effectuer des
tests dhypothses non-linaires sur les coefcients, utiliser la
commande testnl. Exemple : testnl _b[x1]/_b[x2] = _b[x3]. En gnral,
test est utiliser avec prcaution aprs lestimation dun modle par le
maximum de vraisemblance. Il vaut mieux dans ce cas procder des
tests du ratio de vraisemblance (lrtest). Exemple : logit vote_bush
salaire white relig state Modle complet est store modele_complet
Sauve les paramtres logit vote_bush salaire Modle contraint lrtest
modele_complet . LR-test
4.6.3
Tests classiques
Test de normalit dune variable (les rsidus. . . ) : sktest
variable.
Test dhtroscdasticit de Breush-Pagan : hettest8 . La rgression
qui prcde le test ne doit pas comporter loption robust, videmment.
Si de lhtroscdasticit est dtecte, relancer la rgression avec
loption robust.
Test dhtroscdasticit de Goldfeld-Quandt : Si lon connat la
variable lorigine de lhtroscdasticit, on peut ordonner les
observations selon la valeur de la variable suspecte, liminer de
lchantillon les variables centrales (le tiers central de
lchantillon). On effectue la rgressions sur les deux
sous-chantillons composs des premires et dernires observations. On
rcupre la somme des carrs expliqus des deux sous-chantillons en
vriant, an de construire la statistique, que SCR1 > SCR2 . On
compare SCR1 /SCR2 F (x k, x k) avec k le nombre de variables
explicatives constante incluse, et x le nombre dobservations de
chaque sous-chantillon.
Le test de stabilit des coefcients (test de Chow) nest pas
programm sous Stata, il faut le faire soi-mme. On doit estimer
trois modles (le modle complet et les deux sous-modles) et rcuprer
leurs sommes des carrs des rsidus (SCR pour le modle complet, SCR1
et SCR2 pour les deux sous-modles). La statistique de test SCR
(SCR1 + SCR2 ) n 2k SCR1 + SCR2 k8
Sous Stata 9, estat hettest.
15
suit une loi de Fisher F (k, n 2k), avec k le nombre de
variables explicatives et n le nombre dobservations. regress
salaire age Modle complet scalar scr=e(rss) SCR scalar n=e(N) n
regress salaire age if sexe=="Femme" Sous-modle 1 scalar
scr1=e(rss) SCR1 regress salaire age if sexe=="Homme" Sous-modle 2
scalar scr2=e(rss) SCR2 scalar
stat_chow=(scr-(scr1+scr2)/(scr1+scr2))*((n-2*2)/2) Statistique du
test display F(2,n-2*2, stat_chow) Probabilit du test 4.6.4 Tests
spciques pour donnes de panel
Le test de stationnarit de Im-Pesaran-Shin (ipshin variable,
lags(nombre) trend) et celui de Levin-Lin-Shu (levinlin variable,
lags(nombre) trend) sont disponibles. Loption trend ajoute une
tendance. 4.6.5 Tests pour les sries temporelles
Plusieurs tests de racine unitaire existent : dfuller variable,
lags(nombre) trend permet de raliser le test de Dickey Fuller
augment. Loption trend ajoute une tendance. pperron variable,
lags(nombre) trend pour le test de Phillips-Perron. dfgls variable,
lags(nombre) notrend pour le test DF-GLS. Il faut ajouter loption
notrend pour enlever la constante. kpss variable, lags(nombre)
notrend pour le test de Kwiatkowski Phillips Schmidt Shin. En ce
qui concerne les tests dautocorrlation des rsidus, rcurrents
lorsquon utilise des sries temporelles : Le test de Durbin-Watson
permet de tester la prsence dun processus AR(1) dans les donnes
(dwstat9 ). Si il y a autocorrlation, relancer la rgression avec
une correction de Prais-Winsten (prais y x1 x2). Lorsquon souponne
la prsence dautocorrlation dordre suprieur 1, le test de
BreushGodfrey (bgodfrey10 ) ou celui de de Durbin-Watson (durbina11
) doivent tre raliss. Le test de Engle (estat archlm) permet de
tester la prsence dlments ARCH dans les rsidus.
55.1
GraphiquesFaire un graphique
La cration de graphiques avec Stata nest pas toujours simple, en
particulier lorsquon souhaite que les graphiques soient prsentables
dans un mmoire. Un manuel entier est consacr aux graphiques. Nous
prsentons ici les commandes pour faire des graphiques simples :
Pour obtenir un graphique circulaire (un camembert ), graph pie
salaire bonus prime avantages_nature. Pour un diagramme en btons
(ne pas le confondre avec un histogramme...) : graph bar salaire,
over(sexe, descend gap(-20)) over(pays). Pour des btons verticaux :
graph hbar.9 10 11
estat dwatson sous Stata 9. estat bgodfrey sous Stata 9. estat
durbinalt sous Stata 9.
16
Les chandeliers japonais : graph box taille, over(sexe)
over(annee). Pour tous les graphiques (X,Y), la commande dbute par
twoway suivi du type de graphique X,Y souhait. Parmi les principaux
types : tw histogram variable, options gnre un histogramme. Loption
normal ajoute lhistogramme une loi normale, de mmes moyenne et
variance que la variable faisant lobjet de lhistogramme. Loption
bin(nombre) dnit le nombre de tranches. tw scatter
variable_ordonnee variable_abscisse, options permet dobtenir un
nuage de points. tw function y=exp(sin x), options permet dobtenir
une reprsentation graphique de la fonction spcie. tw line
variable_ordonnee variable_abscisse, options permet dobtenir un
graphique avec des points relis par une ligne. tw kdensity
variable, options permet dobtenir lestimation de la densit du noyau
de la variable. tw area variable_ordonnee variable_abscisse,
options cre un graphique avec une ligne reliant les points (x,y) et
une aire colore entre la ligne et laxe des abscisses. tw rarea
var_ordonnee1 var_ordonnee2 var_abscisse, options permet dobtenir
un graphique avec une aire colore correspondant lespace compris
entre les valeurs de var_ordonnee1 et de var_ordonnee2. Il est
possible de superposer facilement des graphiques avec Stata. Ainsi,
il est possible dobtenir sur un mme graphique le nuage de point, la
droite de rgression MCO et lintervalle de conance. Supposons que la
variable explique soit salaire, la variable explicative age :
regress salaire age predict val_pred, xb predict ecarttype, stdf
gen interv_bas = val_pred - 1.96*ecarttype gen interv_haut =
val_pred + 1.96*ecarttype scatter salaire age || line val_pred
interv_bas interv_haut age, sort On peut galement crer des
ensembles de graphiques (graphiques les uns ct des autres, voire
des matrices de graphiques). Pour crer un ensemble de deux
graphiques (un pour les hommes, un pour les femmes) reprsentant le
nuage de points (age/salaire) : twoway scatter salaire age,
by(sexe).
5.2
Options indispensables ( lesthtique)
Les options sont indispensables un graphique pour quil ressemble
quelque chose. Il en existe des centaines. Les principales options
disponibles, qui fonctionnent avec la majorit des graphiques gnrs
par tw commande variables, options : title("titre") dnit le titre
gnral du graphique. On peut y ajouter un sous-titre,
subtitle("sous-titre"). note("bla-bla") permet dajouter des notes
au bas du graphique (sources, etc). legend(label(1 "Hommes")
label(2 "Femmes")) permet de dnir la lgende. Ici, le mot Homme
apparatra pour la premire courbe, le mot Femme pour la seconde. En
ce qui concerne la gestion des axes, on peut grer leur chelle :
xscale(log) (resp. yscale (log)) pour une chelle logarithmique sur
labscisse (resp. lordonne). Pour dnir le titre des axes, on ajoute
les options xtitle("titre") et ytitle("titre"). xlabel(0 (10) 100)
permet dafcher un axe des abscisses partant de 0 et allant 17
jusqu 100 par pas de 10. Stata est assez capricieux sur les
longueurs des axes, et refusera cette option si par exemple la
variable x prend la valeur 115 dans la base. Dune manire gnrale,
absolument tout ce qui apparat dans un graphique peut tre
personnalis, de la couleur de fond lpaisseur des axes, en passant
par la place du titre. Toutefois, cela impose lutilisateur de
prciser de nombreuses options. Une solution pour obtenir rapidement
des graphiques prsentables est de recourir aux styles prdnis
(schemes) par Stata. Les schemes(s1mono) et schemes(s1color)
permettent dobtenir des graphiques N&B ou couleur rapidement.
Exemple : twoway scatter salaire age, scheme(s1mono) xtitle("Age")
title("Age et salaire") ytitle("Salaire").
5.3
Sauver et exporter des graphiques
Pour sauvegarder un graphique au format Stata, graph save
nom_fichier. Dans ce cas, le graphique est au format .gph, lisible
exclusivement sous Stata. Les graphiques Stata peuvent trs
facilement tre exports vers Word ou dautres logiciels acceptant le
copier/coller. En effet, un clic-droit Copier excut sur le
graphique Stata copie limage au format .wmf dans le presse-papier.
Il ne reste plus qu la coller lendroit dsir. Pour sauver le
graphique dans un format autre que celui de Stata et pouvoir
ensuite louvrir dans un logiciel quelconque, graph export
nom_fichier, as(format). Les formats disponibles avec Stata pour
Windows sont : .png, .wmf, .emf, .eps et .ps. On peut ajouter la
commande loption replace. A Le plus simple pour intgrer un
graphique Stata dans un document L TEXest de sauvegarA der le chier
au format .eps puis dutiliser le package epsg dans L TEX. Une
commande Stata A permet de sauver le graphique en .eps et de gnrer
le code insrer dans le document L TEX : graph2tex.
66.1
DiversExporter des rsultats
Il existe plusieurs techniques, plus ou moins recommandables,
pour exporter des rsultats A ou des tableaux statistiques vers
dautres logiciels (Word, Excel, L TEX). De la moins recommandable
la meilleure : 1. Le faire la main (Copier/Coller). Outre le temps
perdu, la probabilit derreurs en recopiant est leve. A viter
absolument. 2. En nettoyant un peu le chier .log pour quExcel
puisse louvrir peu prs correctement. On reste dans le domaine de la
peu prs. 3. En utilisant la commande outreg. Cette commande permet
dobtenir des tableaux contenant les coefcients, les cart-types, les
intervalles de conance, et mme les toiles de signicativ. La
commande cre un chier ASCII, lisible directement par Excel ou Word.
Cette commande permet de crer un tableau unique partir des rsultats
de deux rgressions. Exemple : regress salaire sexe age diplome
outreg using tab1.out, ctitle("Modle 1 ") gen age2=age ^2 regress
salaire sexe age age2 diplome outreg using tab1.out, ctitle("Modle
2") append Principal dfaut : cette commande est ancienne et nest
plus mise jour par son auteur. 4. La commande parmest,
saving(results.dta) permet de sauver au format .dta les rsultats de
lestimation. 18
A 5. Si on dsire obtenir des tableaux au format L TEX, en
utilisant les commandes outtex (pour les rsultats de rgression) et
sutex (pour les tableaux de statistiques descriptives). Ces
commandes sont pratiques, rapides, et relativement souples.
Principal dfaut : outtex ne permet pas de construire un tableau
avec des rsultats provenant de plusieurs rgressions. A 6. Pour L
TEXet tous les autres programmes (Excel en particulier), utiliser
la commande estout. La syntaxe de la commande est complexe, mais
celle-ci permet dobtenir toutes les tables possibles, dagrger
plusieurs rgressions en un tableau, de sortir un chier au A format
Excel ou L TEX, etc...
6.2
Crer un do le
Un chier .do est un chier texte qui contient une suite de
commandes Stata, que lutilisateur peut faire excuter par Stata.
Pour leur cration, le recours au Do-le Editor de Stata (doedit) est
la solution la plus simple12 . Nous prsentons ici un exemple de
.do. capture clear /*Nettoie la mmoire vive si besoin*/ capture log
close /*Ferme le chier log si besoin*/ log using monlog, text
replace /*Ouvre un log*/ set memory 100m /*Fixe la mmoire vive
100m*/ set more off /*Pas dinterruption avant la n du .do*/ use
"mabase.dta" /* Ouvre mabase.dta*/ gen x1=ln(age) /*Cration de x1*/
gen x2=ln(educ) /*Cration de x2*/ gen y=ln(salaire) /*Cration de
y*/ sum x1 y /*Afche les stat desc de x et y*/ tab y x1 x2 /*Frq.
des valeurs des variables*/ histogram y /*Histogramme de y*/ graph
export histo, as(png) replace /*Enregistre le graphe*/ reg y x1 x2
/*Rgression MCO*/ A outtex, leg /*Afchage du tableau pour L TEX*/
test x1=x2 /*Test dgalit des coef de x1 et x2*/ save
"mabase.dta",replace /*Sauve la base modie*/ log close /*Ferme le
log*/ clear /* Vide la mmoire vive*/ exit /*Ferme Stata*/ Pour
commenter un passage du .do (i.e. que Stata ne le lise pas), il
suft de mettre au dbut /* et */ en n. Lutilisation de .do est
indispensable ds que lon veut faire srieusement de lconomtrie. Les
.do permettent dappeler dautres .do, de lancer des commandes
complexes, de faire des boucles, etc...
6.3
Boucles
Il est possible dintgrer des boucles un .do. Les boucles
possibles sont des boucles while, foreach ou forvalues. Quelques
conseils : Noubliez jamais de sauvegarder le .do avant de tester
une boucle. Loubli de lincrmentation du compteur ferait boucler
linni Stata...12
Pour une utilisation rgulire de Stata, le recours un diteur de
texte plus performant fait gagner du temps. Ainsi, WinEdt par
exemple permet douvrir plusieurs .do en mme temps, rend possible la
coloration syntaxique du .do, offre des outils de validation du
code, etc.
19
Lemploi de boucles avec Stata est souvent inutile, il existe
frquemment des commandes permettant de lviter, ce qui permet
dobtenir un code plus compact et donc plus rapide. Quelques
exemples : 1. Cette boucle permet de fusionner 10 bases de donnes
nommes temp1.dta, temp2.dta, . . . , temp10.dta en une seule,
base_nale.dta. use "temp1.dta" On ouvre temp1 save
"base_finale.dta",replace sauve sous base_nale local iter=2
Compteur de la boucle while iter