03.07.2013 Views

UNIVERSIT DU QUBEC MONTRAL - Laboratoire d'études de la ...

UNIVERSIT DU QUBEC MONTRAL - Laboratoire d'études de la ...

UNIVERSIT DU QUBEC MONTRAL - Laboratoire d'études de la ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CENTRE INTER<strong>UNIVERSIT</strong>AIRE QUÉBÉCOIS DE<br />

STATISTIQUES SOCIALES<br />

Institut national <strong>de</strong> <strong>la</strong> recherche scientifique<br />

Université du Québec à Montréal<br />

Atelier<br />

Introduction à Stata<br />

par<br />

Nicho<strong>la</strong>s Labelle<br />

Benoît-Paul Hébert<br />

Benoît Lap<strong>la</strong>nte<br />

Juin 2007


Table <strong>de</strong>s matières<br />

1. Introduction..................................................................................................................... 1<br />

2. Initiation à Stata .............................................................................................................. 2<br />

2.1 Comprendre l’environnement <strong>de</strong> Stata 9 .................................................................. 2<br />

2.2 Préparation <strong>de</strong> Stata à une séance <strong>de</strong> travail ............................................................. 3<br />

2.3 Ouvrir une base <strong>de</strong> données ...................................................................................... 3<br />

2.4 Les fichiers lus par Stata........................................................................................... 3<br />

2.5 La syntaxe <strong>de</strong> base d’une instruction........................................................................ 4<br />

2.6 Un exemple : l’instruction –summarize–.................................................................. 5<br />

2.7 Poser <strong>de</strong>s conditions à une instruction...................................................................... 5<br />

2.8 Pondération ............................................................................................................... 8<br />

2.9 Les programmes (do-files)........................................................................................ 9<br />

2.10 Commentaires ....................................................................................................... 10<br />

2.11 Conservation <strong>de</strong>s données en mémoire................................................................. 11<br />

2.12 Création d’un fichier <strong>de</strong> sortie (log file) ............................................................... 11<br />

2.13 Utiliser le dictionnaire <strong>de</strong>s variables..................................................................... 12<br />

3. Explorer les données..................................................................................................... 13<br />

3.1 Voir les données ...................................................................................................... 13<br />

3.2 Décrire les données................................................................................................. 13<br />

4. Manipu<strong>la</strong>tion <strong>de</strong>s données I .......................................................................................... 15<br />

4.1 Création et transformation d’une variable .............................................................. 15<br />

4.2 Noms et <strong>de</strong>scripteurs............................................................................................... 21<br />

4.3 Création <strong>de</strong> variables dichotomiques...................................................................... 22<br />

5. Tableaux <strong>de</strong> fréquence, mesures d’association et visualisation <strong>de</strong> données ................. 23<br />

5.1 Les tableaux <strong>de</strong> fréquence....................................................................................... 23<br />

5.2 Corré<strong>la</strong>tions et autres mesures d’association .......................................................... 25<br />

5.3 Visualisation <strong>de</strong> données......................................................................................... 27<br />

6. Combiner <strong>de</strong>s bases <strong>de</strong> données.................................................................................... 31<br />

6.1 Concaténation <strong>de</strong> bases <strong>de</strong> données ........................................................................ 31<br />

6.2 Fusion <strong>de</strong> bases <strong>de</strong> données .................................................................................... 33<br />

7. Manipu<strong>la</strong>tion <strong>de</strong>s données II......................................................................................... 34<br />

7.1 Sélectionner <strong>de</strong>s variables ou <strong>de</strong>s observations ...................................................... 34<br />

7.2 Relier <strong>de</strong>s observations ........................................................................................... 35<br />

7.3 Répéter <strong>de</strong>s instructions .......................................................................................... 36<br />

7.4 Remo<strong>de</strong>ler une base <strong>de</strong> données ............................................................................. 37<br />

8. Lire <strong>de</strong>s bases <strong>de</strong> données brutes .................................................................................. 38<br />

8.1 Les fichiers dont les valeurs sont délimitées par <strong>de</strong>s tabu<strong>la</strong>tions ou <strong>de</strong>s virgules .. 39<br />

8.2 Les fichiers dont les valeurs sont délimitées par <strong>de</strong>s espaces................................. 39<br />

8.3 Les fichiers en format fixe ...................................................................................... 40<br />

8.4 Un exemple en format fixe à partir d’un fichier SPSS ........................................... 40<br />

Annexe 1 – Exemple d’un fichier fixe à partir d’un fichier SPSS.................................... 42<br />

Annexe 2 – Exemple <strong>de</strong> fusion d’un fichier ..................................................................... 45<br />

BIBLIOGRAPHIE............................................................................................................ 46<br />

OUVRAGES D’INTRO<strong>DU</strong>CTION À STATA................................................................. 46


1. Introduction<br />

Ce gui<strong>de</strong> vise à ai<strong>de</strong>r les participants à l’atelier Introduction à Stata à examiner, préparer<br />

et manipuler d’importantes bases <strong>de</strong> données à l’ai<strong>de</strong> du logiciel Stata.<br />

Ce document servira <strong>de</strong> support aux 4 séances d’atelier ayant lieu les vendredi 11 et 18<br />

janvier 2008, <strong>de</strong> 9h30 à 12h30 et <strong>de</strong> 14h à 17h. L’évolution du contenu suit<br />

rigoureusement le document en ang<strong>la</strong>is Introduction to Stata préparé par Benoît-Paul<br />

Hébert (CIED / CÉETUM / CIQSS 1 ) pour un atelier du même genre à l’été 2003.<br />

StataCorp a mis <strong>la</strong> première version <strong>de</strong> Stata sur le marché en janvier 1985. Ce<br />

programme <strong>de</strong>meure <strong>de</strong>puis un puissant outil d’analyse. Sa capacité <strong>de</strong> gestion <strong>de</strong> gros<br />

fichiers <strong>de</strong> données, son niveau d’automatisation <strong>de</strong> même que sa fonction d’ai<strong>de</strong> très<br />

évoluée constituent trois <strong>de</strong> ses principaux avantages.<br />

Il existe une infinité <strong>de</strong> sites et <strong>de</strong> documents traitant <strong>de</strong> Stata. Je vous en conseille <strong>de</strong>ux<br />

plus particulièrement<br />

- Stata Tutorial <strong>de</strong> l’Université Princeton<br />

