Vous êtes sur la page 1sur 70

Guide d’économétrie appliquée

Simon Leblond1
Université de Montréal
simon.leblond@umontreal.ca

9 septembre 2003

1 Merci à William McCausland, François Vaillancourt et Benoit Perron pour


leurs commentaires utiles dans l’élaboration de ce document. Je demeure seule
responsable de toutes les erreurs.
Table des Matières

1 Commandes générales importantes 5


1.1 Importation des données . . . . . . . . . . . . . . . . . . . . . 5
1.2 Manipulation des données . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Opérateurs mathématiques . . . . . . . . . . . . . . . . 9
1.2.2 Opérateurs logiques et de comparaison . . . . . . . . . 9
1.2.3 Fonctions et Opérateurs matriciels . . . . . . . . . . . 9
1.3 Autres transformations des variables . . . . . . . . . . . . . . 13
1.4 Divers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 Exemples et résultats pour le Chapitre 1 . . . . . . . . . . . . 16

2 Visualisation des données 18


2.1 Impression/Exportation des données . . . . . . . . . . . . . . 18
2.1.1 Impression à l’écran . . . . . . . . . . . . . . . . . . . . 18
2.1.2 Exportation . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.3 Impression . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Exemples et résultats pour le Chapitre 2 . . . . . . . . . . . . 19

3 Graphiques 21
3.1 Exemples et résultats pour le Chapitre 3 . . . . . . . . . . . . 24

4 Régressions Simples 26
4.0.1 Estimateurs de Variance Robustes . . . . . . . . . . . . 28
4.1 Tests d’hétéroscédasticité . . . . . . . . . . . . . . . . . . . . . 30
4.2 Test de Changement structurel (Test de Chow) . . . . . . . . 32

5 Variables instrumentales et Doubles Moindres Carrés 34


5.1 Estimateur Variables Instrumentales . . . . . . . . . . . . . . 34
5.2 DMCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1
5.3 Tests d’endogénéité . . . . . . . . . . . . . . . . . . . . . . . . 37

6 Estimateur du Maximum de Vraissemblance (EMV) 38

7 Moindres Carrés Généralisés 41

8 Variables dépendantes qualitatives 43


8.1 Probit/Logit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8.2 Tobit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

9 Séries Chronologiques 48
9.1 Opération sur les variables dans le cadre de séries chronologiques 48
9.2 Opérateurs de séries temporelles . . . . . . . . . . . . . . . . . 48
9.3 Tests d’autocorrélation . . . . . . . . . . . . . . . . . . . . . . 50
9.4 Méthode de Box-Jenkins . . . . . . . . . . . . . . . . . . . . . 51
9.4.1 Stationnarité des données . . . . . . . . . . . . . . . . 51
9.4.2 Modélisation des cycles: Modèles AR, MA, ARMA,
ARIMA . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9.4.3 Sélection de Modèle . . . . . . . . . . . . . . . . . . . . 55

10 Données longitudinales (Panel) 56


10.1 Variables Binaires . . . . . . . . . . . . . . . . . . . . . . . . . 56
10.2 Effets Fixes et Effets Aléatoires . . . . . . . . . . . . . . . . . 57

11 Interaction avec les traitements de texte et les tableurs 60

12 Où trouver ses données et comment les extraires 61

A Tableaux Récapitulatifs 62
A.1 Fonctions de Matlab . . . . . . . . . . . . . . . . . . . . . . . 62
A.2 Fonctions de Stata . . . . . . . . . . . . . . . . . . . . . . . . 65
A.3 Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

2
Introduction

Ce manuel ne vient pas se substituer à vos notes de cours, mais plutôt les
compléter en vous donnant un guide pour l’utilisation des logiciels économé-
triques. À ce titre, bien que vous trouverez quelques fois des explications
plus importantes sur la nature d’un problème économétrique, la majorité du
temps on supposera que vous possédez déjà les connaissances liées à la section
consultée.
Chaque section présente rapidement le but de l’opération qui y est traité.
Les commandes appropriées sont ensuite présentées, 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égrée peu à peu pendant
l’année qui vient. Comme il s’agit d’un manuel encore en développement, des
changements lui seront constamment apportés en cours de session et la ver-
sion distribuée sera toujours la plus récente. Tout commentaire, suggestion
ou correction sera bienvenu et apprécié.
Prenez note que ce texte décrit seulement certaines fonctions ainsi que
leurs options les plus souvent utilisées pour le genre de recherches effectuées
au bac et à la maı̂trise en économie, il n’est donc pas du tout exhaustif. Un
conseil: apprenez à utiliser l’aide de Matlab et de Stata. Il s’agit là d’outils
fort utiles pour découvrir de nouvelles fonctions ou pour connaı̂tre l’ensemble
des options disponible pour les fonctions décrites dans ce guide.

Les fonctions sont présentées dans le format suivant:

Pour Matlab:

1. Le nom de la fonction;

2. Le format d’entrée;

3
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èses, le nom abrgégé de la


fonction;

2. Sa description;

3. Le format d’entrée;

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

5. Un exemple court.

La majorité des chapitres se terminent par une section donnant un exemple


plus long et plus concret d’applications des informations présentés dans le
chapitre.

La nomenclature suivante est suivie dans ce guide:

• Le texte en machine à écrire désigne les fonctions dans leur forme


générique.

• Le texte en italique désigne les variables et autres chaı̂nes de caractères


qui doivent être remplacées.

• Le texte en sans serif désigne le texte tel qu’il serait entré à l’ordinateur.

Les chapitres 1 à 3 font le tour des commandes de base dans Stata et


Matlab, ainsi que leur format de saisie. À la suite de ces chapitres vous
devriez être en mesure d’importer, de manipuler, puis d’exporter vos données
et de tracer des graphiques.
Les chapitres 4 à 10 abordent quant à eux chacun un sujet spécifique
de l’économétrie. Ils prennent donc une approche quelque peu différente
puisqu’ils introduisent peu de nouvelles fonctions, se concentrant plutôt sur
la démarche à adopter pour effectuer l’opération en question.

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

5
Chapitre 1

Commandes générales
importantes

1.1 Importation des données


Matlab

load
load nom de f ichier1
load fonctionne seulement avec les données numériques, mais a l’avantage
d’être la commande d’importation de données la plus simple de Matlab. load
importe le fichier spécifié dans une matrice du même nom. Les données
doivent être séparées par des espaces ou des tabulations.

ex: importe les données du fichier ‘monfichier.dat’ dans la ma-


trice ‘monfichier’
load monfichier.dat

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

xlsread
[A, B] = xlsread(nom de f ichier)
1
Puisque le dossier de travail est déjà spécifié dans Matlab, il est inutile de donner le
chemin d’accès avec le nom des fichiers. Les extensions doivent par ailleurs être présentes.

6
xlsread lit la première feuille d’un tableur Microsoft Excel (‘.xls’) et renvoit
toutes les données numériques dans la matrice A et toutes les données texte
dans la matrice B de même taille. Les élément de texte sont remplacés par
‘NaN’ dans la matrice A et les éléments numériques sont laissés vides dans
la matrice B.
Si xlsread rencontre des données texte dans la première rangée et la première
colonne, la matrice B ne contiendra que ces valeurs.

ex: importe les données du fichier ‘tableur.xls’ dans les matrices


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

textread
[A, B, C . . . ] = textread(‘nom de f ichier’, ‘f ormat’)
textread permet d’importer des données d’un fichier formatté nom de f ichier
vers les variables spécifiées A, B, C, etc. f ormat est une chaı̂ne de caractères
et spécifie le format des variables à importer, il doit y avoir un format par
variable. N’importe quel séparateur de données peut-être utilisé par le fichier.
Les formats possibles sont:

• %u: données numériques, entier positif

• %f: données numériques non-entiéres

• %s: texte

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


(‘xyz’)

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


