Vous êtes sur la page 1sur 16

Cours d’initiation à Stata

W. Aristide OUEDRAOGO
Ingénieur Statisticien Economiste
Introduction

Les données statistiques sont collectées par un nombre de plus en plus important d'instituts de
recherche et d'entreprises. Elles recouvrent une grande quantité d'informations utiles pour la
prise de décisions au sein de l’entreprise ainsi qu’au sommet de l’Etat. Leur exploitation
judicieuse consiste à révéler ces informations avec discernement et à les interpréter à des fins
utiles.

Le présent cours d'introduction aux logiciels statistiques a pour objectif de familiariser les
étudiants à l'analyse statistique à partir du logiciel Stata. Il est en étroite relation avec les
notions qui seront abordées plus tard en économétrie ou en analyse des données. Tout au long
de ce cours, nous apprendrons à résumer, présenter et interpréter les données à l’aide du
logiciel Stata.
Chap 1: Introduction au logiciel Stata
Stata est un logiciel d'analyses statistiques. Son utilisation est de plus en plus répandue dans le
monde académique et de la recherche. Bien que souvent utilisé à des fins économétriques, Stata
fait également de l'analyse des données multidimensionnelles ainsi que la description simple. Dans
ce premier chapitre du cours d’introduction au logiciel, nous étudierons la syntaxe de base de Stata
ainsi que quelques fonctions.

1.1 Présentation de l’interface de Stata

Depuis sa version 8, Stata devient de plus en plus convivial avec ses menus pour les régressions
économétriques et l’analyse des données. Au démarrage du logiciel (version 12), on obtient l’écran
suivant :


• La fenêtre Reviewmontre l’historique des commandes déjà exécutées.
• La fenêtre Variables montre les différentes variables de la base de données active.
• La fenêtre Resultmontre les résultats des différentes procédures exécutées.
• Dans le menu Window, il est possible d’ouvrir un .do file. Un .do file est un fichier texte
où des commandes de Stata peuvent être tapées et d’où elles peuvent être directement
exécutées. Il est aussi possible d’ouvrir un nouveau .do file en tapant dans la ligne de
commandes doedit.
1.2 Syntaxegénérale des commandes Stata

[byvarlist1:] command [varlist2] [=exp] [if exp] [in range] [weight] [using filename]
[,options] byest un préfixe qui permet de répéter l’exécution de command pour les différents

sous-groupes définis par les combinaisons des variables citées dans varlist1.

commandest la commande Stata à exécuter (e.g. tab1, tab, regress, summarize, etc.)
varlist2est la liste de variables sur laquelle porte la procédure statistique à mettre en oeuvre.

Dans le cas où la commande consiste à créer une variable, expest l’expression qui permet de
calculer la variable. ifpermet d’exécuter la commande pour les observations qui respectent un
certain nombre de critères.

inest comparable à if mais les critères ici se rapportent aux numéros des observations.

weightest un mot clé facultatif qui permet de pondérer les observations dans un jeu de données (e.g.
pweight, aweight, fweight).

1.3 Opérations simples dans Stata

1.3.1 Commande display

La commande display permet d’utiliser Stata comme une calculatrice. Sa syntaxe est :

displayexpoù expest l’expression à calculer. Exemple

display 2+ display 2^2-1 display

log(10)+exp(2) di

