Vous êtes sur la page 1sur 8

Notes de cours d’économétrie appliquée

Commandes de Base Stata

Fabian Gouret1

Stata se compose de 4 fenêtres :

La fenêtre « Review » indique les commandes passées.

La fenêtre « Variables » indique toutes les variables présentes dans la base de données.

1
ROSES-CNRS, Université Paris I Panthéon-Sorbonne, 106-112 Bd de l'Hôpital 75647 Paris CEDEX 13, France. Email:
Fabian.Gouret@malix.univ-paris1.fr.
Cliquer sur une variable (ou sur une des dernières commandes passées) la fait apparaître dans
la troisième fenêtre : « Stata Command », i.e. la fenêtre dans laquelle on tape les instructions.

Enfin la fenêtre « Stata Results » est la fenêtre d’output qui indique les résultats de la
commande passée dans « Stata Command ».

Analyse exploratoire

Commencez toujours par une description de votre base de données avant de vous lancer dans
l’estimation d’une quelconque régression.

A suivre, les commandes nécessaires à une analyse exploratoire des données sont données.
Les commandes sont du type : commande <variable>, options.

Pour avoir le nombre de variables, le nombre d’observations, la taille de la base de données :

Taper la commande describe

En général, il est toujours intéressant d’avoir les moyennes, les écart-types, les médianes,
voire la Skewness et la kurtosis de vos variables. Taper la commande :

summarize <liste des variables>, detail

Pour avoir les fréquences associées aux différentes valeurs de vos variables, utiliser :

tabulate <liste des variables>, row col

avec row et col des options permettant d’avoir les pourcentages en ligne et en colonne.

Pour trier la base de données dans un ordre croissant, utiliser :

sort <variable>

Il peut être nécessaire de donner des statistiques de bases selon un critère. Par exemple si vous
avez trois catégories d’individus reflétées par la variable « categorie ». Catégorie =1 si les
individus ont moins de trente ans, 2 s’ils ont entre 31 et 60 ans et 3 si plus. Vous voulez les
différents moments de la variable salaire selon la catégorie :

sort categorie
by categorie : summarize salaire

Les graphiques sont aussi toujours intéressants à analyser. Si voulez faire un histogramme,
tapez :

histogram <nom de la variable>

plusieurs options sont possibles . Si vous voulez choisir le nombre de tranche, utiliser bin:
histogram <nom de la variable>, bin(10)

vous pouvez également rajouter l’option normal qui superposera une loi normale :

histogram <nom de la variable>, normal

La moyenne ainsi que la variance de la courbe tracée (sa fonction de densité) a comme
moyenne et variance celle de l’histogramme.

Pour faire apparaître les points de coordonnées (X,Y), taper :

scatter <nom de la variable en ordonnée puis celle en abscisse>

Si vous voulez faire apparaître la droite de régression obtenue par les MCO au milieu du
nuage de points, utilisez en plus la commande lfit :

scatter <nom de la variable en ordonnée puis celle en abscisse> || lfit <nom de la variable
en ordonnée puis celle en abscisse>

le nuage de point ainsi que la droite passant à travers le nuage de points apparaîtront.

Si vous ne voulez que la droite :

twoway lfit <nom de la variable en ordonnée puis celle en abscisse>

Vous pouvez toujours sauver des graphiques : en cliquant sur file puis save graph

Analyse statistique

Si vous voulez faire une régression par les mco, alors utiliser la commande regress de la façon
suivante :

regress <variable dépendante> <variables explicatives>

cette commande marche pour le modèle linéaire simple et multiple et vous donnera les
statistiques de bases pour faire de l’inférence statistique. La constante est incluse d’office. Ci-
dessous nous avons réaliser une régression tentant d’expliquer la croissance cumulée
(output_i) dans 24 économies en transition par le degré de libéralisation de l’économie
(réformes mises en place : cli) et une proxy pour la stabilisation macroéconomique (inflatio).
On veut régresser :

output =c+b*cli+d*inflatio+u

avec u le terme d’erreur.

regress output_i cli inflatio


Source | SS df MS Number of obs = 24
-------------+------------------------------ F( 2, 21) = 14.38
Model | 6467.03038 2 3233.51519 Prob > F = 0.0001
Residual | 4720.78838 21 224.799446 R-squared = 0.5780
-------------+------------------------------ Adj R-squared = 0.5379
Total | 11187.8188 23 486.426902 Root MSE = 14.993