= ‘etage%u’ renverait ‘6’ ”

Il est suggéré de se limiter à %f et %q qui sont amplements suffisants dans le


cadre du cours.
Options: headerlines: spécifie un nombre de lignes à sauter au début 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)

7
dlmread
M = (‘nom de f ichier’, ‘séparateur de données’)
Moins flexible que textread, mais plus que load, dlmread fonctionne seule-
ment avec les données numériques, mais a l’avantage d’être plus simple.
dlmread importe le fichier spécifié dans la matrice M .
‘séparateur de données’ spécifie le type de séparateur dans le fichier, il peut
prendre les valeurs suivantes:
• ‘,’: virgule, valeur par défaut

• ‘;’: point-vigule

• ‘\t’: tabulation

• ‘ ’: espace

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

Stata

insheet
Rapide et efficace, insheet permet d’importer les données d’un fichier texte
possédant une observation par ligne et dont les données sont séparées par
des tabulations ou des virgules.
si le nom des données sont sur la première ligne:
insheet using nomdef ichier2

si le fichier ne contient pas le nom des données:


insheet [nomdesvariables]3 using nomdef ichier
options4 : clear, spécifie que les données en mémoires peuvent être rem-
placées par les nouvelles données importées.
2
À moins de précisions contraires, nomdef ichier indique le nom complet, donc avec le
chemin d’accès et l’extension (a : \test.txt par exemple).
3
La nomenclature de l’aide de Stata est conservée tout au long de ce guide, ainsi les
arguments entre “[ ]” désignent des arguments facultatifs.
4
Les options dans stata sont séparés du reste de la commande par une virgule. Par
exemple, dans le cas présent: insheet using ”c:\ test.txt”, clear

8
infile (inf)5
Permet plus de flexibilité que insheet en permettant que les observations
soient sur plusieurs lignes ou que les données soient séparées 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ù # désigne le nombre de ligne à sauter pour continuer la lecture de l’observation.
options: clear, voir insheet

ex: observation sur la première, la deuxième et la quatrième


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

1.2 Manipulation des données


Matlab

Matlab étant 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é comme des vecteurs dans
le cas de Matlab.
Toutes les manipulations de données sont donc traitées dans la section 1.2.3:
Fonctions et opérateurs matriciels.

Stata

generate (g)
Probablement la commande la plus utile (et utilisée) dans Stata, elle permet
de créer des nouvelles variables.
generate nouvellevariable = expression

ex: g x2 = x^2
5
Le nom entre paranthèses qui suit le nom de la fonction désigne l’abréviation que l’on
peut utiliser dans le code.

9
replace
Même idée que generate, mais pour une variable existante.
replace variable existante = expression

ex: replace x2 = x/2

1.2.1 Opérateurs mathématiques


Ce sont les mêmes dans Matlab et Stata:

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

1.2.2 Opérateurs logiques et de comparaison


Ce sont les mêmes dans Matlab et Stata:

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

Égal : ==
Dif f érent : ~ =
P lusgrand : >
P luspetit : <
P lusgrandouégal : >=
P luspetitouégal : <=

1.2.3 Fonctions et Opérateurs matriciels


Matlab

10
Création de matrices
Les matrices et les vecteurs sont crées dans Matlab en inscrivant directement
le nom de la matrice et les opérations qu’on désire effectuer séparées par le
signe égal (‘=’).

ex:
A = [1,2,3,4;5,6,7,8]; où les virgules séparent les colonnes et les
points-virgules séparent les rangées. (matrice 2 × 4)
B = A*2
C = A^2

Fonctions matricielles
• Créer une matrice identité 2 × 2: I = eye(2)

• Créer une matrice 4x5 dont chaque élément égale à zéro: Z = zeros(4, 5)

• Créer un vecteur 1x6 dont chaque élément égale à un: O = ones(1, 6)

• Créer une matrice 2x2 dont chaque élément est un aléa U(0,1): U =
rand(2), équivalent à U = rand(2, 2)

• Créer une matrice 3x8 dont chaque élément est un aléa N(0,1): N =
randn(3, 8)

Opération sur les matrices


• Extraction d’une sous-matrice:

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


– Extraire la deuxieme rangée de A: A(2,:)
– Extraire l’élément A12 : A(1,2)
– Extraire le vecteur (A12 , A13 , A14 ): A(1,2:4)

• Empilage de matrices

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


(4 × 4)

11
– Empiler verticalement (mettre les colonnes une à côté de l’autre):
[A;A] (2 × 8)

• Opération élément par élément: opérateur mathématique précédé d’un


point (‘.’)

– Multiplication de A par B élément par élément: A.*B

• Inverse: Inv(A)

• Transposée: A0

• Matrice diagonale n × n, avec pour diagonale les éléments de V , où V


est un vecteur n × 1 ou 1 × n: diag(V )

• Extraire la diagonale d’une matrice carrée A sous forme de vecteur:


diag(A)

Autres trucs utiles


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

• Création d’un vecteur dont les éléments sont une suite: v = début:incrément:f in;
ex: x = 1.0;0.1;2.0 produit le vecteur [1.0,1.1,1.2, . . . ,2.0];
notez que l’argument incrément est facultatif, ainsi x = 1:10 produit le
vecteur [1,2, . . . ,10].

Stata

Fonctions matricielles
matrix (mat)
L’équivalent de generate pour les matrices, permet de créer des nouvelles
matrices ou de modifier des matrices existantes.
matrix nom de la matrice = expression

12
ex:
Création 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ù les vir-
gules séparent les colonnes et les \ séparent les rangées (matrice
2 × 3).
Extraction d’une sous-matrice: mat A = B(1..4,2...); se lit rangées
1 à 4, colonne 2 à N.
Remplacement d’un élément: mat A(1,1) = 3; remplace l’élément
a11 par 3.

mkmat
Permet de transformer des variables existantes en vecteurs du même 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 matric

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’écrire
n

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

matrix get
Sert à obtenir une copie d’une matrice système6
Quelques matrices systèmes:

• b: coefficients après une estimation

• VCE: matrice de variance-covariance après une estimation

matrix variable = get(matrice système)


6
Les variables et les matrices systèmes sont stockés par Stata dans des noms prédéfinis
après une opération donnée.

13
ex: matrix beta = get( b)

det(A): déterminant de A
rowsof(A): nombre de rangées de A
colsof(A): nombre de colonnes de A
el(A,i,j): élément aij de A
I(n): matrice identité n × n
inv(A): inverse de la matrice carrée A
diag(V ): matrice diagonale n × n, avec pour diagonale les éléments de V ,
où V est un vecteur n × 1 ou 1 × n
vecdiag(A): extrait la diagonale d’une matrice carrée A sous forme de
vecteur

Opérateurs matriciel
Soit A et B, deux matrices carrées définies positives n × n et C, une matrice
définie positive t × n:
Transposée: A0 (n × n)
Somme: A + B (n × n)
Différence: A - B (n × n)
Produit vectoriel: B*C 0 (n × n)
Division par un scalaire: A/k (n × n)
Empiler les rangées 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 élément par élément
log(z): logarithme naturel de z élément par élément
sqrt(z): racine carrée de z élément par élément
mean(z): moyenne des éléments du vecteur z
std(z): écart-type des éléments du vecteur z
var(z): variance des éléments du vecteur z

14
sum(z): somme des éléments du vecteur z
cumsum(z): somme cumulative des éléments du vecteur z (retourne un vecteur
1 × n)
min(z): renvoie l’éléments du vecteur z ayant la valeur la moins élevée
max(z): renvoie l’éléments du vecteur z ayant la valeur la plus élevée
length(z): nombre de colonnes du vecteur z
size(z): renvoie un vecteur 1×2 contenant la taille de la matrice (rangées,colonnes)

Stata

log(x): logarithme naturel de x, équivalent à ln(x)


