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

Transcription

Notes de cours d`économétrie appliquée
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:
[email protected].
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. Cidessous 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
-------------+-----------------------------Model | 6467.03038
2 3233.51519
Residual | 4720.78838
21 224.799446
-------------+-----------------------------Total | 11187.8188
23 486.426902
Number of obs
F( 2,
21)
Prob > F
R-squared
Adj R-squared
Root MSE
=
=
=
=
=
=
24
14.38
0.0001
0.5780
0.5379
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