1 STATA POUR LES NULS Olivier Cadot Juin 2012 Contents Comment mal démarrer : l
1 STATA POUR LES NULS Olivier Cadot Juin 2012 Contents Comment mal démarrer : leçon un...................................................................................... 3 Do- et log-files ................................................................................................................ 3 Garbage in, garbage out : Formatage de l’output ........................................................... 6 Manipuler des données : comment faire du faux avec du vrai ........................................... 6 Importer des données ...................................................................................................... 7 Trier les variables et les maltraiter .................................................................................. 9 Générer des expressions vides de sens.......................................................................... 11 Moyenne, écart-type, max et min ............................................................................. 11 Compter les sous-catégories à l’intérieur de catégories ............................................ 12 Variables aléatoires ................................................................................................... 12 Variables en différences et retardées (mentales) .......................................................... 16 Variables muettes, aveugles et idiotes .......................................................................... 16 Variables en string ........................................................................................................ 17 Mettre le string et l’enlever ....................................................................................... 17 Manipuler des variables en string ............................................................................. 18 Fusionner des fichiers ................................................................................................... 20 Fusion « horizontale » ............................................................................................... 20 Fusion « verticale » ................................................................................................... 22 Variables avec indices (boucles) ................................................................................... 23 Principe général ........................................................................................................ 23 Itérations ....................................................................................................................... 24 Boucles sur des observations .................................................................................... 25 Matrices et vecteurs ...................................................................................................... 25 Mettre une matrice en vecteur-colonne..................................................................... 25 Mettre un vecteur-colonne en matrice ...................................................................... 27 Multiplier une matrice par un vecteur ....................................................................... 28 Cylindrer un panel......................................................................................................... 29 Un peu de programmation pour les ado ............................................................................ 30 Programme .................................................................................................................... 30 Fichiers ado ................................................................................................................... 30 If/else............................................................................................................................. 31 While ............................................................................................................................. 33 Estimation : quelques bidouillages ................................................................................... 33 Sauvegarder des résultats, même quand ils sont absurdes ............................................ 33 Sauvegarder des statistiques descriptives ................................................................. 33 2 Sauvegarder valeurs prédites et résidus .................................................................... 33 Sauvegarder des coefficients absurdes ...................................................................... 33 Estimation ..................................................................................................................... 36 OLS and WLS ........................................................................................................... 36 Panels ........................................................................................................................ 36 Sure ........................................................................................................................... 37 2sls ............................................................................................................................ 37 GMM......................................................................................................................... 38 Variables dépendantes limitées ................................................................................. 39 Switching reg ............................................................................................................ 42 Propensity score matching ........................................................................................ 42 Analyse de survie ...................................................................................................... 45 Graphiques ........................................................................................................................ 49 Graphiques avec courbes ou barres ............................................................................... 50 Nuages de points ........................................................................................................... 51 Regressions non paramétriques (« smoother reg ») ...................................................... 55 Enquêtes sur les scènes de ménages ................................................................................. 56 Statistiques descriptives et manipulation de données ................................................... 56 Moyennes, totaux et corrélations .............................................................................. 56 Calculer des indices d’inégalité ................................................................................ 58 Densités ..................................................................................................................... 58 Effet de changements de prix par tranche de revenu .................................................... 59 Estimation sur des enquêtes .......................................................................................... 62 Modèles de sélection ................................................................................................. 62 Quelques trucs en Mata ..................................................................................................... 64 3 Comment mal démarrer : leçon un « I think there is a world market for about five computers. » Thomas J. Watson Chairman of the Board, IBM.1 Do- et log-files Dès les premières manipulations malheureuses, il faut regrouper toutes les erreurs, y compris celles qui mettent les données définitivement cul par-dessus tête, dans un (don’t)-do-file avec le do-file editor de Stata qui est ici : A la fin, le fichier en question (ou la séquence de fichiers) doit prendre les données de base et garantir la traçabilité totale de toutes les âneries que vous avez faites. C’est seulement ainsi que vous saurez pourquoi vous avez des résultats absurdes depuis six mois. Les premières commandes du do-file devraient être 1 http://www.gocreate.com/QuotAmaze/qlun.htm. Cité dans le manuel de reference de Shazam v.8, McGraw-Hill, 1997. Il faut préciser que la citation est de 1943. 4 Explication des commandes de départ : clear vide la mémoire #delimit ; définit le symbole que Stata comprendra comme la fin d’une commande ; par défaut, c’est un retour à la ligne (qu’on retrouve avec #delimit cr); utile si on a des commandes très longues et qu’on souhaite revenir à la ligne pour pouvoir tout lire à l’écran ; par contre, il ne faudra plus l’oublier à la fin de toutes les commandes. Si on choisit cette syntaxe, les lignes de commentaires doivent être écrites comme * commentaire ; Alternativement, si on veut écrire sans point-virgule, les commentaires s’écrivent // commentaire et les commandes longues peuvent être « cassées » en plusieurs lignes avec /// : début de la commande /// suite de la commande commande suivante Attention il faut impérativement un espace avant ///. Le bloc de commandes cd d:\Papiers\paperdir ; cap chdir d:\Papiers\Paperdir ; local path d:\Papiers\Paperdir ; indique à Stata de se mettre sur le répertoire d:\Papiers\paperdir et de s’en souvenir. La commande set mem est inutile à partir de Stata 12. Le bloc de commandes local pathdata d:\Papiers\Paperdir\data ; 5 local pathdo d:\Papiers\Paperdir\dofiles ; local pathresult d:\Papiers\Paperdir\results ; met dans sa mémoire des sentiers qui mènent vers trois répertoires (qu’il aura bien sûr fallu créer avant dans le file manager) : data, où on met les données, dofiles où on met les programmes, et results où on met les résultats. Ce départ permet de garder la suite dans un semblant d’ordre. On pourra alors se référer à ces sentiers sous forme abrégée ; par exemple, on appelle le fichier données par la commande use `pathdata’\datafile.dta ; au lieu de mettre tout le sentier. Ne pas oublier de mettre les guillemets comme ils sont (noter le sens !). set logtype text ; enregistre le fichier log sous format texte au lieu d’un format Stata (par défaut) capture log close ; permet au programme de s’arrêter sans bug même si, par exemple, on l’interrompt par /* sans refermer l’interruption par */ avant « log close » (qui signale la fin). en fait, capture est également utile devant d’autres commandes sensibles pour éviter des bugs. Ceci dit ça bugge quand même ; par exemple, chaque fois qu’un do- file est interrompu par une erreur, le log ne se ferme pas et on a la fois suivante un message d’erreur « log file already open ». set more off ; permet a tout le programme de se dérouler sur l’écran log using filename.log, replace ; crée un fichier log nommé filename ; si ce nom de fichier existe déjà replace remplace l’ancien par ce nouveau fichier log log close ; ferme le fichier log; La commande save datafile1.dta est très importante : elle sauvegarde le fichier- données (.dta) modifié par le programme sous un autre nom que le fichier initial, ce qui permet de laisser ce dernier intouché. Sinon on altère le fichier initial de façon permanente, ce qui est en général un désastre. De façon générale, les guillemets (comme dans cd “c:\path\directory”) sont obligatoires quand les noms spécifiés ne sont pas liés en un seul mot ; par exemple, Stata comprend use “le nom que je veux.dta” mais pas use le nom que je veux.dta. Si on a fait une série de commandes sans do-file (ce qui une mauvaise idée, très souvent) et que tout d’un coup on voudrait pouvoir les reproduire, on peut créer un log file après coup avec log using filename.log # review x log close 6 ce qui va imprimer, dans le nouveau log file créé, les x dernières commandes (autant que l’on veut). Sur un Mac, la syntaxe pour les sentiers n’est pas tout à fait la même puisque le système d’opération est fondé sur Unix et non sur le DOS. Pour ouvrir un fichier, on tape : use "/Users/admin/Documents/subdirectory/filename.dta" Les commandes s’adaptent facilement : cd /Users/admin/Documents/subdirectory local pathdata /Users/admin/Documents/subdirectory/data etc. Les gros fichiers peuvent être compressés par la commande compress x y z Il faut mettre toute la liste de variables et on peut réduire d’un tiers au moins la taille du fichier sans perte d’information bien sûr. Garbage in, garbage out : Formatage de l’output Si l’on veut que les variables apparaissent dans l’output sous un autre nom (par exemple sous un nom plus simple) que celui donné par le dingue qui a fait les premières manipulations de données, et ceci tout en préservant le nom original des variables, on utilise la commande label comme ceci : label variable lnparcellesexpl land ; Manipuler des données : comment faire du faux avec du vrai « When the President does it, that means it is not illegal. » Richard Nixon2 Un petit préambule. Pourquoi manipuler les données en Stata et pas en Excel ? La raison est simple : pas mal des commandes que l’on va voir ci-dessous existent aussi en Excel et sont certes quelquefois plus simples (si on arrive à les trouver), mais par contre on perd vite le fil de ce que l’on a fait subir aux données avant de passer à l’estimation, et c’est parfois là que se cachent soit les quelques erreurs à l’origine de résultats grotesques soit, au contraire, les mauvais traitements infligés aux chiffres pour obtenir le résultat désiré. 2 Citation encore trouvée dans le manuel de Shazam, p. 51. 7 Avec Stata, on peut garder la trace de toutes les manipulations dans le do-file. Celui-ci doit contenir toutes les commandes permettant de passer du fichier-données brut à celui qui est prêt à l’estimation. Il est alors facile de retrouver l’erreur qui tue ou bien de vérifier ce que les chiffres ont subi entre les mains du bourreau avant d’avouer. Importer des données On peut copier-coller à partir d’excel, mais c’est trop facile. Supposons que l’on veuille importer un fichier-données avec la tête suivante : Horrible à voir, n’est-il pas. Mais tout va se passer dans la bonne humeur. On commence par insheet using mali_hs6.TXT et le fichier vient tout gentiment. Puis uploads/Industriel/ stata-pour-les-nuls.pdf
Documents similaires










-
34
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 29, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 1.4875MB