exp(x): exponentiel de x, i.e. ex
mod(x,y): partie entière de x par rapport à y, par exemple: mod(5,26) = 5
abs(x): valeur absolue de x
sqrt(x): racine carrée de x, équivalent à x^1/2
max(x1 , ..., xn ): renvoie l’argument possédant la valeur la plus élevée
min(x1 , ..., xn ): renvoie l’argument possédant la valeur la moins élevée
sum(x): somme de tous les éléments de x
uniform(): donne une valeur aléatoire entre 0 et 1 (ditribution uniforme sur
[0,1))

1.4 Divers
Matlab

Commentaires
Il est possible d’insérer des commentaires dans son programme en prenant
soin de débuter la ligne de commentaire par le symbole ‘%’.

ex: % Ceci est un commentaire.

Suppression de la sortie
Pour que Matlab effectue une opération sans que l’on voit le résultat, 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.

15
Commande sur plusieurs lignes
Il est possible d’écrire une commande sur plusieurs lignes. Les ‘. . . ’ indiquent
à Matlab que la commande se poursuit à 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érer des commentaires dans son programme en prenant
soin de débuter la ligne de commentaire par le symbole ‘*’.

ex: * Ceci est un commentaire.

more
Avez-vous déjà rencontré le message --more-- qui fait une pause dans l’affichage
de vos données? Si ça vous énerve, vous pouvez enlever ce message en
spécifiant set more off au début de votre programme.

set matsize (set mat)


La taille maximale des matrices est fixée par défaut à 40 × 40 dans Stata.
Pour utiliser des matrices plus grandes vous devez utiliser la fonction set
matsize.
set matsize #; où # est un nombre entre 10 et 800 qui indique la taille
maximale des matrices.

if
La majorité des fonctions peuvent être suivies de la commande if qui permet
de spécifier une condition pour que l’expression soit executée. if est placé
après la fonction, mais avant les options
Cette option ne sera pas mentionnée pour chaque fonction puisqu’elle est
présente très souvent.
commande if expression

ex: replace x = y if x < y

16
in
La majorité des fonctions peuvent être suivies de la commande in qui permet
de spécifier l’étendue des données affectées par la fonction. in est placé après
la fonction, mais avant les options.
Cette option ne sera pas mentionnée pour chaque fonction puisqu’elle est
présente très souvent.
commande in étendue; où étendue peut prendre la forme # ou #/#, et
# peut-être un nombre positif, l (dernière observation), f (première obser-
vation) ou un nombre négatif (distance par rapport à la dernière observation).

ex:
regress y x1 x2 in f /60; équivalent à regress y x1 x2 in 1/60: les
60 premières observations.
list y in -10/l: les 10 dernières observations.

1.5 Exemples et résultats pour le Chapitre 1


Lecture des données à partir du fichier Donnees.dat et manipulation des
variables dans le but de faire une régression. Le fichier Donnees.dat contient
5 variables, comptant chacune 100 observations.

Matlab

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

Stata

17
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
* être inclu dans l’ensemble [0,25;0,5] et la 5e variable doit être égale
* à 1 pour que la variable binaire égale 1.
g bin = (0.25 = var3/var4 = 0.5 var5==1)
* Création d’une variable indice.
g no = n

18
Chapitre 2

Visualisation des données

2.1 Impression/Exportation des données


2.1.1 Impression à l’écran
Matlab

Matlab affiche par défaut toutes les opérations effectuées à l’écran. Pour
éliminer la sortie, se référer à la section 1.4.

Stata

list
Affiche à l’écran la valeur des variables spécifées.
list [nom(s) de variable(s)]; si aucun nom de variable est spécifié, Stata
affiche toutes les variables.

2.1.2 Exportation
Matlab

diary
Permet de sauvegarder une copie de sa session dans le fichier spécifié. Doit
être suivi de diary(‘off’) à la fin du programme.
diary(‘nom de f ichier’)
programme

19
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 être spécifiée.

Stata

log using
Permet de sauvegarder une copie de sa session dans le fichier spécifié. Doit
être suivi de log off à la fin du programme.
log using nom de f ichier
programme
log off
Options: replace, indique à Stata de remplacer le fichier existant.

2.1.3 Impression
Matlab

La façon la plus pratique d’imprimer ses résultats est d’utiliser la fonction


diary, puis de traiter le fichier de sortie avec son traitement de texte préféré.

Stata

La façon la plus pratique d’imprimer ses résultats est d’utiliser la fonction


log, puis de traiter le fichier “.log” avec son traitement de texte préféré.

2.2 Exemples et résultats pour le Chapitre 2


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

Matlab

diary(’ExChap2.out’);

20
load Donnees.dat;
% Attribution de noms à certaines des variables.
px = Donnees(:,1);
qt = Donnees(:,2);
% Construction d’une variable binaire: le rapport de la 3e sur la 4e variable doit
% être inclu dans l’ensemble [0,25;0,5] et la 5e variable doit être égale
% à 1 pour que la variable binaire égale 1.
bin = (0.25 = Donnees(:,3)/Donnees(:,4) = 0.5 & Donnees(:,5) == 1);
# Création 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
* être inclu dans l’ensemble [0,25;0,5] et la 5e variable doit être égale
* à 1 pour que la variable binaire égale 1.
g bin = (0.25 = var3/var4 = 0.5 & var5 ==1)
list px qt bin
* Création d’une variable indice.
g no = n
log close

21
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ù ‘couleur style marqueur’ est une chaı̂ne de caractère optionnelle con-
tenant de un à quatre caractères et qui définit la couleur de la série, le style
de la ligne et le type de marqueur des points.
Les possibilités sont:

• Couleurs:

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

• Styles:

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

• Marqueurs:

– ‘+’, ‘o’, ‘*’, ‘x’: marqueur du même signe


– ‘s’: carré (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 à l’indice des observations.

ex:
plot(y): courbe de y par rapport à l’indice des observations
plot(x,y): courbe de y par rapport à x, options standard (ligne
pleine,pas de marqueur)
plot(x,y,‘k+’): courbe de y par rapport à x, marqueurs en ‘+’,
noirs (pas de ligne)
plot(x,y,‘b-d’,x,y2,‘r:’): courbe de y par rapport à x et de y2 par
rapport à x (sur le même graphique), première courbe bleue,
pleine, marqueurs en losanges, deuxième courbe rouge, pointillée
(pas de marqueurs)

Il est possible une fois le graphique tracé de modifier une foule de ses paramètres,
voici quelques-unes de ces fonctions:

xlabel(‘titre’): spécifie le titre de l’axe des x


ylabel(‘titre’): spécifie le titre de l’axe des y
title(‘titre)’: spécifie le titre du graphique.

23
axis: permet de définir les propriétés des axes, voir l’aide de Matlab pour
plus de détails.
grid: permet de définir les propriétés des axes, voir l’aide de Matlab pour
plus de détails.

hold
Permet de superposer plusieurs graphiques en spécifiant hold on.
Pour ne plus superposer les graphiques suivant, il suffit de spécifier hold
off.
plot(x,y)
hold on
plot(x,y2)
plot(x,y3)
hold off

Pour sauvegarder un graphique, il suffit de sélectionner Save dans le menu


File de la fenêtre du graphique.

Stata

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

• histogram (h): histogramme

• twoway (t): nuage de points à deux axes; valeur par défaut si plusieurs
variables sont affichés. La première variable spécifiée est toujours la
variable dépendante.

• bar (b): graphique à barres

• pie (p): graphique en pointe de tartes

Voici certaines des options supplémentaires les plus utiles:

• xlog, ylog: spécifie que l’axe des x ou des y respectivement doit être
en échelle logarithmique.

24
• xline, yline: spécifie qu’une grille en x ou en y respectivement de-
vrait être affichée.

• connect(option) (c(option)): spécifie si les points devraient être con-


nectés/. option peut prendre les valeurs suivantes:

– .: non-connectés; valeur par défaut


– l: lignes droites entre les points
– s: traces des lignes courbes entre les points (Á VÉRIFIER)

• symbol(option) (s(options)): spécifie le symbole que doivent prendre


les points. option peut prendre les valeurs suivantes:

– O: grand cercles; valeur par défaut


– o: petits cercles
– .: points
– i: invisibles

• saving(nomdef ichier), [replace]: sauvegarde le graphique dans le


fichier spécifié, si aucune extension n’est spécifiée, Stata ajoute par
défaut “.gph”.
replace indique que le fichier existant peut être remplacé.

3.1 Exemples et résultats pour le Chapitre 3


Matlab

diary(’ExChap3.out’);
% création d’un indice de temps commençant à 4.
t = 4:103;
% création 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-+’)