(http://www.princeton.edu/~erp/stata/main.html);<br />

- Le Gui<strong>de</strong> d’économétrie appliquée pour Stata par Estelle Ouellet, août 2005<br />

(http://www.sceco.umontreal.ca/bibliotheque/gui<strong>de</strong>s/Gui<strong>de</strong>EconometrieStata.pdf).<br />

Enfin, les fonctions Help\Search et Help\Stata Command sont indispensables pour les<br />

utilisateurs avancés. La fonction d’ai<strong>de</strong> sera traitée plus loin.<br />

1 CIED, Centre interuniversitaire d’étu<strong>de</strong>s démographiques; CEETUM, Centre d’étu<strong>de</strong>s ethniques <strong>de</strong>s<br />

universités montréa<strong>la</strong>ises. L’école d’été du CIQSS succè<strong>de</strong> à une école d’été mise sur pied à l’origine par<br />

<strong>de</strong>s professeurs <strong>de</strong> l’INRS associés au CIED et un professeur du département <strong>de</strong> sociologie <strong>de</strong> l’Université<br />

<strong>de</strong> Montréal associé au CEETUM.<br />

1


2. Initiation à Stata<br />

2.1 Comprendre l’environnement <strong>de</strong> Stata 9<br />

L’environnement <strong>de</strong> Stata est constitué <strong>de</strong> fenêtres qui possè<strong>de</strong>nt chacune leur propre<br />

fonction.<br />

1. La fenêtre Results (Ctrl+1) affiche les calculs <strong>de</strong> Stata, le plus souvent sous<br />

forme <strong>de</strong> tableaux ou <strong>de</strong> messages d’erreur.<br />

2. La fenêtre Viewer (Ctrl+3) sert principalement à visionner les fichiers d’ai<strong>de</strong> et<br />

les fichiers .log. Les fichiers .log servent à conserver les résultats qui s’affichent<br />

dans <strong>la</strong> fenêtre Results. Vous apprendrez plus tard à les générer.<br />

3. La fenêtre Command (Ctrl+4) n’est qu’une ligne pour inscrire les instructions. Les<br />

touches Page Sup et Page Inf permettent d’afficher les lignes d’instructions<br />

soumises <strong>de</strong>puis le début <strong>de</strong> <strong>la</strong> session <strong>de</strong> travail.<br />

4. La fenêtre Review (Ctrl+5) conserve les lignes d’instructions soumises <strong>de</strong>puis le<br />

début <strong>de</strong> <strong>la</strong> session et permet les répéter sans avoir à les écrire <strong>de</strong> nouveau.<br />

5. La fenêtre Variables (Ctrl+6) affiche l’ensemble <strong>de</strong>s variables contenues dans le<br />

fichier.dta qui se trouve en mémoire. Cliquer sur une variable <strong>la</strong> fait s’afficher<br />

automatiquement dans <strong>la</strong> fenêtre Command.<br />

6. La fenêtre Data Editor (Ctrl+7) affiche <strong>la</strong> matrice <strong>de</strong>s données qui se trouve en<br />

mémoire, où toutes les variables p<strong>la</strong>cées horizontalement et toutes les observations<br />

le long <strong>de</strong> l’axe vertical. Elle permet <strong>de</strong> visualiser les données, <strong>de</strong> les modifier et<br />

aussi <strong>de</strong> les copier dans un chiffrier comme Excel, avec Ctrl+C et Ctrl+V, pour faire<br />

<strong>de</strong>s tableaux plus facilement. Le Data Browser ne permet pas <strong>de</strong> modifier les<br />

données, mais seulement <strong>de</strong> les visionner.<br />

7. La fenêtre Do-file Editor (Ctrl+8) fait apparaître une page servant à créer et<br />

modifier un do-file, c’est-à-dire un fichier regroupant <strong>de</strong>s instructions qui peuvent<br />

être exécutées en différé automatiquement. Vous apprendrez sous peu à écrire <strong>de</strong><br />

tels fichiers.<br />

8. La fenêtre Graph affiche les graphiques générés par Stata.<br />

Les fenêtres Command et Results sont toujours à l’écran alors que les autres peuvent être<br />

ouvertes ou fermées au besoin.<br />

2


2.2 Préparation <strong>de</strong> Stata à une séance <strong>de</strong> travail<br />

Au démarrage <strong>de</strong> Stata, <strong>de</strong>ux fenêtres s’affichent : Stata Results et Stata Command.<br />

Au début <strong>de</strong> chaque séance, Stata fixe <strong>la</strong> taille <strong>de</strong> <strong>la</strong> mémoire qu’il utilise; par défaut,<br />

cette taille est <strong>de</strong> 1 000 kilooctets, ce qui est très peu. Au début <strong>de</strong> chaque séance, il faut<br />

déc<strong>la</strong>rer <strong>la</strong> taille <strong>de</strong> <strong>la</strong> mémoire que l’on veut permettre à Stata d’utiliser. Ceci se fait au<br />

moyen <strong>de</strong> l’instruction set mem :<br />

set mem 3000<br />

Ici, on fixe <strong>la</strong> mémoire à 3 000 k, ce qui est toujours peu. Pour fixer <strong>la</strong> mémoire à 300<br />

mégaoctets, par exemple, on écrit :<br />

set mem 300m<br />

Au début <strong>de</strong> chaque programme, il faut également songer à vi<strong>de</strong>r <strong>la</strong> mémoire si le<br />

programme prévoit <strong>la</strong> lecture <strong>de</strong> nouvelles données. Cette opération doit être faite avant<br />

<strong>de</strong> fixer <strong>la</strong> taille <strong>de</strong> <strong>la</strong> mémoire. Au début d’un programme, on trouve donc couramment<br />

<strong>de</strong>ux instructions comme celles qui suivent :<br />

clear<br />

set mem 300m<br />

2.3 Ouvrir une base <strong>de</strong> données<br />

Pour ouvrir une base <strong>de</strong> données Stata (généralement, un fichier dont l’extension est<br />

.dta), il suffit :<br />

- <strong>de</strong> sélectionner File/Open (ou Ctrl+O);<br />

- d’ouvrir le dossier où se trouve le fichier Stata, soit sur un disque compact, un<br />

réseau ou sur le disque dur;<br />

- d’aller cliquer sur le fichier pertinent, ici 2001famille24.dta<br />

Vous <strong>de</strong>vriez voir apparaître dans <strong>la</strong> fenêtre Results quelque chose comme:<br />

use "C:\data\2001famille24.dta", clear<br />

Autrement dit, c’est <strong>la</strong> ligne <strong>de</strong> instruction Stata qu’il faudrait écrire manuellement pour<br />

accomplir cette action.<br />

use "[path\]filename”, [clear]<br />

Par exemple, use "C:\Program Files\Stata9\auto.dta", clear.<br />

Le chemin doit être fourni seulement si <strong>la</strong> base <strong>de</strong> données n’est pas dans le répertoire <strong>de</strong><br />

travail.<br />

Pour changer le répertoire <strong>de</strong> travail, il suffit d’inscrire cd "path\". Par exemple, cd<br />

c:\data.<br />

L’option clear nettoie <strong>la</strong> mémoire avant d’ouvrir le fichier et l’extension .dta est par<br />

défaut.<br />

2.4 Les fichiers lus par Stata<br />

Un point et une extension <strong>de</strong> généralement 3 lettres indiquant au système d’exploitation<br />

quel type <strong>de</strong> programme ouvrir pour <strong>la</strong> lecture suivent toujours le nom d’un fichier.<br />

3


Par exemple, .doc désigne un fichier Word et .xls, un fichier Excel.<br />

Pour Stata, on compte diverses extensions :<br />

.ado Un programme écrit dans le <strong>la</strong>ngage <strong>de</strong> programmation <strong>de</strong> Stata. On peut<br />

programmer une nouvelle instruction en utilisant ce <strong>la</strong>ngage et conserver le<br />

programme dans un fichier portant cette extension. La plupart <strong>de</strong>s instructions<br />

<strong>de</strong> Stata sont en fait <strong>de</strong>s programmes conservés dans <strong>de</strong>s fichiers qui portent<br />

l’extension .ado<br />

.do Un fichier .do contient <strong>de</strong>s lignes d’instructions les unes à <strong>la</strong> suite <strong>de</strong>s autres<br />

qu’on peut ensuite exécuter à l’ai<strong>de</strong> d’un seul clic.<br />

.dta Le format <strong>de</strong>s bases <strong>de</strong> données.<br />

.gph Un fichier sauvegardant un graphique <strong>de</strong> Stata<br />

.log Un fichier .log sert à conserver ce qui défile dans <strong>la</strong> fenêtre Results.<br />

.smcl Un fichier Stata Markup and Control Language paraît mieux graphiquement<br />

lorsqu’il est lu par le Stata Viewer.<br />

Les fichiers .ado et .smcl sont <strong>de</strong>s fichiers <strong>de</strong> texte; ils peuvent être lus, et même<br />

édités, avec un éditeur <strong>de</strong> texte comme l’éditeur <strong>de</strong> Stata ou ConTEXT. On déconseille<br />

habituellement <strong>de</strong> les modifier avec un traitement <strong>de</strong> texte comme Word.<br />

2.5 La syntaxe <strong>de</strong> base d’une instruction<br />

command [varlist] [if exp] [in range] [wghtype=wghtvar] [,<br />

options]<br />

Nous donnerons <strong>de</strong>s exemples plus tard, mais nous pouvons pour l’instant éc<strong>la</strong>ircir<br />

quelques points.<br />

- Les éléments entre crochets sont optionnels;<br />

- command est le nom ou l’abréviation <strong>de</strong> l’instruction. Par exemple, nous verrons<br />

plus tard l’instruction summarize;<br />

- varlist est une liste <strong>de</strong> variables séparées par une espace;<br />

- if exp sert à inscrire une liste <strong>de</strong> conditions où exp indique les conditions<br />

logiques à satisfaire. Par exemple, if var1


2.6 Un exemple : l’instruction –summarize–<br />

La fonction summarize permet d’obtenir <strong>de</strong> l’information sur <strong>de</strong>s variables continues.<br />

summarize [varlist] [weight] [if exp] [in range] [,<br />

[<strong>de</strong>tail|meanonly] format]<br />

Ici, les lettres « s » et « u » sont soulignées. Tant que l’instruction contient ces <strong>de</strong>ux<br />

lettres, Stata <strong>la</strong> comprendra. Ainsi, summar équivaut à sum qui équivaut à su.<br />

Par exemple, on pourrait analyser le revenu total <strong>de</strong> <strong>la</strong> famille <strong>de</strong> recensement (TOTALC):<br />

sum TOTALC<br />

Variable | Obs Mean Std. Dev. Min Max<br />

-------------+--------------------------------------------------------<br />

TOTALC | 871 69841.61 478185.6 0 9999999<br />

On peut aussi inscrire une suite <strong>de</strong> variables:<br />

sum TOTALC WAGESC SELFIC CHDBNC<br />

Variable | Obs Mean Std. Dev. Min Max<br />

-------------+--------------------------------------------------------<br />

TOTALC | 871 69841.61 478185.6 0 9999999<br />

WAGESC | 871 55980.01 478808.1 0 9999999<br />

SELFIC | 871 25730.16 479011.6 -22614 9999999<br />

ou même mettre <strong>de</strong>s conditions:<br />

sum TOTALC if CFSTRUC==1 & NUCHILD>=2 & TOTALC


L’opérateur logique « et » ( & ) sert entre autres à établir <strong>de</strong>s bornes. Par exemple :<br />

sum TOTALC if CFSIZE>=3 & CFSIZE=3 & CFSIZE<br />

logarithme naturel <strong>de</strong> x log(x) Σ x sum(x)<br />

plus petit ou égal =<br />

Par exemple (Hébert, 2003, p. 19),<br />

a < b a est inférieur à b<br />

a > b a est supérieur à b<br />

a >= b a est supérieur ou égal à b<br />

a


On peut aussi utiliser les opérateurs logiques « et » ( & ) et « ou » ( | ) (Hébert, 2003, p.<br />

19).<br />

if a >=b & c f) Si a n’est pas égal au point (qui<br />

représente une valeur manquante) ou<br />

[si c est égal à d et en plus e est<br />

strictement supérieur à f ]<br />

Pour avoir l’âge moyen <strong>de</strong> chaque province, il faudrait exécuter l’instruction summarize<br />

pour chacune d’entre elle. Stata offre un certain nombre d’instructions spéciales, les<br />

préfixes, qui modifient l’action d’autres instructions. Deux <strong>de</strong> ces préfixes permettent<br />

d’exécuter une instruction en fonction <strong>de</strong>s valeurs d’une autre variable.<br />

by varlist [, sort] : command<br />

bysort varlist : command<br />

Par exemple, pour avoir l’âge moyen pour chacune <strong>de</strong>s provinces, il faudrait écrire :<br />

bysort pvreg25 : sum ecage26 if ecage26 pvreg25 = 10<br />

Variable | Obs Mean Std. Dev. Min Max<br />

-------------+--------------------------------------------------------<br />

ecage26 | 2419 44.65854 17.36658 16 80<br />

-----------------------------------------------------------------------<br />

-> pvreg25 = 11<br />

Variable | Obs Mean Std. Dev. Min Max<br />

-------------+--------------------------------------------------------<br />

ecage26 | 1588 44.60013 17.72166 16 80<br />

-----------------------------------------------------------------------<br />

-> pvreg25 = 12<br />

Variable | Obs Mean Std. Dev. Min Max<br />

-------------+--------------------------------------------------------<br />

ecage26 | 3787 46.67494 18.11865 16 80<br />

[ETC…]<br />

Les instructions sort et gsort c<strong>la</strong>ssent les observations en ordre croissant selon les<br />

valeurs d’une ou plusieurs variables. L’instruction gsort permet <strong>de</strong> les c<strong>la</strong>sser en ordre<br />

décroissant si le signe – précè<strong>de</strong> <strong>la</strong> variable <strong>de</strong> l’instruction gsort.<br />

sort varlist<br />

gsort [-] varname1 [[-] varname]<br />

Le point ( . ), qui représente les valeurs manquantes numériques, est p<strong>la</strong>cé en <strong>de</strong>rnier dans<br />

les variables numériques; <strong>la</strong> chaîne vi<strong>de</strong>, qui représente <strong>la</strong> valeur manquante<br />

alphanumérique, est p<strong>la</strong>cée en premier pour les variables alphanumériques — aussi<br />

nommées chaînes <strong>de</strong> caractères (string variable).<br />

7


2.8 Pondération<br />

L’Ontario est plus peuplée que l’Île-du-Prince-Édouard. Par ailleurs, <strong>la</strong> précision d’un<br />

estimé, par exemple l’erreur-type d’une moyenne, varie en raison inverse du carré du<br />

nombre <strong>de</strong>s unités à partir <strong>de</strong> <strong>la</strong>quelle on calcule cet estimé. Il s’ensuit qu’augmenter un<br />

peu <strong>la</strong> taille d’un petit échantillon augmente beaucoup <strong>la</strong> précision <strong>de</strong>s estimés qu’il sert à<br />

calculer alors qu’augmenter, même <strong>de</strong> beaucoup, <strong>la</strong> taille d’un échantillon déjà grand<br />

n’augmente que peu <strong>la</strong> précision <strong>de</strong>s estimés qu’il sert à calculer.<br />

Pour cette raison, lorsqu’on réalise un sondage au Canada, il est habituel <strong>de</strong> construire<br />

l’échantillon en attribuant proportionnellement moins <strong>de</strong> répondants aux provinces les<br />

plus peuplées et proportionnellement plus <strong>de</strong> répondants aux provinces les moins<br />

peuplées. Ceci permet <strong>de</strong> calculer <strong>de</strong>s estimés qui ont une précision raisonnable même<br />

pour l’Île-du-Prince-Édouard sans que cette forme <strong>de</strong> péréquation ne diminue beaucoup<br />

<strong>la</strong> précision <strong>de</strong>s estimés calculés pour l’Ontario.<br />

Ce<strong>la</strong> dit, pour calculer les estimés eux-mêmes — c.-à-d. <strong>la</strong> moyenne elle-même plutôt<br />

que son erreur-type—, et surtout à l’échelle du Canada tout entier, il faut que les<br />

informations recueillies auprès <strong>de</strong>s individus comptent en fonction <strong>de</strong> leur importance<br />

dans <strong>la</strong> popu<strong>la</strong>tion et non pas en fonction <strong>de</strong> leur importance dans l’échantillon. On résout<br />

ce problème en associant à chaque individu une valeur, que l’on nomme son « poids » ou<br />

son « coefficient <strong>de</strong> pondération », qui représente l’importance <strong>de</strong> cet individu dans <strong>la</strong><br />

popu<strong>la</strong>tion et dont on se sert pour calculer les estimés.<br />

Stata permet d’utiliser différents type <strong>de</strong> poids, dont certains correspon<strong>de</strong>nt à <strong>de</strong>s types <strong>de</strong><br />

données qu’on rencontre peu dans <strong>la</strong> recherche en sciences sociales. La forme <strong>de</strong> poids <strong>la</strong><br />

plus courante en sciences sociales est le poids d’échantillonnage, que nous venons <strong>de</strong><br />

décrire. Stata connaît ces poids sous le nom <strong>de</strong> « probability weights »; on les désigne au<br />

moyen <strong>de</strong> l’option pweights ou <strong>de</strong> son abréviation pw, qui sont toujours p<strong>la</strong>cées entre<br />

crochets.<br />

Les enquêtes <strong>de</strong> Statistique Canada utilisent toutes <strong>de</strong>s p<strong>la</strong>ns <strong>de</strong> sondage complexes qui<br />

exigent que l’on utilise <strong>de</strong>s poids pour obtenir <strong>de</strong>s estimés qui décrivent correctement <strong>la</strong><br />

popu<strong>la</strong>tion. L’usage <strong>de</strong> tels p<strong>la</strong>ns <strong>de</strong> sondage exige également que l’on utilise une<br />

approche spéciale pour calculer les erreurs-types <strong>de</strong>s estimés. Stata permet d’utiliser<br />

différentes approches pour calculer <strong>de</strong>s erreurs-types correctes lorsqu’on utilise <strong>de</strong>s<br />

données obtenues au moyen d’un p<strong>la</strong>n <strong>de</strong> sondage complexe. Règle générale, ceci se fait<br />

en décrivant les caractéristiques du p<strong>la</strong>n <strong>de</strong> sondage au moyen <strong>de</strong> l’instruction svyset<br />

puis en p<strong>la</strong>çant le préfixe svy <strong>de</strong>vant les instructions <strong>de</strong> Stata qui permettent <strong>de</strong> calculer<br />

<strong>de</strong>s estimés simples, comme <strong>de</strong>s moyennes et <strong>de</strong>s proportions, ou plus avancées, comme<br />

<strong>de</strong>s coefficients <strong>de</strong> régression.<br />

L’usage <strong>de</strong>s poids et <strong>de</strong>s approches qui permettent <strong>de</strong> calculer correctement les erreurstypes<br />

dépasse le cadre <strong>de</strong> cet atelier qui est une introduction au logiciel et non un cours <strong>de</strong><br />

statistique ou <strong>de</strong> métho<strong>de</strong>s quantitatives. Pour cette raison, il est important <strong>de</strong> comprendre<br />

que les instructions que l’on voit dans cet atelier permettent d’examiner les données, <strong>de</strong><br />

les transformer et <strong>de</strong> les préparer pour <strong>de</strong>s analyses, mais ne permettent pas <strong>de</strong> réaliser<br />

<strong>de</strong>s calculs dont les résultats soient généralisables à <strong>la</strong> popu<strong>la</strong>tion.<br />

8


2.9 Les programmes (do-files)<br />

Sous Stata, on peut travailler <strong>de</strong> manière interactive (interactive mo<strong>de</strong>) ou différée (batch<br />

mo<strong>de</strong>). On travaille <strong>de</strong> manière interactive lorsqu’on écrit les instructions une à une dans<br />

<strong>la</strong> fenêtre Command.<br />

On travaille <strong>de</strong> manière interactive pour examiner ou explorer les données, vérifier<br />

qu’une transformation donne bien le résultat que l’on veut qu’elle donne et, plus<br />

généralement, lorsque les opérations que l’on effectue ne sont pas définitives. Lorsqu’on<br />

effectue <strong>de</strong>s opérations qui doivent mener à <strong>de</strong>s transformations importantes <strong>de</strong>s données<br />

ou produire <strong>de</strong>s résultats <strong>de</strong>stinés à <strong>la</strong> publication, il est impératif d’écrire l’ensemble <strong>de</strong>s<br />

instructions nécessaires pour obtenir le résultat voulu dans un fichier qui peut être<br />

exécuté en entier en une seule fois et <strong>de</strong> manière autonome. Cette manière <strong>de</strong> précé<strong>de</strong>r est<br />

<strong>la</strong> seule qui permette à l’usager et à autrui (ses pairs, son directeur <strong>de</strong> recherche, son<br />

patron, le personnel qui peut être appelé à le dépanner) <strong>de</strong> s’assurer <strong>de</strong> <strong>la</strong> cohérence <strong>de</strong>s<br />

opérations, <strong>de</strong> conserver une trace exacte <strong>de</strong>s opérations qui ont mené à un résultat donné,<br />

<strong>de</strong> produire ce résultat si besoin est et d’apporter les corrections nécessaires sans avoir à<br />

tout réinventer lorsqu’on découvre une erreur.<br />

Sous Stata, les fichiers qui contiennent <strong>de</strong>s suites d’instructions doivent porter l’extension<br />

.do pour que le logiciel les reconnaisse comme tels. L’usage fait que l’on nomme dofiles<br />

les fichiers d’instructions <strong>de</strong>stinés à être exécutés en différé par Stata. On peut écrire<br />

ces fichiers d’instructions avec un éditeur <strong>de</strong> texte, comme l’éditeur ConTEXT qui est<br />

installé à l’antenne UQAM/INRS du CIQSS, ou avec l’éditeur <strong>de</strong> texte <strong>de</strong> Stata, qui se<br />

nomme Do-file editor. Il est fortement déconseillé d’écrire un fichier <strong>de</strong> ce genre avec un<br />

traitement <strong>de</strong> texte.<br />

On ouvre l’éditeur <strong>de</strong> programme <strong>de</strong> Stata en cliquant sur le bouton New Do-file Editor.<br />

On écrit le programme en inscrivant les instructions les unes au-<strong>de</strong>ssous <strong>de</strong>s autres, et en<br />

terminant chacune en appuyant sur touche <strong>la</strong> Entrée. Pour que Stata exécute les<br />

instructions, cliquez sur l’icône Do current file . On peut aussi utiliser l’instruction do<br />

"[path\]filename.do" [, nostop].<br />

9


On peut aussi inscrire doedit pour ouvrir l’éditeur <strong>de</strong> do-file dans <strong>la</strong> fenêtre Command.<br />

L’option nostop <strong>la</strong>isse Stata continuer même si une erreur se produit.<br />

Par exemple, inscrivez et exécutez par <strong>la</strong> suite :<br />

clear<br />

set mem 300m<br />

use "2001famille24.dta", clear<br />

Pour sauvegar<strong>de</strong>r ou ouvrir un do-file, il faut simplement passer par <strong>la</strong> fenêtre Do-file<br />

Editor et sélectionner File/Save (Ctrl+S) ou File/Open (Ctrl+O) selon le cas. L’extension<br />

du fichier sera .do.<br />

Astuce :<br />

Lorsque vous aurez un do-file volumineux, si vous sélectionnez une partie du texte dans<br />

<strong>la</strong> fenêtre Do-file Editor et cliquez sur Do current file, Stata n’exécutera que les<br />

instructions surlignées.<br />

Conseil :<br />

Dès que <strong>la</strong> tâche dépasse quelques lignes, il <strong>de</strong>vient préférable d’utiliser un éditeur <strong>de</strong><br />

programmes comme ConTEXT plutôt que l’éditeur <strong>de</strong> Stata. Les éditeurs <strong>de</strong><br />

programmes permettent généralement d’afficher les différentes parties <strong>de</strong>s instructions<br />

dans <strong>de</strong>s couleurs différentes selon <strong>la</strong> nature <strong>de</strong> l’instruction et <strong>de</strong> chacune <strong>de</strong> ces parties.<br />

Ceci permet <strong>de</strong> repérer rapi<strong>de</strong>ment les parenthèses et les guillemets oubliés ou en trop,<br />

ce que l’éditeur <strong>de</strong> Stata ne permet pas et les traitements <strong>de</strong> texte non plus. Les éditeurs<br />

<strong>de</strong> programmes possè<strong>de</strong>nt également <strong>de</strong>s fonctions utiles, comme <strong>la</strong> sélection <strong>de</strong> blocs<br />

<strong>de</strong> <strong>la</strong>rgeur arbitraire, ce que ne permet pas l’éditeur <strong>de</strong> Stata et encore moins les<br />

traitements <strong>de</strong> texte.<br />

Astuce :<br />

#<strong>de</strong>limit { ; | cr }<br />

En inscrivant « #<strong>de</strong>limit ; », toutes les instructions doivent se terminer par « ; ».<br />

Cette instruction est utile pour les longues listes d’instructions (voir l’annexe 1 pour un<br />

exemple). Pour revenir au mo<strong>de</strong> normal, il suffit <strong>de</strong> taper « <strong>de</strong>limit cr ».<br />

2.10 Commentaires<br />

Une fois un programme écrit, on oublie rapi<strong>de</strong>ment les raisons qui ont motivé le choix et<br />

l’ordre <strong>de</strong>s instructions qui le constituent. Pour cette raison, et aussi pour permettre aux<br />

personnes avec lesquelles on est susceptible <strong>de</strong> partager les programmes que l’on écrit —<br />

directeur <strong>de</strong> recherche, collègues d’une équipe <strong>de</strong> recherche — il est nécessaire<br />

d’expliquer le but et le fonctionnement et commenter les instructions ou blocs<br />

d’instructions qui le constituent.<br />

Stata offre <strong>de</strong>ux manières d’ajouter <strong>de</strong>s commentaires à un programme.<br />

La première consiste à p<strong>la</strong>cer un astérisque (*) au début <strong>de</strong> <strong>la</strong> ligne indique au logiciel<br />

qu’il ne doit pas s’occuper <strong>de</strong> ce qui est écrit sur cette ligne. Cette manière permet, par<br />

exemple, <strong>de</strong> p<strong>la</strong>cer un titre court au début <strong>de</strong> chaque section du programme ou une<br />

explication courte avant ou après une instruction.<br />

10


L’autre manière consiste à marquer le début du commentaire par une barre oblique suivie<br />

d’un astérisque (/*) et <strong>de</strong> marquer <strong>la</strong> foin du commentaire par un astérisque suivi d’une<br />

barre oblique (*/). Cette manière permet d’inscrire un commentaire très court au milieu<br />

ou à <strong>la</strong> fin d’une ligne d’instruction. Elle permet également d’ajouter <strong>de</strong>s commentaires<br />

plus longs qui occupent plusieurs lignes : tout ce qui est compris entre <strong>la</strong> marque du début<br />

et <strong>la</strong> marque <strong>de</strong> <strong>la</strong> fin du commentaire est ignoré par le logiciel, qui se contente <strong>de</strong> le<br />

recopier dans <strong>la</strong> fenêtre Results et dans le fichier .log.<br />

* Ceci est un commentaire. Stata le recopie sans l’interpréter.<br />

tab var1, missing no<strong>la</strong>bel /* Ceci est aussi un commentaire. */<br />

/* Ceci est également un commentaire,<br />

volontairement écrit sur plus d’une ligne. */<br />

2.11 Conservation <strong>de</strong>s données en mémoire<br />

Il arrive parfois que l’on veuille transformer les données en mémoire <strong>de</strong> manière<br />

temporaire. Les instructions preserve et restore permettent <strong>de</strong> faire ceci <strong>de</strong> manière<br />

très simple, sans avoir à sauvegar<strong>de</strong>r les données en mémoire dans un fichier.<br />

Taper preserve ordonne à Stata <strong>de</strong> copier les données en mémoire, dans l’état où elles<br />

sont à ce moment, dans un espace réservé du disque dur. Taper restore efface les<br />

données en mémoire et les remp<strong>la</strong>ce par les données conservées sur le disque dur par <strong>la</strong><br />

plus récente instruction preserve.<br />

2.12 Création d’un fichier <strong>de</strong> sortie (log file)<br />

log using “[path\]filename[.log]” [, append rep<strong>la</strong>ce]<br />

Contrairement au fichier .do, où l’on ne conserve que les instructions, le fichier .log<br />

permet <strong>de</strong> conserver tout ce qui défile dans <strong>la</strong> fenêtre Results, c.-à-d. les instructions et les<br />

résultats.<br />

L’instruction log using <strong>de</strong>man<strong>de</strong> au logiciel <strong>de</strong> conserver dans un fichier tout ce qui<br />

défile dans <strong>la</strong> fenêtre Results. On peut utiliser cette instruction à partir <strong>de</strong> <strong>la</strong> fenêtre<br />

Command; dans ce cas, on conservera dans un fichier tout ce qui s’affichera par <strong>la</strong> suite<br />

dans <strong>la</strong> fenêtre Results. Il est plus courant d’utiliser l’instruction log using dans un<br />

programme, et donc dans un fichier .do. Elle permet alors <strong>de</strong> conserver tout ce que le<br />

programme fait défiler dans <strong>la</strong> fenêtre Results. Règle générale, on p<strong>la</strong>ce l’instruction log<br />

using au tout début du programme.<br />

Dans un programme, on utilse généralement cette instruction sous <strong>la</strong> forme suivante :<br />

log using [nom du fichier choisi].log, rep<strong>la</strong>ce<br />

Utiliser l’extension .log indique que l’on veut conserver les résultats sous forme <strong>de</strong><br />

texte simple plutôt qu’avec une mise en forme décrite le <strong>la</strong>ngage SMCL <strong>de</strong> Stata. Les<br />

fichiers écrits en SMVL ne peuvent être lus qu’avec le Viewer <strong>de</strong> Stata, ce qui les rend<br />

généralement peu utiles. L’option rep<strong>la</strong>ce indique que l’on veut remp<strong>la</strong>cer le fichier du<br />

même nom s’il existe déjà. On peut souhaiter ajouter du contenu au fichier .log qui<br />

existe déjà plutôt que <strong>de</strong> le remp<strong>la</strong>cer; on utilise alors l’option append.<br />

clear<br />

set mem 300000<br />

11


use "\\\Rafii\usagers\PROF\ECO5072\edtrperson2002.dta", clear<br />

log using atelierstata.log, rep<strong>la</strong>ce<br />

(On inscrit ici les diverses instructions.)<br />

log close<br />

log close ferme le fichier log.<br />

log off le suspend pour l’ouvrir plus tard.<br />

log on le réactive.<br />

Entre guillemets, on peut mettre le nom du fichier .log s’il est dans le répertoire <strong>de</strong><br />

travail ou alors il faut mettre le chemin au long. Ce chemin apparaît dans <strong>la</strong> fenêtre<br />

Results quand on ouvre une base <strong>de</strong> données avec File/Open.<br />

Pour ouvrir le fichier .log, dans Stata, il faut passer par File/Log/View. La sélection à<br />

l’ai<strong>de</strong> <strong>de</strong> <strong>la</strong> souris se fait par l’option Browse ou on peut aussi écrire directement le nom<br />

du fichier .log, dans ce cas-ci, atelierstata.log.<br />

La fenêtre Viewer s’ouvrira alors. Pour l’amener dans les contrôles, l’option copier<br />

(Ctrl+C) coller (Ctrl+V) dans un fichier MS Word <strong>de</strong>meure <strong>la</strong> façon <strong>la</strong> plus facile. Par<br />

contre, pour bien respecter <strong>la</strong> mise en page, il faut choisir <strong>la</strong> police Courrier New avec<br />

une taille maximum <strong>de</strong> 9.<br />

Si le nom du fichier .log existe déjà, <strong>la</strong> fonction append rajoutera les résultats et les<br />

instructions à <strong>la</strong> suite.<br />

Par ailleurs, l’option rep<strong>la</strong>ce réécrit par-<strong>de</strong>ssus le fichier du même nom.<br />

Pour n’obtenir que les lignes d’instructions sans les résultats, il suffit <strong>de</strong> rajouter cmd<br />

avant l’instruction log.<br />

cmdlog using “[path\]filename” [, append rep<strong>la</strong>ce]<br />

cmdlog close<br />

cmdlog off<br />

cmdlog on<br />

2.13 Utiliser le dictionnaire <strong>de</strong>s variables<br />

Pour savoir quelles variables sont disponibles et leur signification dans une base <strong>de</strong><br />

données, un dictionnaire <strong>de</strong>s variables est indispensable.<br />

Pour les données du Recensement <strong>de</strong> 2001 (fichier <strong>de</strong> microdonnées à gran<strong>de</strong> diffusion<br />

sur les familles du recensement <strong>de</strong> 2001), Statistique Canada fournit toutes les<br />

informations nécessaires par thèmes.<br />

Au-<strong>de</strong>ssus <strong>de</strong> chaque page, vous verrez à quel fichier (personnes, <strong>de</strong> familles<br />

économiques, <strong>de</strong> familles <strong>de</strong> recensement ou clé) appartiennent les variables.<br />

La fonction sum TOTALC montre que le maximum est 9999999. Dans le dictionnaire, on<br />

indique que le 9999999 signifie Non applicable. Ainsi, cette donnée non vali<strong>de</strong> biaise <strong>la</strong><br />

moyenne. Pour calculer <strong>la</strong> vraie moyenne <strong>de</strong> TOTALC, il faudra donc poser <strong>de</strong>s<br />

conditions…<br />

12


Astuce :<br />

Pour chercher une variable en particulier ou un mot dans un fichier Adobe Rea<strong>de</strong>r<br />

(*.pdf), utilisez l’instruction Rechercher (Ctrl+F). Par exemple, faites Ctrl+F et tapez<br />

jobdur1 et vous arriverez directement à <strong>la</strong> <strong>de</strong>scription <strong>de</strong> cette variable.<br />

Astuce :<br />

Si vous voulez obtenir <strong>la</strong> liste <strong>de</strong>s variables rapi<strong>de</strong>ment et dans un format compact, faites<br />

l’instruction ds.<br />

3. Explorer les données<br />

3.1 Voir les données<br />

browse [varlist] [if exp] [in range]<br />

Cette instruction ouvre <strong>la</strong> matrice en mo<strong>de</strong> visionnement seulement. En tapant browse,<br />

on voit toute <strong>la</strong> base <strong>de</strong> données.<br />

edit [varlist] [if exp] [in range]<br />

Cette instruction effectue <strong>la</strong> même chose que browse à <strong>la</strong> différence qu’elle permet <strong>de</strong><br />

modifier les données comme dans un chiffrier. Ctrl+7 est une touche raccourcie.<br />

save [“[path\]filename”] [, rep<strong>la</strong>ce]<br />

save sauvegar<strong>de</strong> <strong>la</strong> base <strong>de</strong> données présentement utilisée par Stata. save myfile<br />

sauvegar<strong>de</strong>rait myfile.dta dans le répertoire <strong>de</strong> travail <strong>de</strong> Stata. Si ce fichier existait<br />

déjà, il faudrait utiliser l’option rep<strong>la</strong>ce :<br />

save myfile, rep<strong>la</strong>ce.<br />

3.2 Décrire les données<br />

<strong>de</strong>scribe [varlist] [, short <strong>de</strong>tail fullnames numbers]<br />

Ou, si <strong>la</strong> base <strong>de</strong> données n’est pas téléchargée, on pourrait inscrire :<br />

<strong>de</strong>scribe using [path\]filename<br />

Par exemple, avec <strong>la</strong> base <strong>de</strong> données edtr2002 personnes.dta, on aurait, mais avec<br />

une liste <strong>de</strong> variables beaucoup plus longues que celle-ci:<br />

clear<br />

set mem 300m<br />

use "2001famille24.dta"<br />

<strong>de</strong>scribe<br />

Contains data from 2001famille24_pat.dta<br />

obs: 871 Fichier <strong>de</strong> microdonnées du<br />

recensement <strong>de</strong> 2001 - Extrait<br />

du fichier <strong>de</strong>s familles<br />

vars: 42 3 Jan 2008 13:55<br />

size: 79,261 (99.9% of memory free)<br />

-------------------------------------------------------------------------------<br />

storage disp<strong>la</strong>y value<br />

variable name type format <strong>la</strong>bel variable <strong>la</strong>bel<br />

-------------------------------------------------------------------------------<br />

13


PROVF byte %57.0g PROVF PROVINCE OU TERRITOIRE<br />

CMAF int %40.0g CMAF RÉGION MÉTROPOLITAINE DE<br />

RECENSEMENT (RMR)<br />

NSTIENC byte %37.0g NSTIENC NOMBRE DE SOUTIENS DANS LE<br />

MÉNAGE<br />

ROOMC byte %18.0g ROOMC NOMBRE DE PIÈCES<br />

RPAIRC byte %31.0g RPAIRC ÉTAT <strong>DU</strong> LOGEMENT<br />

VALUEC long %10.0g VALUEC VALEUR <strong>DU</strong> LOGEMENT<br />

TENUREC byte %54.0g TENUREC MODE D’OCCUPATION<br />

[ETC…]<br />

L’instruction list présente simplement <strong>la</strong> liste <strong>de</strong>s valeurs <strong>de</strong>s variables <strong>de</strong>mandées.<br />

list [varlist] [if exp] [in range] [, [no]disp<strong>la</strong>y nohea<strong>de</strong>r<br />

no<strong>la</strong>bel noobs doublespace]<br />

Toutes les variables seront présentées si aucune n’est spécifiée. Il faudrait mettre <strong>de</strong>s<br />

conditions…<br />

clear<br />

set mem 300m<br />

use "2001famille24.dta"<br />

list TOTALC-SELFIC in 1/20 if TENUREC==1<br />

+--------------------------+<br />

| TOTALC WAGESC SELFIC |<br />

|--------------------------|<br />

2. | 33573 4200 0 |<br />

3. | 53000 53000 0 |<br />

5. | 78432 77930 0 |<br />

6. | 44028 40000 0 |<br />

8. | 79865 79647 0 |<br />

|--------------------------|<br />

11. | 18314 17265 0 |<br />

12. | 46920 46920 0 |<br />

13. | 45171 24930 0 |<br />

14. | 70000 70000 0 |<br />

15. | 50000 50000 0 |<br />

|--------------------------|<br />

17. | 74585 68550 0 |<br />

18. | 82405 82000 0 |<br />

19. | 8370 2700 0 |<br />

+--------------------------+<br />

L’instruction list ec* in 1/20 if ecsex99==1 présentera les valeurs <strong>de</strong>s<br />

observations 1 à 20 dont le <strong>la</strong> famille est propriétaire et dont <strong>la</strong> liste <strong>de</strong>s variables<br />

commence par TOTALC et termine par SELFIC.<br />

L’instruction inspect donne une bonne idée d’une variable numérique :<br />

inspect [varlist] [if exp] [in range]<br />

clear<br />

set mem 300m<br />

use "2001famille24.dta"<br />

inspect ROOMC<br />

ROOMC: NOMBRE DE PIÈCES Number of Observations<br />

------------------------ Non-<br />

Total Integers Integers<br />

14


| # Negative - - -<br />

| # Zero - - -<br />

| # Positive 871 871 -<br />

| # # # ----- ----- -----<br />

| # # # Total 871 871 -<br />

| . # # # # Missing -<br />

+---------------------- -----<br />

1 10 871<br />

(10 unique values)<br />

ROOMC is <strong>la</strong>beled and all values are documented in the <strong>la</strong>bel.<br />

L’instruction co<strong>de</strong>book peut être utilisée aussi bien avec <strong>de</strong>s variables numériques que<br />

<strong>de</strong>s variables alphanumériques (string variables).<br />

co<strong>de</strong>book [varlist] [, all hea<strong>de</strong>r notes mv tabu<strong>la</strong>te(#)]<br />

co<strong>de</strong>book CFTYPE TOTALC<br />

-------------------------------------------------------------------------------<br />

----------------------------------------------------------------<br />

CFTYPE<br />

GENRE DE FAMILLE DE RECENSEMENT<br />

-------------------------------------------------------------------------------<br />

----------------------------------------------------------------<br />

type: numeric (byte)<br />

<strong>la</strong>bel: CFTYPE<br />

range: [1,9] units: 1<br />

unique values: 4 missing .: 0/871<br />

tabu<strong>la</strong>tion: Freq. Numeric Label<br />

544 1 Famille <strong>de</strong> soutien principal<br />

2 2 Autre famille avec soutien<br />

12 3 Famille sans soutien<br />

313 9 Sans objet<br />

-------------------------------------------------------------------------------<br />

----------------------------------------------------------------<br />

TOTALC<br />

REVENU TOTAL DE LA FAMILLE DE RECENSEMENT<br />

-------------------------------------------------------------------------------<br />

----------------------------------------------------------------<br />

type: numeric (long)<br />

<strong>la</strong>bel: TOTALC, but 826 nonmissing values are not <strong>la</strong>beled<br />

range: [0,9999999] units: 1<br />

unique values: 827 missing .: 0/871<br />

examples: 15516<br />

30948<br />

48562<br />

72604<br />

4. Manipu<strong>la</strong>tion <strong>de</strong>s données I<br />

4.1 Création et transformation d’une variable<br />

Pour créer <strong>de</strong> nouvelles variables, on utilise l’instruction generate.<br />

generate [type] newvar = exp1 [if exp2] [in range]<br />

15


L’option type sert à préciser le type <strong>de</strong> variables: byte, int, long, float,<br />

double ou str#. Stata choisit automatiquement en l’absence d’une spécification.<br />

exp1 comprend l’opération qui génèrera <strong>la</strong> nouvelle variable.<br />

exp2 comprend les conditions sous lesquelles <strong>la</strong> nouvelle variable est générée.<br />

Par exemple, pour vérifier un effet non linéaire sur l’âge, il faudrait d’abord créer <strong>la</strong><br />

variable <strong>de</strong> l’âge au carré :<br />

g age2= ecage26^2<br />

En al<strong>la</strong>nt voir dans le Data Browser ou en faisant browse, complètement à gauche, <strong>la</strong><br />

variable age2 sera visible.<br />

Ou encore, pour utiliser le logarithme du sa<strong>la</strong>ire, on écrirait :<br />

g lnsa<strong>la</strong>ire = ln(earng42)<br />

Astuce :<br />

Pour s’assurer que <strong>la</strong> bonne variable a bel et bien été créée, vous pouvez <strong>la</strong> vérifier grâce<br />

à l’instruction keep [noms <strong>de</strong>s variables]. Cette instruction éliminera toutes les<br />

variables <strong>de</strong> <strong>la</strong> base <strong>de</strong> données sauf celles inscrites à <strong>la</strong> suite <strong>de</strong> keep. Ensuite, vous<br />

n’avez qu’à vérifier dans le Data Editor que les bonnes opérations ont été effectuées.<br />

Mais attention, il faut avoir enregistré les instructions du projet dans un fichier do pour<br />

pouvoir recréer <strong>la</strong> base <strong>de</strong> données utilisée.<br />

Autrement, par <strong>la</strong> suite, on peut faire dans Stata soit File/Save As… ou Ctrl+S pour<br />

enregistrer un fichier *.dta qui constituera une base <strong>de</strong> données personnalisée.<br />

Cependant, pour éviter les erreurs, il est préférable <strong>de</strong> travailler à partir <strong>de</strong> <strong>la</strong> base <strong>de</strong><br />

données originale sans jamais <strong>la</strong> modifier. En cas <strong>de</strong> catastrophe, on revient à <strong>la</strong> base <strong>de</strong><br />

données originale.<br />

Astuce :<br />

Pour s’y retrouver dans le Data Editor, l’instruction aor<strong>de</strong>r p<strong>la</strong>ce toutes les variables<br />

en ordre alphabétique.<br />

Voici <strong>de</strong>s exemples d’opérations algébriques effectuées dans Stata (Hébert, 2003, p. 16) :<br />

c = a+b<br />

c = a-b<br />

c = a*b<br />

c= a/b<br />

c= b^c (pour b c )<br />

c = log(b)<br />

c = sqrt(a) (pour a )<br />

c = exp(b) (pour e b )<br />

Voici d’autres exemples (Hébert, 2003, p. 16) :<br />

generate sumx1x2 = x1+ x2<br />

16


generate sqrtx3 = sqrt(x3) if<br />

x3>=0<br />

generate abs_x4= abs(x4) Valeur absolue <strong>de</strong> x4<br />

generate trunc_x5 = int(5) Nombre entier obtenu en tronquant x5<br />

generate rnd_x6 = round(x6,.01) Valeur <strong>de</strong> x6 à <strong>de</strong>ux décimales<br />

generate str1 gen<strong>de</strong>r =<br />

string(sex)<br />

generate byte ngen<strong>de</strong>r =<br />

real(gen<strong>de</strong>r)<br />

generate startdate =<br />

mdy(mthvar,dayvar,yearvar)<br />

17<br />

Création d’une variable alphanumérique<br />

d’un caractère à partir <strong>de</strong> <strong>la</strong> variable<br />

numérique sex<br />

Création d’une variable numérique à partir<br />

<strong>de</strong> <strong>la</strong> variable alphanumérique gen<strong>de</strong>r<br />

Création d’une variable date en format<br />

Stata à partir <strong>de</strong> trois variables numériques<br />

soit le mois, le jour et l’année.<br />

generate p = uniform() Création <strong>de</strong> <strong>la</strong> variable p qui est tirée<br />

aléatoirement et comprise entre 0 et 1.<br />

generate z = invnorm (p) Affecte à <strong>la</strong> variable z, <strong>la</strong> valeur <strong>de</strong> <strong>la</strong><br />

variable aléatoire qui correspond à <strong>la</strong><br />

valeur p <strong>de</strong> <strong>la</strong> fonction <strong>de</strong> répartition <strong>de</strong> <strong>la</strong><br />

loi normale. Par définition, <strong>la</strong> fonction <strong>de</strong><br />

répartition d’une loi statistique varie <strong>de</strong> 0 à<br />

1. Ici, si p varie uniformément entre 0 et 1<br />

(ce qui est le cas du p <strong>de</strong> l’exemple<br />

précé<strong>de</strong>nt), z suit une loi normale centrée<br />

réduite. On utilise couramment cette<br />

procédure pour générer une variable<br />

artificielle qui suit une loi normale.<br />

On utilise help function pour obtenir <strong>la</strong> liste <strong>de</strong> toutes les fonctions disponibles.<br />

L’instruction egen offre également une série <strong>de</strong> possibilités qui permettent <strong>de</strong> créer<br />

rapi<strong>de</strong>ment <strong>de</strong>s variables qui <strong>de</strong>man<strong>de</strong>raient autrement plusieurs lignes d’instructions.<br />

egen [type] newvar = function(arguments) [if exp] [in range] [,<br />

options]<br />

Certaines fonctions génèrent <strong>la</strong> même constante pour toutes les observations (Hébert,<br />

2003, p. 17).<br />

egen min_x1 = min(x1) Prend <strong>la</strong> valeur minimum <strong>de</strong> x1<br />

egen max_x1 = max(x1) Prend <strong>la</strong> valeur maximale <strong>de</strong> x1<br />

egen sum_x1 = (x1) Somme <strong>de</strong> toutes les valeurs <strong>de</strong> x1<br />

egen med_x1 = median(x1) Valeur médiane <strong>de</strong> x1<br />

egen avg_x1 = mean(x1) Moyenne <strong>de</strong> x1<br />

egen sd_x1 = sd(x1) Écart-type <strong>de</strong> x1.<br />

Certaines fonctions génèrent une valeur différente pour chaque observation ou ligne.<br />

egen z_x1 = std(x1) Valeur standardisée <strong>de</strong> x1<br />

(soustraire <strong>la</strong> moyenne et diviser par


l’écart-type).<br />

egen rank_x1 = rank(x1) Rang <strong>de</strong> l’observation<br />

egen min_x = rmin(x1 x2 x3) Valeur minimale entre (x1, x2, x3)<br />

egen max_x = rmax(x1 x2 x3) Valeur maximale entre (x1, x2, x3)<br />

gen et egen ne peuvent que créer <strong>de</strong> nouvelles variables. Pour changer une variable<br />

existante, on doit utiliser l’instruction rep<strong>la</strong>ce.<br />

rep<strong>la</strong>ce oldvarname = exp1 [if exp2] [in range]<br />

L’instruction suivante permet <strong>de</strong> changer <strong>la</strong> valeur d’une variable par une autre valeur :<br />

rep<strong>la</strong>ce [variable concernée]=[nouvelle valeur] if (conditions)<br />

Pour remp<strong>la</strong>cer <strong>la</strong> valeur 97 <strong>de</strong> <strong>la</strong> variable pvreg25 par un point, il suffirait d’entrer :<br />

rep<strong>la</strong>ce pvreg25=. if pvreg25==97<br />

Conseil :<br />

Lorsque Stata rencontre un point (.) comme valeur, il considère <strong>la</strong> donnée comme<br />

manquante et ne <strong>la</strong> traite tout simplement pas.<br />

Par contre, dans une condition, toute valeur numérique est inférieure au point.<br />

Par exemple, rep<strong>la</strong>ce adult=1 if age>18 remp<strong>la</strong>cerait le point par 1 parce que<br />

Stata considère le point supérieur à 18. Il faudrait plutôt inscrire rep<strong>la</strong>ce adult=1<br />

if age>18 & age


Ce qui suit est un autre exemple impliquant un rep<strong>la</strong>ce <strong>de</strong> plus d’une condition :<br />

tab studtf26<br />

studtf26 | Freq. Percent Cum.<br />

------------+-----------------------------------<br />

1 | 8,455 15.04 15.04<br />

2 | 40,897 72.75 87.79<br />

7 | 1 0.00 87.79<br />

9 | 6,863 12.21 100.00<br />

------------+-----------------------------------<br />

Total | 56,216 100.00<br />

rep<strong>la</strong>ce studtf26=. if studtf26=7<br />

(6864 real changes ma<strong>de</strong>, 6864 to missing)<br />

tab studtf26<br />

studtf26 | Freq. Percent Cum.<br />

------------+-----------------------------------<br />

1 | 8,455 17.13 17.13<br />

2 | 40,897 82.87 100.00<br />

------------+-----------------------------------<br />

Total | 49,352 100.00<br />

L’instruction mv<strong>de</strong>co<strong>de</strong> change <strong>de</strong>s valeurs données d’une variable en point et<br />

mvenco<strong>de</strong> le contraire.<br />

mv<strong>de</strong>co<strong>de</strong> varlist [if exp] [in range], mv(numlist)<br />

mvenco<strong>de</strong> varlist [if exp] [in range], mv(#)<br />

Par exemple,<br />

mv<strong>de</strong>co<strong>de</strong> q1-q10, mv(9998 9999) Change les co<strong>de</strong>s 9998 et 9999 en points<br />

pour les variables q1 à q10.<br />

Mvenco<strong>de</strong> q1-q10, mv(9999) Change les points en 9999.<br />

L’instruction reco<strong>de</strong> effectue à peu près <strong>la</strong> même chose que l’instruction rep<strong>la</strong>ce :<br />

reco<strong>de</strong> varname oldco<strong>de</strong> [oldco<strong>de</strong>] = newco<strong>de</strong> [if exp] [in range]<br />

19


On pourrait ainsi reco<strong>de</strong>r <strong>la</strong> variable CMAF :<br />

tab CMAF<br />

RÉGION MÉTROPOLITAINE DE RECENSEMENT |<br />

(RMR) | Freq. Percent Cum.<br />

----------------------------------------+-----------------------------------<br />

Québec | 88 10.10 10.10<br />

Montréal | 422 48.45 58.55<br />

Sherbrooke (433) et Trois-Rivières (442 | 36 4.13 62.69<br />

Ottawa-Hull | 26 2.99 65.67<br />

Sans objet | 299 34.33 100.00<br />

----------------------------------------+-----------------------------------<br />

co<strong>de</strong>book CMAF<br />

Total | 871 100.00<br />

-------------------------------------------------------------------------------<br />

--------------------------------------------------------------<br />

CMAF<br />

RÉGION MÉTROPOLITAINE DE RECENSEMENT (RMR)<br />

-------------------------------------------------------------------------------<br />

--------------------------------------------------------------<br />

type: numeric (int)<br />

<strong>la</strong>bel: CMAF<br />

range: [421,999] units: 1<br />

unique values: 5 missing .: 0/871<br />

tabu<strong>la</strong>tion: Freq. Numeric Label<br />

88 421 Québec<br />

422 462 Montréal<br />

36 499 Sherbrooke (433) et<br />

Trois-Rivières (442)<br />

26 505 Ottawa-Hull<br />

299 999 Sans objet<br />

reco<strong>de</strong> CMAF 421=1 462=2 499=3 505=4 999=.<br />

(CMAF: 871 changes ma<strong>de</strong>)<br />

tab CMAF<br />

RÉGION MÉTROPOLITAINE DE RECENSEMENT |<br />

(RMR) | Freq. Percent Cum.<br />

----------------------------------------+-----------------------------------<br />

1 | 88 15.38 15.38<br />

2 | 422 73.78 89.16<br />

3 | 36 6.29 95.45<br />

4 | 26 4.55 100.00<br />

----------------------------------------+-----------------------------------<br />

Total | 572 100.00<br />

20


Voici d’autres exemples (Hébert, 2003, p. 18) :<br />

reco<strong>de</strong> x1 9=. La valeur 9 <strong>de</strong>vient un point.<br />

reco<strong>de</strong> x2 2=1 3 4 5 6=2 Change le 2 en un et (3,4,5,6) en 2.<br />

reco<strong>de</strong> x2 2=1 3/6=2 Ibi<strong>de</strong>m.<br />

reco<strong>de</strong> x3 1 2=1 *=2 Change 1 et 2 en un et le reste en 2.<br />

reco<strong>de</strong> x4<br />

65/max=3<br />

min/34=1 35/64=2 Change les valeurs inférieures à 34 en 1,<br />

entre 35 et 64 en 2 et supérieur ou égal à<br />

65 en 3.<br />

4.2 Noms et <strong>de</strong>scripteurs<br />

Pour renommer une variable, l’instruction rename semble toute indiquée :<br />

rename oldvarname newvarname<br />

L’instruction rename prov1 qc change le nom original prov1 pour qc, tout<br />

simplement.<br />

L’instruction <strong>de</strong>scribe permet d’afficher certaines propriétés d’une variable. Pour<br />

inscrire quelque chose dans <strong>la</strong> colonne variable <strong>la</strong>bel, ou <strong>de</strong>scripteur <strong>de</strong> <strong>la</strong> variable<br />

en français, l’instruction suivante sera utile :<br />

<strong>la</strong>bel variable varname "Variable <strong>la</strong>bel"<br />

d ecage26<br />

storage disp<strong>la</strong>y value<br />

variable name type format <strong>la</strong>bel variable <strong>la</strong>bel<br />

-----------------------------------------------------------------------<br />

ecage26 float %9.0g<br />

. <strong>la</strong>bel variable ecage26 "Age du sondage"<br />

d ecage26<br />

storage disp<strong>la</strong>y value<br />

variable name type format <strong>la</strong>bel variable <strong>la</strong>bel<br />

-----------------------------------------------------------------------<br />

ecage26 float %9.0g Age du sondage<br />

De cette manière, on ne peut oublier <strong>la</strong> signification <strong>de</strong>s variables du projet.<br />

On peut aussi attacher une note à <strong>la</strong> base <strong>de</strong> données téléchargée par Stata : <strong>la</strong>bel data<br />

"dataset <strong>la</strong>bel".<br />

Par exemple, <strong>la</strong>bel data "Projet Transitions".<br />

De même, on peut le faire pour <strong>de</strong>s variables en <strong>de</strong>ux étapes :<br />

<strong>la</strong>bel <strong>de</strong>fine <strong>la</strong>belname value1 "Descripteur 1" … value# ///<br />

"Descripteur#"<br />

<strong>la</strong>bel values varname <strong>la</strong>belname<br />

Pour voir <strong>la</strong> liste <strong>de</strong>s notes attachées aux valeurs d’une variable, il faut utiliser<br />

l’instruction <strong>la</strong>bel list [lblname [lblname ...]].<br />

21


Par exemple, pour <strong>la</strong> variable province PROVF, on aurait :<br />

<strong>de</strong>scribe PROVF<br />

storage disp<strong>la</strong>y value<br />

variable name type format <strong>la</strong>bel variable <strong>la</strong>bel<br />

-------------------------------------------------------------------------------<br />

PROVF byte %57.0g PROVF PROVINCE OU TERRITOIRE<br />

<strong>la</strong>bel variable PROVF "Provinces du Canada"<br />

<strong>la</strong>bel data "Projet Transitions"<br />

<strong>la</strong>bel <strong>de</strong>fine PROVF 10 "Terre-Neuve" 11 "Iles-du-Prince-Edouard" ///<br />

12 "Nouvelle-Ecosse" 13 "Nouveau-Brunswick" 24 "Quebec" 35 "Ontario"///<br />

46 "Manitoba" 47 "Saskatchewan" 48 "Alberta" 59 "Colombie-Britannique"<br />

60 "Territoire du Yukon, Territoires du Nord-Ouest et Nunavut"<br />

<strong>la</strong>bel values PROVF PROVLABEL<br />

<strong>de</strong>scribe PROVF<br />

storage disp<strong>la</strong>y value<br />

variable name type format <strong>la</strong>bel variable <strong>la</strong>bel<br />

-------------------------------------------------------------------------------<br />

PROVF byte %57.0g PROVLABEL<br />

Provinces du Canada<br />

<strong>la</strong>bel list<br />

PROVF:<br />

10 Terre-Neuve-et-Labrador<br />

11 Île-du-Prince-Édouard<br />

12 Nouvelle-Écosse<br />

13 Nouveau-Brunswick<br />

24 Québec<br />

35 Ontario<br />

46 Manitoba<br />

47 Saskatchewan<br />

48 Alberta<br />

59 Colombie-Britannique<br />

60 Territoire du Yukon, Territoires du Nord-Ouest et Nunavut<br />

Voir help <strong>la</strong>bel et help notes pour plus <strong>de</strong> détails.<br />

4.3 Création <strong>de</strong> variables dichotomiques<br />

Une variable dichotomique (dummy variable) prend <strong>la</strong> valeur 1 si l’individu est exposé à<br />

un facteur et 0 autrement. Ce type <strong>de</strong> variable sert souvent à traiter <strong>de</strong> multiples groupes à<br />

<strong>la</strong> fois. Par exemple, pour les provinces, dix variables dichotomiques sont nécessaires,<br />

chacune prenant <strong>la</strong> valeur 0 ou 1.<br />

En fait, il faudra en éliminer une pour ne pas avoir <strong>de</strong> problème <strong>de</strong> multicolinéarité<br />

parfaite dans les régressions à faire, mais ce problème sera traité dans un autre atelier.<br />

Ainsi, l’instruction à utiliser sera :<br />

g [nom <strong>de</strong> <strong>la</strong> variable créée] =(conditions).<br />

Par conséquent, pour les provinces, il faudrait procé<strong>de</strong>r comme suit :<br />

22


g TENUREC_P=(TENUREC==1)<br />

g TENUREC_L=(TENUREC==2)<br />

Donc, l’instruction g TENUREC_P=(TENUREC==1) générera une variable dichotomique<br />

qui prend <strong>la</strong> valeur <strong>de</strong> 1 seulement si TENUREC==1 et 0 autrement.<br />

Encore, pour créer une variable dichotomique pour <strong>de</strong>s famille <strong>de</strong> 3 à 5 enfants<br />

inclusivement, on écrirait :<br />

gen famille3_5=( NUCHILD>=3 & NUCHILD


Par exemple, cette fonction s’applique sur <strong>la</strong> composition <strong>de</strong> <strong>la</strong> famille :<br />

tab NUCHILD<br />

NOMBRE D’ENFANTS À |<br />

LA MAISON DANS LA |<br />

FAMILLE DE |<br />

RECENSEMENT | Freq. Percent Cum.<br />

--------------------+-----------------------------------<br />

Aucun enfant | 215 24.68 24.68<br />

Un enfant | 172 19.75 44.43<br />

Deux enfants | 115 13.20 57.63<br />

Trois enfants | 43 4.94 62.57<br />

Quatre enfants | 11 1.26 63.83<br />

Cinq enfants | 2 0.23 64.06<br />

Sans objet | 313 35.94 100.00<br />

--------------------+-----------------------------------<br />

Total | 871 100.00<br />

On peut également utiliser cette instruction pour obtenir le tri croisé <strong>de</strong> <strong>de</strong>ux variables.<br />

tab NUCHILD TENUREC<br />

NOMBRE D’ENFANTS À |<br />

LA MAISON DANS LA |<br />

FAMILLE DE | MODE D’OCCUPATION<br />

RECENSEMENT | Possédé ( Loué (arg | Total<br />

--------------------+----------------------+----------<br />

Aucun enfant | 151 64 | 215<br />

Un enfant | 115 57 | 172<br />

Deux enfants | 91 24 | 115<br />

Trois enfants | 32 11 | 43<br />

Quatre enfants | 8 3 | 11<br />

Cinq enfants | 1 1 | 2<br />

Sans objet | 104 209 | 313<br />

--------------------+----------------------+----------<br />

Total | 502 369 | 871<br />

Astuce :<br />

Lorsqu’on utilise l’instruction tabu<strong>la</strong>te avec variable continue, on obtient un<br />

déroulement d’une foule <strong>de</strong> lignes. Pour arrêter le défilement, on tape simplement sur q.<br />

L’icône Break occupe <strong>la</strong> même fonction.<br />

Exemple : faites tab jobdur1 et tapez ensuite sur q.<br />

Astuce :<br />

Pour importer dans un fichier MS Word les résultats <strong>de</strong> Stata, rien n’est plus simple. Un<br />

bon vieux copier (Ctrl+C) coller (Ctrl+V) à partir <strong>de</strong> <strong>la</strong> fenêtre Stata Results fera<br />

l’affaire. La mise en page Courrier New avec une taille 9 permettra <strong>de</strong> respecter <strong>la</strong><br />

présentation <strong>de</strong> Stata.<br />

24


tabu<strong>la</strong>te rowvar [colvar] [if] [in] [weight] [, chi2 lrchi2 gamma<br />

taub V all column row nofreq missing no<strong>la</strong>bel]<br />

Les cinq premières options sont <strong>de</strong>s tests statistiques : le test du chi carré <strong>de</strong> Pearson, le<br />

ratio <strong>de</strong> vraisemb<strong>la</strong>nce du test du chi carré, le gamma <strong>de</strong> Goodman et Kruskal, le tau-b <strong>de</strong><br />

Kendall et le V <strong>de</strong> Cramer.<br />

all les instruction tous.<br />

Les options column et row <strong>de</strong>man<strong>de</strong> les pourcentages <strong>de</strong>s colonnes et <strong>de</strong>s lignes alors<br />

que nofreq élimine les fréquences.<br />

tabu<strong>la</strong>te rowvar [colvar] [if] [in] [weight], summarize(varname)<br />

[options]<br />

Par exemple, pour un graphique présentant le sa<strong>la</strong>ire moyen selon <strong>la</strong> province et le sexe,<br />

on aurait :<br />

tab NUCHILD TENUREC if NUCHILD


Par exemple, on aurait un tableau comme suit :<br />

corr TOTALC TENUREC<br />

(obs=871)<br />

| TOTALC TENUREC<br />

-------------+------------------<br />

TOTALC | 1.0000<br />

TENUREC | -0.0704 1.0000<br />

Lorsqu’il y a plus <strong>de</strong> <strong>de</strong>ux variables, Stata s’ajuste automatiquement :<br />

corr TOTALC TENUREC ROOMC<br />

(obs=871)<br />

| TOTALC TENUREC ROOMC<br />

-------------+---------------------------<br />

TOTALC | 1.0000<br />

TENUREC | -0.0704 1.0000<br />

ROOMC | 0.0390 -0.5407 1.0000<br />

On peut indifféremment y inclure <strong>de</strong>s variables continues ou discrètes afin d’avoir une<br />

idée du signe et donc <strong>de</strong> <strong>la</strong> progression d’une variable par rapport à l’autre.<br />

Dans l’exemple précé<strong>de</strong>nt, on note que le revenu total et le mo<strong>de</strong> d’occupation sont<br />

inversement corrélés. Donc, le fait d’être locataire (TENUREC==2) semble révéler à<br />

première vue un revenu total plus faible chez les familles. Cependant, il <strong>de</strong>meure<br />

essentiel <strong>de</strong> vérifier cette assertion par un test statistique. Auparavant, toutefois, il faudra<br />

faire une régression.<br />

L’instruction pwcorr pour pairwise corre<strong>la</strong>tion permet d’autres options.<br />

pwcorr varlist [if] [in] [weight] [, obs sig bonferroni]<br />

L’option obs indique le nombre d’observations utilisé pour calculer les coefficients.<br />

L’option sig <strong>de</strong>man<strong>de</strong> un test <strong>de</strong> significativité et l’option bonferroni fait <strong>de</strong>s<br />

ajustements au niveau <strong>de</strong> <strong>la</strong> significativité <strong>de</strong>s tests.<br />

pwcorr earng42 jobdur1 if jobdur1>=0 & jobdur1=0<br />

& ecage26


Les options :<br />

<strong>de</strong>tail affiche <strong>de</strong>s corré<strong>la</strong>tions inter items.<br />

item affiche <strong>de</strong>s tests <strong>de</strong> corré<strong>la</strong>tion d’items et les effets d’en enlever un.<br />

generate sauvegar<strong>de</strong> l’échelle construite par le test sous newvar.<br />

Par exemple,<br />

alpha ecage26 ecsex99, generate(score)<br />

Test scale = mean(unstandardized items)<br />

Average interitem covariance: .2736863<br />

Number of items in the scale: 2<br />

Scale reliability coefficient: 0.0034<br />

Pour tester l’indépendance <strong>de</strong> <strong>de</strong>ux variables, l’instruction spearman produit le<br />

coefficient <strong>de</strong> corré<strong>la</strong>tion <strong>de</strong> rang <strong>de</strong> Spearman. Aussi, l’instruction ktau affiche le tau-a<br />

et le tau-b <strong>de</strong> Kendall.<br />

spearman varname1 varname2 [if] [in]<br />

ktau varname1 varname2 [if] [in]<br />

5.3 Visualisation <strong>de</strong> données<br />

Il existe plusieurs instructions pour faire <strong>de</strong>s graphiques dans Stata. L’instruction générale<br />

s’écrit comme suit :<br />

graph_command varlist [if] [in] [weight] [, type_specific_options<br />

general_options]<br />

La fonction graph dans <strong>la</strong> barre <strong>de</strong>s tâches peut toujours offrir une alternative aux<br />

instructions plus complexes et moins intuitives.<br />

27


Les exemples suivants reprennent <strong>la</strong> présentation d’Hamilton (2006 : 64-116).<br />

a) L’histogramme <strong>de</strong> fréquences<br />

clear<br />

set mem 300m<br />

use http://www.uwm.edu/~sbenesh/states.dta<br />

histogram college, frequency title(Figure 3.1)<br />

Frequency<br />

0 5 10 15 20<br />

Figure 3.1<br />

10 15 20 25 30 35<br />

% over 25 w/bachelor's <strong>de</strong>gree +<br />

28


) Le diagramme en boîtes<br />

graph box college, over(region) yline(19.1)<br />

% over 25 w/bachelor's <strong>de</strong>gree +<br />

10 15 20 25 30<br />

c) Le graphe simple<br />

West N. East South Midwest<br />

clear<br />

set mem 300m<br />

use http://www.stata-press.com/data/r9/uslifeexp.dta<br />

line le year<br />

life expectancy<br />

40 50 60 70 80<br />

1900 1920 1940 1960 1980 2000<br />

Year<br />

29


d) Le nuages <strong>de</strong> points<br />

clear<br />

set mem 300m<br />

use http://www.uwm.edu/~sbenesh/states.dta<br />

scatter college income<br />

% over 25 w/bachelor's <strong>de</strong>gree +<br />

10 15 20 25 30 35<br />

25000 30000 35000 40000 45000 50000<br />

Median household income<br />

e) Le nuage <strong>de</strong> points et sa droite <strong>de</strong> régression<br />

clear<br />

set mem 300m<br />

use http://www.uwm.edu/~sbenesh/states.dta<br />

scatter college income || lfit college income<br />

10 15 20 25 30 35<br />

25000 30000 35000 40000 45000 50000<br />

Median household income<br />

% over 25 w/bachelor's <strong>de</strong>gree + Fitted values<br />

30


f) Le diagramme à bâtons<br />

clear<br />

set mem 300m<br />

use http://www.uwm.edu/~sbenesh/states.dta<br />

graph bar <strong>de</strong>nsity, over(region)<br />

mean of <strong>de</strong>nsity<br />

0 100 200 300 400 500<br />

g) Autres instructions reliées aux graphes<br />

graph<br />

West N. East South Midwest<br />

Cette instruction exécute à nouveau <strong>la</strong> <strong>de</strong>rnière instruction graph soumise.<br />

graph export filename.emf [, rep<strong>la</strong>ce]<br />

Cette instruction conserve le graphe dans un fichier au format Exten<strong>de</strong>d Metafile, ce qui<br />

permet <strong>de</strong> l’utiliser par <strong>la</strong> suite avec les logiciels qui reconnaissent ce format. Conserver<br />

un graphe <strong>de</strong> cette manière permet <strong>de</strong> l’importer dans un document Word.<br />

graph save mon_graphe, rep<strong>la</strong>ce<br />

Cette instruction conserve le graphe dans le fichier <strong>de</strong> travail mon_graphe même si un<br />

fichier <strong>de</strong> ce nom existe déjà; l’ancien contenu est alors effacé.<br />

Pour afficher <strong>de</strong> nouveau le graphe à l’écran, on exécute l’instruction graph use<br />

mon_graphique.<br />

Pour plus d’informations, voir help graph.<br />

6. Combiner <strong>de</strong>s bases <strong>de</strong> données<br />

6.1 Concaténation <strong>de</strong> bases <strong>de</strong> données<br />

La concaténation consiste à combiner <strong>de</strong>ux bases <strong>de</strong> données en copiant l’une à <strong>la</strong> suite<br />

<strong>de</strong> l’autre. Règle générale, on concatène <strong>de</strong>s bases qui contiennent les mêmes variables<br />

mesurées sur <strong>de</strong>s unités d’observation différentes. Dans Stata, <strong>la</strong> concaténation se réalise<br />

au moyen <strong>de</strong> l’instruction append.<br />

append using “[path\]filename”<br />

31


On réalise l’opération en ajoutant un fichier <strong>de</strong> données conservé sur disque aux données<br />

qui se trouvent en mémoire; dans l’instruction, filename désigne le fichier qui est<br />

ajouté aux données déjà en mémoire. Dans <strong>la</strong> terminologie <strong>de</strong> Stata, le fichier déjà en<br />

mémoire est le fichier maître (master dataset). La base <strong>de</strong> données qui résulte <strong>de</strong> <strong>la</strong><br />

concaténation <strong>de</strong>vra être sauvegardée pour ne pas être perdue. Par exemple (Hébert,<br />

2003, p. 25).<br />

Si une variable n’existe que dans une seule <strong>de</strong>s <strong>de</strong>ux bases <strong>de</strong> données, par exemple <strong>la</strong><br />

variable mth, l’instruction append concatène les <strong>de</strong>ux bases observations en conservant<br />

<strong>la</strong> variable et en attribuant <strong>la</strong> valeur manquante aux observations <strong>de</strong> <strong>la</strong> base dans <strong>la</strong>quelle<br />

<strong>la</strong> variable n’existe pas.<br />

Ici, l’information <strong>de</strong> <strong>la</strong> variable mth est simplement manquante dans les observations qui<br />

proviennent <strong>de</strong> <strong>la</strong> <strong>de</strong>uxième base <strong>de</strong> données où cette variable n’existe pas.<br />

Si les variables ne sont pas dans le même ordre dans les <strong>de</strong>ux bases, l’instruction append<br />

construit <strong>la</strong> nouvelle base en reprenant l’ordre du fichier maître.<br />

32


6.2 Fusion <strong>de</strong> bases <strong>de</strong> données<br />

(Voir l’annexe 2 pour un exemple complet)<br />

Règle générale, on fusionne <strong>de</strong>s bases <strong>de</strong> données qui contiennent <strong>de</strong>s variables<br />

différentes mesurées sur les mêmes unités d’observation. La fusion consiste alors à<br />

combiner sur une seule ligne les lignes <strong>de</strong>s <strong>de</strong>ux bases qui proviennent <strong>de</strong> <strong>la</strong> même unité<br />

d’observation. Autrement dit, <strong>la</strong> fusion agrège <strong>de</strong>s variables alors que <strong>la</strong> concaténation<br />

agrège <strong>de</strong>s observations. Dans Stata, <strong>la</strong> fusion se réalise au moyen <strong>de</strong> l’instruction<br />

merge. Elle se fait en ajoutant les données d’un fichier conservé sur disque aux données<br />

déjà en mémoire. Règle générale, elle se fait en appariant les lignes sur <strong>la</strong> base d’un<br />

i<strong>de</strong>ntifiant, c’est-à-dire d’une variable dont chaque valeur correspond à une seule unité<br />

d’observation; pour que l’appariement sur <strong>la</strong> base d’un i<strong>de</strong>ntifiant soit possible, il faut<br />

évi<strong>de</strong>mment que cette variable soit présente dans les <strong>de</strong>ux bases <strong>de</strong> données que l’on<br />

fusionne. Il arrive parfois qu’on ne puisse i<strong>de</strong>ntifier les unités d’observation qu’en<br />

combinant <strong>de</strong>ux ou plusieurs i<strong>de</strong>ntifiants. Ceci se produit couramment dans les bases <strong>de</strong><br />

données produites dans le cadre d’enquêtes où on a recueilli <strong>de</strong> l’information auprès <strong>de</strong><br />

plusieurs membres <strong>de</strong>s mêmes familles ou <strong>de</strong>s mêmes ménages. On distingue alors les<br />

individus <strong>de</strong> manière unique en combinant l’i<strong>de</strong>ntifiant <strong>de</strong> leur famille ou <strong>de</strong> leur ménage<br />

et leur i<strong>de</strong>ntifiant propre au sein <strong>de</strong> leur ménage et <strong>de</strong> leur faille. L’instruction merge<br />

permet <strong>de</strong> réaliser l’appariement sur <strong>la</strong> base d’une ou <strong>de</strong> plusieurs variables, qui forment<br />

l’option varlist <strong>de</strong> l’instruction.<br />

merge [varlist] using “[path\]filename” [, update rep<strong>la</strong>ce nokeep]<br />

On peut réaliser une fusion sans utiliser <strong>de</strong> variable pour i<strong>de</strong>ntifier les untiés<br />

d’observation. Dans ce cas, Stata fusionnera les lignes <strong>de</strong>s <strong>de</strong>ux bases <strong>de</strong> données<br />

simplement selon leur ordre dans chaque base. Cette manière <strong>de</strong> faire est rarement<br />

souhaitable…<br />

L’appariement selon un ou plusieurs i<strong>de</strong>ntifiants exige que les observations <strong>de</strong>s <strong>de</strong>ux<br />

bases à fusionner soient triées au préa<strong>la</strong>ble selon chacune <strong>de</strong>s variables utilisées comme<br />

i<strong>de</strong>ntifiant.<br />

Si les <strong>de</strong>ux bases <strong>de</strong> données contiennent <strong>de</strong>s variables ayant le même nom, merge<br />

retient par défaut les valeurs du fichier maître. On peut modifier cette action en utilisant<br />

l’option update : avec l’option update, l’instruction merge remp<strong>la</strong>ce les valeurs<br />

manquantes dans le fichier maître par les valeurs <strong>de</strong> l’autre base <strong>de</strong> données.<br />

Par défaut, merge conserve les lignes qui proviennent <strong>de</strong>s <strong>de</strong>ux fichiers, même<br />

lorsqu’elles ne peuvent pas être appariées. L’option nokeep élimine les lignes <strong>de</strong> <strong>la</strong> base<br />

<strong>de</strong> données sur disque qui ne peuvent pas être appariées à une ligne du fichier maître<br />

(Hébert, 2003, p. 26).<br />

33


L’instruction merge ajoute toujours <strong>la</strong> nouvelle variable _merge dans le fichier qu’elle<br />

produit. La valeur <strong>de</strong> cette variable indique comment a été constituée chacune <strong>de</strong>s lignes<br />

du fichier qu’elle a produit.<br />

1 indique que <strong>la</strong> ligne provient d’une ligne du fichier maître qui n’a pas été appariée<br />

à une ligne du fichier conservé sur disque.<br />

2 indique que <strong>la</strong> ligne provient d’une ligne du fichier conservé sur disque qui n’a<br />

pas été appariée à une ligne du fichier maître.<br />

3 indique que ligne résulte <strong>de</strong> <strong>la</strong> fusion <strong>de</strong> <strong>de</strong>ux lignes appariées.<br />

L’annexe 2 montre un exemple plus concret à l’ai<strong>de</strong> <strong>de</strong> l’EDTR.<br />

7. Manipu<strong>la</strong>tion <strong>de</strong>s données II<br />

7.1 Sélectionner <strong>de</strong>s variables ou <strong>de</strong>s observations<br />

Éliminer une variable<br />

Éliminer une observation<br />

drop varlist<br />

drop if exp [in range]<br />

Ainsi, l’instruction drop ecage26 ecsex99 éliminera les <strong>de</strong>ux variables précé<strong>de</strong>ntes.<br />

Ou alors, drop if ecage2665 éliminera les observations <strong>de</strong> gens<br />

qui n’ont pas entre 18 et 65 ans inclusivement.<br />

Conserver une variable<br />

Conserver une observation<br />

keep varlist<br />

keep if exp [in range]<br />

Ainsi, l’instruction keep ecage26 ecsex99 ne conserva que ces <strong>de</strong>ux variables. keep<br />

if ecage26>=18 & ecage26


7.2 Relier <strong>de</strong>s observations<br />

Pour utiliser l’information d’une observation pour une autre observation, on peut utiliser<br />

<strong>de</strong>ux variables <strong>de</strong> système :<br />

_n contient le numéro <strong>de</strong> l’observation selon le présent ordre.<br />

_N contient le nombre total d’observations et aussi le numéro <strong>de</strong> <strong>la</strong> <strong>de</strong>rnière<br />

observation.<br />

Si les observations sont rec<strong>la</strong>ssées, <strong>la</strong> valeur <strong>de</strong> _n changera aussi.<br />

Par exemple, on aurait (Hébert, 2003, p. 27) :<br />

gen obsno = _n obsno est égal au numéro <strong>de</strong><br />

l’observation.<br />

gen obsnoplus1 = _n+1 obsnoplus1 est égal au numéro <strong>de</strong><br />

l’observation plus 1.<br />

gen <strong>la</strong>g_x1 = x1[_n-1] <strong>la</strong>g_x1 prend <strong>la</strong> valeur <strong>de</strong> x1 <strong>de</strong><br />

l’observation qui précè<strong>de</strong>.<br />

gen <strong>la</strong>st_x1 = x1[_N] <strong>la</strong>st_x1 prend <strong>la</strong> valeur <strong>de</strong> x1 <strong>de</strong> <strong>la</strong><br />

<strong>de</strong>rnière observation.<br />

gen cum_x1 = sum(x1[_n-1]) cum_x1 fait <strong>la</strong> somme <strong>de</strong>s valeurs <strong>de</strong> x1<br />

jusqu’à l’observation précé<strong>de</strong>nte.<br />

Lorsqu’on utilise l’instruction « by<br />

varname: », _n <strong>de</strong>vient le numéro <strong>de</strong><br />

l’observation dans chaque valeur <strong>de</strong> varname.<br />

_N est alors le numéro <strong>de</strong> <strong>la</strong> <strong>de</strong>rnière<br />

observation dans chaque valeur <strong>de</strong> varname.<br />

Par exemple,<br />

by pvreg25 : gen idn= _n<br />

produit un numéro d’observation qui<br />

recommence à 1 pour chaque province.<br />

Voir help varlist et help tsset pour plus<br />

<strong>de</strong> détails.<br />

35


7.3 Répéter <strong>de</strong>s instructions<br />

L’instruction for peut être utilisée pour répéter une instruction selon une liste <strong>de</strong><br />

variables, une logique numérique ou <strong>de</strong>s mots.<br />

for varlist varlist : commands_involving_X<br />

for newlist newvarlist: commands_involving_X<br />

for numlist numlist: commands_involving_X<br />

for anylist wordlist: commands_involving_X<br />

Des exemples permettront <strong>de</strong> comprendre.<br />

for varlist earng42 ecage26 ecsex99: sum X<br />

-> sum earng42<br />

Variable | Obs Mean Std. Dev. Min Max<br />

-------------+--------------------------------------------------------<br />

earng42 | 56216 21708.29 30166.52 -65000 835500<br />

-> sum ecage26<br />

Variable | Obs Mean Std. Dev. Min Max<br />

-------------+--------------------------------------------------------<br />

ecage26 | 56216 45.14199 17.90092 16 80<br />

-> sum ecsex99<br />

Variable | Obs Mean Std. Dev. Min Max<br />

-------------+--------------------------------------------------------<br />

ecsex99 | 56216 1.523143 .4994686 1 2<br />

clear<br />

set mem 300m<br />

use "edtr2002 personnes.dta"<br />

tab pvreg25, g(prov)<br />

for newlist v1-v10: g X = proX<br />

keep v1-v10<br />

-> g v1 = prov1<br />

-> g v2 = prov2<br />

-> g v3 = prov3<br />

-> g v4 = prov4<br />

-> g v5 = prov5<br />

-> g v6 = prov6<br />

-> g v7 = prov7<br />

-> g v8 = prov8<br />

-> g v9 = prov9<br />

-> g v10 = prov10<br />

for numlist 1/11: rename provX stateX<br />

-> rename prov1 state1<br />

-> rename prov2 state2<br />

-> rename prov3 state3<br />

-> rename prov4 state4<br />

-> rename prov5 state5<br />

-> rename prov6 state6<br />

-> rename prov7 state7<br />

-> rename prov8 state8<br />

-> rename prov9 state9<br />

-> rename prov10 state10<br />

-> rename prov11 state11<br />

clear<br />

set mem 300m<br />

use "edtr2002 personnes.dta"<br />

<strong>la</strong>bel <strong>de</strong>fine mf 1 "male" 2 "female"<br />

<strong>la</strong>bel values ecsex99 mf<br />

keep if ecsex99 summarize earng42 if gen<strong>de</strong>r=="male"<br />

Variable | Obs Mean Std. Dev. Min Max<br />

36


-------------+--------------------------------------------------------<br />

earng42 | 26807 28602.82 36368.41 -65000 835500<br />

-> summarize earng42 if gen<strong>de</strong>r=="female"<br />

Variable | Obs Mean Std. Dev. Min Max<br />

-------------+--------------------------------------------------------<br />

earng42 | 29409 15423.77 21238.9 -28000 410000<br />

Voir aussi help for, help foreach et help forvalues.<br />

7.4 Remo<strong>de</strong>ler une base <strong>de</strong> données<br />

Certaines enquêtes mesurent plusieurs fois les mêmes variables auprès <strong>de</strong>s mêmes unités<br />

d’observation.<br />

Dans les enquêtes biographiques, on recueille <strong>de</strong> l’information sur les différents aspects<br />

<strong>de</strong> <strong>la</strong> biographie <strong>de</strong>s individus, par exemple sur chacun <strong>de</strong> ses emplois ou chacune <strong>de</strong> ses<br />

unions. Dans une telle enquête, on recueille donc une série complète <strong>de</strong> réponses aux<br />

questions sur les caractéristiques <strong>de</strong> l’emploi pour chacun <strong>de</strong>s emplois et une série<br />

complète <strong>de</strong> réponses aux questions sur les caractéristiques <strong>de</strong> l’union pour chacune <strong>de</strong>s<br />

unions.<br />

Dans les enquêtes à passages répétés, on s’intéresse généralement à l’évolution d’une ou<br />

plusieurs caractéristiques au fil du temps. On aura donc, par exemple, plusieurs mesures<br />

du revenu ou <strong>de</strong>s résultats sco<strong>la</strong>ires réalisées auprès <strong>de</strong>s mêmes individus à <strong>de</strong>s moments<br />

différents.<br />

Dans les <strong>de</strong>ux cas, on se trouve donc à <strong>de</strong>voir stocker plusieurs séries <strong>de</strong> variables<br />

semb<strong>la</strong>bles pour chaque individu. Il existe plusieurs manières <strong>de</strong> stocker <strong>de</strong>s séries <strong>de</strong><br />

variables semb<strong>la</strong>bles et Stata permet d’en utiliser facilement <strong>de</strong>ux : <strong>la</strong> métho<strong>de</strong> dans<br />

<strong>la</strong>quelle on conserve chaque série <strong>de</strong> variables dans une ligne différente d’un fichier <strong>de</strong><br />

données et <strong>la</strong> métho<strong>de</strong> dans <strong>la</strong>quelle on ajoute les séries <strong>de</strong> variables les unes à <strong>la</strong> suite <strong>de</strong><br />

autres sur <strong>la</strong> même ligne. Dans le premier cas, le fichier peut contenir plus d’une ligne par<br />

unité d’observation; dans le second cas, il ne contient qu’une seule ligne par unité<br />

d’observation. Dans le jargon <strong>de</strong> Stata, <strong>la</strong> première métho<strong>de</strong> produit un fichier « long »<br />

(long dataset) alors que <strong>la</strong> secon<strong>de</strong> produit un fichier « <strong>la</strong>rge » (wi<strong>de</strong> dataset).<br />

Chaque métho<strong>de</strong> a ses avantages et ses inconvénients, mais peu importe celle que l’on<br />

choisit pour stocker les données, il <strong>de</strong>vient souvent nécessaire <strong>de</strong> passer d’une forme à<br />

l’autre pour préparer les données nécessaires à une analyse. L’instruction reshape<br />

permet <strong>de</strong> remo<strong>de</strong>ler sans douleur une base longue en base <strong>la</strong>rge et vice versa .<br />

Hébert (2003, p. 29) donne l’exemple suivant :<br />

reshape wi<strong>de</strong> ij_variables, i(varlist) j(varname)<br />

reshape long ij_variables, i(varlist) j(varname)<br />

37


L’instruction reshape wi<strong>de</strong> transforme une base « longue » en base « <strong>la</strong>rge ».<br />

L’instruction reshape long transforme une base « <strong>la</strong>rge » en base « longue ».<br />

ij_variables désigne <strong>la</strong> liste <strong>de</strong>s variables qui ont été mesurées plus d’une fois aurpès<br />

<strong>de</strong>s unités d’observation.<br />

i(varlist) désigne <strong>la</strong> variable ou les variables qui permettent d’i<strong>de</strong>ntifier les unités<br />

d’observation.<br />

j(varlist) désigne <strong>la</strong> variable ou les variables qui permettent d’i<strong>de</strong>ntifier les séries <strong>de</strong><br />

variables mesurées plus d’une fois. Dans <strong>la</strong> base <strong>de</strong> données d’une enquête biographique,<br />

j désignera par exemple le rang <strong>de</strong> chaque emploi ou <strong>de</strong> chaque union. Dans une enquête<br />

à passage répétés, j désignera<br />

généralement le rang du passage.<br />

Par exemple,<br />

on aurait :<br />

clear<br />

use "long dataset.dta"<br />

reshape wi<strong>de</strong> inc, i(id) j(year)<br />

(note: j = 1999 2000 2001)<br />

Data long -> wi<strong>de</strong><br />

-----------------------------------------------------------------<br />

Number of obs. 9 -> 3<br />

Number of variables 4 -> 5<br />

j variable (3 values) year -> (dropped)<br />

xij variables:<br />

inc -> inc1999 inc2000 inc2001<br />

-----------------------------------------------------------------<br />

clear<br />

use "wi<strong>de</strong> dataset.dta"<br />

reshape long inc, i(id) j(year)<br />

(note: j = 1999 2000 2001)<br />

Data wi<strong>de</strong> -> long<br />

-----------------------------------------------------------------<br />

Number of obs. 3 -> 9<br />

Number of variables 5 -> 4<br />

j variable (3 values) -> year<br />

xij variables:<br />

inc1999 inc2000 inc2001 -> inc<br />

-----------------------------------------------------------------<br />

Voir help reshape pour <strong>de</strong> l’ai<strong>de</strong><br />

8. Lire <strong>de</strong>s bases <strong>de</strong> données brutes<br />

Stata ne lit les fichiers <strong>de</strong> données binaires produits par d’autres logiciels statistiques<br />

comme SAS ou SPSS. Des bases <strong>de</strong> données <strong>de</strong> diverses extensions sont donc<br />

normalement sauvegardées en format texte, <strong>de</strong> préférence avec l’extension .raw qui<br />

correspond, pour Stata, à un fichier <strong>de</strong> données brutes en format texte.<br />

La manière dont les données<br />

sont séparées déterminera quelle instruction il faudra utiliser<br />

pour les lire avec Stata.<br />

Une fois <strong>la</strong> base <strong>de</strong> données intégrée<br />

dans Stata, il suffit d’utiliser l’instruction save pour<br />

<strong>la</strong> sauvegar<strong>de</strong>r au format .dta.<br />

38


8.1 Les fichiers dont les valeurs sont délimitées par <strong>de</strong>s<br />

tabu<strong>la</strong>tions ou <strong>de</strong>s virgules<br />

Nous suivons ici Hébert (2003 : 11-12).<br />

insheet [varlist] using “[path\]filename” [, clear]<br />

La seule condition est qu’il faut qu’il n’y ait qu’une seule observation par ligne.<br />

Autrement, il faudra utiliser l’instruction infile.<br />

L’instruction insheet reconnaît automatiquement si les données sont séparées par <strong>de</strong>s<br />

tabu<strong>la</strong>tions ou <strong>de</strong>s virgules.<br />

Elle détecte aussi le nom <strong>de</strong>s variables. Il ne faut donc pas les préciser.<br />

Par défaut, en l’absence <strong>de</strong> noms <strong>de</strong> variables, Stata les nommera var1, var2, etc...<br />

Voici <strong>de</strong>ux exemples :<br />

insheet using example1_tab.txt<br />

Ici, on doit préciser les noms <strong>de</strong>s variables, car <strong>la</strong> base <strong>de</strong> données n’en contient pas.<br />

insheet idnum gen<strong>de</strong>r age educ income using example1_comma.txt<br />

8.2 Les fichiers dont les valeurs sont délimitées par <strong>de</strong>s espaces<br />

infile varlist using “[path\]filename” [if exp] [in range] [,<br />

clear]<br />

Ici, il faut absolument fournir les noms <strong>de</strong>s variables, car <strong>la</strong> base <strong>de</strong> données ne peut<br />

contenir le nom <strong>de</strong>s variables sur <strong>la</strong> première ligne.<br />

Dans <strong>la</strong> base <strong>de</strong> données, les variables en texte (string variable) doivent être entre<br />

guillemets si elles contiennent <strong>de</strong>s espaces.<br />

Une observation prend au minimum une ligne, peut-être plus, mais il n’y a jamais plus<br />

d’une observation par ligne.<br />

L’instruction infile peut aussi gérer <strong>de</strong>s valeurs séparées par <strong>de</strong>s tabu<strong>la</strong>tions ou <strong>de</strong>s<br />

virgules, mais insheet est préférable.<br />

Voir help infile pour plus <strong>de</strong> détails.<br />

39


Par exemple, on aurait ici :<br />

infile idnum str1 gen<strong>de</strong>r age educ income using example1_free.txt<br />

str1 spéficie que <strong>la</strong> variable gen<strong>de</strong>r est une variable alphanumérique d’un seul<br />

caractère (string variable with # character). Voir help datatypes pour plus <strong>de</strong> détails.<br />

8.3 Les fichiers en format fixe<br />

Dans ce type <strong>de</strong> fichier, rien ne sépare les données, mais chacune <strong>de</strong>s informations est<br />

toujours au même endroit pour chaque ligne.<br />

Il faut dire à Stata où commence chacune <strong>de</strong>s variables. Voir help infix pour plus <strong>de</strong><br />

détails.<br />

infix specifications using “[path\]filename” [if exp] [in range]<br />

[, clear]<br />

Par exemple, on aurait ici:<br />

infix idnum 1-3 str1 gen<strong>de</strong>r 4 age 5-6 educ 7-8 income 9-13 using<br />

example1_fixed.txt<br />

8.4 Un exemple en format fixe à partir d’un fichier SPSS<br />

(voir l’annexe 1 pour le do-file complet)<br />

Sur le site Web du CREPUQ (Conférence <strong>de</strong>s recteurs et <strong>de</strong>s principaux <strong>de</strong>s universités<br />

du Québec), vous avez une foule <strong>de</strong> bases <strong>de</strong> données disponibles dont l’EDTR pour les<br />

années 1998 à 2002. 2 Par contre, elles ne sont offertes qu’en SAS et SPSS.<br />

1. Ouvrir le fichier d’instructions SPSS<br />

ec2002pr.<strong>la</strong>y avec WordPad<br />

2. Dans le do-file, faire un copier coller <strong>de</strong> <strong>la</strong><br />

liste <strong>de</strong>s variables.<br />

3. Enlever les parenthèses après les noms <strong>de</strong>s<br />

variables et les chiffres pour ne gar<strong>de</strong>r que les<br />

numéros <strong>de</strong> lignes.<br />

4. Inscrire avant le début <strong>de</strong>s variables :<br />

clear<br />

set mem 300m<br />

#<strong>de</strong>limit ;<br />

infix<br />

5. Télécharger le fichier texte *.dat<br />

http://sherlock.bib.umontreal.ca/ENQ-<br />

10414/data/slid2002pr-dat.zip<br />

2 http://sherlock.crepuq.qc.ca/cgi-bin/sherlock.pl?<strong>la</strong>ngue=F;action=LAE;region=Canada;region=Autres<br />

40


Enregistrer le fichier dans le répertoire <strong>de</strong> travail sous EC2002PR.dat<br />

6. À <strong>la</strong> fin, inscrire le nom du fichier texte :<br />

using EC2002PR.dat;<br />

41


Annexe 1 – Exemple d’un fichier fixe à partir d’un fichier SPSS<br />

clear<br />

set mem 300m<br />

#<strong>de</strong>limit ;<br />

infix<br />

pucpid26 1 - 7<br />

puchid25 8 - 14<br />

d31fam26 15 - 16<br />

d31cf26 17 - 18<br />

year99 19 - 22<br />

icswt26 23 - 32<br />

ecage26 33 - 35<br />

ecsex99 36 - 36<br />

ecyob26 37 - 40<br />

marst26 41 - 42<br />

mjacg26 43 - 43<br />

immst15 44 - 44<br />

yrimmg26 45 - 45<br />

disabs26 46 - 46<br />

pvreg25 47 - 48<br />

uszga25 49 - 49<br />

hhsz25 50 - 51<br />

HHCOMP25 52 - 52<br />

dwltyp25 53 - 53<br />

dwtenr25 54 - 54<br />

repa25 55 - 55<br />

suit25 56 - 56<br />

multj28 57 - 57<br />

nbjbs28 58 - 59<br />

alfst28 60 - 61<br />

ml01v28 62 - 63<br />

ml02v28 64 - 65<br />

ml03v28 66 - 67<br />

ml04v28 68 - 69<br />

ml05v28 70 - 71<br />

ml06v28 72 - 73<br />

ml07v28 74 - 75<br />

ml08v28 76 - 77<br />

ml09v28 78 - 79<br />

ml10v28 80 - 81<br />

ml11v28 82 - 83<br />

ml12v28 84 - 85<br />

wksem28 86 - 87<br />

wksnlf28 88 - 89<br />

wksuem28 90 - 91<br />

fpdwk28 92 - 92<br />

fsein28 93 - 93<br />

fseui28 94 - 94<br />

alhrp28 95 - 98<br />

mtlswk28 99 - 101<br />

scsum28 102 - 103<br />

cmphrw28 104 - 109<br />

rcvcmp28 110 - 110<br />

yrxfte11 111 - 112<br />

jobdur1 113 - 115<br />

clwkr1 116 - 117<br />

fllprt1 118 - 118<br />

42


eaisc1 119 - 120<br />

reawpt1 121 - 122<br />

scdtyp1 123 - 124<br />

tothrp1 125 - 128<br />

typpt1 129 - 129<br />

wkhm1 130 - 130<br />

hrwkhm1 131 - 135<br />

s91g2e6 136 - 137<br />

imphwe1 138 - 143<br />

penpln1 144 - 144<br />

uncoll1 145 - 145<br />

muloc10 146 - 146<br />

nai3g10 147 - 148<br />

nbema10 149 - 149<br />

nbempl1 150 - 150<br />

pubpv10 151 - 151<br />

alimo42 152 - 159<br />

alip42 160 - 167<br />

atinc42 168 - 175<br />

capgn42 176 - 183<br />

ccar42 184 - 191<br />

chfed42 192 - 199<br />

chprv42 200 - 207<br />

chtxb42 208 - 215<br />

cpqpp42 216 - 223<br />

cqpc42 224 - 231<br />

earng42 232 - 239<br />

eipr42 240 - 247<br />

fditx42 248 - 255<br />

fmse42 256 - 263<br />

gstxc42 264 - 271<br />

gtr42 272 - 279<br />

inctx42 280 - 287<br />

inva42 288 - 295<br />

majri42 296 - 297<br />

mbinc42 298 - 305<br />

medx42 306 - 313<br />

mtinc42 314 - 321<br />

nfmse42 322 - 329<br />

oasgi42 330 - 337<br />

ottxm42 338 - 345<br />

pen42 346 - 353<br />

phpr42 354 - 361<br />

pvitx42 362 - 369<br />

pvtxc42 370 - 377<br />

rppc42 378 - 385<br />

rspwi42 386 - 393<br />

sapis42 394 - 401<br />

semp42 402 - 409<br />

ttinc42 410 - 417<br />

udpd42 418 - 425<br />

uiben42 426 - 433<br />

wgsal42 434 - 441<br />

wkrcp42 442 - 449<br />

atbus20 450 - 450<br />

atcc20 451 - 451<br />

atcegp20 452 - 452<br />

atelhi20 453 – 453<br />

attrd20 454 - 454<br />

atuniv20 455 - 455<br />

43


cmphi20 456 - 456<br />

fllprt20 457 - 457<br />

rccoll20 458 - 458<br />

rcuniv20 459 - 459<br />

studtf26 460 - 460<br />

cmphi18 461 - 461<br />

dgcoll18 462 - 462<br />

dguniv18 463 - 463<br />

encoll18 464 - 464<br />

enuniv18 465 - 465<br />

hleveg18 466 - 467<br />

yrcoll18 468 - 471<br />

yrelhi18 472 - 475<br />

yrpsec18 476 - 479<br />

yrrnug18 480 - 481<br />

yrrung18 482 - 483<br />

yrschl18 484 - 487<br />

yruniv18 488 - 491<br />

using EC2002PR.dat;<br />

44


Annexe 2 – Exemple <strong>de</strong> fusion d’un fichier<br />

clear<br />

set mem 300m<br />

use “edtr2002 personnes.dta”<br />

* Creation <strong>de</strong>s variables<br />

g echantillon=(earng42


BIBLIOGRAPHIE<br />

Hamilton, Lawrence C. 2006. Statistics with Stata. Toronto: Thomson Brooks/Cole,<br />

408 p.<br />

Hébert, Benoît-Paul. 2003. Introduction to Stata. Montréal: CIED / CÉETUM / CIQSS,<br />

30 p.<br />

Ouellet, Estelle avec l’apport d’Isabelle Belley-Ferris et <strong>de</strong> Simon Leblond. 2005. Gui<strong>de</strong><br />

d’économétrie appliquée pour Stata pour ECN 3950 et FAS 3900. Montréal :<br />

Université <strong>de</strong> Montréal, 68 p.<br />

(30<br />

mai 2007).<br />

Stock, James H. et Mark W. Watson. 2003. Introduction to Econometrics. Montréal:<br />

Addison Wesley, 696 p.<br />

OUVRAGES D’INTRO<strong>DU</strong>CTION À STATA<br />

Acock, A<strong>la</strong>n C. 2006. A Gentle Introduciton to Stata. College Station TX: Stata Press.<br />

289 p.<br />

Kohler, Ulrich and Frauke Kreuter. 2005. Data Analysis Using Stata. College Station TX:<br />

Stata Press. 378 p.<br />

46

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!