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