25
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 à 100. set obs 100
* création d’un indice de temps commençant à 4. g t = n+3 * création 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

26
Chapitre 4

Régressions Simples

Dans ce chapitre et les suivants, il est suggéré de lire la section de Matlab


même si on utilise Stata: contrairement à ce dernièr où on a qu’à utiliser une
fonction pour effectuer l’opération désirée, Matlab nécessite l’élaboration pas
à pas de l’opération qui est effectuée par la boı̂te noire qu’est Stata.

Dans ce chapitre nous considérerons le modèle suivant:

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

Matlab

MCO
Définition 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 variables
indépendantes.
Procédure pour calculer les moindres carrés ordinaires (MCO):
Calcul des coefficient:
b = inv(X’*X)*X’*y
où X est une matrice T × K, Y est un vecteur t × 1 et b un vecteur k × 1
Calcul des résidus:
e = y-X*b

27
Calcul de la variance des résidus:
sigma2 = (e’*e)/(T-K)
Calcul de la variance des coefficients:
varb = sigma2 * inv(X’*X)
Calcul de l’écart-type des coefficients:
etype = sqrt(diag(varb))
Création d’un vecteur de y-moyen:
ybar = [ones(size(y))*mean(y)]
Vecteur des y prédits:
yhat = X*b
Variation expliquée:
SSE = sum((yhat-ybar).^2)
Variation totale:
SST = sum((y-ybar).^2)
Calcul du R2 :
R2 = SSE/SST

Tests d’hypothèses et Intervalles de confiance


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

Intervalle de confiance à 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éré d’en faire une fonction dès maintenant.

Une fonction est un fichier matlab indépendant qui contient du code


à être exécuté lorsque son nom est invoqué.

28
La première ligne du fichier doit être sous la forme suivante:
function [varo1, varo2, . . . ] = N om de f onction(vari1, vari2, . . . )
où varo désigne une variable retournée par la fonction et vari désigne une
variable utilisée par la fonction.
Les lignes subséquentes contiennent le code à être exécuté.
La fonction peut ensuite être appelée par la commande suivante:
[vars1, vars2, . . . ] = N om de f onction(vare1, vare2, . . . )
où vars sont les nom qu’on désire utiliser pour les variables varo et vare le
nom de variables que l’on donne à 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).v̂erb+2+);
R2 = SSE/SST;

Cette fonction serait appelée par la commande suivante:


[beta,u,etype,R2] = MCO(Z,y)
où beta, u, etype et R2 sont les noms de variables qui seront utilisées
dans le code et Z et y sont les variables contenant les données à
être traitées. Z prend généralement la forme Z = [ones(size(x1)),x1,x2,...].

4.0.1 Estimateurs de Variance Robustes


Il peut être utile de pouvoir calculer une matrice de variance-covariance qui
soit robuste à la présence d’hétéroscédascticité. L’estimateur robuste de cette
matrice le plus utilisé est celui de White qui est donné par la formule suiv-

29
ante: !
0
−1 T −1
X 0X

ˆ = 1 XX 1 X
2 0
V ar[b] e xi xi
T T T i=1 i T
En matlab, toujours en utilisant les résultats de la fonction MCO.m, on de-
vrait écrire:
e2 = e.^2
varWhite = T*inv(X’*X)*sum((e2.*X)*X’)/T*inv(X’*X)

Stata

regress (reg)
Incontournable si on désire faire des régressions par MCO. Effectue la régression
de la variable dépendante sur la ou les variables indépendantes spécifiées.
regress variable dépendante [variables indépendantes]
Options:

• level(#) (l(#)): permet de spécifier le niveau de confiance pour les


intervalles et le p-value (# doit être un entier); si level() n’est pas
spécifié, # prend la valeur 95, i.e. le niveau de confiance est fixé à 95%.

• robust (r): calcule des variances robustes par la méthode de Eicker-


White.

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

predict
Permet de calculer les valeurs prédites, les résidus, etc. pour toutes les ob-
servations.
predict nom de nouvelle variable; sans aucune option calcule les valeurs
prédites (ŷ).
Options:

• xb: calcule X 0 β, la valeur linéaire prédite

• residuals (r): calcule les résidus

• stdp: calcule les écarts-types des valeurs prédites

30
ex: calcule les ŷ hors-échantillon
reg y x1 x2 x3 in 1/100
predict y hat if ˜
e(sample)

test (t)
test permet d’effectuer des tests d’hypothèses après une estimation. Il prend
principalement deux formes:
test [expression1 = expression2]: test que l’expression1 n’est pas statis-
tiquement différente de l’expression2
test liste de coef f icients: test que les coefficients ne sont pas conjointe-
ments statistiquement différents de zéro.

ex:
reg y x1 x2 x3
test x1 = x2
test x2 x3

4.1 Tests d’hétéroscédasticité


La présence d’hétéroscédasticité ne vient pas biaiser vos résultats, elle biaise
plutôt les écarts-types obtenus par MCO. Il existe plusieurs méthodes sim-
ilaires de tester pour la présence d’hétéroscédasticité. La plus simple est le
test de Breusch-Pagen:

1. récupérer les résidus de la régression qu’on désire tester;

2. générer le carré des résidus;

3. régresser la carré des résidus sur les variables dépendantes de la régression


originale;

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


LM).

31
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é est celui de la régression auxiliaire
effectuée en 3.

Stata
reg y x1 x2
predict u, r
g u2 = u2̂
reg u2 x1 x2
Il suffit alors de regarder la statistique F donnée par Stata.

La faiblesse du test de Breusch-Pagan est qu’il suppose les erreurs nor-


malement distribuées. Afin de laisser tomber cette hypothèse, il suffit d’ajouter
le carré des variables dépendantes et leurs produits croisés dans la régression
de l’étape 3, il s’agı̂t là du test de White. Afin de limiter le nombre de
régresseurs, on peut utiliser un test de White légèrement modifié:

u2 = β0 + β1 ŷ + β2 ŷ 2 + e

On procède pour le reste exactement de la même façon que pour le test de


Breusch-Pagan.

Que faire lorsque vous trouvez la présence d’hétéroscédasticité? Deux op-


tions s’offrent à vous:

• Calculer des variances robustes par la méthode de White3


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

2
Rappel: la statistique LM suit une χ2k
3
Il peut-être bien tentant de procéder systématiquement avec les variances robustes

32
• Estimer le modèle par MCG, i.e. modéliser la forme d’hétéroscédasticité
(voir le chapitre 7).

4.2 Test de Changement structurel (Test de


Chow)
Considérez le modèle suivant:

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

Le test de Chow sert à vérifier s’il existe une différence dans l’influence
d’une variable dépendante entre deux groupes de données, i.e. si le coefficient
est statistiquement différent. Les deux groupes de données pourraient être
deux séries d’observations ou deux périodes de temps par exemple.
La façon “classique” d’effectuer le test de Chow est d’effectuer la régression
du modèle pour les deux groupes de façon indépendante et pour les deux
groupes ensemble:
= β10 + β11 x11 + β12 x12
yˆ2 = β20 + β21 x21 + β22 x22
ŷ = β0 + β1 x1 + β2 x2 puis de tester si les coefficient sont statistiquement
différents par un test F :
ˆ y − SSR
(SSR ˆ y1 − SSRˆ y2 )/q
F =
(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çon plus rapide d’effectuer ce test est de construire une variable
binaire égale à un pour les observations du deuxième groupe et de faire une
seule régression sur les variables originales et sur les termes d’interaction avec
la variable binaire4 :

Eicker-White pour éviter de faire le test d’hétéroscédasticité, mais cette façon de faire
réduit la précision de vos résultats (i.e. gonfle les écarts-types et réduit la puissance des
tests) lorsque les données sont homoscédastiques.
4
Cette section et l’exemple qui la suit sont inspirés de la rubrique de l’aide de Stata:
How can I compute the Chow test statistic? par Bill Gould.

33
Soit δ la variable binaire:

ŷ = β0 + β1 x1 + β2 x2 β3 δ + β4 x1 δ + β5 x2 δ
On désire maintenant tester si β0 = (β0 + β3 ), si β1 = (β1 + β4 ) et si β2 =
(β2 + β5 ). Ce qui revient à tester si β3 , β4 et β5 sont conjointement différent
de 0. Ceci peut être facilement effectué 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

2
5 (Ru r−Rr2 )/k
Rappel: la forme générale R2 du test F est: F = (1−Ru2 r)/(n−k−1)

34
Chapitre 5

Variables instrumentales et
Doubles Moindres Carrés

Lorsqu’une variable “indépendante” est corrélée avec le terme d’erreur, les hy-
pothèses classiques du modèle linéaire sont violées et on se retrouve face à un
problème d’endogénéité. Dans ces cas, on peut faire appel à l’estimateur
de variables instrumentales (VI) ou aux doubles moindres carrés or-
dinaires (DMCO).

5.1 Estimateur Variables Instrumentales


Soit X, une matrice de VI et Z, la matrice originale. L’estimateur VI est
donné par:
β̂(V I) = (X 0 Z)−1 X 0 y
et l’estimateur VI de la covariance par:

σ̂ 2 (X 0 Z)−1 (X 0 X)(Z 0 X)−1

où
1
(y − Z β̂(IV ) )0 (y − Z β̂(IV ) ).
σ̂ 2 =
T
ou, lorsque K > J (K étant le nombre de VI et J le nombre de variables
indépendantes), par:

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

35
σ̂ 2 [Z 0 X(X 0 X)−1 X 0 Z]−1 .

Matlab

Créons 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 régression par DMCO.
ivreg variable dependante variables independantes (variable dependante =
variable(s) intrumentale(s)), options
où options peut prendre les mêmes valeurs que pour regress, ainsi que
first qui affiche les résultats de la première régression.

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

predict peut être utilisé après ivreg

36
5.2 DMCO
Le principe des doubles moindres carrés ordinaires est d’utiliser une estima-
tion de la variable endogène qui ne soit pas corrélée avec le terme d’erreur
pour effectuer la régression.
Soit le modèle suivant:

y1 = β0 + β1 x1 + β2 x2 + β3 y2 + u
et soit z une VI de y2 .

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

1. Estimation de la variable endogène:


Régression de y2 sur toutes les variables indépendantes (x1 et x2
ici) et la/les VI pour y2 (z ici).
On récupère yˆ2 , l’estimation linéaire de y2 .

2. Régression du modèle avec yˆ2 :


Régression de y1 sur une constante, x1 , x2 et yˆ2 .

Cette dernière régression ne souffrant plus d’endogénéité, les β̂


ainsi obtenus sont non-biaisés.

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 à la section précédente.

37
5.3 Tests d’endogénéité
Le test de Hausman permet de vérifier s’il existe bel et bien une différence
entre l’estimateur VI et l’estimateur MCO, vérifiant ainsi s’il y a bel et bien
endogénéité des variables (si les deux estimateurs sont consistants, ils seront
asymptotiquement égaux). Sous H0 , la statistique de Hausman est:

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

Matlab

En utilisant la fonction développée à la section précédente:


[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écification d’Hausman.
Estimation du modèle moins efficient, mais convergent (VI ici)
hausman, save
Estimation du modèle efficient, mais peut-être pas convergent (MCO ici)
hausman
Options: constant (c), indique que la constante doit être inclue dans la
comparaison des deux modèles.

ex:
ivreg y1 z1 z2 (y2=x1)
hausman, save
reg y1 z1 z2 y2
hausman, c

38
Chapitre 6

Estimateur du Maximum de
Vraissemblance (EMV)

La fonction de vraisemblance est la probabilité jointe des observations


étant donné les paramètres d’intérêts, i.e.:
n
Y
L(θ|y) = f (y1 , . . . , yn |θ) = f (yi |θ)
i=1

L’estimateur du maximum de vraisemblance (EMV) a pour but de


choisir le vecteur de paramètres θ qui maximise la fonction de vraisemblance,
i.e. pour lequel les données observées sont les plus probables. Pour simplifier
les choses, la fonction de log-vraisemblance,L(θ|y), est généralement utilisée1 .
Prenons l’exemple d’un échantillon normalement distribué, de moyenne 0 et
de variance σ 2 :
T
Y
2
f (y|X, β, σ ) = (2πσ 2 )−1/2 exp[(yt − x0t β)2 ]
t=1
(y − Xβ)0 (y − Xβ)
 
2 −T /2
= (2πσ ) exp − .
2σ 2
La log-vraisemblance est
T T (y − Xβ)0 (y − Xβ)
L(β, σ 2 ) = − log(2π) − log σ 2 − .
2 2 2σ 2
1
Le logarithme étant une fonction montone, la valeur qui maximise L(θ|y) est la même
que celle qui maximise L(θ|y).

39
Les CPO sont:
δlnL (y − Xβ)(y − Xβ)
=
δβ 2σ 2
δlnL T (y − Xβ)0 (y − Xβ)
= − +
δσ 2 2σ 2 2σ 4
Ce qui nous permet de trouver

β̂ = (X 0 X)X 0 y

(y − Xβ)0 (y − Xβ) ê0 ê


σˆ2 = =
T T

Matlab

Il n’existe pas de fonction de maximisation dans Matlab, il faut donc min-


imiser la négative de la fonction à l’aide de la fonction suivante:

fminsearch
[x, f val] = fminsearch(f onction, options, variables)
où x est la variable qui contiendra la/les valeur(s) qui minimise(nt)la fonc-
tion, f val est une variable facultative où seront stockées les valeurs de la
fonction pour chacune des valeur minimale, f onction est le nom de la fonc-
tion à minimiser (réfère à un fichier ‘.m’) et variables est une liste de variables
utilisées par la fonction, mais qui ne doivent pas être minimisées. Les options
possibles sont:

• Display: ajuste l’affichage de la progression de la minimisation; se


référer à l’aide de Matlab pour plus d’info.

• MaxFunEvals: nombre maximal d’évaluations de la fonction permises

• MaxIter: nombre maximal d’itérations permises

Si aucune option n’est désirée, il faut utilisée l’ensemble vide [] pour options.

ex: voir section 8.1

40
Stata

ml
Permet de faire une estimation par maximum de vraisemblance pour une
équation donnée. Cette fonction étant fort complexe et très peu utilisée dans
le cadre des problèmes abordés dans ce guide, il est laissé à la discrétion du
lecteur le soin de consulter l’aide de Stata à son sujet. Il existe normalement
des fonctions pré-définies pour les estimateur abordées ici qui doivent être
traités par maximum de vraisemblance (probit et logit par exemple).

41
Chapitre 7

Moindres Carrés Généralisés

La méthode des moindres carrés généralisés (MCG) cherche à modéliser


la fonction de la variance. Nous obtenons alors l’estimateur MCG

β̂ M CG = (X 0 V −1 X)−1 X 0 V −1 y

ou encore
β̂ M CG = (X 0 W −1 X)−1 W 0 V −1 y
et sa variance est
var[β̂] = σ 2 (X 0 V −1 X)−1 .
où V et W sont égaux à
 
x1 0 · · · 0
 0 x2 · · · 0 
W = σ 2  .. 2
..  ≡ σ V
 
.. . .
. . . .
0 0 · · · xn

Matlab
Le principe de base ici est de construire la matrice V avec la forme appropriée
de variance pour pouvoir ensuite calculer les β̂ M CG .
Voyons comment on estimerait le modèle y = β0 + β1 x1 + β2 x2 + ε où l’on
suppose que la variance suivre une fonction de type σ 2 (x) = σ 2 x2i :
X = [ones(size(y)),x1,x2];
V = diag(x2);

42
[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égression linéaire pondérée par la variance.
vwls variable dependante variables independantes [poids], options
Options: sd(nom variable) fournit une estimation de l’écart-type de la vari-
able dépendante.

ex:
vwls y x1 x2, sd(sigma2ch)
où sigma2ch est une estimation de l’écart-type de y.

predict peut être utilisé après vwls

43
Chapitre 8

Variables dépendantes
qualitatives

8.1 Probit/Logit
Un probit et un logit s’appuient en fait sur le même principe, ils ne diffèrent
que dans la forme de la fonction de répartition qu’ils utilisent pour calculer
l’effet sur la probabilité d’une variation de la variable latente. En effet,
lorsque la variable dépendante ne prend que des valeurs qualitatives (oui ou
non par exemple), l’effet d’une variable indépendante sur la probabilité de
dire oui doit être “traduit” par une fonction de répartition. Cette dernière
nous donne la probabilité associée à une valeur donnée de la valeur latente
exprimée par la combinaison linéaire des variables indépendantes.

Matlab

Pour le probit, on doit utiliser la fonction de répartition de la loi normale:


Z x
1 −z 2
F (x) = Φ(x) = √ e 2 dz
2π −∞
normcdf
normcdf(X)
Donne la valeur de la fonction de répartition de la loi normale pour la valeur
de X spécifiée.

44
Pour le logit, on utilie plutôt la fonction de répartition de la loi logistique:
1
F (x) =
1 + e−x
Comme il n’existe pas de fonction prédéfinie dans Matlab pour la fonction
de répartition de la loi logistique, on doit en construire une:

function [Fx] = logitcdf(x)


Fx = 1/(1+exp(-x))

La procédure étant la même pour un probit et un logit, elle ne sera démontrée


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’à calculer l’effet d’une variable sur la proba-
bilité. Ceci peut être fait en fixant toutes les autres variables à une valeur
(généralement leur moyenne échantillonalle), puis en estimant le modèle suc-
cessivement pour deux valeurs de la variable. La différence de la probabilité
de ces deux estimations linéaires de la variable dépendante (ŷ) donne la vari-
ation de probabilité.

45
ex: le modèle estimé est ŷ = β0 + β1 x1 + β2 x2 + β3 bin1 + µ où
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érivée de l’espérance de y sachant X:

dF (X 0 β)
 
∂E[y|X]
= β = f (X 0 β)β
∂X d(X 0 β)
Par exemple, dans le cas d’un probit:

Pr(y = 1) = Φ(X 0 β)
∂ Pr(y = 1)
= φ(X 0 β)β
∂X

Stata

probit (prob)
Estime un modèle probit.
probit variable dépendante variable indépendante
Options: probit possède en grande partie les mêmes options que regress.
Note: Ici predict donne par défaut la probabilité. Pour avoir l’estimation
linéaire, il faut préciser xt dans les options de predict.

logit
Permet d’estimer un modèle logit.
logit variable dépendante variable indépendante
Options: logit possède en grande partie les mêmes options que regress.

46
8.2 Tobit
Un tobit est essentiellement un modèle dont les données sont tronquées.
Comme le probit, le tobit suit une loi normale.

Matlab
Soit un modèle tronqué à gauche à zéro (y ∗ étant une variable latente de y):

y∗ = X 0β + µ
y = max(0, y ∗ )

Encore ici, on procédera par maximum de vraisemblance, mais on devra


cette fois considérer qu’il existe deux fonctions: une pour y = 0 et une pour
y > 0. La log vraisemblance pour le tobit sera donnée 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érance de y étant donné x, il suffit de calculer:

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

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

47
causer aucun problème...

Stata

tobit
Permet d’estimer un modèle tobit.
logit variable dépendante variable indépendante
Options: ll(#), ul(#): indiquent respectivement que les données sont
tronquées à gauche ou à droite. Une ou les deux de ces options doivent être
spécifiées. # indique le point de troncation. Si # n’est pas précisé, 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 avec regress.

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

48
Chapitre 9

Séries Chronologiques

9.1 Opération sur les variables dans le cadre


de séries chronologiques
Matlab

Il n’y a pas d’opération particulière à effectuer avec Matlab lorsqu’on tra-


vaille avec des séries chronologiques.

Stata

tsset
Lorsqu’on travaille avec des séries chronologiques dans Stata, il est nécessaire
de l’en informer par la commande tsset.
tsset variable de temps

ex:
generate t = n
tsset = t

9.2 Opérateurs de séries temporelles


Voici comment reproduire l’équivalent des opérateurs Avance et Retard dans
Matlab et Stata pour travailler sur les séries chronologiques.

49
Matlab

Il n’existe pas d’opérateur de séries temporelles en soit dans Matlab, il faut


donc utiliser les opérateurs matriciels vus au chapitre 1.

ex:

• Opérateur 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érées.
• Opérateur Avance:
T = length(X)
x = X(1:T-2)
x fwd1 = X(2:T-1)
x fwd2 = X(3:T)

Stata

l
L’opérateur l est l’opérateur Retard de stata. Il peut être utilisé avec toutes
les fonctions qui acceptent les séries temporelles une fois que la déclaration
de séries temporelles à été faite.
l#.variable
où variable est la variable sur laquelle l’opérateur doit agir et # est le nombre
de retards à appliquer. Si # est omis, un seul retard est appliqué (équivalent
à l1.variable).

tsset t
regress y x l.x l2.x

50
f
L’opérateur f est l’opérateur Avance de stata. Il peut être utilisé avec toutes
les fonctions qui acceptent les séries temporelles une fois que la déclaration
de séries temporelles à été faite.
f#.variable
où variable est la variable sur laquelle l’opérateur doit agir et # est le nom-
bre d’avance à appliquer. Si # est omis, une seule avance est appliquée
(équivalent à f1.variable).

tsset t
regress y x f.x f2.x

9.3 Tests d’autocorrélation


Inutile de mentionner que l’autocorrélation est un problème qui n’est perti-
nent que dans le cas des séries temporelles. . .
Le test ρ est le test le plus simple à effectuer pour tester la présence d’autocorrélation:
1. récupérer les résidus de la régression qu’on désire tester;

2. régresser ût sur ût−1 à ût−n et X

3. Tester la signification conjointe des coefficients de cette régression par


un test F.

Choisissons n égal à 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

51
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ée par Stata.

Le test de Durbin-Watson est aussi utilisé pour tester la présence d’autocorrélation,


mais comme il est moins précis et ne considère qu’une seule période, nous ne
le couvrirons pas ici.

9.4 Méthode de Box-Jenkins


Ce qu’il est important de comprendre, à mon avis, dans la méthode de Box-
Jenkins, c’est que l’objectif de toutes les opérations que nous effectuons est
de se retrouver avec un résidu qui est un bruit-blanc. Le but ultime étant
de modéliser la série afin de faire des prédictions, nous pouvons seulement
être certain d’avoir tout extrait lorsqu’il nous reste seulement un bruit-blanc:
un processus qui est par définission impossible à prédire.

9.4.1 Stationnarité des données


La première étape de la méthode de Box-Jenkins consiste à effectuer les
transformations nécessaires afin de s’assurer que notre série est stationnaire,
si elle ne l’est pas, il nous sera impossible de travailler dessus.
Première question à se poser: doit-on travailler en log ou pas? Si la vari-
able croı̂t à un taux constant, elle sera linéaire en log. De plus, les pro-
priétés du logarithme font en sorte qu’il “écrase” une variance croissante.
Outre la transformation logarithmique, il existe trois cas possibles de non-
stationnarité qui impliqueront des changements dans la série (ou sa modélisation):

• Changement structurel

• Tendance déterministe

• Racine unitaire

52
Changement structurel
Les changement structurels peuvent être détectés à l’aide du Test de Chow
(voir section 4.2). Malheureusement, rien ne peut généralement être fait pour
stationnariser une série dans le cas d’un changement structurel.

Tendance déterministe
Afin de régler le problème de la présence d’une tendance temporelle, il suffit
de la modéliser la tendance. Il faut faire attention de bien choisir la tendance
la mieux adaptée à nos données: linéaire, 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 à un problème de racine unitaire lorsque ρ = 1 dans le modèle
suivant:
yt = α + ρyt−1 + et
Afin de régler le problème de racine unitaire, il faut différencier la série, i.e.
travailler sur ∆yt = yt − yt−1 plutôt que yt . Le modèle devient donc:

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

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

Stata

La différenciation d’une série est effectuée automatiquement dans Stata lors


de l’utilisation de la fonction arima.

Tester pour la présence d’une racine unitaire se fait par un test t où H0
est θ = 0. Malheureusement, sous l’hypothèse nulle, la statistique t ne suit
pas la loi asymptotique habituelle. Il faut plutôt utiliser la loi de Dickey-
Fuller. S’il y a corrélation des termes d’erreur, il faut plutôt utiliser une loi
de Dickey-Fuller augmentée.

Stata

dfuller
Effectue un test de Dickey-Fuller augmenté sur la variable spécifiée.
dfuller nom de variable, options
Options:

• lags(#): spécifie le nombre de retards à utiliser pour le calcul de la


variance estimée Newey-West.

• trend: incluera une variable de tendance dans la régression.

pperron
Possède exactement la même structure et les mêmes options que dfuller,
mais effectue un test de Phillips-Perron plutôt qu’un test de Dickey-Fuller
augmenté.

9.4.2 Modélisation des cycles: Modèles AR, MA, ARMA,


ARIMA
Stata

54
arima
Permet d’estimer un modèle AR, MA, ARMA ou ARIMA par maximum de
vraisemblance.
arima variable dépendante variable indépendante, arima(p,d,q)
où p est le nombre de AR, d le nombre de différenciation et q le nombre de
MA.
Il n’est pas nécessaire de préciser de variables indépendates.

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’autocorrélogramme partiel (nom-


bre de AR) et l’autocorrélogramme (nombre de MA) de la variable qui nous
intéresse.

corrgram
Construit une table des autocorrélations et des autocorrélations partielles.
Permet de tracer l’autocorrélogramme et l’autocorrélogramme partiel.
corrgram nom de variable, option
Options: lags(#): spécifie le nombre de retards à calculer.

corrgran peut être suivi de deux autres fonctions:

ac
Produit un autocorrélogramme.
ac nom de variable, options
Options:

• lags(#): spécifie le nombre de retards à calculer.


• level(#): spécifie le niveau de confiance à utiliser dans le
calcul des bandes de confiances.

55
• Toutes les options standards d’un graphique sont également
admissible.

pac
Produit un autocorrélogramme partiel. Même structure et mêmes
options que ac.

9.4.3 Sélection de Modèle


À chaque étape de la modélisation de notre série chronologique, il est impor-
tant de choisir le meilleur des choix qui s’offre à nous: tendance quadratique
ou logarithmique? AR(2) ou AR(3)?
Plusieurs critères existent pour nous aider dans nos choix, nous en explorerons
trois qui se basent tous sur le principe de pénalité pour le nombre de variables.

R-carré ajusté
Le R-carré ajusté (R̄2 ) est donné par la formule suivante:
n−1
R̄2 = 1 − (1 − R2 )
n−K

Akaike information criterion (AIC)


Voici la formule habituelle du critère d’Akaike:
e0 e 2K
AIC(K) = log( )+
n n

Bayesian information criterion (BIC)


Voici la formule habituelle du critère de Schwartz ou Bayesien:

e0 e Klogn
BIC(K) = log( )+
n n

À la fois dans Matlab et Stata, ces critères doivent être construits manuelle-
ment.

56
Chapitre 10

Données longitudinales (Panel)

Il existe bon nombre de méthodes pour traiter les données en Panel et la


littérature sur le sujet est très exhaustive, nous ne traiterons donc dans ce
chapitre que des méthodes de base.

10.1 Variables Binaires


La façon la plus simple de contrôler pour le pooling de plusieurs années est
d’ajouter dans la régression une variable binaire par année. Ces dernières
permettent de capter l’effet de l’année sur la variable dépendante. Cette
méthode suppose de fait que toutes les autres variables sont constantes à
travers le temps. Comme dans tous les cas où l’on travaille avec des vari-
ables binaires, il faut laisser tomber une des variables pour ne pas avoir de
colinéarité parfaite

Matlab

Il suffit simplement de construire des variables binaires tel qu’indiqué dans


le chapitre 1.
ex: On désire faire une régression sur des échantillons tirés de
1980,81,82 et 83.
a81 = (annee == 1981)
a82 = (annee == 1982)
a83 = (annee == 1983)
X = [X,a81,a82,a83]

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

Stata

Comme c’est le cas avec Matlab, on peut simplement ajouter manuellement


des variables binaires dans notre régression. Il existe par ailleurs une méthode
automatique d’indiquer à Stata que l’on travaille avec des données en panel
qui sera présentée à la section suivante.
ex: On désire faire une régression sur des échantillons tirés de
1980,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 Aléatoires


Très souvent, l’estimation simplement à l’aide de données binaires d’années
donnera un résultat biaisé. Ce modèle fait en effet abstraction de la pos-
sibilité d’un effet non-observé indépendant du temps (effet lié au groupe).
Cet effet peut soit être corrélé avec les variables explicatives (Effet Fixe) ou
non-corrélées avec celles-ci (Effet Aléatoire).
Dans le cas d’un effet fixe, la méthode la plus simple de capter cet effet est
de supposer qu’il existe pour chacun de nos groupes et, ainsi, d’ajouter une
variable binaire par groupe (sans oublier, comme d’habitude, dans laisser
tomber une). Donc si nous avons cinq groupes et quatre périodes de temps,
nous aurons un total de sept variables binaires.
Nous présenterons le cas d’un effet aléatoire que pour Stata car c’est une
procédure qui est faite automatiquement avec la fonction xtreg.

Matlab

Ajout de variables binaires pour chaque groupe et chaque année.


ex: Régression sur cinq échantillons tirés de 1980,81,82 et 83.
a81 = (annee == 1981)

58
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 chaque


année.
ex: Régression sur cinq échantillons tirés 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 mentionné à la section précédente, il est aussi possible d’indiquer


à Stata que l’on travaille avec des données en Panel afin d’automatiser le
processus:

tsset
Cette fonction déjà vue dans le chapitre 9 permet également de déclarer nos
données comme un panel de séries temporelles. Il suffit pour ça d’ajouter la
variable de panel (de groupe) avant la variable de temps.
tsset variable de panel variable de temps

ex:
gt= n
tsset groupe t

59
Une fois tsset déclaré pour des données panel, il est possible de travailler
avec la famille de fonctions xt de Stata. Il existe une telle fonction pour cha-
cun des types de régression: xtreg, xtlogit, xprobit, xttobit, xtgls,
etc. Nous ne couvrirons ici que sommairement xtreg et nous vous référons
à l’aide de Stata pour plus de détails sur cette famille de fonctions.

xtreg
Permet de faire des régressions sur des données en Panel.
Effet fixe: xtreg variable dépendante variable indépendante, fe
Effet aléatoire estimé par MCG: xtreg variable dépendante variable indépendante,
re
Effet aléatoire estimé par EMV: xtreg variable dépendante variable indépendante,
mle

ex:
tsset groupe annee
xtreg y x1 x2, fe

60
Chapitre 11

Interaction avec les traitements


de texte et les tableurs

61
Chapitre 12

Où trouver ses données et


comment les extraires

62
Annexe A

Tableaux Récapitulatifs

A.1 Fonctions de Matlab


Fonction Description Forme
Importation de Données
dlmread Importe des données M = (‘nom de f ichier’,
numériques d’un fichier. ‘séparateur de données0 )
load Importe des données load nom de f ichier
numériques d’un fichier.
textread Importe les données d’un fichier. [A, B, C . . . ] =
textread(‘nom de f ichier’,
‘f ormat’)
xlsread Importe les données d’un tableur [A, B] =
Excel. xlsread(nom de f ichier)

63
Transformation de Variables
cumsum Somme cumulative des éléments cumsum(z)
d’un vecteur.
exp Exponentielle d’une matrice exp(z)
élément par élément.
length Nombre de colonnes d’un vecteur. length(z)
log Logarithme naturel d’une matrice log(z)
élément par élément.
max Renvoie l’éléments du vecteur max(z)
ayant la valeur la plus élevée.
mean Moyenne des éléments d’un mean(z)
vecteur.
min Renvoie l’éléments du vecteur min(z)
ayant la valeur la moins élevée.
size renvoie un vecteur 1 × 2 con- size(z)
tenant la taille d’une matrice
(rangées,colonnes).
std Écart-type des éléments d’un std(z)
vecteur.
sqrt Racine carrée d’une matrice sqrt(z)
élément par élément.
sum Somme des éléments du vecteur. sum(z)
var Variance des éléments d’un var(z)
vecteur.

64
Fonctions Matricielles
diag Extraction de la diagonale d’une diag(A)
matrice. / Création d’une ma-
trice diagonale.
eye Crée une matrice identité. I = eye(#)
inv Inverse d’une matrice. Inv(A)
ones Créer une matrice dont chaque O = ones(#, #)
élément égale à un.
rand Créer une matrice dont chaque U = rand(#, #)
élément est un aléa U(0,1)
randn Créer une matrice dont chaque N = randn(#, #)
élément est un aléa N(0,1)
zeros Créer une matrice dont chaque Z = zeros(#, #)
élément égale à zéro.
Autres Fonctions
diary Permet de sauvegarder une copie diary(‘nom de f ichier’)
de sa session dans le fichier programme diary(‘off’)
spécifié.
fminsearch Minimise une fonction. [x, f val] =
fminsearch(f onction, options, variables)
hold Permet de superposer plusieurs hold on graphiques hold off
graphiques.
normcdf Donne la valeur de la fonction de normcdf(X)
répartition de la loi normale.
normpsf Donne la valeur de la fonction de normpdf(X)
probabilité de la loi normale.
plot Trace un graphique en nuage de plot(x, y,‘couleur style marqueur’)
points.
wk1write Sauvegarde une matrice dans un wk1write(‘nom de f ichier’,M )
fichier de tableur.

65
A.2 Fonctions de Stata
Fonction Abréviation Description Forme
Importation de Données
infile inf Importe les données d’un infile nom des variables
fichier. using nomdef ichier
insheet Importe les données d’un insheet using
fichier (séparateurs: tabula- nom de f ichier
tions ou virgules).
Transformation de Variables
generate g Crée une nouvelle variable. generate
nouvelle variable =
expression
replace Remplace une variable exis- replace variable existante
tante. = expression
abs Valeur absolue. abs(x)
exp Exponentiel. exp(x)
log Logarithme naturel. log(x)
max Renvoie l’argument max(x1 , ..., xn )
possédant la valeur la
plus élevée.
min Renvoie l’argument min(x1 , ..., xn )
possédant la valeur la
moins élevée.
mod Modulo de x par rapport à mod(x,y)
y.
sqrt Racine carrée. sqrt(x)
sum Somme de tous les éléments sum(x)
de x.
uniform Donne une valeur aléatoire uniform()
entre 0 et 1 (ditribution uni-
forme sur [0,1)).

66
Fonctions Matricielles
matrix mat Crée ou modifie une ma- matrix nom de la matrice
trice. = expression
matrix get Permet d’obtenir copie matrix variable =
d’une matrice système. get(matrice système)
mkmat Transforme des variables en mkmat
vecteurs/matrice. nom(s) de variable(s),
matrix
[(nomdelanouvellematrice)]
svmat Transforme les colonnes svmat matrice,
d’une matrice en variables. [names(nom col1, nom col2, . . . )]
colsof nombre de colonnes d’une colsof(A)
matrice.
det Déterminant d’une matrice. det(A)
diag Matrice diagonale n × n, diag(V )
avec pour diagonale les
éléments de V .
el Élément aij d’une matrice. el(A,i,j)
I Matrice identité n × n. I(n):
inv Inverse d’une matrice inv(A)
carrée.
rowsof Nombre de rangées d’une rowsof(A)
matrice.
vecdiag Extrait la diagonale d’une vecdiag(A)
matrice carrée sous forme de
vecteur.
Fonctions Diverses
graph gr Trace un graphique. graph nomdesvariables,
[typedegraphique,
autresoptions]
list Affiche à l’écran les vari- list
ables spécifiées. [nom(s) de variable(s)]
log Enregistre la session. log using nom de f ichier
more Active ou désactive more on/off
l’affichage de --more--.
set matsize set mat Fixe la taille maximale des set matsize #
matrices.

67
Fonctions Diverses (suite)
tsset Déclaration de séries tem- tsset variable de temps
porelles/Données pannel.
l Opérateur retard. l#.variable
f Opérateur avance. f#.variable
Fonctions Économétriques
regress reg Effectue une régression regress vard ep [vars inds]
linéaire par MCO.
predict Calcule les valeurs prédites, predict nouvelle variable,
les résidus, etc. options
test t Effectue des tests test [expression1 =
d’hypothèse. expression2]
ivreg Effectue une régression par ivreg var dep vars inds
DMCO. (var dep = V I), options
hausman Effectue le test de hausman / hausman, save
spécification d’Hausman.
vwls Effectue une régression vwls vard ep vars inds
pondérée par la variance [poids], options
(FGLS).
probit prob Estime un modèle probit. probit var dep vars inds
logit Estime un modèle logit. logit var dep vars inds
tobit Estime un modèle tobit. tobit var dep vars inds,
[ll(#)] [ul(#)]
dfuller Effectue le test de Dickey- dfuller nom de variable,
Fuller augmenté. options
pperron Effectue le test de Phillips- pperron nom de variable,
Perron. options
corrgram Produit une table des au- corrgram
tocorrélations et des auto- nom de variable, option
corrélations partielles.
xtreg Effectue une régression sur xtreg var dep vars inds,
des données panel. [fe] [re] [mle]

68
A.3 Opérateurs
Description Forme
Opérateurs Mathématiques
Addition +
Soustraction -
Multiplication *
Division /
Puissance ^
Opérateurs Logiques
ET &
OU |
Non (¬) ~
Opérateurs de Comparaison
Égal ==
Différent ~=
Plus grand >
Plus petit <
Plus grand ou égal >=
Plus petit ou égal <=

69

Vous aimerez peut-être aussi