------------------------------------------------------------------------------
output | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
cli | 9.190721 2.961771 3.10 0.005 3.031382 15.35006
inflatio | -.0047495 .001862 -2.55 0.019 -.0086217 -.0008772
_cons | 44.75803 8.372796 5.35 0.000 27.34585 62.17021
------------------------------------------------------------------------------

Plusieurs points sont à souligner : vous avez un F(2, 21) en haut à droite : c’est la statistique
de Fisher qui dans le cas présent nous indique si le modèle est globalement positif ou non.
L’hypothèse 0 : Ho : d=b=0 versus H1 : un coefficient ou les deux différents de zéro.
Vous remarquez qu’il y a deux restrictions (b=0 et d=0) et le nombre de degré de liberté est
égal au nombre d’observation moins le nombre de variable explicative (constante incluse)
donc 21 : voila le pourquoi du F(2, 21).
Prob>F correspond au niveau marginal de significativité.
R-squared est le coefficient de détermination ; adf R-squared le coefficient de détermination
ajusté.

En haut à gauche le tableau nous donne la somme des carrés expliqués (SS-model valant
6467.03038), la somme des carrés des résidus (SS-Residuals 4720.78838) et la somme des carrés
totaux (11187.8188).Si vous faites la somme des carrés expliqués divisés par la somme des
carrés totaux, vous obtenez le coefficient de détermination mentionné précédemment.

Remarque 2 : la colonne DF ne correspond ici à Dickey-Fuller (un test utilisé pour voir la
stationarité des séries temporelles) : DF correspond ici à degree of freedom, soit degré de
liberté du numérateur (2) et du dénominateur (21) quand on fait un test de Fishe pour voir la
significativité totale (voir précédemment).

Si vous souhaitez récupérer les résidus estimés de la régression précédente, faites :

predict res1, residuals

avec res1 le nom que vous souhaitez donner aux résidus de la régression que vous venez
d’estimer.

Tests de restriction

Si vous avez le modèle suivant :

Y=c+a*X1+b*X2+d*X3+u

