• Aucun résultat trouvé

Guide d’économétrie appliquée

N/A
N/A
Protected

Academic year: 2022

Partager "Guide d’économétrie appliquée"

Copied!
70
0
0

Texte intégral

(1)

Guide d’´econom´etrie appliqu´ee

Simon Leblond

1

Universit´ e de Montr´ eal simon.leblond@umontreal.ca

9 septembre 2003

1Merci `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.

(2)

Table des Mati` eres

1 Commandes g´en´erales importantes 5

1.1 Importation des donn´ees . . . 5

1.2 Manipulation des donn´ees . . . 8

1.2.1 Op´erateurs math´ematiques . . . 9

1.2.2 Op´erateurs logiques et de comparaison . . . 9

1.2.3 Fonctions et Op´erateurs matriciels . . . 9

1.3 Autres transformations des variables . . . 13

1.4 Divers . . . 14

1.5 Exemples et r´esultats pour le Chapitre 1 . . . 16

2 Visualisation des donn´ees 18 2.1 Impression/Exportation des donn´ees . . . 18

2.1.1 Impression `a l’´ecran . . . 18

2.1.2 Exportation . . . 18

2.1.3 Impression . . . 19

2.2 Exemples et r´esultats pour le Chapitre 2 . . . 19

3 Graphiques 21 3.1 Exemples et r´esultats pour le Chapitre 3 . . . 24

4 R´egressions Simples 26 4.0.1 Estimateurs de Variance Robustes . . . 28

4.1 Tests d’h´et´erosc´edasticit´e . . . 30

4.2 Test de Changement structurel (Test de Chow) . . . 32

5 Variables instrumentales et Doubles Moindres Carr´es 34 5.1 Estimateur Variables Instrumentales . . . 34

5.2 DMCO . . . 36

(3)

5.3 Tests d’endog´en´eit´e . . . 37

6 Estimateur du Maximum de Vraissemblance (EMV) 38 7 Moindres Carr´es G´en´eralis´es 41 8 Variables d´ependantes qualitatives 43 8.1 Probit/Logit . . . 43

8.2 Tobit . . . 46

9 S´eries Chronologiques 48 9.1 Op´eration sur les variables dans le cadre de s´eries chronologiques 48 9.2 Op´erateurs de s´eries temporelles . . . 48

9.3 Tests d’autocorr´elation . . . 50

9.4 M´ethode de Box-Jenkins . . . 51

9.4.1 Stationnarit´e des donn´ees . . . 51

9.4.2 Mod´elisation des cycles: Mod`eles AR, MA, ARMA, ARIMA . . . 53

9.4.3 S´election de Mod`ele . . . 55

10 Donn´ees longitudinales (Panel) 56 10.1 Variables Binaires . . . 56

10.2 Effets Fixes et Effets Al´eatoires . . . 57

11 Interaction avec les traitements de texte et les tableurs 60 12 O`u trouver ses donn´ees et comment les extraires 61 A Tableaux R´ecapitulatifs 62 A.1 Fonctions de Matlab . . . 62

A.2 Fonctions de Stata . . . 65

A.3 Op´erateurs . . . 68

(4)

Introduction

Ce manuel ne vient pas se substituer `a vos notes de cours, mais plutˆot les compl´eter en vous donnant un guide pour l’utilisation des logiciels ´econom´e- triques. `A ce titre, bien que vous trouverez quelques fois des explications plus importantes sur la nature d’un probl`eme ´econom´etrique, la majorit´e du temps on supposera que vous poss´edez d´ej`a les connaissances li´ees `a la section consult´ee.

Chaque section pr´esente rapidement le but de l’op´eration qui y est trait´e.

Les commandes appropri´ees sont ensuite pr´esent´ees, 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 manuel couvre la version 7 de Stata, la version 8 sera int´egr´ee peu `a peu pendant l’ann´ee qui vient. Comme il s’agit d’un manuel encore en d´eveloppement, des changements lui seront constamment apport´es en cours de session et la ver- sion distribu´ee sera toujours la plus r´ecente. Tout commentaire, suggestion ou correction sera bienvenu et appr´eci´e.

Prenez note que ce texte d´ecrit seulement certaines fonctions ainsi que leurs options les plus souvent utilis´ees pour le genre de recherches effectu´ees au bac et `a la maˆıtrise en ´economie, il n’est donc pas du tout exhaustif. Un conseil: apprenez `a utiliser l’aide de Matlab et de Stata. Il s’agit l`a d’outils fort utiles pour d´ecouvrir de nouvelles fonctions ou pour connaˆıtre l’ensemble des options disponible pour les fonctions d´ecrites dans ce guide.

Les fonctions sont pr´esent´ees dans le format suivant:

Pour Matlab:

1. Le nom de la fonction;

2. Le format d’entr´ee;

(5)

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 paranth`eses, le nom abrg´eg´e de la fonction;

2. Sa description;

3. Le format d’entr´ee;

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

5. Un exemple court.

La majorit´e des chapitres se terminent par une section donnant un exemple plus long et plus concret d’applications des informations pr´esent´es dans le chapitre.

La nomenclature suivante est suivie dans ce guide:

• Le texte en machine `a ´ecrire d´esigne les fonctions dans leur forme g´en´erique.

• Le texte enitaliqued´esigne les variables et autres chaˆınes de caract`eres qui doivent ˆetre remplac´ees.

• Le texte ensans serifd´esigne le texte tel qu’il serait entr´e `a l’ordinateur.

Les chapitres 1 `a 3 font le tour des commandes de base dans Stata et Matlab, ainsi que leur format de saisie. A la suite de ces chapitres vous` devriez ˆetre en mesure d’importer, de manipuler, puis d’exporter vos donn´ees et de tracer des graphiques.

Les chapitres 4 `a 10 abordent quant `a eux chacun un sujet sp´ecifique de l’´econom´etrie. Ils prennent donc une approche quelque peu diff´erente puisqu’ils introduisent peu de nouvelles fonctions, se concentrant plutˆot sur la d´emarche `a adopter pour effectuer l’op´eration en question.

(6)