(1/2*sqrt(2*pi))*exp(-((3-1)/2)^2 Liste

des fonctions et opérateurs usuels

Opérateurs logiques
&: et
|: ou
~ ou! : non
Opérateurs de comparaison
~=: différent
!=: différent
== : égal
Opérateurs arithmétiques
+: addition -:
soustraction
/: division
*: multiplication
^: puissance
Fonctions usuelles
sqrt():racine carrée
exp(): exponentielle
log(): logarithme
int(): troncature
round(): arrondi à l’entier le plus proche
log10(): logarithme base 10 mod() :
reste d’une division euclidienne abs() :
valeur absolue

1.3.2 Commande count

Cette commande compte le nombre d’observations vérifiant un certain critère. La syntaxeest count
if critere.

Exemple :

count if myvar==2

1.4 Manipuler les jeux de données

1.4.1 Charger des jeux de données

Le chargement des données dans Stata se fait de différentes manières selon le format des fichiers de
données. Les commandes qui permettent de charger des données dans Stata sont:

Insheet: permet de charger des données au format ASCII.

insheetusing "c:\nom_base.txt", delimiter(" ") use:

permet de charger des données au format de Stata.

Il est possible de ne charger à l’ouverture d’une base de données que les variables indispensables.
La syntaxe à utiliser dans pareil cas est la suivante :

usevarlistusingfilenameinfile1: permet de charger des données ASCII

sans un dictionnaire des variables.

Infile2: permet de charger des données ASCII avec un dictionnaire des variables.

Après avoir chargé les données en mémoire on peut les décrire pour avoir le nom des variables, leur
type, les libellés des valeurs etc. Cela se fait avec la commande describe. La commande
inspectprésente un histogramme des valeurs en plus de quelques statistiques descriptives (Valeurs
manquantes, valeurs positives, valeurs négatives, nombre de valeurs uniques). Elle indique
également si les variables portent un libellé ainsi que leurs valeurs. La commande codebookaffiche

pour chaque variable un tableau de fréquences, le nombre de valeurs uniques, le type de la variable,
le nombre de valeurs manquantes, l’étendue. Toutes ces commandes peuvent être appelées avec ou
sans liste de variables.

1.4.2 Etiqueter les variables et leurs valeurs

Pour la clarté des tableaux que l'on réalise, on a besoin de mettre des étiquettes aux variables, à
leurs valeurs, à la base de données etc. La commande Stata est label.

label var varname"label" /*Permet d'étiqueter la variable varname*/

label var sex "Sexe de l'enquêté" /*Permet d'étiqueter la variable sex*/

Il est possible de décrire très brièvement une base de données au format Stata. Pour ce faire, on
utilise la commande suivante :

label data “<Description de la base>”


Pour supprimer les libellés, on procède comme suit :

label var sex: supprime le libellé de la variable sexlabel values varname:


dissocie l’étiquette lblnamede la variable varname. label data : supprime
la description de la base de données

1.4.3 Sélectionner un sous jeu de données

L'instruction keeppermet de garder les observations qui vérifient un certain critère dans la base de
données ou de retenir une liste de variables dans la base de données en mémoire. L'instruction drop
permet de supprimer de la base les observations qui vérifient un certain critère ou de supprimer une
liste de variables. keepif critere : Sélectionne les observations qui vérifient le critère
critere.
keepvarlist :Sélectionne les variables listées drop if critere :
Supprime les observations qui vérifient le critère critere.
dropvarlist : Supprime les variables listées.

clear: efface les données en mémoire.


1.4.4 Créer de nouvelles variables

Pour créer de nouvelles variables, on utilise la commande generateou egen. La commande egenest
une commande d’aggrégation des données. Par exemple pour créer la variable varsqégale au carré
de la variable var, on écrira :

Exemple :
genvarsq=var^2 gen
double varsq=var^2

Pour créer la variable aggageégale à la moyenne de l’âge par département, on écrira l’instruction
:

bysort region: egenaggage=mean(agenvo).

Dans cet exemple, nous avons utilisé la fonction d’agrégation mean. Il existe d’autres fonctions
supportées par egen.

1.4.5 Recalculer une variable

Pour recalculer une variable, on utilise la commande replace. La syntaxe de cette commande est
identique à celle de la commande generate.
Exemple :
replace varsq = sqrt(varsq)^2

Pour recoder une variable, on utilise la commande recode. La syntaxe de cette commande est la
suivante :

recodemyvarlist(règle) (règle) …[if] [in], options

Les règles de recodage peuvent inclure les libellés des nouvelles valeurs. Parmi les options, il y a :

generate(newvarlist): Crée de nouvelles variables prefix(pfx) : fait précéder les anciens

noms de variables du préfixe pfx pour créer les nouvelles variables. Cette option ne doit pas être
utilisée en même temps que l’option generate.

Exemple :
recode foreign (0=1 Maison) (1=2 Extérieur),gen(Rforeign) label(lblforeign)

1.4.7 Dichotomiser une variable

Pour dichotomiser une variable, on utilise la commande xi. La syntaxe de cette commande est la

suivante : xii.catvar1, options: crée des indicatrices pour chaque modalité de la variable catégorielle
catvar1
1.4.8 Ajouter des variables ou des observations à la base de données active

Pour ajouter des variables contenues dans une autre base à la base de données active, on utilise la
commande merge. Pour ajouter des observations, on utilise la commande append. Ces deux
commandes obéissent aux syntaxes ci-après :

mergeid_varlist using filename.


appendusingfilename

1.4.9 Parcourir, modifier des données via l’éditeur de données

Pour voir les données dans un éditeur, on utilise la commande browse. Pour modifier des données
dans l’éditeur, on utilise la commande edit.
Exemple : editforeign : affiche uniquement la variable foreign pour
l’édition browse : affiche toutes les variables de la base de données en
lecture seule.

1.4.10 Enregistrer des fichiers de données

Pour sauver les données en mémoire sur le disque, il faut taper la commande suivante:

savefilename

oùfilenameest le nom sous lequel l'on veut sauvegarder le fichier. La commande

saveoldsauvegarde également les fichiers de données mais sa particularité est qu’elle permet de
sauver dans des formats compatibles aux anciennes versions du logiciel. La syntaxe est la même
que celle de save.
Chap 2: Statistiques descriptives et inférence de base

2.1 Statistiques descriptives et quelques représentations graphiques

2.1.1 Description de variables qualitatives

Avec Stata, on peut obtenir des tableaux de fréquences d’une ou de plusieurs variables qualitatives
en utilisant la commande tab1 ou tabulate. La différence entre les deux commandes est que pour
plus d’une variable, la commande tabulatefait le croisement des variables et non la fréquence
simple de ces variables.

On peut aussi représenter graphiquement ces informations à l'aide des camemberts "graph pie", des
diagrammes en bâtons.

Exemple:

tab1 z d y sex
tabulatesex //Fréquences simples
tabulatesex z //Croisement des variables sex et z tabulatesex z, col
//Croisement des variables sex et z, pourcentage colonnes tabulatesex z, row
//Croisement des variables sex et z, pourcentage lignes graph pie, over(z)
graph pie, over(d) graph pie, over(sex)
Pour le croisement deux à deux d’un certain nombre de variables, on utilise la commande tab2.

2.1.2 Description de variables quantitatives

La commande summarizepermet de calculer les statistiques descriptives simples pour une variable
quantitative. En outre, on peut visualiser ces informations dans une boîte à moustaches ou la
distribution de la variable quantitative au sein de la population. La commande peut être abrégée
par sum. Exemple:

sumage graph box agehistogramage

histogram age, density histogram age, density normal saving(grph5.gph)

Exemple
summarizeage

2.1.2 La commande table

La commande table permet de construire des tableaux personnalisés. On peut faire un tableau de
fréquences simples, de moyennes, et d’autres statistiques pour plusieurs variables différentes.
2.2 Inférence statistique de base

2.2.1 Le test du chi2

Le test du chi2 mesure la significativité de l'association entre deux variables qualitatives. Il se


conduit donc sur des tableaux de contingence. La commande tabulatepermet de faire un tableau
de contingence avec Stata. La syntaxe est la suivante:

tabulatex y [,options].

Exemple
tabulate z d /*Tableau croisé de z par d*/ tabulate z d, column /* */
tabulate z d, rownofreq /*Calcule les pourcentages sur une ligne en
supprimant les effectifs*/ tabulate z d, column /* */
Pour calculer le chi2 et faire le test du chi2, il faut spécifier l'option chi2.

tabulate z d, rownofreq chi2

2.2.2 Les tests de variance

Pour faire le test de variance, on utilise la commande sdtest. Les tests standards pour la
variance ont des résultats assez volatiles en raison de la contrainte de normalité imposée par la loi
de Fisher sur laquelle repose la statistique du test. Pour cela, Levene (1960) a proposé une
statistique robuste à la non normalité. Plus tard, Brown et Forsythe (1974) ont proposé d'autres
statistiques plus robustes que celle de Levene. La commande robvarpermet de mener ces tests sur
Stata. sdtest age, by(z) robvar age, by(z)
2.2.3 Les tests de moyenne

Pour faire le test de moyenne, on utilise la commande ttest. Le test de variance doit être
préalablement effectué car le test de moyenne se conduit différemment selon que les variances des
groupes sont égales ou différentes.

Exemple ttestage==65 /*Teste si la moyenne d'âge est égale 65 ans*/ ttestage,


by(z) unequal /*Test de l'égalité des moyennes d'âge des groupes

2.2.4 Les tests de proportions

Pour faire le test de proportion simple ou sur échantillon apparié, on utilise la commande prtest.

Exemple prtest z==0.5, level(90) /*Teste si la proportion de 1 dans z est


égale à
Chap 3: Les méthodes de régression

3.1 La régression linéaire

3.1.1 L’estimation du modèle

Pour estimer une équation de régression linéaire sur Stata, la commande à utiliser est la commande
regresssuivie de la variable dépendante puis des variables indépendantes. En abrégé, on utilise
reg.

Exemple
regresswthtageparity
Dans cet exemple, on régresse le poids des enfants sur leur taille, sur leur âge et sur la parité de
leur mère. Toutes les variables dans cet exemple peuvent être dites quantitatives. Cependant, on est
parfois intéressé par l’effet d’une variable qualitative sur la variable dépendante. Dans ces cas, la
démarche adoptée consiste à dichotomiser cette variable et à introduire les variables indicatrices
dans le modèle. A part la mise en oeuvre manuelle de cette procédure, Stata offre deux autres
possibilités :

3.1.2 Estimation des valeurs

Après l’estimation d’une équation, les valeurs estimées de la variable dépendante et des autres sont
calculées à l’aide de la commande predict. La syntaxe de cette commande est la suivante :

predict[type] var_pre, options option peut

être l’une des mots clés suivants :

• xb : permet de calculer les prévisions linéaires


• stdp : erreur standard de la prévision
• residuals : terme d’erreur
• stdr : erreur standard du résidu
• rstandard : résidus standardisés
3.2 La régression binaire

Le modèle linéaire est inadapté pour estimer la probabilité de survenance d’un événement
(exemple : décision de migrer, être pauvre ou non … Même si cette probabilité est estimée avec le
modèle linéaire, l’hypothèse traditionnelle d’homoscédasticité est violée, les valeurs prédites
peuvent être plus grandes que 1 ou négatives. Pour éviter ces problèmes, le modèle logistique est
utilisé.

Pour estimer une équation de régression logistique sur Stata, la commande à utiliser est la
commande logitou probitsuivie de la variable dépendante puis des variables indépendantes.

3.2.1 Le modèle probit

La syntaxe pour estimer un modèle probit sur Stata est la suivante :

Probitdep_varexp_varlist, optionsExemples

probitmarriedwageiqage

Parmi les options, on a :

noconstant : supprime le terme constant du modèle à estimer offset

(var) : contraint le coefficient de la variable var à 1.

Level(#) : spécifie le niveau de confiance des intervalles de confiance. Par défaut, 95% est retenu
pour la plupart des modèles.
Exerices :

Question 0

Importer la base de donnée sous stata

Question 1. (1 pts)

Quelle est le nombre total des enfants dans le fichier Excel nommé « Base_de_Donnees » ?

Question 2. (5 pts)

En utilisant les données du fichier Excel nommé « Base_de_Donnees », renseignez les tableaux
suivants :

Tableau 1 : Statistiques sur le statut de travail(2 pts)

STATU DE TRAVAIL EFFECTIF POURCENTAGE


TRAVAILLEUR OR
TRAVAILLEUR COTON
A RISQUE
TOTAL
Tableau 2 : Statistiques sur le statut de travail des enfants en fonction de leur commune de
Question 3. (3 pts)

En utilisant les informations du fichier Excel nommé « Base_de_Donnees », tracez un graphique


présentant le nombre d’enfant travailleur selon leur commune de résidence et commenter le.

Question 4. (1,5 pts)

Dans la colonne « REPONSE_Q4 » de la feuille Excel nommé « Base_de_Donnees », renseigner


pour chaque enfant son âge actuel en années révolues.
Question 5. (3 pts)

En utilisant les informations du fichier Excel nommé « Base_de_Donnees », renseigner le tableau


suivant et commenter le:

Tableau 3 : Statistiques sur le groupe d’âge des enfants

GROUPE D'AGE EFFECTIF POURCENTAGE


Moins de 6 ans
6 ans à 15 ans
Plus de 15 ans
TOTAL

Question 6. (1,5 pts)

Quelle est le nombre total d'enfant en âge de scolarisation obligatoire dans les données du fichier
Excel nommé « Base_de_Donnees » ?

Question 7. (3 pts)

La moyenne minimum d’admission pour le niveau d’étude « primaire » est supérieur ou égale 5 et
celle du niveau d’étude « secondaire » est supérieur ou égale 10.
Sachant leur niveau d’étude et à l’aide d’une formule (obligatoire), renseigner pour chaque enfant
la colonne « REPONSE_Q7 » du fichier Excel nommé « Base_de_Donnees » avec l’expression :

- « ADMIS » si l’enfant est admis en classe


supérieur - « AJOURNÉ » sinon.

Question 8. (2 pts)

D’après les colonnes « SERVICES_2013 », « SERVICES_2014 » et « SERVICES_2015 » de «


Base_de_Donnees », quel est le nombre des enfants qui ont bénéficié des dotations en kits
scolaires entre 2013 et 2015 ?

Quelques commande sous stata


describe pour avoir la liste des variables du fichier (avec les labels)
ds pour une liste succincte
codebook tax détail de cette variable (missing, valeurs uniques, bornes,…)
lookfor tax pour lister tous les noms des variables contenant 'tax'
rename sex sexe renomme la variable sex en sexe

encode sex, gen(genre) crée genre (numérique) à partir de sex (caractère)


destring, replace change toutes les variables caractère en numérique
tostring sexe transforme une variable numérique en chaîne (Stb 56)

label define sexe 0 "Homme" 1 "Femmes" définit un label de modalités


si beaucoup de modalités :
label define depart 1 "Grand bassin parisien"
label define depart 2 "Nord Ouest",add

puis label value sex sexe, nofix pour assigner ce label à la variable sex
label list sexe liste le label sexe
label drop sexe supprime le label sexe
label list liste tous les labels

tabulate pour des stats descriptives sur des variables discrètes


tab A B, row col cel tableau croisé avec %tage lignes colonnes et cellules
tab1 A B deux tableaux simples

tab zau, gen(zau) crée autant de dichotomiques que de modalité dans zau
summarize rev pour des stats descriptives sur les variables continues
sum rev, detail même chose mais avec les centiles

tabstat txent, stats(mean count n sum sd) équivalent mais plus complet sur les stats
tabulate foreign, summarize(mpg) donne des stats des d'une variable continue par
modalité d'une variable discrète

univar rev même chose que sum mais avec quartiles


univar rev, vlabel boxplot permet d'avoir les labels et sous forme de tableau
univar rev, by(id) pour univar le by est une option (faire un sort avant)
means age puis
scalar moy = r(mean) stocke dans le scalaire moy la moyenne de age

count if income<0 compte le nombre d'observations où income est <0


by id, sort: count if income<0

display A affiche un scalaire à l'écran


display 5+3 permet de faire des calculs, voir

Vous aimerez peut-être aussi