Vous êtes sur la page 1sur 22

conomtrie applique avec Stata

Nicolas 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

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. RATS : Spcialis sries temporelles.
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.

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.

1
1.1

Prise en main de Stata


Principes de base de Stata
Linstallation

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 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
1.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.4
1.4.1

Fonctions et expressions
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 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<. 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 statistiques 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 variable salaire pour les observations de la 10me la 20me ligne de la base de donnes.

2
2.1

Stata et les donnes


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 plusieurs 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 sauver 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 logiciel, 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
2.3.1

Gestion des variables


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) simpose 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 4me 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 indicatrices2 . 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 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.4
2.4.1

Gestion des donnes


Fusion 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 base
2

Cette commande peut aussi sutiliser directement lors dune rgression, 4.1.

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.

3
3.1

Statistique descriptive
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 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).

4
4.1

Lconomtrie avec Stata


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, 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.4
4.4.1

Sries temporelles
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 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.5
4.5.1

Donnes de panel
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. 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 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) 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.

5
5.1

Graphiques
Faire 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.

6
6.1

Divers
Exporter 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<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 Prise en main de Stata 1.1 Principes de base de Stata . . . . . . . . . . . . 1.1.1 Linstallation . . . . . . . . . . . . . . . 1.1.2 Les fentres . . . . . . . . . . . . . . . . 1.1.3 Fichiers et rpertoires . . . . . . . . . . 1.2 O trouver de laide ? . . . . . . . . . . . . . . . 1.3 Commandes diverses (et utiles !) . . . . . . . . 1.3.1 Gestion de la mmoire . . . . . . . . . . 1.3.2 Log . . . . . . . . . . . . . . . . . . . . . 1.3.3 Gestion de lafchage . . . . . . . . . . 1.4 Fonctions et expressions . . . . . . . . . . . . . 1.4.1 Oprateurs et fonctions mathmatiques 1.4.2 Trois expressions : by, if et in . . . . . Stata et les donnes 2.1 Importation et ouverture de bases de donnes 2.2 Exportation et sauvegarde des donnes . . . . 2.3 Gestion des variables . . . . . . . . . . . . . . . 2.3.1 Crer des variables . . . . . . . . . . . . 2.3.2 Manipuler des variables . . . . . . . . . 2.3.3 Types de variables . . . . . . . . . . . . 2.4 Gestion des donnes . . . . . . . . . . . . . . . 2.4.1 Fusion de bases . . . . . . . . . . . . . . 2.4.2 Oprations sur des observations . . . . 1 2 2 2 3 3 4 5 5 5 5 5 5 6 6 6 7 7 7 8 8 8 8 9

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

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 Lconomtrie avec Stata 4.1 Gnralits sur lconomtrie avec Stata . . . . . 4.2 Donnes transversales . . . . . . . . . . . . . . . 4.3 Variables qualitatives . . . . . . . . . . . . . . . . 4.4 Sries temporelles . . . . . . . . . . . . . . . . . . 4.4.1 Oprateurs de sries temporelles . . . . . 4.4.2 Modles disponibles . . . . . . . . . . . . 4.5 Donnes de panel . . . . . . . . . . . . . . . . . . 4.5.1 Donnes de panel . . . . . . . . . . . . . . 4.5.2 Modles effets xes . . . . . . . . . . . . 4.5.3 Modles effets alatoire . . . . . . . . . 4.5.4 Autres modles . . . . . . . . . . . . . . . 4.6 Commandes "post-estimation" . . . . . . . . . . 4.6.1 predict . . . . . . . . . . . . . . . . . . . 4.6.2 Tests dhypothse sur les coefcients . . . 4.6.3 Tests classiques . . . . . . . . . . . . . . . 4.6.4 Tests spciques pour donnes de panel . 4.6.5 Tests pour les sries temporelles . . . . . 21 11 11 11 12 12 12 12 13 13 13 13 13 14 14 14 15 16 16

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

Graphiques 16 5.1 Faire un graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.2 Options indispensables ( lesthtique) . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.3 Sauver et exporter des graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Divers 18 6.1 Exporter des rsultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 6.2 Crer un do le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.3 Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

22