Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide...

70
Guide d’´ econom´ etrie appliqu´ ee Simon Leblond 1 Universit´ e de Montr´ eal [email protected] 9 septembre 2003 1 Merci ` a William McCausland, Fran¸ cois Vaillancourt et Benoit Perron pour leurs commentaires utiles dans l’´ elaboration de ce document. Je demeure seule responsable de toutes les erreurs.

Transcript of Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide...

Page 1: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Guide d’econometrie appliquee

Simon Leblond1

Universite de [email protected]

9 septembre 2003

1Merci a William McCausland, Francois Vaillancourt et Benoit Perron pourleurs commentaires utiles dans l’elaboration de ce document. Je demeure seuleresponsable de toutes les erreurs.

Page 2: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Table des Matieres

1 Commandes generales importantes 51.1 Importation des donnees . . . . . . . . . . . . . . . . . . . . . 51.2 Manipulation des donnees . . . . . . . . . . . . . . . . . . . . 8

1.2.1 Operateurs mathematiques . . . . . . . . . . . . . . . . 91.2.2 Operateurs logiques et de comparaison . . . . . . . . . 91.2.3 Fonctions et Operateurs matriciels . . . . . . . . . . . 9

1.3 Autres transformations des variables . . . . . . . . . . . . . . 131.4 Divers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.5 Exemples et resultats pour le Chapitre 1 . . . . . . . . . . . . 16

2 Visualisation des donnees 182.1 Impression/Exportation des donnees . . . . . . . . . . . . . . 18

2.1.1 Impression a l’ecran . . . . . . . . . . . . . . . . . . . . 182.1.2 Exportation . . . . . . . . . . . . . . . . . . . . . . . . 182.1.3 Impression . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2 Exemples et resultats pour le Chapitre 2 . . . . . . . . . . . . 19

3 Graphiques 213.1 Exemples et resultats pour le Chapitre 3 . . . . . . . . . . . . 24

4 Regressions Simples 264.0.1 Estimateurs de Variance Robustes . . . . . . . . . . . . 28

4.1 Tests d’heteroscedasticite . . . . . . . . . . . . . . . . . . . . . 304.2 Test de Changement structurel (Test de Chow) . . . . . . . . 32

5 Variables instrumentales et Doubles Moindres Carres 345.1 Estimateur Variables Instrumentales . . . . . . . . . . . . . . 345.2 DMCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1

Page 3: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

5.3 Tests d’endogeneite . . . . . . . . . . . . . . . . . . . . . . . . 37

6 Estimateur du Maximum de Vraissemblance (EMV) 38

7 Moindres Carres Generalises 41

8 Variables dependantes qualitatives 438.1 Probit/Logit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438.2 Tobit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

9 Series Chronologiques 489.1 Operation sur les variables dans le cadre de series chronologiques 489.2 Operateurs de series temporelles . . . . . . . . . . . . . . . . . 489.3 Tests d’autocorrelation . . . . . . . . . . . . . . . . . . . . . . 509.4 Methode de Box-Jenkins . . . . . . . . . . . . . . . . . . . . . 51

9.4.1 Stationnarite des donnees . . . . . . . . . . . . . . . . 519.4.2 Modelisation des cycles: Modeles AR, MA, ARMA,

ARIMA . . . . . . . . . . . . . . . . . . . . . . . . . . 539.4.3 Selection de Modele . . . . . . . . . . . . . . . . . . . . 55

10 Donnees longitudinales (Panel) 5610.1 Variables Binaires . . . . . . . . . . . . . . . . . . . . . . . . . 5610.2 Effets Fixes et Effets Aleatoires . . . . . . . . . . . . . . . . . 57

11 Interaction avec les traitements de texte et les tableurs 60

12 Ou trouver ses donnees et comment les extraires 61

A Tableaux Recapitulatifs 62A.1 Fonctions de Matlab . . . . . . . . . . . . . . . . . . . . . . . 62A.2 Fonctions de Stata . . . . . . . . . . . . . . . . . . . . . . . . 65A.3 Operateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

2

Page 4: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Introduction

Ce manuel ne vient pas se substituer a vos notes de cours, mais plutot lescompleter en vous donnant un guide pour l’utilisation des logiciels econome-triques. A ce titre, bien que vous trouverez quelques fois des explicationsplus importantes sur la nature d’un probleme econometrique, la majorite dutemps on supposera que vous possedez deja les connaissances liees a la sectionconsultee.

Chaque section presente rapidement le but de l’operation qui y est traite.Les commandes appropriees sont ensuite presentees, d’abord individuelle-ment, puis dans le cadre d’exemples concrets. Pour l’instant, les deux logi-ciels couverts par ce manuel sont Matlab et Stata. Notez que ce manuelcouvre la version 7 de Stata, la version 8 sera integree peu a peu pendantl’annee qui vient. Comme il s’agit d’un manuel encore en developpement, deschangements lui seront constamment apportes en cours de session et la ver-sion distribuee sera toujours la plus recente. Tout commentaire, suggestionou correction sera bienvenu et apprecie.

Prenez note que ce texte decrit seulement certaines fonctions ainsi queleurs options les plus souvent utilisees pour le genre de recherches effectueesau bac et a la maıtrise en economie, il n’est donc pas du tout exhaustif. Unconseil: apprenez a utiliser l’aide de Matlab et de Stata. Il s’agit la d’outilsfort utiles pour decouvrir de nouvelles fonctions ou pour connaıtre l’ensembledes options disponible pour les fonctions decrites dans ce guide.

Les fonctions sont presentees dans le format suivant:

Pour Matlab:

1. Le nom de la fonction;

2. Le format d’entree;

3

Page 5: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

3. Sa description;

4. Ses options (s’il y en a);

5. Un exemple court.

Pour Stata:

1. Le nom de la fonction et, entre parantheses, le nom abrgege de lafonction;

2. Sa description;

3. Le format d’entree;

4. Ses options (s’il y en a);

5. Un exemple court.

La majorite des chapitres se terminent par une section donnant un exempleplus long et plus concret d’applications des informations presentes dans lechapitre.

La nomenclature suivante est suivie dans ce guide:

• Le texte en machine a ecrire designe les fonctions dans leur formegenerique.

• Le texte en italique designe les variables et autres chaınes de caracteresqui doivent etre remplacees.

• Le texte en sans serif designe le texte tel qu’il serait entre a l’ordinateur.

Les chapitres 1 a 3 font le tour des commandes de base dans Stata etMatlab, ainsi que leur format de saisie. A la suite de ces chapitres vousdevriez etre en mesure d’importer, de manipuler, puis d’exporter vos donneeset de tracer des graphiques.

Les chapitres 4 a 10 abordent quant a eux chacun un sujet specifiquede l’econometrie. Ils prennent donc une approche quelque peu differentepuisqu’ils introduisent peu de nouvelles fonctions, se concentrant plutot surla demarche a adopter pour effectuer l’operation en question.

4

Page 6: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Finalement, les deux derniers chapitres (11 et 12) (a venir) sortent quelquepeu du cadre de ce guide en abordant respectivement la manipulation desdonnees par Word et Excel et la recherche de donnees. Ces chapitres ont pourbut de vous aider dans le cadre plus general de la production d’un travail derecherche.

5

Page 7: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 1

Commandes generalesimportantes

1.1 Importation des donnees

Matlab

load

load nom de fichier1

load fonctionne seulement avec les donnees numeriques, mais a l’avantaged’etre la commande d’importation de donnees la plus simple de Matlab. loadimporte le fichier specifie dans une matrice du meme nom. Les donneesdoivent etre separees par des espaces ou des tabulations.

ex: importe les donnees du fichier ‘monfichier.dat’ dans la ma-trice ‘monfichier’load monfichier.dat

Note: load devrait etre suffisant pour les besoin du cours ECN 3949.

xlsread

[A, B] = xlsread(nom de fichier)

1Puisque le dossier de travail est deja specifie dans Matlab, il est inutile de donner lechemin d’acces avec le nom des fichiers. Les extensions doivent par ailleurs etre presentes.

6

Page 8: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

xlsread lit la premiere feuille d’un tableur Microsoft Excel (‘.xls’) et renvoittoutes les donnees numeriques dans la matrice A et toutes les donnees textedans la matrice B de meme taille. Les element de texte sont remplaces par‘NaN’ dans la matrice A et les elements numeriques sont laisses vides dansla matrice B.Si xlsread rencontre des donnees texte dans la premiere rangee et la premierecolonne, la matrice B ne contiendra que ces valeurs.

ex: importe les donnees du fichier ‘tableur.xls’ dans les matrices‘num’[num,txt] = xlsread(‘tableur.xls’)

textread

[A, B, C . . . ] = textread(‘nom de fichier’, ‘format’)textread permet d’importer des donnees d’un fichier formatte nom de fichiervers les variables specifiees A, B, C, etc. format est une chaıne de caractereset specifie le format des variables a importer, il doit y avoir un format parvariable. N’importe quel separateur de donnees peut-etre utilise par le fichier.Les formats possibles sont:

• %u: donnees numeriques, entier positif

• %f: donnees numeriques non-entieres

• %s: texte

• %q: texte, si entre guillemets (‘ “xyz” ’), renvoie seulement le texte(‘xyz’)

• ‘lettres’: ignore le texte ecrit; par exemple si on a ‘etage6’, “ ‘format′

= ‘etage%u’ renverait ‘6’ ”

Il est suggere de se limiter a %f et %q qui sont amplements suffisants dans lecadre du cours.Options: headerlines: specifie un nombre de lignes a sauter au debut dufichier.[A, B, C, . . . ] = textread(‘fichier’,‘format′’,‘headerlines’, #)

ex: fmt = ‘%f%f%f%q’[y,var1,var2,var3] = textread(‘ECN3949TP1.txt’,fmt,headerlines,2)

7

Page 9: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

dlmread

M = (‘nom de fichier’, ‘separateur de donnees’)Moins flexible que textread, mais plus que load, dlmread fonctionne seule-ment avec les donnees numeriques, mais a l’avantage d’etre plus simple.dlmread importe le fichier specifie dans la matrice M .‘separateur de donnees’ specifie le type de separateur dans le fichier, il peutprendre les valeurs suivantes:

• ‘,’: virgule, valeur par defaut

• ‘;’: point-vigule

• ‘\t’: tabulation

• ‘ ’: espace

ex: M = (‘ECN3949TP1.txt’,‘\t’)

Stata

insheet

Rapide et efficace, insheet permet d’importer les donnees d’un fichier textepossedant une observation par ligne et dont les donnees sont separees pardes tabulations ou des virgules.si le nom des donnees sont sur la premiere ligne:

insheet using nomdefichier2

si le fichier ne contient pas le nom des donnees:

insheet [nomdesvariables]3 using nomdefichier

options4: clear, specifie que les donnees en memoires peuvent etre rem-placees par les nouvelles donnees importees.

2A moins de precisions contraires, nomdefichier indique le nom complet, donc avec lechemin d’acces et l’extension (a : \test.txt par exemple).

3La nomenclature de l’aide de Stata est conservee tout au long de ce guide, ainsi lesarguments entre “[ ]” designent des arguments facultatifs.

4Les options dans stata sont separes du reste de la commande par une virgule. Parexemple, dans le cas present: insheet using ”c:\ test.txt”, clear

8

Page 10: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

infile (inf)5

Permet plus de flexibilite que insheet en permettant que les observationssoient sur plusieurs lignes ou que les donnees soient separees par des espaces.une observation par ligne: infile nomdesvariables using nomdefichierobservations sur plusieurs lignes:infile nom des variables [ skip(#) nom des variables] using ‘‘nom de fichier’’;ou # designe le nombre de ligne a sauter pour continuer la lecture de l’observation.options: clear, voir insheet

ex: observation sur la premiere, la deuxieme et la quatriemeligne. . .infile var1 var2 skip var3 var4 skip(1) var5 var6 using “a:\ test.raw”

1.2 Manipulation des donnees

Matlab

Matlab etant un logiciel de manipulations de matrices, il n’y a pas dedistinction faite entre une matrice et une variable comme c’est le cas avecStata. Les variables sont automatiquement traite comme des vecteurs dansle cas de Matlab.Toutes les manipulations de donnees sont donc traitees dans la section 1.2.3:Fonctions et operateurs matriciels.

Stata

generate (g)Probablement la commande la plus utile (et utilisee) dans Stata, elle permetde creer des nouvelles variables.generate nouvellevariable = expression

ex: g x2 = x^2

5Le nom entre parantheses qui suit le nom de la fonction designe l’abreviation que l’onpeut utiliser dans le code.

9

Page 11: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

replace

Meme idee que generate, mais pour une variable existante.replace variable existante = expression

ex: replace x2 = x/2

1.2.1 Operateurs mathematiques

Ce sont les memes dans Matlab et Stata:

Addition: +Soustraction: -Multiplication: *Division: /Puissance: ^

1.2.2 Operateurs logiques et de comparaison

Ce sont les memes dans Matlab et Stata:

ET: &OU: |Non (¬) : ~

Egal : ==Different : ~ =Plusgrand : >Pluspetit : <Plusgrandouegal : >=Pluspetitouegal : <=

1.2.3 Fonctions et Operateurs matriciels

Matlab

10

Page 12: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Creation de matrices

Les matrices et les vecteurs sont crees dans Matlab en inscrivant directementle nom de la matrice et les operations qu’on desire effectuer separees par lesigne egal (‘=’).

ex:A = [1,2,3,4;5,6,7,8]; ou les virgules separent les colonnes et lespoints-virgules separent les rangees. (matrice 2× 4)B = A*2C = A^2

Fonctions matricielles

• Creer une matrice identite 2× 2: I = eye(2)

• Creer une matrice 4x5 dont chaque element egale a zero: Z = zeros(4, 5)

• Creer un vecteur 1x6 dont chaque element egale a un: O = ones(1, 6)

• Creer une matrice 2x2 dont chaque element est un alea U(0,1): U =

rand(2), equivalent a U = rand(2, 2)

• Creer une matrice 3x8 dont chaque element est un alea N(0,1): N =

randn(3, 8)

Operation sur les matrices

• Extraction d’une sous-matrice:

– Extraire la deuxieme colonne de A: A(:,2)

– Extraire la deuxieme rangee de A: A(2,:)

– Extraire l’element A12: A(1,2)

– Extraire le vecteur (A12, A13, A14): A(1,2:4)

• Empilage de matrices

– Empiler horizontalement (mettre les rangees une sur l’autre): [A,A]

(4× 4)

11

Page 13: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

– Empiler verticalement (mettre les colonnes une a cote de l’autre):[A;A] (2× 8)

• Operation element par element: operateur mathematique precede d’unpoint (‘.’)

– Multiplication de A par B element par element: A.*B

• Inverse: Inv(A)

• Transposee: A′

• Matrice diagonale n× n, avec pour diagonale les elements de V , ou Vest un vecteur n× 1 ou 1× n: diag(V )

• Extraire la diagonale d’une matrice carree A sous forme de vecteur:diag(A)

Autres trucs utiles

• Creation d’une variable binaire: g = (condition logique);ex: d = (y >= 0)

• Creation d’un vecteur dont les elements sont une suite: v = debut:increment:fin;ex: x = 1.0;0.1;2.0 produit le vecteur [1.0,1.1,1.2, . . . ,2.0];notez que l’argument increment est facultatif, ainsi x = 1:10 produit levecteur [1,2, . . . ,10].

Stata

Fonctions matricielles

matrix (mat)L’equivalent de generate pour les matrices, permet de creer des nouvellesmatrices ou de modifier des matrices existantes.matrix nom de la matrice = expression

12

Page 14: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

ex:Creation d’une matrice: mat A = B*CModification d’une matrice existante: mat A = A*2Construction d’une matrice: mat D = (1,0,0\0,1,0); ou les vir-gules separent les colonnes et les \ separent les rangees (matrice2× 3).Extraction d’une sous-matrice: mat A = B(1..4,2...); se lit rangees1 a 4, colonne 2 a N.Remplacement d’un element: mat A(1,1) = 3; remplace l’elementa11 par 3.

mkmat

Permet de transformer des variables existantes en vecteurs du meme nom ouen une nouvelle matrice.Transformation en vecteurs: mkmat nom(s) de variable(s)Transformation en matrice: mkmat nom(s) de variable(s), matrix [(nom de la nouvelle matrice)]

ex: mkmat x1 x2 x3 x4, mat(X)

svmat

Inverse de mkmat, transforme les colonnes d’une matrice en vecteurs.svmat matrice, [names(nom col1, nom col2, . . . )]; names peut aussi s’ecriren

ex: svmat X, n(x1,x2,x3,x4)

matrix get

Sert a obtenir une copie d’une matrice systeme6

Quelques matrices systemes:

• b: coefficients apres une estimation

• VCE: matrice de variance-covariance apres une estimation

matrix variable = get(matrice systeme)

6Les variables et les matrices systemes sont stockes par Stata dans des noms predefinisapres une operation donnee.

13

Page 15: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

ex: matrix beta = get( b)

det(A): determinant de Arowsof(A): nombre de rangees de Acolsof(A): nombre de colonnes de Ael(A,i,j): element aij de AI(n): matrice identite n× ninv(A): inverse de la matrice carree Adiag(V ): matrice diagonale n × n, avec pour diagonale les elements de V ,ou V est un vecteur n× 1 ou 1× nvecdiag(A): extrait la diagonale d’une matrice carree A sous forme devecteur

Operateurs matriciel

Soit A et B, deux matrices carrees definies positives n×n et C, une matricedefinie positive t× n:Transposee: A′ (n× n)Somme: A + B (n× n)Difference: A - B (n× n)Produit vectoriel: B*C ′ (n× n)Division par un scalaire: A/k (n× n)Empiler les rangees horizontalement: A ((n + t)× n)Empiler les colonnes verticalement: A,B (n× 2n)

1.3 Autres transformations des variables

Matlab

Soit un vecteur z 1× n:exp(z): exponentielle de z element par elementlog(z): logarithme naturel de z element par elementsqrt(z): racine carree de z element par elementmean(z): moyenne des elements du vecteur zstd(z): ecart-type des elements du vecteur zvar(z): variance des elements du vecteur z

14

Page 16: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

sum(z): somme des elements du vecteur zcumsum(z): somme cumulative des elements du vecteur z (retourne un vecteur1× n)min(z): renvoie l’elements du vecteur z ayant la valeur la moins eleveemax(z): renvoie l’elements du vecteur z ayant la valeur la plus eleveelength(z): nombre de colonnes du vecteur zsize(z): renvoie un vecteur 1×2 contenant la taille de la matrice (rangees,colonnes)

Stata

log(x): logarithme naturel de x, equivalent a ln(x)exp(x): exponentiel de x, i.e. ex

mod(x,y): partie entiere de x par rapport a y, par exemple: mod(5,26) = 5abs(x): valeur absolue de xsqrt(x): racine carree de x, equivalent a x^1/2

max(x1, ..., xn): renvoie l’argument possedant la valeur la plus eleveemin(x1, ..., xn): renvoie l’argument possedant la valeur la moins eleveesum(x): somme de tous les elements de xuniform(): donne une valeur aleatoire entre 0 et 1 (ditribution uniforme sur[0,1))

1.4 Divers

Matlab

CommentairesIl est possible d’inserer des commentaires dans son programme en prenantsoin de debuter la ligne de commentaire par le symbole ‘%’.

ex: % Ceci est un commentaire.

Suppression de la sortiePour que Matlab effectue une operation sans que l’on voit le resultat, il suffitde terminer la ligne de commande par un point-virgule (‘;’).

ex: B = [8,7,6,5;4,3,2,1]; N’affichera pas la matrice B.

15

Page 17: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Commande sur plusieurs lignesIl est possible d’ecrire une commande sur plusieurs lignes. Les ‘. . . ’ indiquenta Matlab que la commande se poursuit a la ligne suivante.

ex:[v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16] = . . .textread(‘TP1donnees.txt’, fmt);

Stata

CommentairesIl est possible d’inserer des commentaires dans son programme en prenantsoin de debuter la ligne de commentaire par le symbole ‘*’.

ex: * Ceci est un commentaire.

more

Avez-vous deja rencontre le message --more-- qui fait une pause dans l’affichagede vos donnees? Si ca vous enerve, vous pouvez enlever ce message enspecifiant set more off au debut de votre programme.

set matsize (set mat)La taille maximale des matrices est fixee par defaut a 40 × 40 dans Stata.Pour utiliser des matrices plus grandes vous devez utiliser la fonction set

matsize.set matsize #; ou # est un nombre entre 10 et 800 qui indique la taillemaximale des matrices.

if

La majorite des fonctions peuvent etre suivies de la commande if qui permetde specifier une condition pour que l’expression soit executee. if est placeapres la fonction, mais avant les optionsCette option ne sera pas mentionnee pour chaque fonction puisqu’elle estpresente tres souvent.commande if expression

ex: replace x = y if x < y

16

Page 18: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

in

La majorite des fonctions peuvent etre suivies de la commande in qui permetde specifier l’etendue des donnees affectees par la fonction. in est place apresla fonction, mais avant les options.Cette option ne sera pas mentionnee pour chaque fonction puisqu’elle estpresente tres souvent.commande in etendue; ou etendue peut prendre la forme # ou #/#, et# peut-etre un nombre positif, l (derniere observation), f (premiere obser-vation) ou un nombre negatif (distance par rapport a la derniere observation).

ex:regress y x1 x2 in f/60; equivalent a regress y x1 x2 in 1/60: les60 premieres observations.list y in -10/l: les 10 dernieres observations.

1.5 Exemples et resultats pour le Chapitre 1

Lecture des donnees a partir du fichier Donnees.dat et manipulation desvariables dans le but de faire une regression. Le fichier Donnees.dat contient5 variables, comptant chacune 100 observations.

Matlab

load Donnees.dat;% Attribution de noms a certaines des variables.px = Donnees(:,1);qt = Donnees(:,2);% Construction d’une variable binaire: le rapport de la 3e sur la 4e variable doit% etre inclu dans l’ensemble [0,25;0,5]et la 5e variable doit etre egale% a 1 pour que la variable binaire egale 1.bin = (0.25 = Donnees(:,3)/Donnees(:,4) = 0.5 & Donnees(:,5) == 1);% Creation d’une variable indice.no = [1:100]

Stata

17

Page 19: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

set more offinfile px qt var3 var4 var5 ”c:\mes documents\Donnees.dat”, clear* Construction d’une variable binaire: le rapport de la 3e sur la 4e variable doit* etre inclu dans l’ensemble [0,25;0,5] et la 5e variable doit etre egale* a 1 pour que la variable binaire egale 1.g bin = (0.25 = var3/var4 = 0.5 var5==1)* Creation d’une variable indice.g no = n

18

Page 20: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 2

Visualisation des donnees

2.1 Impression/Exportation des donnees

2.1.1 Impression a l’ecran

Matlab

Matlab affiche par defaut toutes les operations effectuees a l’ecran. Poureliminer la sortie, se referer a la section 1.4.

Stata

list

Affiche a l’ecran la valeur des variables specifees.list [nom(s) de variable(s)]; si aucun nom de variable est specifie, Stataaffiche toutes les variables.

2.1.2 Exportation

Matlab

diary

Permet de sauvegarder une copie de sa session dans le fichier specifie. Doitetre suivi de diary(‘off’) a la fin du programme.diary(‘nom de fichier’)programme

19

Page 21: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

diary(‘off’)

wk1write

wk1write(‘nom de fichier’,M)

Sauvegarde la matrice M dans un fichier de tableur nom de fichier.wk1;aucune extension ne doit donc etre specifiee.

Stata

log using

Permet de sauvegarder une copie de sa session dans le fichier specifie. Doitetre suivi de log off a la fin du programme.log using nom de fichierprogrammelog off

Options: replace, indique a Stata de remplacer le fichier existant.

2.1.3 Impression

Matlab

La facon la plus pratique d’imprimer ses resultats est d’utiliser la fonctiondiary, puis de traiter le fichier de sortie avec son traitement de texte prefere.

Stata

La facon la plus pratique d’imprimer ses resultats est d’utiliser la fonctionlog, puis de traiter le fichier “.log” avec son traitement de texte prefere.

2.2 Exemples et resultats pour le Chapitre 2

Reprenons l’exemple du chapitre 1, en incluant cette fois les fonctions duchapitre 2.

Matlab

diary(’ExChap2.out’);

20

Page 22: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

load Donnees.dat;% Attribution de noms a certaines des variables.px = Donnees(:,1);qt = Donnees(:,2);% Construction d’une variable binaire: le rapport de la 3e sur la 4e variable doit% etre inclu dans l’ensemble [0,25;0,5] et la 5e variable doit etre egale% a 1 pour que la variable binaire egale 1.bin = (0.25 = Donnees(:,3)/Donnees(:,4) = 0.5 & Donnees(:,5) == 1);# Creation d’une variable indice.no = [1:100]diary(’off’)

Stata

log using ”c:\mes documents\ExChap2.log”, replaceset more offinfile px qt var3 var4 var5 ”c:documents.dat”, clear* Construction d’une variable binaire: le rapport de la 3e sur la 4e variable doit* etre inclu dans l’ensemble [0,25;0,5] et la 5e variable doit etre egale* a 1 pour que la variable binaire egale 1.g bin = (0.25 = var3/var4 = 0.5 & var5 ==1)list px qt bin* Creation d’une variable indice.g no = nlog close

21

Page 23: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 3

Graphiques

Matlab

plot

Trace des nuages de point en deux ou trois dimensions.plot(x, y,‘couleur style marqueur’,x, y2,‘couleur style marqueur de 2’,x, y3,...)

Ou ‘couleur style marqueur’ est une chaıne de caractere optionnelle con-tenant de un a quatre caracteres et qui definit la couleur de la serie, le stylede la ligne et le type de marqueur des points.Les possibilites sont:

• Couleurs:

– ‘c’: cyan

– ‘m’: magenta

– ‘y’: jaune

– ‘r’: rouge

– ‘g’: vert

– ‘b’: bleu

– ‘w’: blanc

– ‘k’: noir

• Styles:

22

Page 24: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

– ‘-’: solide

– ‘--’: tiret (???)

– ‘:’: pointille

– ‘-.’: tiret-point

– ‘none’: pas de ligne

• Marqueurs:

– ‘+’, ‘o’, ‘*’, ‘x’: marqueur du meme signe

– ‘s’: carre (plein)

– ‘d’: losange (plein)

– ‘’,‘v’,‘<’: triangle vers le haut, le bas ou la gauche respective-ment (plein)

– ‘p’: pentagone (plein)

– ‘h’: hexagone (plein)

Il est possible de donner une seule variable, Matlab fait alors un graphiquede cette variable par rapport a l’indice des observations.

ex:plot(y): courbe de y par rapport a l’indice des observationsplot(x,y): courbe de y par rapport a x, options standard (lignepleine,pas de marqueur)plot(x,y,‘k+’): courbe de y par rapport a x, marqueurs en ‘+’,noirs (pas de ligne)plot(x,y,‘b-d’,x,y2,‘r:’): courbe de y par rapport a x et de y2 parrapport a x (sur le meme graphique), premiere courbe bleue,pleine, marqueurs en losanges, deuxieme courbe rouge, pointillee(pas de marqueurs)

Il est possible une fois le graphique trace de modifier une foule de ses parametres,voici quelques-unes de ces fonctions:

xlabel(‘titre’): specifie le titre de l’axe des xylabel(‘titre’): specifie le titre de l’axe des ytitle(‘titre)’: specifie le titre du graphique.

23

Page 25: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

axis: permet de definir les proprietes des axes, voir l’aide de Matlab pourplus de details.grid: permet de definir les proprietes des axes, voir l’aide de Matlab pourplus de details.

hold

Permet de superposer plusieurs graphiques en specifiant hold on.Pour ne plus superposer les graphiques suivant, il suffit de specifier hold

off.plot(x,y)hold on

plot(x,y2)plot(x,y3)hold off

Pour sauvegarder un graphique, il suffit de selectionner Save dans le menuFile de la fenetre du graphique.

Stata

graph (gr)Trace des graphiques.graph nom des variables, [type de graphique, autres options]Ou type de graphique peut prendre les valeurs suivantes:

• histogram (h): histogramme

• twoway (t): nuage de points a deux axes; valeur par defaut si plusieursvariables sont affiches. La premiere variable specifiee est toujours lavariable dependante.

• bar (b): graphique a barres

• pie (p): graphique en pointe de tartes

Voici certaines des options supplementaires les plus utiles:

• xlog, ylog: specifie que l’axe des x ou des y respectivement doit etreen echelle logarithmique.

24

Page 26: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

• xline, yline: specifie qu’une grille en x ou en y respectivement de-vrait etre affichee.

• connect(option) (c(option)): specifie si les points devraient etre con-nectes/. option peut prendre les valeurs suivantes:

– .: non-connectes; valeur par defaut

– l: lignes droites entre les points

– s: traces des lignes courbes entre les points (A VERIFIER)

• symbol(option) (s(options)): specifie le symbole que doivent prendreles points. option peut prendre les valeurs suivantes:

– O: grand cercles; valeur par defaut

– o: petits cercles

– .: points

– i: invisibles

• saving(nomdefichier), [replace]: sauvegarde le graphique dans lefichier specifie, si aucune extension n’est specifiee, Stata ajoute pardefaut “.gph”.replace indique que le fichier existant peut etre remplace.

3.1 Exemples et resultats pour le Chapitre 3

Matlab

diary(’ExChap3.out’);% creation d’un indice de temps commencant a 4.t = 4:103;% creation du log de cet indice.lnt = log(t);plot(t,lnt,‘k’)plot(t,lnt,‘k-’)plot(t,lnt,‘k-p’)hold onplot(t,-lnt,‘b-+’)

25

Page 27: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

xlabel(‘temps’)ylabel(‘log du temps’)title(‘courbe logarithmique’)diary(’off’)

Stata

log using ”e:\ExChap3.log”, replaceset more off* Fixer le nombre d’observations a 100. set obs 100* creation d’un indice de temps commencant a 4. g t = n+3 * creation du logde cet indice. g lnt = log(t) graph lnt t, saving(”e:1”, replace)graph lnt t, yline saving(”e:2”, replace)graph lnt t, yline c(s) saving(”e:3”, replace)graph lnt t, yline s(.) saving(”e:4”, replace)graph lcrd t, xlog yline c(s) s(i) saving(”e:5”, replace)log off

26

Page 28: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 4

Regressions Simples

Dans ce chapitre et les suivants, il est suggere de lire la section de Matlabmeme si on utilise Stata: contrairement a ce dernier ou on a qu’a utiliser unefonction pour effectuer l’operation desiree, Matlab necessite l’elaboration pasa pas de l’operation qui est effectuee par la boıte noire qu’est Stata.

Dans ce chapitre nous considererons le modele suivant:

y = β0 + β1x1 + β2x2 + · · ·+ βkxk + uy = Xβ + U

Matlab

MCO

Definition des variables:X = [ones(size(x1),x1,x2,. . . ,xk][T,K] = size[X]T et K sont respectivement le nombre d’observations et le nombre de variablesindependantes.Procedure pour calculer les moindres carres ordinaires (MCO):Calcul des coefficient:b = inv(X’*X)*X’*you X est une matrice T ×K, Y est un vecteur t× 1 et b un vecteur k × 1Calcul des residus:e = y-X*b

27

Page 29: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Calcul de la variance des residus:sigma2 = (e’*e)/(T-K)Calcul de la variance des coefficients:varb = sigma2 * inv(X’*X)Calcul de l’ecart-type des coefficients:etype = sqrt(diag(varb))Creation d’un vecteur de y-moyen:ybar = [ones(size(y))*mean(y)]Vecteur des y predits:yhat = X*bVariation expliquee:SSE = sum((yhat-ybar).^2)Variation totale:SST = sum((y-ybar).^2)Calcul du R2:R2 = SSE/SST

Tests d’hypotheses et Intervalles de confiance

Test de H0,β2 = 0:b2 = b(3)etype2 = etype(3)t2 = b2/etypeb2On obtient ainsi la valeur de la statistique t.

Intervalle de confiance a 95% de β2:bornesupp = b2 + etype2*1.96borneinf = b2 + etype2*(-1.96)

Fonctions dans Matlab

La notion de fonction est introduite, car vous effectuerez des MCO tellementsouvent qu’il vous est suggere d’en faire une fonction des maintenant.

Une fonction est un fichier matlab independant qui contient du codea etre execute lorsque son nom est invoque.

28

Page 30: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

La premiere ligne du fichier doit etre sous la forme suivante:function [varo1, varo2, . . . ] = Nom de fonction(vari1, vari2, . . . )ou varo designe une variable retournee par la fonction et vari designe unevariable utilisee par la fonction.Les lignes subsequentes contiennent le code a etre execute.La fonction peut ensuite etre appelee par la commande suivante:[vars1, vars2, . . . ] = Nom de fonction(vare1, vare2, . . . )ou vars sont les nom qu’on desire utiliser pour les variables varo et vare lenom de variables que l’on donne a la fonction.

ex: MCO.mfunction [b,e,etype,R2] = MCO(X,y)[T,K] = size(X);b = inv(X’*X)*X’*y;e = y-X*b;sigma2Ch = (e’*e)/(T-K);varChb = sigma2Ch * inv(X’*X);etype = sqrt(diag(varChb));ybar = [ones(size(y))*mean(y)];yCh = X*b;SSE = sum((yCh-ybar).^2);SST = sum((y-ybar).verb+2+);R2 = SSE/SST;

Cette fonction serait appelee par la commande suivante:[beta,u,etype,R2] = MCO(Z,y)ou beta, u, etype et R2 sont les noms de variables qui seront utiliseesdans le code et Z et y sont les variables contenant les donnees aetre traitees. Z prend generalement la forme Z = [ones(size(x1)),x1,x2,...].

4.0.1 Estimateurs de Variance Robustes

Il peut etre utile de pouvoir calculer une matrice de variance-covariance quisoit robuste a la presence d’heteroscedascticite. L’estimateur robuste de cettematrice le plus utilise est celui de White qui est donne par la formule suiv-

29

Page 31: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

ante:

ˆV ar[b] =1

T

(X ′X

T

)−1(

1

T

T∑i=1

e2i xix

′i

)(X ′X

T

)−1

En matlab, toujours en utilisant les resultats de la fonction MCO.m, on de-vrait ecrire:e2 = e.^2varWhite = T*inv(X’*X)*sum((e2.*X)*X’)/T*inv(X’*X)

Stata

regress (reg)Incontournable si on desire faire des regressions par MCO. Effectue la regressionde la variable dependante sur la ou les variables independantes specifiees.regress variable dependante [variables independantes]Options:

• level(#) (l(#)): permet de specifier le niveau de confiance pour lesintervalles et le p-value (# doit etre un entier); si level() n’est passpecifie, # prend la valeur 95, i.e. le niveau de confiance est fixe a 95%.

• robust (r): calcule des variances robustes par la methode de Eicker-White.

ex: reg y x1 x2 x3 if x1==1, r

predict

Permet de calculer les valeurs predites, les residus, etc. pour toutes les ob-servations.predict nom de nouvelle variable; sans aucune option calcule les valeurspredites (y).Options:

• xb: calcule X ′β, la valeur lineaire predite

• residuals (r): calcule les residus

• stdp: calcule les ecarts-types des valeurs predites

30

Page 32: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

ex: calcule les y hors-echantillonreg y x1 x2 x3 in 1/100predict y hat if ˜

e(sample)

test (t)test permet d’effectuer des tests d’hypotheses apres une estimation. Il prendprincipalement deux formes:test [expression1 = expression2]: test que l’expression1 n’est pas statis-tiquement differente de l’expression2test liste de coefficients: test que les coefficients ne sont pas conjointe-ments statistiquement differents de zero.

ex:reg y x1 x2 x3test x1 = x2test x2 x3

4.1 Tests d’heteroscedasticite

La presence d’heteroscedasticite ne vient pas biaiser vos resultats, elle biaiseplutot les ecarts-types obtenus par MCO. Il existe plusieurs methodes sim-ilaires de tester pour la presence d’heteroscedasticite. La plus simple est letest de Breusch-Pagen:

1. recuperer les residus de la regression qu’on desire tester;

2. generer le carre des residus;

3. regresser la carre des residus sur les variables dependantes de la regressionoriginale;

4. tester si les coefficients sont conjointement significatifs (test F ou testLM).

31

Page 33: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Matlab[b,u,etype,R2] = MCO(X,y)u2 = u.^2[bu,e,etypeu,R2u] = MCO(X,u2)

Test F:F = (R2u/length(bu’))/((1-R2u)/(length(u2)-length(bu’))) 1

Test LM 2:LM = length(u2)*R2uNotez bien que le R2 utilise est celui de la regression auxiliaireeffectuee en 3.

Statareg y x1 x2predict u, rg u2 = u2reg u2 x1 x2Il suffit alors de regarder la statistique F donnee par Stata.

La faiblesse du test de Breusch-Pagan est qu’il suppose les erreurs nor-malement distribuees. Afin de laisser tomber cette hypothese, il suffit d’ajouterle carre des variables dependantes et leurs produits croises dans la regressionde l’etape 3, il s’agıt la du test de White. Afin de limiter le nombre deregresseurs, on peut utiliser un test de White legerement modifie:

u2 = β0 + β1y + β2y2 + e

On procede pour le reste exactement de la meme facon que pour le test deBreusch-Pagan.

Que faire lorsque vous trouvez la presence d’heteroscedasticite? Deux op-tions s’offrent a vous:

• Calculer des variances robustes par la methode de White3

1Rappel: la forme generale du test F pour la signification conjointe de tous les coeffi-cients est: F = R2/k

(1−R2)/(n−k−1)2Rappel: la statistique LM suit une χ2

k3Il peut-etre bien tentant de proceder systematiquement avec les variances robustes

32

Page 34: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

• Estimer le modele par MCG, i.e. modeliser la forme d’heteroscedasticite(voir le chapitre 7).

4.2 Test de Changement structurel (Test de

Chow)

Considerez le modele suivant:

y = β0 + β1x1 + β2x2 + u

Le test de Chow sert a verifier s’il existe une difference dans l’influenced’une variable dependante entre deux groupes de donnees, i.e. si le coefficientest statistiquement different. Les deux groupes de donnees pourraient etredeux series d’observations ou deux periodes de temps par exemple.La facon “classique” d’effectuer le test de Chow est d’effectuer la regressiondu modele pour les deux groupes de facon independante et pour les deuxgroupes ensemble:= β10 + β11x11 + β12x12

y2 = β20 + β21x21 + β22x22

y = β0 + β1x1 + β2x2 puis de tester si les coefficient sont statistiquementdifferents par un test F :

F =( ˆSSRy − ˆSSRy1 − ˆSSRy2)/q

( ˆSSRy1 − ˆSSRy2)/n1 + n2 − 2k)

Rappel: q est le nombre de contraintes et k le nombre de coefficients, iciq = k = 3Une autre facon plus rapide d’effectuer ce test est de construire une variablebinaire egale a un pour les observations du deuxieme groupe et de faire uneseule regression sur les variables originales et sur les termes d’interaction avecla variable binaire4:

Eicker-White pour eviter de faire le test d’heteroscedasticite, mais cette facon de fairereduit la precision de vos resultats (i.e. gonfle les ecarts-types et reduit la puissance destests) lorsque les donnees sont homoscedastiques.

4Cette section et l’exemple qui la suit sont inspires de la rubrique de l’aide de Stata:How can I compute the Chow test statistic? par Bill Gould.

33

Page 35: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Soit δ la variable binaire:

y = β0 + β1x1 + β2x2β3δ + β4x1δ + β5x2δ

On desire maintenant tester si β0 = (β0 + β3), si β1 = (β1 + β4) et si β2 =(β2 + β5). Ce qui revient a tester si β3, β4 et β5 sont conjointement differentde 0. Ceci peut etre facilement effectue par un test de F .

ex:

Matlabg2 = (groupe ==2);g2x1 = g2*X(:,2);g2x2 = g2*X(:,3);Xg = [X,g2,g2x1,g2x2];function [b,u,etype,R2] = MCO(X,y);function [bg,ug,etypeg,R2g] = MCO(Xg,y);

# Test F:F = (R2 - R2g/length(b’))/((1-R2g)/(length(u)-length(b’)))5

Statag g2 = (groupe == 2)g g2x1 = g2*x1g g2x2 = g2*x2reg y x1 x2 g2 g2x1 g2x2test g2 g2x1 g2x2

5Rappel: la forme generale R2 du test F est: F = (R2ur−R2

r)/k(1−R2

ur)/(n−k−1)

34

Page 36: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 5

Variables instrumentales etDoubles Moindres Carres

Lorsqu’une variable “independante” est correlee avec le terme d’erreur, les hy-potheses classiques du modele lineaire sont violees et on se retrouve face a unprobleme d’endogeneite. Dans ces cas, on peut faire appel a l’estimateurde variables instrumentales (VI) ou aux doubles moindres carres or-dinaires (DMCO).

5.1 Estimateur Variables Instrumentales

Soit X, une matrice de VI et Z, la matrice originale. L’estimateur VI estdonne par:

β(V I) = (X ′Z)−1X ′y

et l’estimateur VI de la covariance par:

σ2(X ′Z)−1(X ′X)(Z ′X)−1

ou

σ2 =1

T(y − Zβ(IV ))

′(y − Zβ(IV )).

ou, lorsque K > J (K etant le nombre de VI et J le nombre de variablesindependantes), par:

β(IV ) = [Z ′X(X ′X)−1X ′Z]−1Z ′X(X ′X)−1X ′y.

35

Page 37: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

σ2[Z ′X(X ′X)−1X ′Z]−1.

Matlab

Creons la fonction VI pour l’estimateur VI:function [bvi,evi,etypevi,varChbvi,R2vi] = VI(X,Z,y)[T,K] = size(X);bvi = inv(X’*Z)*X’*y;evi = y-Z*bvi;sigma2Ch = (evi’*evi)/(T-K);varChbvi = sigma2Ch * inv(X’*Z)*X’*X*inv(Z’*X);etypevi = sqrt(diag(varChbvi));ybar = [ones(size(y))*mean(y)];yCh = Z*bvi;SSEvi = sum((yCh-ybar).2);SSTvi = sum((y-ybar).2);R2vi = SSEvi/SSTvi;Notez que cette fonction est optimale seulement pour K ≤ J .

Stata

ivreg

ivreg permet de faire directement une regression par DMCO.ivreg variable dependante variables independantes (variable dependante =variable(s) intrumentale(s)), options

ou options peut prendre les memes valeurs que pour regress, ainsi quefirst qui affiche les resultats de la premiere regression.

ex:ivreg y1 z1 z2 (y2=x1), r first

predict peut etre utilise apres ivreg

36

Page 38: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

5.2 DMCO

Le principe des doubles moindres carres ordinaires est d’utiliser une estima-tion de la variable endogene qui ne soit pas correlee avec le terme d’erreurpour effectuer la regression.Soit le modele suivant:

y1 = β0 + β1x1 + β2x2 + β3y2 + u

et soit z une VI de y2.

Comme leur nom l’indique, les DMCO se font en deux etapes.

1. Estimation de la variable endogene:Regression de y2 sur toutes les variables independantes (x1 et x2

ici) et la/les VI pour y2 (z ici).On recupere y2, l’estimation lineaire de y2.

2. Regression du modele avec y2:Regression de y1 sur une constante, x1, x2 et y2.

Cette derniere regression ne souffrant plus d’endogeneite, les βainsi obtenus sont non-biaises.

Matlab

Z = [ones(size(y1)),x1,x2,z][bz,uz,etypez,R2z] = MCO(Z,y2)y2hat = Z*bzX = [ones(size(y1)),x1,x2,y2hat][b,u,etype,R2] = MCO(X,y1)

Stata

Voir la fonction ivreg a la section precedente.

37

Page 39: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

5.3 Tests d’endogeneite

Le test de Hausman permet de verifier s’il existe bel et bien une differenceentre l’estimateur VI et l’estimateur MCO, verifiant ainsi s’il y a bel et bienendogeneite des variables (si les deux estimateurs sont consistants, ils serontasymptotiquement egaux). Sous H0, la statistique de Hausman est:

H = [β(V I) − b]′[σ2[(Z ′X(X ′X)−1X ′Z]−1 − σ2(Z ′Z)−1]−1[β(V I) − b] ∼ χ2(J)

Matlab

En utilisant la fonction developpee a la section precedente:[bmco,umco,etypemco,varChbmco,R2mco] = MCO(X,y)[biv,uiv,etypeiv,varChbiv,R2iv] = IV(X,y)H = (biv-bmco)’*(varChbiv-varChbmco))’*(biv-bmco)

Stata

hausman

Effectue le test de specification d’Hausman.Estimation du modele moins efficient, mais convergent (VI ici)hausman, save

Estimation du modele efficient, mais peut-etre pas convergent (MCO ici)hausman

Options: constant (c), indique que la constante doit etre inclue dans lacomparaison des deux modeles.

ex:ivreg y1 z1 z2 (y2=x1)hausman, savereg y1 z1 z2 y2hausman, c

38

Page 40: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 6

Estimateur du Maximum deVraissemblance (EMV)

La fonction de vraisemblance est la probabilite jointe des observationsetant donne les parametres d’interets, i.e.:

L(θ|y) = f(y1, . . . , yn|θ) =n∏

i=1

f(yi|θ)

L’estimateur du maximum de vraisemblance (EMV) a pour but dechoisir le vecteur de parametres θ qui maximise la fonction de vraisemblance,i.e. pour lequel les donnees observees sont les plus probables. Pour simplifierles choses, la fonction de log-vraisemblance,L(θ|y), est generalement utilisee1.Prenons l’exemple d’un echantillon normalement distribue, de moyenne 0 etde variance σ2:

f(y|X, β, σ2) =T∏

t=1

(2πσ2)−1/2 exp[(yt − x′tβ)2]

= (2πσ2)−T/2 exp

[−(y −Xβ)′(y −Xβ)

2σ2

].

La log-vraisemblance est

L(β, σ2) = −T

2log(2π)− T

2log σ2 − (y −Xβ)′(y −Xβ)

2σ2.

1Le logarithme etant une fonction montone, la valeur qui maximise L(θ|y) est la memeque celle qui maximise L(θ|y).

39

Page 41: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Les CPO sont:δlnL

δβ=

(y −Xβ)(y −Xβ)

2σ2

δlnL

δσ2= − T

2σ2+

(y −Xβ)′(y −Xβ)

2σ4

Ce qui nous permet de trouver

β = (X ′X)X ′y

σ2 =(y −Xβ)′(y −Xβ)

T=

e′e

T

Matlab

Il n’existe pas de fonction de maximisation dans Matlab, il faut donc min-imiser la negative de la fonction a l’aide de la fonction suivante:

fminsearch

[x, fval] = fminsearch(fonction, options, variables)ou x est la variable qui contiendra la/les valeur(s) qui minimise(nt)la fonc-tion, fval est une variable facultative ou seront stockees les valeurs de lafonction pour chacune des valeur minimale, fonction est le nom de la fonc-tion a minimiser (refere a un fichier ‘.m’) et variables est une liste de variablesutilisees par la fonction, mais qui ne doivent pas etre minimisees. Les optionspossibles sont:

• Display: ajuste l’affichage de la progression de la minimisation; sereferer a l’aide de Matlab pour plus d’info.

• MaxFunEvals: nombre maximal d’evaluations de la fonction permises

• MaxIter: nombre maximal d’iterations permises

Si aucune option n’est desiree, il faut utilisee l’ensemble vide [] pour options.

ex: voir section 8.1

40

Page 42: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Stata

ml

Permet de faire une estimation par maximum de vraisemblance pour uneequation donnee. Cette fonction etant fort complexe et tres peu utilisee dansle cadre des problemes abordes dans ce guide, il est laisse a la discretion dulecteur le soin de consulter l’aide de Stata a son sujet. Il existe normalementdes fonctions pre-definies pour les estimateur abordees ici qui doivent etretraites par maximum de vraisemblance (probit et logit par exemple).

41

Page 43: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 7

Moindres Carres Generalises

La methode des moindres carres generalises (MCG) cherche a modeliserla fonction de la variance. Nous obtenons alors l’estimateur MCG

βMCG = (X ′V −1X)−1X ′V −1y

ou encoreβMCG = (X ′W−1X)−1W ′V −1y

et sa variance estvar[β] = σ2(X ′V −1X)−1.

ou V et W sont egaux a

W = σ2

x1 0 · · · 00 x2 · · · 0...

.... . .

...0 0 · · · xn

≡ σ2V

MatlabLe principe de base ici est de construire la matrice V avec la forme approprieede variance pour pouvoir ensuite calculer les βMCG.Voyons comment on estimerait le modele y = β0 + β1x1 + β2x2 + ε ou l’onsuppose que la variance suivre une fonction de type σ2(x) = σ2x2i:

X = [ones(size(y)),x1,x2];V = diag(x2);

42

Page 44: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

[T,K] = size(X);

bGLS = inv(X’*inv(V)*X)*X’*inv(V)*y;eGLS = y-X*bGLS;sigma2ChGLS = (eGLS’*eGLS)/(T-K);varChbGLS = sigma2ChGLS * inv(X’*inv(V)*X);etypeGLS = sqrt(diag(varChbGLS));

ybar = [ones(size(y))*mean(y)];yChGLS = X*bGLS;SSEGLS = sum((yChGLS-ybar).2);SST = sum((y − ybar).2);R2GLS = SSEGLS/SST

Stata

vwls

permet de faire une regression lineaire ponderee par la variance.vwls variable dependante variables independantes [poids], options

Options: sd(nom variable) fournit une estimation de l’ecart-type de la vari-able dependante.

ex:vwls y x1 x2, sd(sigma2ch)ou sigma2ch est une estimation de l’ecart-type de y.

predict peut etre utilise apres vwls

43

Page 45: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 8

Variables dependantesqualitatives

8.1 Probit/Logit

Un probit et un logit s’appuient en fait sur le meme principe, ils ne differentque dans la forme de la fonction de repartition qu’ils utilisent pour calculerl’effet sur la probabilite d’une variation de la variable latente. En effet,lorsque la variable dependante ne prend que des valeurs qualitatives (oui ounon par exemple), l’effet d’une variable independante sur la probabilite dedire oui doit etre “traduit” par une fonction de repartition. Cette dernierenous donne la probabilite associee a une valeur donnee de la valeur latenteexprimee par la combinaison lineaire des variables independantes.

Matlab

Pour le probit, on doit utiliser la fonction de repartition de la loi normale:

F (x) = Φ(x) =1√2π

∫ x

−∞e−z2

2 dz

normcdf

normcdf(X)Donne la valeur de la fonction de repartition de la loi normale pour la valeurde X specifiee.

44

Page 46: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Pour le logit, on utilie plutot la fonction de repartition de la loi logistique:

F (x) =1

1 + e−x

Comme il n’existe pas de fonction predefinie dans Matlab pour la fonctionde repartition de la loi logistique, on doit en construire une:

function [Fx] = logitcdf(x)Fx = 1/(1+exp(-x))

La procedure etant la meme pour un probit et un logit, elle ne sera demontreequ’une seule fois pour le cas de la loi logistique (logit).

Voyons d’abord comment construire une fonction de log-vraisemblance pourune loi normale:

function P = logvrais(b,X,y)[T,K] = size(y);sumy = sum(y);summy = T - sum(y);lXb = logitcdf(X*b’) L = y.*log(lXb) + (ones(T,1)-y).*log(ones(T,1)-lXb);P = -sum(L)

Voyons maintenant comment il nous est possible d’utiliser cette fonction pourtrouver les β par maximum de vraisemblance:

options = []bmin = fminsearch(@logvrais,[0,0,0,0,0,0,0,0,0,0,0],options,X,y)

Il ne nous reste maintenant qu’a calculer l’effet d’une variable sur la proba-bilite. Ceci peut etre fait en fixant toutes les autres variables a une valeur(generalement leur moyenne echantillonalle), puis en estimant le modele suc-cessivement pour deux valeurs de la variable. La difference de la probabilitede ces deux estimations lineaires de la variable dependante (y) donne la vari-ation de probabilite.

45

Page 47: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

ex: le modele estime est y = β0 + β1x1 + β2x2 + β3bin1 + µ oubin1 est une variable binaire.options = []bmin = fminsearch(@logvrais,[0,0,0,0,0,0,0,0,0,0,0],options,X,y)yhat1 = bmin(1) + bmin(2)*mean(x1) + bmin(3)*mean(x2) + bmin(4)yhat2 = bmin(1) + bmin(2)*mean(x1) + bmin(3)*mean(x2)diff = normcdf(yhat1)-normcdf(yhat2)

Note: on pourrait aussi calculer l’effet marginal directement en calculant laderivee de l’esperance de y sachant X:

∂E[y|X]

∂X=

{dF (X ′β)

d(X ′β)

}β = f(X ′β)β

Par exemple, dans le cas d’un probit:

Pr(y = 1) = Φ(X ′β)

∂ Pr(y = 1)

∂X= φ(X ′β)β

Stata

probit (prob)Estime un modele probit.probit variable dependante variable independanteOptions: probit possede en grande partie les memes options que regress.Note: Ici predict donne par defaut la probabilite. Pour avoir l’estimationlineaire, il faut preciser xt dans les options de predict.

logit

Permet d’estimer un modele logit.logit variable dependante variable independanteOptions: logit possede en grande partie les memes options que regress.

46

Page 48: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

8.2 Tobit

Un tobit est essentiellement un modele dont les donnees sont tronquees.Comme le probit, le tobit suit une loi normale.

MatlabSoit un modele tronque a gauche a zero (y∗ etant une variable latente de y):

y∗ = X ′β + µ

y = max(0, y∗)

Encore ici, on procedera par maximum de vraisemblance, mais on devracette fois considerer qu’il existe deux fonctions: une pour y = 0 et une poury > 0. La log vraisemblance pour le tobit sera donnee par la somme de lalog vraisemblance des deux fonctions:

si y = 0 :

l1(β, σ) = log[1− Φ(xiβ/σ)

si y > 0 :

l2(β, σ) = log{(1/σ)φ[(yi − xiβ)/σ]}

En matlab:

ybin = (y == 0)lvrais = ybin.*log(1-normcdf(X’*b/sqrt(sigma2Ch))) + ...(ones(T,1)-ybin).*log(1/sqrt(sigma2Ch)*normpdf((y-X’*b)/sqrt(sigma2Ch))P = -sum(lvrais)

Afin de calculer l’esperance de y etant donne x, il suffit de calculer:

E(y|x) = Φ(xβ/σ)xβ + σφ(xβ/σ)

Le transfert de cette fonction en Matlab ne devrait plus, a ce stade, vous

47

Page 49: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

causer aucun probleme...

Stata

tobit

Permet d’estimer un modele tobit.logit variable dependante variable independanteOptions: ll(#), ul(#): indiquent respectivement que les donnees sonttronquees a gauche ou a droite. Une ou les deux de ces options doivent etrespecifiees. # indique le point de troncation. Si # n’est pas precise, Statasuppose qu’il s’agit respectivement de la valeur minimum et de la valeurmaximum.Les autres options de tobit sont en grande partie commune avec regress.

ex:tobit y x1 x2 x3 x4, ll(0)

48

Page 50: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 9

Series Chronologiques

9.1 Operation sur les variables dans le cadre

de series chronologiques

Matlab

Il n’y a pas d’operation particuliere a effectuer avec Matlab lorsqu’on tra-vaille avec des series chronologiques.

Stata

tsset

Lorsqu’on travaille avec des series chronologiques dans Stata, il est necessairede l’en informer par la commande tsset.tsset variable de temps

ex:generate t = ntsset = t

9.2 Operateurs de series temporelles

Voici comment reproduire l’equivalent des operateurs Avance et Retard dansMatlab et Stata pour travailler sur les series chronologiques.

49

Page 51: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Matlab

Il n’existe pas d’operateur de series temporelles en soit dans Matlab, il fautdonc utiliser les operateurs matriciels vus au chapitre 1.

ex:

• Operateur Retard:T = length(X)x = X(3:T)x lag1 = X(2:T-1)x lag2 = X(1:T-2)Note: il faut ajuster manuellement le nombre d’observationsconsiderees.

• Operateur Avance:T = length(X)x = X(1:T-2)x fwd1 = X(2:T-1)x fwd2 = X(3:T)

Stata

l

L’operateur l est l’operateur Retard de stata. Il peut etre utilise avec toutesles fonctions qui acceptent les series temporelles une fois que la declarationde series temporelles a ete faite.l#.variableou variable est la variable sur laquelle l’operateur doit agir et # est le nombrede retards a appliquer. Si # est omis, un seul retard est applique (equivalenta l1.variable).

tsset tregress y x l.x l2.x

50

Page 52: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

f

L’operateur f est l’operateur Avance de stata. Il peut etre utilise avec toutesles fonctions qui acceptent les series temporelles une fois que la declarationde series temporelles a ete faite.f#.variableou variable est la variable sur laquelle l’operateur doit agir et # est le nom-bre d’avance a appliquer. Si # est omis, une seule avance est appliquee(equivalent a f1.variable).

tsset tregress y x f.x f2.x

9.3 Tests d’autocorrelation

Inutile de mentionner que l’autocorrelation est un probleme qui n’est perti-nent que dans le cas des series temporelles. . .Le test ρ est le test le plus simple a effectuer pour tester la presence d’autocorrelation:

1. recuperer les residus de la regression qu’on desire tester;

2. regresser ut sur ut−1 a ut−n et X

3. Tester la signification conjointe des coefficients de cette regression parun test F.

Choisissons n egal a 3.

MatlabT = length(y)[b,u,etype,R2] = MCO(X,y)U = [ones(T-3,1),u(3:T-1),u(2:T-2);u(1:T-3)];[bu,e,etypeu,R2u] = MCO(U,u(4:T))

Test F:F = (R2u/length(bu’))/((1-R2u)/(length(u2)-length(bu’)-1))Test LM:LM = (T-3)*R2u

51

Page 53: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Statareg y x1 x2predict u, rreg u l.u l2.u l3.uIl suffit alors de regarder la statistique F donnee par Stata.

Le test de Durbin-Watson est aussi utilise pour tester la presence d’autocorrelation,mais comme il est moins precis et ne considere qu’une seule periode, nous nele couvrirons pas ici.

9.4 Methode de Box-Jenkins

Ce qu’il est important de comprendre, a mon avis, dans la methode de Box-Jenkins, c’est que l’objectif de toutes les operations que nous effectuons estde se retrouver avec un residu qui est un bruit-blanc. Le but ultime etantde modeliser la serie afin de faire des predictions, nous pouvons seulementetre certain d’avoir tout extrait lorsqu’il nous reste seulement un bruit-blanc:un processus qui est par definission impossible a predire.

9.4.1 Stationnarite des donnees

La premiere etape de la methode de Box-Jenkins consiste a effectuer lestransformations necessaires afin de s’assurer que notre serie est stationnaire,si elle ne l’est pas, il nous sera impossible de travailler dessus.Premiere question a se poser: doit-on travailler en log ou pas? Si la vari-able croıt a un taux constant, elle sera lineaire en log. De plus, les pro-prietes du logarithme font en sorte qu’il “ecrase” une variance croissante.Outre la transformation logarithmique, il existe trois cas possibles de non-stationnarite qui impliqueront des changements dans la serie (ou sa modelisation):

• Changement structurel

• Tendance deterministe

• Racine unitaire

52

Page 54: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Changement structurel

Les changement structurels peuvent etre detectes a l’aide du Test de Chow(voir section 4.2). Malheureusement, rien ne peut generalement etre fait pourstationnariser une serie dans le cas d’un changement structurel.

Tendance deterministe

Afin de regler le probleme de la presence d’une tendance temporelle, il suffitde la modeliser la tendance. Il faut faire attention de bien choisir la tendancela mieux adaptee a nos donnees: lineaire, quadratique, logarithmique, etc.

ex: tendance quadratiqueMatlabT = length(y);t = 1:T;t2 = t^2;X = [ones(size(y)),t,t2][b,u,etype,R2] = MCO(X,y)

Statat = nt2 = t^2tsset tregress y t t2

Racines Unitaires

On fait face a un probleme de racine unitaire lorsque ρ = 1 dans le modelesuivant:

yt = α + ρyt−1 + et

Afin de regler le probleme de racine unitaire, il faut differencier la serie, i.e.travailler sur ∆yt = yt − yt−1 plutot que yt. Le modele devient donc:

∆yt = α + θyt−1 + εt

Matlab

53

Page 55: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

T = length(y);x = y(2:T) - y(1:T-1)...

Stata

La differenciation d’une serie est effectuee automatiquement dans Stata lorsde l’utilisation de la fonction arima.

Tester pour la presence d’une racine unitaire se fait par un test t ou H0

est θ = 0. Malheureusement, sous l’hypothese nulle, la statistique t ne suitpas la loi asymptotique habituelle. Il faut plutot utiliser la loi de Dickey-Fuller. S’il y a correlation des termes d’erreur, il faut plutot utiliser une loide Dickey-Fuller augmentee.

Stata

dfuller

Effectue un test de Dickey-Fuller augmente sur la variable specifiee.dfuller nom de variable, optionsOptions:

• lags(#): specifie le nombre de retards a utiliser pour le calcul de lavariance estimee Newey-West.

• trend: incluera une variable de tendance dans la regression.

pperron

Possede exactement la meme structure et les memes options que dfuller,mais effectue un test de Phillips-Perron plutot qu’un test de Dickey-Fulleraugmente.

9.4.2 Modelisation des cycles: Modeles AR, MA, ARMA,ARIMA

Stata

54

Page 56: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

arima

Permet d’estimer un modele AR, MA, ARMA ou ARIMA par maximum devraisemblance.arima variable dependante variable independante, arima(p,d,q)ou p est le nombre de AR, d le nombre de differenciation et q le nombre deMA.Il n’est pas necessaire de preciser de variables independates.

ex: AR(1)arima t, arima(1,0,0)ex: MA(1)arima t, arima(0,0,1)ex: ARIMA(1,1,2)arima t, arima(1,1,2)

Pour choisir p et q, il est bon de regarder l’autocorrelogramme partiel (nom-bre de AR) et l’autocorrelogramme (nombre de MA) de la variable qui nousinteresse.

corrgram

Construit une table des autocorrelations et des autocorrelations partielles.Permet de tracer l’autocorrelogramme et l’autocorrelogramme partiel.corrgram nom de variable, optionOptions: lags(#): specifie le nombre de retards a calculer.

corrgran peut etre suivi de deux autres fonctions:

ac

Produit un autocorrelogramme.ac nom de variable, optionsOptions:

• lags(#): specifie le nombre de retards a calculer.

• level(#): specifie le niveau de confiance a utiliser dans lecalcul des bandes de confiances.

55

Page 57: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

• Toutes les options standards d’un graphique sont egalementadmissible.

pac

Produit un autocorrelogramme partiel. Meme structure et memesoptions que ac.

9.4.3 Selection de Modele

A chaque etape de la modelisation de notre serie chronologique, il est impor-tant de choisir le meilleur des choix qui s’offre a nous: tendance quadratiqueou logarithmique? AR(2) ou AR(3)?Plusieurs criteres existent pour nous aider dans nos choix, nous en exploreronstrois qui se basent tous sur le principe de penalite pour le nombre de variables.

R-carre ajuste

Le R-carre ajuste (R2) est donne par la formule suivante:

R2 = 1− n− 1

n−K(1−R2)

Akaike information criterion (AIC)

Voici la formule habituelle du critere d’Akaike:

AIC(K) = log(e′e

n) +

2K

n

Bayesian information criterion (BIC)

Voici la formule habituelle du critere de Schwartz ou Bayesien:

BIC(K) = log(e′e

n) +

Klogn

n

A la fois dans Matlab et Stata, ces criteres doivent etre construits manuelle-ment.

56

Page 58: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 10

Donnees longitudinales (Panel)

Il existe bon nombre de methodes pour traiter les donnees en Panel et lalitterature sur le sujet est tres exhaustive, nous ne traiterons donc dans cechapitre que des methodes de base.

10.1 Variables Binaires

La facon la plus simple de controler pour le pooling de plusieurs annees estd’ajouter dans la regression une variable binaire par annee. Ces dernierespermettent de capter l’effet de l’annee sur la variable dependante. Cettemethode suppose de fait que toutes les autres variables sont constantes atravers le temps. Comme dans tous les cas ou l’on travaille avec des vari-ables binaires, il faut laisser tomber une des variables pour ne pas avoir decolinearite parfaite

Matlab

Il suffit simplement de construire des variables binaires tel qu’indique dansle chapitre 1.

ex: On desire faire une regression sur des echantillons tires de1980,81,82 et 83.a81 = (annee == 1981)a82 = (annee == 1982)a83 = (annee == 1983)X = [X,a81,a82,a83]

57

Page 59: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

function [b,u,etype,R2] = MCO(X,y)

Stata

Comme c’est le cas avec Matlab, on peut simplement ajouter manuellementdes variables binaires dans notre regression. Il existe par ailleurs une methodeautomatique d’indiquer a Stata que l’on travaille avec des donnees en panelqui sera presentee a la section suivante.

ex: On desire faire une regression sur des echantillons tires de1980,81,82 et 83.a81 = (annee == 1981)a82 = (annee == 1982)a83 = (annee == 1983)regress y x1 x2 a81 a82 a83

10.2 Effets Fixes et Effets Aleatoires

Tres souvent, l’estimation simplement a l’aide de donnees binaires d’anneesdonnera un resultat biaise. Ce modele fait en effet abstraction de la pos-sibilite d’un effet non-observe independant du temps (effet lie au groupe).Cet effet peut soit etre correle avec les variables explicatives (Effet Fixe) ounon-correlees avec celles-ci (Effet Aleatoire).Dans le cas d’un effet fixe, la methode la plus simple de capter cet effet estde supposer qu’il existe pour chacun de nos groupes et, ainsi, d’ajouter unevariable binaire par groupe (sans oublier, comme d’habitude, dans laissertomber une). Donc si nous avons cinq groupes et quatre periodes de temps,nous aurons un total de sept variables binaires.Nous presenterons le cas d’un effet aleatoire que pour Stata car c’est uneprocedure qui est faite automatiquement avec la fonction xtreg.

Matlab

Ajout de variables binaires pour chaque groupe et chaque annee.

ex: Regression sur cinq echantillons tires de 1980,81,82 et 83.a81 = (annee == 1981)

58

Page 60: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

a82 = (annee == 1982)a83 = (annee == 1983)g2 = (groupe == 2)g3 = (groupe == 3)g4 = (groupe == 4)g5 = (groupe == 5)X = [X,a81,a82,a83,g2,g3,g4,g5]function [b,u,etype,R2] = MCO(X,y)

Stata

Ajout manuellement de variables binaires pour chaque groupe et chaqueannee.

ex: Regression sur cinq echantillons tires de 1980,81,82 et 83.a81 = (annee == 1981)a82 = (annee == 1982)a83 = (annee == 1983)g2 = (groupe == 2)g3 = (groupe == 3)g4 = (groupe == 4)g5 = (groupe == 5)regress y x1 x2 a81 a82 a83 g2 g3 g4 g5

Tel que mentionne a la section precedente, il est aussi possible d’indiquera Stata que l’on travaille avec des donnees en Panel afin d’automatiser leprocessus:

tsset

Cette fonction deja vue dans le chapitre 9 permet egalement de declarer nosdonnees comme un panel de series temporelles. Il suffit pour ca d’ajouter lavariable de panel (de groupe) avant la variable de temps.tsset variable de panel variable de temps

ex:g t = ntsset groupe t

59

Page 61: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Une fois tsset declare pour des donnees panel, il est possible de travailleravec la famille de fonctions xt de Stata. Il existe une telle fonction pour cha-cun des types de regression: xtreg, xtlogit, xprobit, xttobit, xtgls,

etc. Nous ne couvrirons ici que sommairement xtreg et nous vous referonsa l’aide de Stata pour plus de details sur cette famille de fonctions.

xtreg

Permet de faire des regressions sur des donnees en Panel.Effet fixe: xtreg variable dependante variable independante, fe

Effet aleatoire estime par MCG: xtreg variable dependante variable independante,re

Effet aleatoire estime par EMV: xtreg variable dependante variable independante,mle

ex:tsset groupe anneextreg y x1 x2, fe

60

Page 62: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 11

Interaction avec les traitementsde texte et les tableurs

61

Page 63: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Chapitre 12

Ou trouver ses donnees etcomment les extraires

62

Page 64: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Annexe A

Tableaux Recapitulatifs

A.1 Fonctions de Matlab

Fonction Description Forme

Importation de Donneesdlmread Importe des donnees

numeriques d’un fichier.M = (‘nom de fichier’,‘separateur de donnees′)

load Importe des donneesnumeriques d’un fichier.

load nom de fichier

textread Importe les donnees d’un fichier. [A, B, C . . . ] =

textread(‘nom de fichier’,‘format’)

xlsread Importe les donnees d’un tableurExcel.

[A, B] =

xlsread(nom de fichier)

63

Page 65: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Transformation de Variablescumsum Somme cumulative des elements

d’un vecteur.cumsum(z)

exp Exponentielle d’une matriceelement par element.

exp(z)

length Nombre de colonnes d’un vecteur. length(z)log Logarithme naturel d’une matrice

element par element.log(z)

max Renvoie l’elements du vecteurayant la valeur la plus elevee.

max(z)

mean Moyenne des elements d’unvecteur.

mean(z)

min Renvoie l’elements du vecteurayant la valeur la moins elevee.

min(z)

size renvoie un vecteur 1 × 2 con-tenant la taille d’une matrice(rangees,colonnes).

size(z)

std Ecart-type des elements d’unvecteur.

std(z)

sqrt Racine carree d’une matriceelement par element.

sqrt(z)

sum Somme des elements du vecteur. sum(z)var Variance des elements d’un

vecteur.var(z)

64

Page 66: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Fonctions Matriciellesdiag Extraction de la diagonale d’une

matrice. / Creation d’une ma-trice diagonale.

diag(A)

eye Cree une matrice identite. I = eye(#)

inv Inverse d’une matrice. Inv(A)

ones Creer une matrice dont chaqueelement egale a un.

O = ones(#, #)

rand Creer une matrice dont chaqueelement est un alea U(0,1)

U = rand(#, #)

randn Creer une matrice dont chaqueelement est un alea N(0,1)

N = randn(#, #)

zeros Creer une matrice dont chaqueelement egale a zero.

Z = zeros(#, #)

Autres Fonctionsdiary Permet de sauvegarder une copie

de sa session dans le fichierspecifie.

diary(‘nom de fichier’)programme diary(‘off’)

fminsearch Minimise une fonction. [x, fval] =

fminsearch(fonction, options, variables)hold Permet de superposer plusieurs

graphiques.hold on graphiques hold off

normcdf Donne la valeur de la fonction derepartition de la loi normale.

normcdf(X)

normpsf Donne la valeur de la fonction deprobabilite de la loi normale.

normpdf(X)

plot Trace un graphique en nuage depoints.

plot(x, y,‘couleur style marqueur’)

wk1write Sauvegarde une matrice dans unfichier de tableur.

wk1write(‘nom de fichier’,M)

65

Page 67: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

A.2 Fonctions de Stata

Fonction Abreviation Description Forme

Importation de Donneesinfile inf Importe les donnees d’un

fichier.infile nom des variablesusing nomdefichier

insheet Importe les donnees d’unfichier (separateurs: tabula-tions ou virgules).

insheet using

nom de fichier

Transformation de Variablesgenerate g Cree une nouvelle variable. generate

nouvelle variable =

expressionreplace Remplace une variable exis-

tante.replace variable existante= expression

abs Valeur absolue. abs(x)exp Exponentiel. exp(x)log Logarithme naturel. log(x)max Renvoie l’argument

possedant la valeur laplus elevee.

max(x1, ..., xn)

min Renvoie l’argumentpossedant la valeur lamoins elevee.

min(x1, ..., xn)

mod Modulo de x par rapport ay.

mod(x,y)

sqrt Racine carree. sqrt(x)sum Somme de tous les elements

de x.sum(x)

uniform Donne une valeur aleatoireentre 0 et 1 (ditribution uni-forme sur [0,1)).

uniform()

66

Page 68: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Fonctions Matriciellesmatrix mat Cree ou modifie une ma-

trice.matrix nom de la matrice= expression

matrix get Permet d’obtenir copied’une matrice systeme.

matrix variable =

get(matrice systeme)mkmat Transforme des variables en

vecteurs/matrice.mkmat

nom(s) de variable(s),matrix

[(nomdelanouvellematrice)]svmat Transforme les colonnes

d’une matrice en variables.svmat matrice,[names(nom col1, nom col2, . . . )]

colsof nombre de colonnes d’unematrice.

colsof(A)

det Determinant d’une matrice. det(A)

diag Matrice diagonale n × n,avec pour diagonale leselements de V .

diag(V )

el Element aij d’une matrice. el(A,i,j)I Matrice identite n× n. I(n):inv Inverse d’une matrice

carree.inv(A)

rowsof Nombre de rangees d’unematrice.

rowsof(A)

vecdiag Extrait la diagonale d’unematrice carree sous forme devecteur.

vecdiag(A)

Fonctions Diversesgraph gr Trace un graphique. graph nomdesvariables,

[typedegraphique,autresoptions]

list Affiche a l’ecran les vari-ables specifiees.

list

[nom(s) de variable(s)]log Enregistre la session. log using nom de fichiermore Active ou desactive

l’affichage de --more--.more on/off

set matsize set mat Fixe la taille maximale desmatrices.

set matsize #

67

Page 69: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

Fonctions Diverses (suite)tsset Declaration de series tem-

porelles/Donnees pannel.tsset variable de temps

l Operateur retard. l#.variablef Operateur avance. f#.variable

Fonctions Econometriquesregress reg Effectue une regression

lineaire par MCO.regress vardep [vars inds]

predict Calcule les valeurs predites,les residus, etc.

predict nouvelle variable,options

test t Effectue des testsd’hypothese.

test [expression1 =

expression2]ivreg Effectue une regression par

DMCO.ivreg var dep vars inds(var dep = V I), options

hausman Effectue le test despecification d’Hausman.

hausman / hausman, save

vwls Effectue une regressionponderee par la variance(FGLS).

vwls vardep vars inds[poids], options

probit prob Estime un modele probit. probit var dep vars indslogit Estime un modele logit. logit var dep vars indstobit Estime un modele tobit. tobit var dep vars inds,

[ll(#)] [ul(#)]

dfuller Effectue le test de Dickey-Fuller augmente.

dfuller nom de variable,options

pperron Effectue le test de Phillips-Perron.

pperron nom de variable,options

corrgram Produit une table des au-tocorrelations et des auto-correlations partielles.

corrgram

nom de variable, option

xtreg Effectue une regression surdes donnees panel.

xtreg var dep vars inds,[fe] [re] [mle]

68

Page 70: Guide d’´econom´etrie appliqu´ee - Ciranomccauslw/ECN3949/GuideEconom...Guide d’´econom´etrie appliqu´ee Simon Leblond1 Universit´e de Montr´eal simon.leblond@umontreal.ca

A.3 Operateurs

Description Forme

Operateurs MathematiquesAddition +

Soustraction -

Multiplication *

Division /

Puissance ^

Operateurs LogiquesET &

OU |Non (¬) ~

Operateurs de Comparaison

Egal ==

Different ~=

Plus grand >

Plus petit <

Plus grand ou egal >=

Plus petit ou egal <=

69