Finalement, les deux derniers chapitres (11 et 12) (`a venir) sortent quelque peu du cadre de ce guide en abordant respectivement la manipulation des donn´ees par Word et Excel et la recherche de donn´ees. Ces chapitres ont pour but de vous aider dans le cadre plus g´en´eral de la production d’un travail de recherche.

(7)

Chapitre 1

Commandes g´ en´ erales importantes

1.1 Importation des donn´ ees

Matlab load

load nom de f ichier1

load fonctionne seulement avec les donn´ees num´eriques, mais a l’avantage d’ˆetre la commande d’importation de donn´ees la plus simple de Matlab. load importe le fichier sp´ecifi´e dans une matrice du mˆeme nom. Les donn´ees doivent ˆetre s´epar´ees par des espaces ou des tabulations.

ex: importe les donn´ees du fichier ‘monfichier.dat’ dans la ma- trice ‘monfichier’

load monfichier.dat

Note: loaddevrait ˆetre suffisant pour les besoin du cours ECN 3949.

xlsread

[A, B] = xlsread(nom de f ichier)

1Puisque le dossier de travail est d´ej`a sp´ecifi´e dans Matlab, il est inutile de donner le chemin d’acc`es avec le nom des fichiers. Les extensions doivent par ailleurs ˆetre pr´esentes.

(8)

xlsreadlit la premi`ere feuille d’un tableur Microsoft Excel (‘.xls’) et renvoit toutes les donn´ees num´eriques dans la matrice A et toutes les donn´ees texte dans la matrice B de mˆeme taille. Les ´el´ement de texte sont remplac´es par

‘NaN’ dans la matrice A et les ´el´ements num´eriques sont laiss´es vides dans la matrice B.

Sixlsreadrencontre des donn´ees texte dans la premi`ere rang´ee et la premi`ere colonne, la matrice B ne contiendra que ces valeurs.

ex: importe les donn´ees du fichier ‘tableur.xls’ dans les matrices

‘num’

[num,txt]= xlsread(‘tableur.xls’) textread

[A, B, C . . .] = textread(‘nom de f ichier’, ‘f ormat’)

textreadpermet d’importer des donn´ees d’un fichier formatt´enom de f ichier vers les variables sp´ecifi´eesA, B, C, etc. f ormatest une chaˆıne de caract`eres et sp´ecifie le format des variables `a importer, il doit y avoir un format par variable. N’importe quel s´eparateur de donn´ees peut-ˆetre utilis´e par le fichier.

Les formats possibles sont:

• %u: donn´ees num´eriques, entier positif

• %f: donn´ees num´eriques non-enti´eres

• %s: texte

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

• ‘lettres’: ignore le texte ´ecrit; par exemple si on a ‘etage6’, “ ‘f ormat0

= ‘etage%u’ renverait ‘6’ ”

Il est sugg´er´e de se limiter `a%f et %q qui sont amplements suffisants dans le cadre du cours.

Options: headerlines: sp´ecifie un nombre de lignes `a sauter au d´ebut du fichier.

[A, B, C, . . .] = textread(‘f ichier’,‘f ormat0’,‘headerlines’, #) ex: fmt = ‘%f%f%f%q’

[y,var1,var2,var3] = textread(‘ECN3949TP1.txt’,fmt,headerlines,2)

(9)

dlmread

M = (‘nom de f ichier’, ‘s´eparateur de donn´ees’)

Moins flexible que textread, mais plus queload,dlmreadfonctionne seule- ment avec les donn´ees num´eriques, mais a l’avantage d’ˆetre plus simple.

dlmread importe le fichier sp´ecifi´e dans la matrice M.

‘s´eparateur de donn´ees’sp´ecifie le type de s´eparateur dans le fichier, il peut prendre les valeurs suivantes:

• ‘,’: virgule, valeur par d´efaut

• ‘;’: point-vigule

• ‘\t’: tabulation

• ‘ ’: espace

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

Stata insheet

Rapide et efficace, insheetpermet d’importer les donn´ees d’un fichier texte poss´edantune observation par ligneet dont les donn´ees sont s´epar´ees par des tabulations ou desvirgules.

si le nom des donn´ees sont sur la premi`ere ligne:

insheet using nomdef ichier2

si le fichier ne contient pas le nom des donn´ees:

insheet [nomdesvariables]3 using nomdef ichier

options4: clear, sp´ecifie que les donn´ees en m´emoires peuvent ˆetre rem- plac´ees par les nouvelles donn´ees import´ees.

2A moins de pr´` ecisions contraires,nomdef ichierindique le nom complet, donc avec le chemin d’acc`es et l’extension (a:\test.txtpar exemple).

3La nomenclature de l’aide de Stata est conserv´ee tout au long de ce guide, ainsi les arguments entre “[ ]” d´esignent des arguments facultatifs.

4Les options dans stata sont s´epar´es du reste de la commande par une virgule. Par exemple, dans le cas pr´esent: insheet using”c:\test.txt”, clear

(10)

infile (inf)5

Permet plus de flexibilit´e que insheet en permettant que les observations soient sur plusieurs lignes ou que les donn´ees soient s´epar´ees par des espaces.

une observation par ligne: infile nomdesvariables using nomdef ichier observations sur plusieurs lignes:

infile nom des variables [ skip(#) nom des variables] using ‘‘nom de f ichier’’;

o`u#d´esigne le nombre de ligne `a sauter pour continuer la lecture de l’observation.

options: clear, voir insheet

ex: observation sur la premi`ere, la deuxi`eme et la quatri`eme ligne. . .

infile var1 var2 skip var3 var4 skip(1) var5 var6 using “a:\test.raw”

1.2 Manipulation des donn´ ees

Matlab

Matlab ´etant un logiciel de manipulations de matrices, il n’y a pas de distinction faite entre une matrice et une variable comme c’est le cas avec Stata. Les variables sont automatiquement trait´e comme des vecteurs dans le cas de Matlab.

Toutes les manipulations de donn´ees sont donc trait´ees dans la section 1.2.3:

Fonctions et op´erateurs matriciels.

Stata

generate (g)

Probablement la commande la plus utile (et utilis´ee) dans Stata, elle permet de cr´eer des nouvelles variables.

generate nouvellevariable = expression

ex: g x2 = x^2

5Le nom entre paranth`eses qui suit le nom de la fonction d´esigne l’abr´eviation que l’on peut utiliser dans le code.

(11)

replace

Mˆeme id´ee que generate, mais pour une variable existante.

replace variable existante =expression

ex: replace x2 = x/2

1.2.1 Op´ erateurs math´ ematiques

Ce sont les mˆemes dans Matlab et Stata:

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

1.2.2 Op´ erateurs logiques et de comparaison

Ce sont les mˆemes dans Matlab et Stata:

ET: &

OU: | Non (¬) : ~ Egal´ : ==

Dif ferent´ :~= P lusgrand:>

P luspetit :<

P lusgrandou´egal:>=

P luspetitou´egal:<=

1.2.3 Fonctions et Op´ erateurs matriciels

Matlab

(12)

Cr´eation de matrices

Les matrices et les vecteurs sont cr´ees dans Matlab en inscrivant directement le nom de la matrice et les op´erations qu’on d´esire effectuer s´epar´ees par le signe ´egal (‘=’).

ex:

A = [1,2,3,4;5,6,7,8]; o`u les virgules s´eparent les colonnes et les points-virgules s´eparent les rang´ees. (matrice 2×4)

B = A*2 C = A^2

Fonctions matricielles

• Cr´eer une matrice identit´e 2×2: I = eye(2)

• Cr´eer une matrice 4x5 dont chaque ´el´ement ´egale `a z´ero: Z = zeros(4,5)

• Cr´eer un vecteur 1x6 dont chaque ´el´ement ´egale `a un: O = ones(1,6)

• Cr´eer une matrice 2x2 dont chaque ´el´ement est un al´ea U(0,1): U = rand(2), ´equivalent `a U = rand(2,2)

• Cr´eer une matrice 3x8 dont chaque ´el´ement est un al´ea N(0,1): N = randn(3,8)

Op´eration sur les matrices

• Extraction d’une sous-matrice:

– Extraire la deuxieme colonne de A: A(:,2) – Extraire la deuxieme rang´ee de A: A(2,:) – Extraire l’´el´ement A12: A(1,2)

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

• Empilage de matrices

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

(4×4)

(13)

– Empiler verticalement (mettre les colonnes une `a cˆot´e de l’autre):

[A;A] (2×8)

• Op´eration ´el´ement par ´el´ement: op´erateur math´ematique pr´ec´ed´e d’un point (‘.’)

– Multiplication de A par B ´el´ement par ´el´ement: A.*B

• Inverse: Inv(A)

• Transpos´ee: A0

• Matrice diagonale n×n, avec pour diagonale les ´el´ements de V, o`u V est un vecteur n×1 ou 1×n: diag(V)

• Extraire la diagonale d’une matrice carr´ee A sous forme de vecteur:

diag(A)

Autres trucs utiles

• Cr´eation d’une variable binaire: g = (condition logique);

ex: d = (y >=0)

• Cr´eation d’un vecteur dont les ´el´ements sont une suite: v = d´ebut:incr´ement:f in;

ex: x = 1.0;0.1;2.0 produit le vecteur [1.0,1.1,1.2, . . . ,2.0];

notez que l’argumentincrement´ est facultatif, ainsix = 1:10 produitle vecteur [1,2, . . . ,10].

Stata

Fonctions matricielles matrix (mat)

L’´equivalent de generate pour les matrices, permet de cr´eer des nouvelles matrices ou de modifier des matrices existantes.

matrix nom de la matrice = expression

(14)

ex:

Cr´eation d’une matrice: mat A = B*C

Modification d’une matrice existante: mat A = A*2

Construction d’une matrice: mat D = (1,0,0\0,1,0); o`u les vir- gules s´eparent les colonnes et les \ s´eparent les rang´ees (matrice 2×3).

Extraction d’une sous-matrice: mat A = B(1..4,2...); se lit rang´ees 1 `a 4, colonne 2 `a N.

Remplacement d’un ´el´ement: mat A(1,1) = 3; remplace l’´el´ement a11 par 3.

mkmat

Permet de transformer des variables existantes en vecteurs du mˆeme nom ou en 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.

svmatmatrice,[names(nom col1, nom col2, . . .)];namespeut aussi s’´ecrire n

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

Sert `a obtenir une copie d’une matrice syst`eme6 Quelques matrices syst`emes:

• b: coefficients apr`es une estimation

• VCE: matrice de variance-covariance apr`es une estimation matrix variable = get(matrice syst`eme)

6Les variables et les matrices syst`emes sont stock´es par Stata dans des noms pr´ed´efinis apr`es une op´eration donn´ee.

(15)

ex: matrix beta = get( b) det(A): d´eterminant de A

rowsof(A): nombre de rang´ees de A colsof(A): nombre de colonnes de A el(A,i,j): ´el´ement aij deA

I(n): matrice identit´en×n

inv(A): inverse de la matrice carr´eeA

diag(V): matrice diagonale n×n, avec pour diagonale les ´el´ements de V, o`u V est un vecteur n×1 ou 1×n

vecdiag(A): extrait la diagonale d’une matrice carr´ee A sous forme de vecteur

Op´erateurs matriciel

Soit AetB, deux matrices carr´ees d´efinies positivesn×n etC, une matrice d´efinie positive t×n:

Transpos´ee: A0 (n×n) Somme: A + B (n×n) Diff´erence: A - B (n×n) Produit vectoriel: B*C0 (n×n) Division par un scalaire: A/k (n×n)

Empiler les rang´ees 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 ´el´ement par ´el´ement log(z): logarithme naturel de z ´el´ement par ´el´ement sqrt(z): racine carr´ee de z ´el´ement par ´el´ement mean(z): moyenne des ´el´ements du vecteur z std(z): ´ecart-type des ´el´ements du vecteur z var(z): variance des ´el´ements du vecteur z

(16)

sum(z): somme des ´el´ements du vecteur z

cumsum(z): somme cumulative des ´el´ements du vecteurz(retourne un vecteur 1×n)

min(z): renvoie l’´el´ements du vecteur z ayant la valeur la moins ´elev´ee max(z): renvoie l’´el´ements du vecteur z ayant la valeur la plus ´elev´ee length(z): nombre de colonnes du vecteur z

size(z): renvoie un vecteur 1×2 contenant la taille de la matrice (rang´ees,colonnes) Stata

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

mod(x,y): partie enti`ere de x par rapport `ay, par exemple: mod(5,26) = 5 abs(x): valeur absolue de x

sqrt(x): racine carr´ee de x, ´equivalent `ax^1/2

max(x1, ..., xn): renvoie l’argument poss´edant la valeur la plus ´elev´ee min(x1, ..., xn): renvoie l’argument poss´edant la valeur la moins ´elev´ee sum(x): somme de tous les ´el´ements de x

uniform(): donne une valeur al´eatoire entre 0 et 1 (ditribution uniforme sur [0,1))

1.4 Divers

Matlab Commentaires

Il est possible d’ins´erer des commentaires dans son programme en prenant soin de d´ebuter la ligne de commentaire par le symbole ‘%’.

ex: % Ceci est un commentaire.

Suppression de la sortie

Pour que Matlab effectue une op´eration sans que l’on voit le r´esultat, il suffit de 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.

(17)

Commande sur plusieurs lignes

Il est possible d’´ecrire une commande sur plusieurs lignes. Les ‘. . . ’ indiquent

`

a 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

Commentaires

Il est possible d’ins´erer des commentaires dans son programme en prenant soin de d´ebuter la ligne de commentaire par le symbole ‘*’.

ex: * Ceci est un commentaire.

more

Avez-vous d´ej`a rencontr´e le message--more--qui fait une pause dans l’affichage de vos donn´ees? Si ¸ca vous ´enerve, vous pouvez enlever ce message en sp´ecifiant set more off au d´ebut de votre programme.

set matsize (set mat)

La taille maximale des matrices est fix´ee par d´efaut `a 40×40 dans Stata.

Pour utiliser des matrices plus grandes vous devez utiliser la fonction set matsize.

set matsize #; o`u # est un nombre entre 10 et 800 qui indique la taille maximale des matrices.

if

La majorit´e des fonctions peuvent ˆetre suivies de la commandeifqui permet de sp´ecifier une condition pour que l’expression soit execut´ee. if est plac´e apr`es la fonction, mais avant les options

Cette option ne sera pas mentionn´ee pour chaque fonction puisqu’elle est pr´esente tr`es souvent.

commande if expression

ex: replace x=y if x < y

(18)

in

La majorit´e des fonctions peuvent ˆetre suivies de la commandeinqui permet de sp´ecifier l’´etendue des donn´ees affect´ees par la fonction. inest plac´e apr`es la fonction, mais avant les options.

Cette option ne sera pas mentionn´ee pour chaque fonction puisqu’elle est pr´esente tr`es souvent.

commande in etendue; o`´ u ´etendue peut prendre la forme # ou #/#, et

# peut-ˆetre un nombre positif, l (derni`ere observation), f (premi`ere obser- vation) ou un nombre n´egatif (distance par rapport `a la derni`ere observation).

ex:

regress y x1 x2 in f /60; ´equivalent `a regress y x1 x2 in 1/60: les 60 premi`eres observations.

list y in -10/l: les 10 derni`eres observations.

1.5 Exemples et r´ esultats pour le Chapitre 1

Lecture des donn´ees `a partir du fichier Donnees.dat et manipulation des variables dans le but de faire une r´egression. Le fichierDonnees.datcontient 5 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);

% Cr´eation d’une variable indice.

no = [1:100]

Stata

(19)

set more off

infile 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)

* Cr´eation d’une variable indice.

g no = n

(20)

Chapitre 2

Visualisation des donn´ ees

2.1 Impression/Exportation des donn´ ees

2.1.1 Impression ` a l’´ ecran

Matlab

Matlab affiche par d´efaut toutes les op´erations effectu´ees `a l’´ecran. Pour

´

eliminer la sortie, se r´ef´erer `a la section 1.4.

Stata list

Affiche `a l’´ecran la valeur des variables sp´ecif´ees.

list [nom(s) de variable(s)]; si aucun nom de variable est sp´ecifi´e, Stata affiche toutes les variables.

2.1.2 Exportation

Matlab diary

Permet de sauvegarder une copie de sa session dans le fichier sp´ecifi´e. Doit ˆ

etre suivi de diary(‘off’) `a la fin du programme.

diary(‘nom de f ichier’) programme

(21)

diary(‘off’) wk1write

wk1write(‘nom de f ichier’,M)

Sauvegarde la matrice M dans un fichier de tableur nom de f ichier.wk1;

aucune extension ne doit donc ˆetre sp´ecifi´ee.

Stata log using

Permet de sauvegarder une copie de sa session dans le fichier sp´ecifi´e. Doit ˆ

etre suivi de log off `a la fin du programme.

log using nom de f ichier programme

log off

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

2.1.3 Impression

Matlab

La fa¸con la plus pratique d’imprimer ses r´esultats est d’utiliser la fonction diary, puis de traiter le fichier de sortie avec son traitement de texte pr´ef´er´e.

Stata

La fa¸con la plus pratique d’imprimer ses r´esultats est d’utiliser la fonction log, puis de traiter le fichier “.log” avec son traitement de texte pr´ef´er´e.

2.2 Exemples et r´ esultats pour le Chapitre 2

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

Matlab

diary(’ExChap2.out’);

(22)

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);

# Cr´eation d’une variable indice.

no = [1:100]

diary(’off’) Stata

log using ”c:\mes documents\ExChap2.log”, replace set more off

infile 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

* Cr´eation d’une variable indice.

g no = n log close

(23)

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, ...)

O`u ‘couleur style marqueur’ est une chaˆıne de caract`ere optionnelle con- tenant de un `a quatre caract`eres et qui d´efinit la couleur de la s´erie, le style de la ligne et le type de marqueur des points.

Les possibilit´es sont:

• Couleurs:

– ‘c’: cyan – ‘m’: magenta – ‘y’: jaune – ‘r’: rouge – ‘g’: vert – ‘b’: bleu – ‘w’: blanc – ‘k’: noir

• Styles:

(24)

– ‘-’: solide – ‘--’: tiret (???) – ‘:’: pointill´e – ‘-.’: tiret-point – ‘none’: pas de ligne

• Marqueurs:

– ‘+’, ‘o’, ‘*’, ‘x’: marqueur du mˆeme signe – ‘s’: carr´e (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 graphique de cette variable par rapport `a l’indice des observations.

ex:

plot(y): courbe de y par rapport `a l’indice des observations plot(x,y): courbe de y par rapport `a x, options standard (ligne pleine,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 par rapport `a x (sur le mˆeme graphique), premi`ere courbe bleue, pleine, marqueurs en losanges, deuxi`eme courbe rouge, pointill´ee (pas de marqueurs)

Il est possible une fois le graphique trac´e de modifier une foule de ses param`etres, voici quelques-unes de ces fonctions:

xlabel(‘titre’): sp´ecifie le titre de l’axe des x ylabel(‘titre’): sp´ecifie le titre de l’axe des y title(‘titre)’: sp´ecifie le titre du graphique.

(25)

axis: permet de d´efinir les propri´et´es des axes, voir l’aide de Matlab pour plus de d´etails.

grid: permet de d´efinir les propri´et´es des axes, voir l’aide de Matlab pour plus de d´etails.

hold

Permet de superposer plusieurs graphiques en sp´ecifiant hold on.

Pour ne plus superposer les graphiques suivant, il suffit de sp´ecifier hold off.

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

Pour sauvegarder un graphique, il suffit de s´electionner Save dans le menu File de la fenˆetre du graphique.

Stata graph (gr)

Trace des graphiques.

graph nom des variables, [type de graphique, autres options]

O`u type de graphiquepeut prendre les valeurs suivantes:

• histogram (h): histogramme

• twoway (t): nuage de points `a deux axes; valeur par d´efaut si plusieurs variables sont affich´es. La premi`ere variable sp´ecifi´ee est toujours la variable d´ependante.

• bar (b): graphique `a barres

• pie (p): graphique en pointe de tartes

Voici certaines des options suppl´ementaires les plus utiles:

• xlog, ylog: sp´ecifie que l’axe des x ou des y respectivement doit ˆetre en ´echelle logarithmique.

(26)

• xline, yline: sp´ecifie qu’une grille en x ou en y respectivement de- vrait ˆetre affich´ee.

• connect(option)(c(option)): sp´ecifie si les points devraient ˆetre con- nect´es/. optionpeut prendre les valeurs suivantes:

– .: non-connect´es; valeur par d´efaut – l: lignes droites entre les points

– s: traces des lignes courbes entre les points ( ´A V´ERIFIER)

• symbol(option) (s(options)): sp´ecifie le symbole que doivent prendre les points. option peut prendre les valeurs suivantes:

– O: grand cercles; valeur par d´efaut – o: petits cercles

– .: points – i: invisibles

• saving(nomdef ichier), [replace]: sauvegarde le graphique dans le fichier sp´ecifi´e, si aucune extension n’est sp´ecifi´ee, Stata ajoute par d´efaut “.gph”.

replace indique que le fichier existant peut ˆetre remplac´e.

3.1 Exemples et r´ esultats pour le Chapitre 3

Matlab

diary(’ExChap3.out’);

% cr´eation d’un indice de temps commen¸cant `a 4.

t = 4:103;

% cr´eation du log de cet indice.

lnt = log(t);

plot(t,lnt,‘k’) plot(t,lnt,‘k-’) plot(t,lnt,‘k-p’) hold on

plot(t,-lnt,‘b-+’)

(27)

xlabel(‘temps’)

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

Stata

log using ”e:\ExChap3.log”, replace set more off

* Fixer le nombre d’observations `a 100. set obs 100

* cr´eation d’un indice de temps commen¸cant `a 4. g t = n+3 * cr´eation du log de 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

(28)

Chapitre 4

R´ egressions Simples

Dans ce chapitre et les suivants, il est sugg´er´e de lire la section de Matlab mˆeme si on utilise Stata: contrairement `a ce derni`er o`u on a qu’`a utiliser une fonction pour effectuer l’op´eration d´esir´ee, Matlab n´ecessite l’´elaboration pas

`

a pas de l’op´eration qui est effectu´ee par la boˆıte noire qu’est Stata.

Dans ce chapitre nous consid´ererons le mod`ele suivant:

y=β01x12x2+· · ·+βkxk+uy=Xβ+U

Matlab

MCO

D´efinition des variables:

X = [ones(size(x1),x1,x2,. . . ,xk]

[T,K] = size[X]

TetKsont respectivement le nombre d’observations et le nombre de variables ind´ependantes.

Proc´edure pour calculer les moindres carr´es ordinaires (MCO):

Calcul des coefficient:

b = inv(X’*X)*X’*y

o`u X est une matrice T ×K,Y est un vecteur t×1 et b un vecteur k×1 Calcul des r´esidus:

e = y-X*b

(29)

Calcul de la variance des r´esidus:

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))

Cr´eation d’un vecteur de y-moyen:

ybar = [ones(size(y))*mean(y)]

Vecteur des y pr´edits:

yhat = X*b

Variation expliqu´ee:

SSE = sum((yhat-ybar).^2) Variation totale:

SST = sum((y-ybar).^2) Calcul du R2:

R2 = SSE/SST

Tests d’hypoth` eses et Intervalles de confiance

Test de H02 = 0:

b2 = b(3)

etype2 = etype(3) t2 = b2/etypeb2

On obtient ainsi la valeur de la statistique t.

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

Fonctions dans Matlab

La notion de fonction est introduite, car vous effectuerez des MCO tellement souvent qu’il vous est sugg´er´e d’en faire une fonction d`es maintenant.

Une fonction est un fichier matlab ind´ependant qui contient du code

`

a ˆetre ex´ecut´e lorsque son nom est invoqu´e.

(30)

La premi`ere ligne du fichier doit ˆetre sous la forme suivante:

function [varo1, varo2, . . .] = N om de f onction(vari1, vari2, . . .) o`u varo d´esigne une variable retourn´ee par la fonction et vari d´esigne une variable utilis´ee par la fonction.

Les lignes subs´equentes contiennent le code `a ˆetre ex´ecut´e.

La fonction peut ensuite ˆetre appel´ee par la commande suivante:

[vars1, vars2, . . .] = N om de f onction(vare1, vare2, . . .)

o`u vars sont les nom qu’on d´esire utiliser pour les variables varo etvare le nom de variables que l’on donne `a la fonction.

ex: MCO.m

function [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 appel´ee par la commande suivante:

[beta,u,etype,R2] = MCO(Z,y)

o`ubeta, u, etypeetR2 sont les noms de variables qui seront utilis´ees dans le code et Z ety sont les variables contenant les donn´ees `a ˆ

etre trait´ees. Zprend g´en´eralement la formeZ = [ones(size(x1)),x1,x2,...].

4.0.1 Estimateurs de Variance Robustes

Il peut ˆetre utile de pouvoir calculer une matrice de variance-covariance qui soit robuste `a la pr´esence d’h´et´erosc´edascticit´e. L’estimateur robuste de cette matrice le plus utilis´e est celui deWhitequi est donn´e par la formule suiv-

(31)

ante:

V ar[b] =ˆ 1 T

X0X T

−1 1 T

T

X

i=1

e2ixix0i

! X0X

T −1

En matlab, toujours en utilisant les r´esultats de la fonction MCO.m, on de- vrait ´ecrire:

e2 = e.^2

varWhite = T*inv(X’*X)*sum((e2.*X)*X’)/T*inv(X’*X) Stata

regress (reg)

Incontournable si on d´esire faire des r´egressions par MCO. Effectue la r´egression de la variable d´ependante sur la ou les variables ind´ependantes sp´ecifi´ees.

regress variable d´ependante [variables ind´ependantes]

Options:

• level(#) (l(#)): permet de sp´ecifier le niveau de confiance pour les intervalles et le p-value (# doit ˆetre un entier); si level() n’est pas sp´ecifi´e, # prend la valeur 95, i.e. le niveau de confiance est fix´e `a 95%.

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

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

Permet de calculer les valeurs pr´edites, les r´esidus, etc. pour toutes les ob- servations.

predict nom de nouvelle variable; sans aucune option calcule les valeurs pr´edites (ˆy).

Options:

• xb: calcule X0β, la valeur lin´eaire pr´edite

• residuals (r): calcule les r´esidus

• stdp: calcule les ´ecarts-types des valeurs pr´edites

(32)

ex: calcule les ˆy hors-´echantillon reg y x1 x2 x3 in 1/100

predict y hat if ˜ e(sample)

test (t)

testpermet d’effectuer des tests d’hypoth`eses apr`es une estimation. Il prend principalement deux formes:

test [expression1 = expression2]: test que l’expression1 n’est pas statis- tiquement diff´erente de l’expression2

test liste de coef f icients: test que les coefficients ne sont pas conjointe- ments statistiquement diff´erents de z´ero.

ex:

reg y x1 x2 x3 test x1 = x2 test x2 x3

4.1 Tests d’h´ et´ erosc´ edasticit´ e

La pr´esence d’h´et´erosc´edasticit´e ne vient pas biaiser vos r´esultats, elle biaise plutˆot les ´ecarts-types obtenus par MCO. Il existe plusieurs m´ethodes sim- ilaires de tester pour la pr´esence d’h´et´erosc´edasticit´e. La plus simple est le test de Breusch-Pagen:

1. r´ecup´erer les r´esidus de la r´egression qu’on d´esire tester;

2. g´en´erer le carr´e des r´esidus;

3. r´egresser la carr´e des r´esidus sur les variables d´ependantes de la r´egression originale;

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

(33)

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)*R2u

Notez bien que le R2 utilis´e est celui de la r´egression auxiliaire effectu´ee en 3.

Stata reg y x1 x2 predict u, r g u2 = uˆ2 reg u2 x1 x2

Il suffit alors de regarder la statistique F donn´ee par Stata.

La faiblesse du test de Breusch-Pagan est qu’il suppose les erreurs nor- malement distribu´ees. Afin de laisser tomber cette hypoth`ese, il suffit d’ajouter le carr´e des variables d´ependantes et leurs produits crois´es dans la r´egression de l’´etape 3, il s’agˆıt l`a du test de White. Afin de limiter le nombre de r´egresseurs, on peut utiliser un test de White l´eg`erement modifi´e:

u201yˆ+β22+e

On proc`ede pour le reste exactement de la mˆeme fa¸con que pour le test de Breusch-Pagan.

Que faire lorsque vous trouvez la pr´esence d’h´et´erosc´edasticit´e? Deux op- tions s’offrent `a vous:

• Calculer des variances robustes par la m´ethode de White3

1Rappel: la forme g´en´erale du test F pour la signification conjointe de tous les coeffi- cients est: F = (1−R2R)/(n−k−1)2/k

2Rappel: la statistique LM suit uneχ2k

3Il peut-ˆetre bien tentant de proc´eder syst´ematiquement avec les variances robustes

(34)

• Estimer le mod`ele par MCG, i.e. mod´eliser la forme d’h´et´erosc´edasticit´e (voir le chapitre 7).

4.2 Test de Changement structurel (Test de Chow)

Consid´erez le mod`ele suivant:

y=β01x12x2+u

Le test de Chow sert `a v´erifier s’il existe une diff´erence dans l’influence d’une variable d´ependante entre deux groupes de donn´ees, i.e. si le coefficient est statistiquement diff´erent. Les deux groupes de donn´ees pourraient ˆetre deux s´eries d’observations ou deux p´eriodes de temps par exemple.

La fa¸con “classique” d’effectuer le test de Chow est d’effectuer la r´egression du mod`ele pour les deux groupes de fa¸con ind´ependante et pour les deux groupes ensemble:

= β1011x1112x12 ˆ

y22021x2122x22

ˆ

y = β01x12x2 puis de tester si les coefficient sont statistiquement diff´erents par un test F:

F = (SSRˆ y −SSRˆ y1 −SSRˆ y2)/q (SSRˆ y1 −SSRˆ y2)/n1+n2−2k)

Rappel: q est le nombre de contraintes et k le nombre de coefficients, ici q =k = 3

Une autre fa¸con plus rapide d’effectuer ce test est de construire une variable binaire ´egale `a un pour les observations du deuxi`eme groupe et de faire une seule r´egression sur les variables originales et sur les termes d’interaction avec la variable binaire4:

Eicker-White pour ´eviter de faire le test d’h´et´erosc´edasticit´e, mais cette fa¸con de faire eduit la pr´ecision de vos r´esultats (i.e. gonfle les ´ecarts-types et r´eduit la puissance des tests) lorsque les donn´ees sont homosc´edastiques.

4Cette section et l’exemple qui la suit sont inspir´es de la rubrique de l’aide de Stata:

How can I compute the Chow test statistic? par Bill Gould.

(35)

Soit δ la variable binaire:

ˆ

y=β01x12x2β3δ+β4x1δ+β5x2δ

On d´esire maintenant tester si β0 = (β03), si β1 = (β14) et si β2 = (β25). Ce qui revient `a tester si β34 etβ5 sont conjointement diff´erent de 0. Ceci peut ˆetre facilement effectu´e par un test de F.

ex:

Matlab

g2 = (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

Stata

g g2 = (groupe == 2) g g2x1 = g2*x1

g g2x2 = g2*x2

reg y x1 x2 g2 g2x1 g2x2 test g2 g2x1 g2x2

5Rappel: la forme g´en´eraleR2 du testF est: F =(1−R(R22ur)/(n−k−1)r−R2r)/k

(36)

Chapitre 5

Variables instrumentales et Doubles Moindres Carr´ es

Lorsqu’une variable “ind´ependante” est corr´el´ee avec le terme d’erreur, les hy- poth`eses classiques du mod`ele lin´eaire sont viol´ees et on se retrouve face `a un probl`eme d’endog´en´eit´e. Dans ces cas, on peut faire appel `a l’estimateur de variables instrumentales (VI) ou auxdoubles moindres carr´es or- dinaires (DMCO).

5.1 Estimateur Variables Instrumentales

Soit X, une matrice de VI et Z, la matrice originale. L’estimateur VI est donn´e par:

βˆ(V I) = (X0Z)−1X0y et l’estimateur VI de la covariance par:

ˆ

σ2(X0Z)−1(X0X)(Z0X)−1 o`u

ˆ σ2 = 1

T(y−Zβˆ(IV))0(y−Zβˆ(IV)).

ou, lorsque K > J (K ´etant le nombre de VI et J le nombre de variables ind´ependantes), par:

βˆ(IV) = [Z0X(X0X)−1X0Z]−1Z0X(X0X)−1X0y.

(37)

ˆ

σ2[Z0X(X0X)−1X0Z]−1. Matlab

Cr´eons la fonctionVI 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 r´egression par DMCO.

ivreg variable dependante variables independantes (variable dependante= variable(s) intrumentale(s)), options

o`u options peut prendre les mˆemes valeurs que pour regress, ainsi que first qui affiche les r´esultats de la premi`ere r´egression.

ex:

ivreg y1 z1 z2 (y2=x1), r first predict peut ˆetre utilis´e apr`es ivreg

(38)

5.2 DMCO

Le principe des doubles moindres carr´es ordinaires est d’utiliser une estima- tion de la variable endog`ene qui ne soit pas corr´el´ee avec le terme d’erreur pour effectuer la r´egression.

Soit le mod`ele suivant:

y101x12x23y2+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 endog`ene:

R´egression de y2 sur toutes les variables ind´ependantes (x1 etx2 ici) et la/les VI pour y2 (z ici).

On r´ecup`ere ˆy2, l’estimation lin´eaire de y2. 2. R´egression du mod`ele avec ˆy2:

R´egression de y1 sur une constante, x1, x2 et ˆy2.

Cette derni`ere r´egression ne souffrant plus d’endog´en´eit´e, les ˆβ ainsi obtenus sont non-biais´es.

Matlab

Z = [ones(size(y1)),x1,x2,z]

[bz,uz,etypez,R2z] = MCO(Z,y2) y2hat = Z*bz

X = [ones(size(y1)),x1,x2,y2hat]

[b,u,etype,R2] = MCO(X,y1) Stata

Voir la fonction ivreg `a la section pr´ec´edente.

(39)

5.3 Tests d’endog´ en´ eit´ e

Letest de Hausmanpermet de v´erifier s’il existe bel et bien une diff´erence entre l’estimateur VI et l’estimateur MCO, v´erifiant ainsi s’il y a bel et bien endog´en´eit´e des variables (si les deux estimateurs sont consistants, ils seront asymptotiquement ´egaux). Sous H0, la statistique de Hausman est:

H= [ ˆβ(V I)−b]0[ˆσ2[(Z0X(X0X)−1X0Z]−1 −σˆ2(Z0Z)−1]−1[ ˆβ(V I)−b]∼χ2(J)

Matlab

En utilisant la fonction d´evelopp´ee `a la section pr´ec´edente:

[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 sp´ecification d’Hausman.

Estimation du mod`ele moins efficient, mais convergent (VI ici) hausman, save

Estimation du mod`ele efficient, mais peut-ˆetre pas convergent (MCO ici) hausman

Options: constant (c), indique que la constante doit ˆetre inclue dans la comparaison des deux mod`eles.

ex:

ivreg y1 z1 z2 (y2=x1) hausman, save

reg y1 z1 z2 y2 hausman, c

(40)

Chapitre 6

Estimateur du Maximum de Vraissemblance (EMV)

La fonction de vraisemblance est la probabilit´e jointe des observations

´

etant donn´e les param`etres d’int´erˆets, i.e.:

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

n

Y

i=1

f(yi|θ)

L’estimateur du maximum de vraisemblance (EMV) a pour but de choisir le vecteur de param`etresθ qui maximise la fonction de vraisemblance, i.e. pour lequel les donn´ees observ´ees sont les plus probables. Pour simplifier les choses, la fonction de log-vraisemblance,L(θ|y), est g´en´eralement utilis´ee1. Prenons l’exemple d’un ´echantillon normalement distribu´e, de moyenne 0 et de variance σ2:

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

T

Y

t=1

(2πσ2)−1/2exp[(yt−x0tβ)2]

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

−(y−Xβ)0(y−Xβ) 2σ2

.

La log-vraisemblance est L(β, σ2) =−T

2 log(2π)− T

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

2 .

1Le logarithme ´etant une fonction montone, la valeur qui maximiseL(θ|y) est la mˆeme que celle qui maximise L(θ|y).

(41)

Les CPO sont:

δlnL

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

δlnL

δσ2 =− T

2 + (y−Xβ)0(y−Xβ) 2σ4

Ce qui nous permet de trouver

βˆ= (X0X)X0y σˆ2 = (y−Xβ)0(y−Xβ)

T = eˆ0ˆe T

Matlab

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

fminsearch

[x, f val] = fminsearch(f onction, options, variables)

o`u x est la variable qui contiendra la/les valeur(s) qui minimise(nt)la fonc- tion, f val est une variable facultative o`u seront stock´ees les valeurs de la fonction pour chacune des valeur minimale, f onction est le nom de la fonc- tion `a minimiser (r´ef`ere `a un fichier ‘.m’) etvariablesest une liste de variables utilis´ees par la fonction, mais qui ne doivent pas ˆetre minimis´ees. Les options possibles sont:

• Display: ajuste l’affichage de la progression de la minimisation; se r´ef´erer `a l’aide de Matlab pour plus d’info.

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

• MaxIter: nombre maximal d’it´erations permises

Si aucune option n’est d´esir´ee, il faut utilis´ee l’ensemble vide[]pouroptions.

ex: voir section 8.1

(42)

Stata ml

Permet de faire une estimation par maximum de vraisemblance pour une

´

equation donn´ee. Cette fonction ´etant fort complexe et tr`es peu utilis´ee dans le cadre des probl`emes abord´es dans ce guide, il est laiss´e `a la discr´etion du lecteur le soin de consulter l’aide de Stata `a son sujet. Il existe normalement des fonctions pr´e-d´efinies pour les estimateur abord´ees ici qui doivent ˆetre trait´es par maximum de vraisemblance (probit et logit par exemple).

(43)

Chapitre 7

Moindres Carr´ es G´ en´ eralis´ es

La m´ethode des moindres carr´es g´en´eralis´es(MCG) cherche `a mod´eliser la fonction de la variance. Nous obtenons alors l’estimateur MCG

βˆM CG = (X0V−1X)−1X0V−1y ou encore

βˆM CG = (X0W−1X)−1W0V−1y et sa variance est

var[ ˆβ] =σ2(X0V−1X)−1. o`u V etW sont ´egaux `a

W =σ2

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

0 0 · · · xn

≡σ2V

Matlab

Le principe de base ici est de construire la matrice V avec la forme appropri´ee de variance pour pouvoir ensuite calculer les ˆβM CG.

Voyons comment on estimerait le mod`ele y = β01x12x2 +ε o`u l’on suppose que la variance suivre une fonction de type σ2(x) =σ2x2i:

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

V = diag(x2);

(44)

[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 r´egression lin´eaire pond´er´ee 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 d´ependante.

ex:

vwls y x1 x2, sd(sigma2ch)

o`u sigma2ch est une estimation de l’´ecart-type de y.

predict peut ˆetre utilis´e apr`es vwls

(45)

Chapitre 8

Variables d´ ependantes qualitatives

8.1 Probit/Logit

Un probit et un logit s’appuient en fait sur le mˆeme principe, ils ne diff`erent que dans la forme de la fonction de r´epartition qu’ils utilisent pour calculer l’effet sur la probabilit´e d’une variation de la variable latente. En effet, lorsque la variable d´ependante ne prend que des valeurs qualitatives (oui ou non par exemple), l’effet d’une variable ind´ependante sur la probabilit´e de dire oui doit ˆetre “traduit” par une fonction de r´epartition. Cette derni`ere nous donne la probabilit´e associ´ee `a une valeur donn´ee de la valeur latente exprim´ee par la combinaison lin´eaire des variables ind´ependantes.

Matlab

Pour le probit, on doit utiliser la fonction de r´epartition de la loi normale:

F(x) = Φ(x) = 1

√2π Z x

−∞

e−z

2 2 dz

normcdf normcdf(X)

Donne la valeur de la fonction de r´epartition de la loi normale pour la valeur de X sp´ecifi´ee.

(46)

Pour le logit, on utilie plutˆot la fonction de r´epartition de la loi logistique:

F(x) = 1 1 +e−x

Comme il n’existe pas de fonction pr´ed´efinie dans Matlab pour la fonction de r´epartition de la loi logistique, on doit en construire une:

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

La proc´edure ´etant la mˆeme pour un probit et un logit, elle ne sera d´emontr´ee qu’une seule fois pour le cas de la loi logistique (logit).

Voyons d’abord comment construire une fonction de log-vraisemblance pour une 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 pour trouver 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- bilit´e. Ceci peut ˆetre fait en fixant toutes les autres variables `a une valeur (g´en´eralement leur moyenne ´echantillonalle), puis en estimant le mod`ele suc- cessivement pour deux valeurs de la variable. La diff´erence de la probabilit´e de ces deux estimations lin´eaires de la variable d´ependante (ˆy) donne la vari- ation de probabilit´e.

(47)

ex: le mod`ele estim´e est ˆy = β01x12x23bin1 +µ o`u bin1 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 la d´eriv´ee de l’esp´erance de y sachant X:

∂E[y|X]

∂X =

dF(X0β) d(X0β)

β=f(X0β)β Par exemple, dans le cas d’un probit:

Pr(y= 1) = Φ(X0β)

∂Pr(y= 1)

∂X = φ(X0β)β

Stata

probit (prob)

Estime un mod`ele probit.

probit variable d´ependante variable ind´ependante

Options: probit poss`ede en grande partie les mˆemes options que regress.

Note: Ici predict donne par d´efaut la probabilit´e. Pour avoir l’estimation lin´eaire, il faut pr´eciser xt dans les options de predict.

logit

Permet d’estimer un mod`ele logit.

logit variable d´ependante variable ind´ependante

Options: logit poss`ede en grande partie les mˆemes options que regress.

(48)

8.2 Tobit

Un tobit est essentiellement un mod`ele dont les donn´ees sont tronqu´ees.

Comme le probit, le tobit suit une loi normale.

Matlab

Soit un mod`ele tronqu´e `a gauche `a z´ero (y ´etant une variable latente dey):

y = X0β+µ y = max(0, y)

Encore ici, on proc´edera par maximum de vraisemblance, mais on devra cette fois consid´erer qu’il existe deux fonctions: une pour y= 0 et une pour y > 0. La log vraisemblance pour le tobit sera donn´ee par la somme de la log 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’esp´erance de y´etant donn´e 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

(49)

causer aucun probl`eme...

Stata tobit

Permet d’estimer un mod`ele tobit.

logit variable d´ependante variable ind´ependante

Options: ll(#), ul(#): indiquent respectivement que les donn´ees sont tronqu´ees `a gauche ou `a droite. Une ou les deux de ces options doivent ˆetre sp´ecifi´ees. # indique le point de troncation. Si # n’est pas pr´ecis´e, Stata suppose qu’il s’agit respectivement de la valeur minimum et de la valeur maximum.

Les autres options de tobit sont en grande partie commune avecregress.

ex:

tobit y x1 x2 x3 x4, ll(0)

(50)

Chapitre 9

S´ eries Chronologiques

9.1 Op´ eration sur les variables dans le cadre de s´ eries chronologiques

Matlab

Il n’y a pas d’op´eration particuli`ere `a effectuer avec Matlab lorsqu’on tra- vaille avec des s´eries chronologiques.

Stata tsset

Lorsqu’on travaille avec des s´eries chronologiques dans Stata, il est n´ecessaire de l’en informer par la commande tsset.

tsset variable de temps ex:

generate t = n tsset = t

9.2 Op´ erateurs de s´ eries temporelles

Voici comment reproduire l’´equivalent des op´erateursAvanceetRetarddans Matlab et Stata pour travailler sur les s´eries chronologiques.

(51)

Matlab

Il n’existe pas d’op´erateur de s´eries temporelles en soit dans Matlab, il faut donc utiliser les op´erateurs matriciels vus au chapitre 1.

ex:

• Op´erateur 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’observations consid´er´ees.

• Op´erateur Avance:

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

Stata l

L’op´erateurl est l’op´erateurRetardde stata. Il peut ˆetre utilis´e avec toutes les fonctions qui acceptent les s´eries temporelles une fois que la d´eclaration de s´eries temporelles `a ´et´e faite.

l#.variable

o`u variable est la variable sur laquelle l’op´erateur doit agir et # est le nombre de retards `a appliquer. Si # est omis, un seul retard est appliqu´e (´equivalent

`

a l1.variable).

tsset t

regress y x l.x l2.x

(52)

f

L’op´erateurfest l’op´erateurAvancede stata. Il peut ˆetre utilis´e avec toutes les fonctions qui acceptent les s´eries temporelles une fois que la d´eclaration de s´eries temporelles `a ´et´e faite.

f#.variable

o`u variable est la variable sur laquelle l’op´erateur doit agir et # est le nom- bre d’avance `a appliquer. Si # est omis, une seule avance est appliqu´ee (´equivalent `af1.variable).

tsset t

regress y x f.x f2.x

9.3 Tests d’autocorr´ elation

Inutile de mentionner que l’autocorr´elation est un probl`eme qui n’est perti- nent que dans le cas des s´eries temporelles. . .

Le testρest le test le plus simple `a effectuer pour tester la pr´esence d’autocorr´elation:

1. r´ecup´erer les r´esidus de la r´egression qu’on d´esire tester;

2. r´egresser ˆut sur ˆut−1 `a ˆut−n etX

3. Tester la signification conjointe des coefficients de cette r´egression par un test F.

Choisissons n ´egal `a 3.

Matlab T = 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

(53)

Stata reg y x1 x2 predict u, r reg u l.u l2.u l3.u

Il suffit alors de regarder la statistique F donn´ee par Stata.

Le test de Durbin-Watson est aussi utilis´e pour tester la pr´esence d’autocorr´elation, mais comme il est moins pr´ecis et ne consid`ere qu’une seule p´eriode, nous ne le couvrirons pas ici.

9.4 M´ ethode de Box-Jenkins

Ce qu’il est important de comprendre, `a mon avis, dans la m´ethode de Box- Jenkins, c’est que l’objectif de toutes les op´erations que nous effectuons est de se retrouver avec un r´esidu qui est un bruit-blanc. Le but ultime ´etant de mod´eliser la s´erie afin de faire des pr´edictions, nous pouvons seulement ˆ

etre certain d’avoir tout extrait lorsqu’il nous reste seulement un bruit-blanc:

un processus qui est par d´efinission impossible `a pr´edire.

9.4.1 Stationnarit´ e des donn´ ees

La premi`ere ´etape de la m´ethode de Box-Jenkins consiste `a effectuer les transformations n´ecessaires afin de s’assurer que notre s´erie est stationnaire, si elle ne l’est pas, il nous sera impossible de travailler dessus.

Premi`ere question `a se poser: doit-on travailler en log ou pas? Si la vari- able croˆıt `a un taux constant, elle sera lin´eaire en log. De plus, les pro- pri´et´es du logarithme font en sorte qu’il “´ecrase” une variance croissante.

Outre la transformation logarithmique, il existe trois cas possibles de non- stationnarit´e qui impliqueront des changements dans la s´erie (ou sa mod´elisation):

• Changement structurel

• Tendance d´eterministe

• Racine unitaire

(54)

Changement structurel

Les changement structurels peuvent ˆetre d´etect´es `a l’aide du Test de Chow (voir section 4.2). Malheureusement, rien ne peut g´en´eralement ˆetre fait pour stationnariser une s´erie dans le cas d’un changement structurel.

Tendance d´eterministe

Afin de r´egler le probl`eme de la pr´esence d’une tendance temporelle, il suffit de la mod´eliser la tendance. Il faut faire attention de bien choisir la tendance la mieux adapt´ee `a nos donn´ees: lin´eaire, quadratique, logarithmique, etc.

ex: tendance quadratique Matlab

T = length(y);

t = 1:T;

t2 = t^2;

X = [ones(size(y)),t,t2]

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

t = n t2 = t^2 tsset t

regress y t t2

Racines Unitaires

On fait face `a un probl`eme de racine unitaire lorsque ρ = 1 dans le mod`ele suivant:

yt=α+ρyt−1+et

Afin de r´egler le probl`eme de racine unitaire, il faut diff´erencier la s´erie, i.e.

travailler sur ∆yt=yt−yt−1 plutˆot que yt. Le mod`ele devient donc:

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

(55)

T = length(y);

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

Stata

La diff´erenciation d’une s´erie est effectu´ee automatiquement dans Stata lors de l’utilisation de la fonction arima.

Tester pour la pr´esence d’une racine unitaire se fait par un test t o`u H0 est θ = 0. Malheureusement, sous l’hypoth`ese nulle, la statistique t ne suit pas la loi asymptotique habituelle. Il faut plutˆot utiliser la loi de Dickey- Fuller. S’il y a corr´elation des termes d’erreur, il faut plutˆot utiliser une loi de Dickey-Fuller augment´ee.

Stata dfuller

Effectue un test de Dickey-Fuller augment´e sur la variable sp´ecifi´ee.

dfuller nom de variable, options Options:

• lags(#): sp´ecifie le nombre de retards `a utiliser pour le calcul de la variance estim´ee Newey-West.

• trend: incluera une variable de tendance dans la r´egression.

pperron

Poss`ede exactement la mˆeme structure et les mˆemes options que dfuller, mais effectue un test de Phillips-Perron plutˆot qu’un test de Dickey-Fuller augment´e.

9.4.2 Mod´ elisation des cycles: Mod` eles AR, MA, ARMA, ARIMA

Stata

Références

Documents relatifs

Soient X et Y deux variables al´ eatoires r´ eelles d´ efinies sur un mˆ eme espace de probabilit´ e (Ω, A, P) et telles que (X, Y ) est un vecteur gaussien.. D’apr` es un

La fonction residuals fournit diff´ erents types de r´ esidus ` a partir d’un mod` ele ajust´ e avec la fonction glm du package stats. On peut effectuer la normal- isation en r´

mais il faut prendre garde au fait qu’un mauvais choix des n j peut augmenter la variance.. Cependant, notons que le choix n j = np j diminue toujours la variance mˆ eme s’il n’est

Dans l’´enonc´e qui suit, on a choisi pour fixer les id´ees de s’int´eresser au cas de trois paquets de variables. Il va de soi que le r´esultat reste vrai pour quatre, cinq,.

On consid` ere ε une variable al´ eatoire mod´ elisant un bruit d’observation, suppos´ ee ind´ ependante de X et d’esp´

Soit U une variable al´eatoire positive de fonction de r´epartition F, ind´ependante de F ∞.. Justifier que Q est une mesure

• Celle pr´ esent´ ee dans les exemples du cours partent du mod` ele satur´ e et cherche ` a le simplifier en tentant de retirer certains termes du mod` ele en respectant la

A partir d’une variable de loi uniforme on construit une suite de Ber- ` noulli 1 2 ind´ ependantes, on en d´ eduite une suite de variables ind´ ependantes pour n’importe quelle