Nous avons vu supra que tester a=b=0 est donné par la table de résultat (cela correspond à la
significativité globale du modèle.

Supposez que vous voulez tester d=a=0.

Le modèle restreint s’écrit :


Y=c+b*X2+u

Comme vous le savez, nous devons normalement estimer le modèle contraint (restreint ) et le
modèle général, récupérer la somme des carrés des résidus et appliquer la statistique du test de
Fisher.

Stata nous simplifie le travail ! Pas besoin de r éestimer le modèle contraint.

Pour tester d+a=0, après avoir estimé le modèle général, faites :

test X1+X3=0

Pour tester d=a=0, faites:

test X1=0
test X3, accumulate

Pour tester a=b et d+a=0,

test X1=X2
test X3+X1=0, accumulate

Stabilité Structurelle

Le test de Chow est un test qui permet de tester la stabilité des coefficients entre diférentes
sous périodes ou sous groupes d’individus.

Vous avez le modèle suivant :

Y=c+a*X1+b*X2+d*X3+u

La population est composée d’homme et de femme. Vous voulez savoir si les coefficients
estimés pour les femmes sont identiques à ceux des hommes. La variable qui catégorise les
individus est sexe, valant 1 si homme, 0 si femme.

Il vous faut tout d’abord, pour faire le test de Chow, la somme des carrés des résidus du
modèle pour les données groupées. Vous faites donc :

regress Y X1 X2 X3

Vous récupérer la SCR du modèle testé sur l’échantillon total.

Il vous faut ensuite la SCR des deux sous échantillons. Utilisez la commande if :

regress Y X1 X2 X3 if sexe=1
regress Y X1 X2 X3 if sexe=0
Et en utilisant les trois SCR obtenus, vous faites la statistique de Chow vue en cours. Vous
aurez un F(k, T-2k). avec k le nombre de variables explicatives constante incluse, T le nombre
d’observations dans l’échantillon total.

Quelques opérateurs

Nous avons vu quelques opérateurs permettant d’effectuer les régressions sous des sous
groupes. Ci-dessous une liste :

Différent de ~=
Et &
Ou |
Supérieur >
Inférieur <
Supérieur ou égal >=
Inférieur ou égal <=

Moindres Carrés Quasi-Généralisés

Rappelez vous : Dès que l’on a de l’hétéroscédasticité, les écarts types de votre matrice de
variance covariance sont biaisés. Vous ne pouvez plus considérer comme valable les tests
donnés appliqués aux mco.

Nous avons vu en cours plusieurs façons de détecter de l’hétéroscédasticité.

Tout d’abord le test de White :

Vous exécutez la régression selon la procédure habituelle (ie par les mco). Exemple :

Regress output cli inflatio

Vous récupérer les résidus que vous élevez au carré.


Predict u=residuals

Generate u2=u*u

Vous faites la régressions des résidus aux carrés sur les variables expliquées du modèle, leur
carré et les produits croisés possible plus une constante. Si n est le nombre d’observations et
R² le coefficient de détermination du carré des résidus sur les variables mentionnées, alors
n*R² suit (asymptotiquement) une loi de chi 2 avec, dans le cas présent 5 degré de liberté. Le
nombre de degré de liberté est le nombre de variable dans la régression auxiliaire (constante
exclue).

Note : si on rejette l’homoscédasticité, on a aucune idée de la forme prise par


l’hétéroscédasticité. Alors que l’avantage du test de White est de ne pas devoir spécifier les
variables que l’on soupçonne être à l’origine du problème d’hétéroscédasticité, on n’a pas de
guide pour déterminer un estimateur des MCG approprié.

On peut alors réaliser le test de Goldfeld-Quandt :


Il est simple mais il nécessite de connaître la variable à l’origine de l’hétéroscédasticité.

Vous ordonnez les observations selon la valeur de la variable suspecte :

Sort <nom de la variable>

Omettre les variables centrales (prenons 1/ tiers de l’échantillon tel que n=x+x+x)

Effectuer la régressions sur les deux sous échantillons suivants : celui composé des x
premières observations ; celui composé des x dernières.

Vous récupérer la somme des carrés expliqués des deux sous échantillons et en vérifiant, afin
de construire la statistique, que SCR du premier groupe > SCR du deuxième groupe, vous
comparez SCR1/SCR2 à F(x-k,x-k) avec k le nombre de variables explicatives constante
incluse.

Pour corriger de l’hétéroscédasticité, utilisez l’option robust :

regress output cli inflatio, robust

Ainsi votre matrice de variance covariance sera corrigée.

L’autocorrélation des résidus.

Le deuxième problème auquel vous pouvez vous retrouver confronté est l’autocorrélation des
résidus. C’est un problème récurrent spécialement lorsque vous disposez de séries
temporelles.

Le test de Durbin Watson permet de tester un processus autorégressif d’ordre 1 pour les
résidus (AR(1)). Evidemment la multicollinéarité peut prendre une autre forme et vous verrez
dans le cours de séries temporelles du deuxième semestre (Ljung-Box et autres).

Quoiqu’il en soit, pour faire un test de Durbin Watson, tapez tsset annee avant de faire votre
régression (pour préciser que la variable indiquant le temps est annee) puis dwstat après avoir
fait un régression. Exemple :

tsset annee

regress output cli inflatio

dwstat

Pour corriger, faites une correction de Prais-Winsten:

prais output cli inflation

Points Divers.
Vous avez également vu plusieurs commandes non mentionnées pour le moment. Cette
dernière sous section les rappelle.

Générer des variables : Supposer que vous avez X1 et X2 et que vous voulez créer
X3=X1+X2

Utilisez la commande gen ou generate :

gen X3=X1+X2

Si vous avez une variable qui a plusieurs modalités. Par exemple X=1 si enfant, X=2 si
vieillard et X=3 si adulte. Supposez que vous voulez créer autant de variables dichotomiques
qu’il y a de modalités. Faites :

tabulate X, generate (nv)

Vous aurez alors trois variables muettes qui se créeront : nv1, nv2 et nv3. Cette commande
peut tout spécialement vous servir quand vous souhaitez créer des dummies par années en
panel (voir cours de Mathilde Maurel).

Pour les probit et logit, les commandes sont tout simplement probit et logit

Pour le panel

Afin que le logiciel puisse distinguer entre la composante coupe transversale et la composante
temporelle, n’oubliez jamais de faire, avant vos régressions

tsset code annee

avec code une codification chiffrée de vos différents individus ou pays, annee la variable
indiquant le temps. Puis utilisez xtreg

xtreg Y X1 X2 X3, fe

fe précise que vous utilisez le modèle à effets fixes, i.e. des mco cumulés avec en plus une
dummy pour chaque individus.

Pour les effets aléatoires :

xtreg Y X1 X2 X3, re

Vous aimerez peut-être aussi