Vous êtes sur la page 1sur 22

conomtrie applique avec Stata

Master 2 Pro - IRFA


Nicolas Couderc
1
Dans un temps peut-tre pas trs lointain, on com-
prendra 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 mainte-
nant ncessaire de savoir lire et crire
H. G. Wells, Mankind in the Making, 1903, Chap. 6
Introduction
Stata 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.
1
TEAM-CNRS. Universit Paris 1 Panthon-Sorbonne, 106-112 boulevard de lHpital, 75647 Paris Cdex 13,
France. mail : couderc@univ-paris1.fr. Pour tout commentaire, nhsitez pas me contacter.
1
RATS : Spcialis sries temporelles.
R : Logiciel open source gratuit. Fonctions encore en nombre limit (mais logiciel en vo-
lution 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 prsen-
tons 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.
1 Prise en main de Stata
1.1 Principes de base de Stata
1.1.1 Linstallation
Linstallation de Stata pour Windows seffectue comme celle de nimporte quel autre logi-
ciel. 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, suppri-
mez Stata et rinstallez le intgralement.
Il est possible, une fois Stata install et mis jour, dajouter des programmes supplmen-
taires (appels modules externes ) crs par des utilisateurs. Par exemple, il nest pas pos-
sible destimer un modle de panel dynamique la Arellano-Bover (1995) avec Stata of-
ciel . 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 Com-
mand permet lutilisateur dentrer les commandes.
FIG. 1 Stata 9.1
On trouve au dessus de ces fentres une barre de menus, permettant dexcuter les com-
mandes 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 Brow-
ser), 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 di-
teur de texte et bien entendu par le Do-le Editor (doedit) inclus dans Stata. Ils per-
mettent 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 fonc-
tionnement 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 pro-
blme. 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 res-
sources 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 com-
munaut Stata. De nombreux Stata gurus y sont abonns et rpondent frquem-
ment 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
majordomo@hsphsun2.harvard.edu, 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.3 Commandes diverses (et utiles !)
1.3.1 Gestion de la mmoire
Lorsque Stata doit ouvrir une base de donnes, celle-ci est intgralement charge en m-
moire. 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 modi-
e 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.4 Fonctions et expressions
1.4.1 Oprateurs 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 conjec-
ture ( 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 stricte-
ment 1500, ou manquant. Pour ne conserver que les valeurs suprieures 1500 et non-
manquantes, il faut prciser : salaire>1500 & salaire<.
Les oprateurs suivent lordre de priorit habituel. Loprateur Et est prioritaire sur
loprateur Ou .
5
TAB. 1 Oprateurs et fonctions sous Stata
Addition + Soustraction -
Multiplication * Division /
galit = Ingalit ~= ou!=
Exposant ^ Partie entire int()
Racine sqrt() Exponentielle exp()
Logarithme log() Valeur absolue abs()
Sup. (resp. Inf.) > (resp. <) Sup. (resp. Inf) ou gal >= (resp. <=)
Ou | Et &
Minimum min() Maximum max()
1.4.2 Trois expressions : by, if et in
Ces trois expressions peuvent sutiliser avec la majorit des commandes Stata. On peut les
combiner les unes avec les autres.
by permet dappliquer une commande chaque valeur dune variable. La syntaxe de cette
expression est by variable : commande variable. Il faut que la base de donnes soit
classe par cette variable. On peut utiliser sort avant le by, ou pour classer et effectuer le by
en mme temps, bysort.
Exemple : bysort sexe : summarize salaire permet dobtenir le salaire moyen des
femmes et des hommes.
if permet de nappliquer la commande quaux observations remplissant une condition
particulire. Syntaxe : commande variable if condition.
Exemple : summarize salaire if age==18 | age>20 & age<=50 donne les sta-
tistiques descriptives de la variable salaire pour les observations dont la variable age est gale
18 (remarquer le double signe =, il sagit dun test) ou comprise entre 20 (exclu) et 50 (inclus).
Loprateur & est prioritaire, les parenthses sont inutiles ici.
in permet de nappliquer la commande quaux observations se situant dans un intervalle
donn. Syntaxe : commande variable in condition.
Exemple : summarize salaire in 10/20 donne les statistiques descriptives de la va-
riable salaire pour les observations de la 10
me
la 20
me
ligne de la base de donnes.
2 Stata et les donnes
2.1 Importation et ouverture de bases de donnes
Stata ne peut grer quune seule base de donnes la fois. Avant den ouvrir une, il convient
donc de fermer celle qui est actuellement utilise (clear). Pour entrer des donnes dans Stata,
il existe plusieurs moyens, utiliser en fonction de la nature des donnes :
Si il ny a que quelques donnes rentrer, on peut utiliser la commande input :
input str20 nom age str6 sexe
"Jean Nmard" 22 homme
"Paule Pot" 37 femme
"Guy Tare" 48 homme
end
On peut galement saisir directement les donnes dans le Data Editor (edit), comme on
ferait avec Excel.
Si lutilisateur dispose dj dune base de donnes au format Stata (.dta), nomme par
exemple base.dta, use base.dta
6
Si lutilisateur dispose de donnes propres (par exemple en provenance dun tableur),
insheet base.txt. Des donnes propres sont des donnes organises avec une ligne
par observation, les variables en colonne, les chanes de caractres identies par des
guillemets et les sparateurs tous identiques (virgule ou tabulation. Pas despace !).
Si les donnes sont plus folkloriques (i.e. au moins une des conditions prcdente
nest pas remplie), le recours infile simpose. Deux cas se prsentent. Les donnes
peuvent tre format indni (sparation entre les donnes sous forme despace, de
tabulation ou de virgule, chanes de caractres entre guillemets, une observation sur plu-
sieurs lignes ou plusieurs observations par ligne) ou x (pas de guillemets autour des
chanes de caractres, etc). Si les donnes sont format indni, infile var_a var_b
using base.txt. Si elles sont format x, le recours un dictionnaire simpose, pour
dnir le format des donnes. Dans ce cas, voir laide de Stata whelp infile.
Pour gagner du temps, si les donnes proviennent dun tableur ou sont formates pour un
autre logiciel dconomtrie, lutilisation du logiciel StatTransfer peut faire gagner un temps
non ngligeable (et viter des erreurs)...
2.2 Exportation et sauvegarde des donnes
Plusieurs formats de sauvegarde des donnes sont possible. On peut tout simplement sau-
ver des donnes dans le format de Stata (save mabase.dta), pour utilisation future. On peut
galement exporter des donnes pour les utiliser ensuite avec un tableur ou un autre logi-
ciel, grce aux commandes outsheet var using mabase.txt et outfile var using
mabase.txt. Les bases exportes avec outsheet peuvent tre rimportes avec insheet,
et outfile avec infile.
2.3 Gestion des variables
2.3.1 Crer des variables
Pour crer de nouvelles variables, deux commandes existent. generate permet de crer
des variables qui ncessitent des calculs simples et egenerate (extended generate) sim-
pose lorsque les calculs se complexient un peu ou que lutilisation de fonctions statistiques
spciques est ncessaire.
Exemples dutilisation de generate :
1. gen x = 12. Cre une constante nomme x, qui vaut 12.
2. gen x = log(a
*
b)-sqrt(abs(b)). La nouvelle variable x est gale au logarithme
de (a b) moins la racine carre de la valeur absolue de b.
3. gen x = "Bonjour". x est une chane de caractres, gale Bonjour pour toutes
les observations.
4. gen x = (sexe=="Homme"). x est gale 1 si la variable sexe contient la chane de
caractre Homme , zro sinon.
5. gen x = salaire[4]. x est une constante, gale au contenu de la 4
me
observation
pour la variable salaire.
6. gen x = y[_n-1]. x est gale la valeur de lobservation prcdente de y.
Exemples dutilisation de egenerate :
1. egen x = sd[y]. x, constante, est gale lcart-type de y.
2. egen x = pctile(y), p(50). x est gale au percentile 50 de y (la mdiane).
3. egen x = group(sexe). x est une variable qui contient un numro diffrent pour
chaque modalit de sexe (on peut supposer que x sera gal 0 pour femme et 1 pour
homme).
7
La commande xi i.variable permet de crer des variables indicatrices
2
.
Exemples :
1. xi i.individu. Cre une variable indicatrice pour chaque individu prsent dans la
base, moins un.
2. xi i.individu
*
pcs. Cre les variables indicatrices correspondant aux individus et
les termes dinteraction entre la profession et lindividu.
2.3.2 Manipuler des variables
1. list pi
*
. Afche toutes les variables dont le nom commence par pi.
2. rename ancien_nom nouv_nom. Renomme la variable ancien_nom en nouv_nom.
3. replace x = 12. Remplace le contenu de la variable x par 12 (x devient une constante).
4. replace x = y if y>10 & 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 nu-
mriques 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 num-
rique, destring variable, options. Parmi les options, gen(var) ou replace. La pre-
mire 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 naf-
cher que les 20 premiers caractres dune chane de caractres, format chaine %20s.
2.4 Gestion des donnes
2.4.1 Fusion de bases
Stata ne peut ouvrir quune seule base de donnes en mme temps. Pour nettoyer la m-
moire de Stata, clear. Cest une opration indispensable avant de charger une autre base
2
Cette commande peut aussi sutiliser directement lors dune rgression, 4.1.
8
TAB. 2 Datatypes numriques
Nom Min/Max Valeur la plus Taille mmoire
proche de 0 (bytes)
byte 127/100 +/ 1 1
int 32 767/32 740 +/ 1 2
long 2 147 483 647/2 147 483 620 +/ 1 4
oat 1, 70... 10
38
/1, 70... 10
36
+/ 10
36
4
double / + 8, 98... 10
307
+/ 10
323
8
de donnes. Pour utiliser plusieurs bases, deux solutions. Premire solution : on ouvre la pre-
mire, 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, conte-
nant les observations des deux bases initiales. Attention : si dans la premire base, le sa-
laire 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 pos-
sibilits : 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 clas-
ser, 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 identi-
es 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 corres-
pondre 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 pro-
viennent 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 conte-
nant 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 vri-
cation 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 len-
vers ? 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
id sexe salaire1995 salaire1996 salaire1997
1 0 1500 1500 2000
2 1 1000 1200 1400
3 0 3000 3000 3000
etc...
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 suppri-
mer 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 pre-
mires 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 va-
riable 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.
3 Statistique descriptive
3.1 Statistiques 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 sta-
tistiques.
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) cal-
10
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 cor-
rlation 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 fonctionne-
ment 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 (H
0
: ind-
pendance des lignes et colonnes du tableau crois).
4 Lconomtrie avec Stata
4.1 Gnralits 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, options
3
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 majo-
rit 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 lconom-
trie des variables qualitatives, ils proposent de nombreuses commandes trs utiles.
Parmi les modles disponibles sous Stata, le logit multinomial (mlogit), le logit condition-
nel (clogit), le logit ordonn (ologit), le probit bivari (biprobit), etc...
Pour obtenir les effets marginaux, on peut, aprs lestimation dun modle, utiliser la com-
mande 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 mau-
vaises prdictions.
A partir de Stata 9, estat gof permet dobtenir les test de qualit de la rgression de
Pearson et de Hosmer-Lemeshow.
4.4 Sries temporelles
4.4.1 Oprateurs 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 avan-
ces, 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 (x
t1
).
2. L2. Deuxime retard (x
t2
).
3. F. Oprateur lead (x
t+1
).
4. D. Oprateur diffrence x
t
x
t1
.
5. D2. Oprateur diffrence x
t
x
t1
(x
t1
x
t2
).
6. S. Oprateur diffrence saisonnire x
t
x
t1
.
7. S2. Oprateur diffrence saisonnire x
t
x
t2
.
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 com-
mande regress. Les modles spciques sries temporelles suivants sont galement dis-
ponibles :
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 k
ime
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.5 Donnes de panel
4.5.1 Donnes 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. Plu-
sieurs 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
xes
5
. Quelques particularits des rsultats : trois statistiques de R
2
sont afches. Le R
2
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 R
2
between estime lapport des ef-
fets xes au modle. Le R
2
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 mo-
dle 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 R
2
. Le R
2
within donne la contribution des effets alatoires au modle. Le R
2
between indique la part de
la variabilit inter-individuelle explique par celles des variables de droite. Il se focaliser sur
celui-ci. Le R
2
overall est le mme que prcdemment.
Le test de Breush-Pagan (xttest0) teste la signicativit des effets alatoires. La com-
mande xttest1 permet dobtenir plusieurs les rsultats de plusieurs tests classiques ef-
fectuer 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 rsul-
tats (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 rsul-
tats 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 suf-
t de taper ereturn list. Pour rcuprer le R
2
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 observa-
tions 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
nom
7
. 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 nap-
pliquer la commande quaux observations effectivement utilises lors de la rgression (prdic-
tion 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 lestima-
tion 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
Sous Stata 9, il suft de taper la commande vce pour lobtenir.
7
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 com-
mande testnl. Exemple : testnl _b[x1]/_b[x2] = _b[x3].
En gnral, test est utiliser avec prcaution aprs lestimation dun modle par le maxi-
mum de vraisemblance. Il vaut mieux dans ce cas procder des tests du ratio de vraisem-
blance (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 : hettest
8
. La rgression qui prcde le test ne
doit pas comporter loption robust, videmment. Si de lhtroscdasticit est dtecte, re-
lancer la rgression avec loption robust.
Test dhtroscdasticit de Goldfeld-Quandt : Si lon connat la variable lorigine de lh-
troscdasticit, on peut ordonner les observations selon la valeur de la variable suspecte, li-
miner 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 SCR
1
> SCR
2
. On compare SCR
1
/SCR
2
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, SCR
1
et SCR
2
pour les deux sous-modles). La statistique de test
SCR (SCR
1
+ SCR
2
)
SCR
1
+ SCR
2

n 2k
k
8
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) SCR
1
regress salaire age if sexe=="Homme" Sous-modle 2
scalar scr2=e(rss) SCR
2
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 lop-
tion 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 (dwstat
9
). 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 Breush-
Godfrey (bgodfrey
10
) ou celui de de Durbin-Watson (durbina
11
) doivent tre raliss.
Le test de Engle (estat archlm) permet de tester la prsence dlments ARCH dans
les rsidus.
5 Graphiques
5.1 Faire un graphique
La cration de graphiques avec Stata nest pas toujours simple, en particulier lorsquon sou-
haite que les graphiques soient prsentables dans un mmoire. Un manuel entier est consa-
cr 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
estat dwatson sous Stata 9.
10
estat bgodfrey sous Stata 9.
11
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 gra-
phique 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 dob-
tenir un nuage de points.
tw function y=exp(sin x), options permet dobtenir une reprsentation gra-
phique 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 abs-
cisses.
tw rarea var_ordonnee1 var_ordonnee2 var_abscisse, options permet dob-
tenir un graphique avec une aire colore correspondant lespace compris entre les va-
leurs 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 au-
tres, 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 person-
nalis, 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 rapi-
dement 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 lou-
vrir dans un logiciel quelconque, graph export nom_fichier, as(format). Les for-
mats disponibles avec Stata pour Windows sont : .png, .wmf, .emf, .eps et .ps. On peut ajouter
la commande loption replace.
Le plus simple pour intgrer un graphique Stata dans un document L
A
T
E
Xest de sauvegar-
der le chier au format .eps puis dutiliser le package epsg dans L
A
T
E
X. Une commande Stata
permet de sauver le graphique en .eps et de gnrer le code insrer dans le document L
A
T
E
X :
graph2tex.
6 Divers
6.1 Exporter des rsultats
Il existe plusieurs techniques, plus ou moins recommandables, pour exporter des rsultats
ou des tableaux statistiques vers dautres logiciels (Word, Excel, L
A
T
E
X). De la moins recom-
mandable 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 conte-
nant 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 rgres-
sions. 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
5. Si on dsire obtenir des tableaux au format L
A
T
E
X, en utilisant les commandes outtex
(pour les rsultats de rgression) et sutex (pour les tableaux de statistiques descrip-
tives). 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.
6. Pour L
A
T
E
Xet 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
format Excel ou L
A
T
E
X, etc...
6.2 Crer un do le
Un chier .do est un chier texte qui contient une suite de commandes Stata, que lutili-
sateur peut faire excuter par Stata. Pour leur cration, le recours au Do-le Editor de Stata
(doedit) est la solution la plus simple
12
. 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*/
outtex, leg /*Afchage du tableau pour L
A
T
E
X*/
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 lcono-
mtrie. 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 lincrmen-
tation 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 syn-
taxique 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<11 { Entre dans la boucle
clear On nettoie la mmoire vive
local chemin="temp"+string(iter)+".dta"
Dnition de la base temp traiter
use chemin Ouverture de temp2, 3...
qui compress Optimisation mmoire
qui append using "base_totale.dta" Fusion
qui save "base_totale.dta",replace Sauvegarde
local iter=iter+1 Incrmentation compteur
} Sortie de la boucle
2. Cette boucle illustre la possibilit dappliquer successivement plusieurs variables les
mmes commandes. Celle-ci permet de crer un graphique reprsentant le salaire touch
par chaque dcile de salaris classs par ge, puis par taux dabsentisme, puis de sauver
le graphique.
tokenize "age absent" Deux variables
local i=1 Compteur annexe
while "1"!="" { Entre dans la boucle
xtile quant = 1, nq(10) Cration des quantiles
bysort quant :egen moy=mean(salaire) Moyenne par dcile
tw line moy quant, xtitle(1) Graphique
local chemin="fig"+string(i)+".png" Chemin
local i=i+1 Incrment compteur
graph export chemin, as(png) replace Sauve graphique
drop moy quant Suppression variables
mac shift Variable suivante
} Sortie de la boucle
3. La troisime boucle recourt forvalues pour gnrer des statistiques descriptives pour
les variables x5, x10, . . . , x300.
forvalues k = 5 10 to 300 { Entre dans la boucle
summarize xk, det Stat. desc.
} Sortie de la boucle
20
Table des matires
Introduction 1
1 Prise en main de Stata 2
1.1 Principes de base de Stata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Linstallation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Les fentres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3 Fichiers et rpertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 O trouver de laide ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Commandes diverses (et utiles !) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Gestion de la mmoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 Gestion de lafchage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Fonctions et expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.1 Oprateurs et fonctions mathmatiques . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Trois expressions : by, if et in . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Stata et les donnes 6
2.1 Importation et ouverture de bases de donnes . . . . . . . . . . . . . . . . . . . . 6
2.2 Exportation et sauvegarde des donnes . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Gestion des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.1 Crer des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.2 Manipuler des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.3 Types de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Gestion des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.1 Fusion de bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.2 Oprations sur des observations . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Statistique descriptive 10
3.1 Statistiques descriptives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Corrlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Tests sur la moyenne, la variance et la distribution des variables . . . . . . . . . . 11
4 Lconomtrie avec Stata 11
4.1 Gnralits sur lconomtrie avec Stata . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Donnes transversales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 Variables qualitatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4 Sries temporelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4.1 Oprateurs de sries temporelles . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4.2 Modles disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.5 Donnes de panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5.1 Donnes de panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5.2 Modles effets xes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5.3 Modles effets alatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5.4 Autres modles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.6 Commandes "post-estimation" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.6.1 predict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.6.2 Tests dhypothse sur les coefcients . . . . . . . . . . . . . . . . . . . . . . 14
4.6.3 Tests classiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.6.4 Tests spciques pour donnes de panel . . . . . . . . . . . . . . . . . . . . 16
4.6.5 Tests pour les sries temporelles . . . . . . . . . . . . . . . . . . . . . . . . 16
21
5 Graphiques 16
5.1 Faire un graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2 Options indispensables ( lesthtique) . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.3 Sauver et exporter des graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6 Divers 18
6.1 Exporter des rsultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.2 Crer un do le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.3 Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
22