formation dgi prof bosonga
TRANSCRIPT
1
Société Scientifique d ’Appui à la Quantification Economique janvier 2014
Avec initiation au logiciel Stata
FFoorrmmaattiioonn ssuurr ll’’AAnnaallyyssee ddee DDoonnnnééeess eett PPrréévviiss iioonn
Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en
poser un !
Albert Einstein
3
Initiation au logiciel Stata
I.1.1. Présentation du logiciel Stata 10
Stata est un logiciel réputé pour ses multiples fonctions de traitement des données et d’analyse statistique.
Il dispose également d’un langage de programmation aisé et convivial. Ce logiciel présente un certain
nombre d’avantages dans son utilisation dont :
la reproductibilité : Il est souvent nécessaire de pouvoir justifier de la façon dont a été calculé un
indicateur. A la lecture d'un article ou d'un rapport, le lecteur doit pouvoir, à partir des mêmes
données, obtenir les mêmes résultats. Or avec un logiciel a interface, il n'y a pas de trace de quels
clics ont été faits.
l'extensibilité : le logiciel s'enrichit en permanence. Il est possible de créer une commande en utilisant
plusieurs autres. Or les interfaces sont figées et ne changent qu'à la parution de nouvelles versions.
praticabilité : il est très pratique pour la manipulation de données, notamment de données
longitudinales. Enfin il couvre la quasi-totalité des domaines des statistiques et de l'économétrie
abordés dans différentes sciences comme l'économie, la santé, l'épidémiologie : des exemple comme
en techniques d'évaluation d'impact (régressions linéaires, modèles de sélection, variables
instrumentales) ; modèles dichotomiques (modélisation des déterminants du chômage, de la
mortalité); données de panel (suivi de gens dans le temps, permet de différencier l'effet individuel de
l'effet temps) ;modèles de durée (démographie, durée de chômage) ; séries temporelles (macro-
économie, prévisions); données d'enquêtes (estimateurs sans biais, précision des indicateurs), etc.
I.1.2. Types de fichiers sous Stata
Nous distinguons ici trois types de fichiers : ce sont les fichiers de données, les fichiers programmes et les
fichiers de résultats. L’extension des fichiers dépend du type. S’il s’agit d’un fichier de données, il porte
l’extension .dta ; les fichiers programmes ont l’extension .do et les fichiers de résultat ont l’extension .log.
I.1.3. Fenêtres de travail
Au démarrage, l’interface de Stata laisse apparaître quatre fenêtres. A partir de ces fenêtres, on peut
exécuter les travaux désirés. Si on veut automatiser le travail par un programme, il faut faire appel à la
fenêtre d’édition des programmes encore appelée Stata do-file editor. Le graphiques 1 suivant présente
l’interface de Stata et la fenêtre d’édition des programmes.
Figure 1.4. Interface de Stata
Les 4 fenêtres de base sont les fenêtres Command, Review, Variables et Results. Les commandes sont
saisies dans la fenêtre Command puis exécutées en validant. Cette fenêtre sert à tester des commandes
mais non à rédiger un programme complet. La fenêtre Review liste les dernières commandes effectuées. Il
suffit de cliquer sur l'une d'elles pour la rappeler dans la fenêtre Command. La fenêtre Variables liste les
variables figurant dans la base de données. Il suffit de cliquer sur l'une d'elles pour qu'elle soit saisie dans
la fenêtre Command. La fenêtre Results, sur fond noir, décrit les résultats de toutes les commandes. Les
commandes effectuées y figurent en blanc, les résultats en jaune, vert et blanc, les messages de mise en
garde en vert, et les erreurs, stoppant l'exécution, en rouge. Les erreurs sont référencées. En cliquant sur
le code de l'erreur, on accède à une description de l'erreur. On peut copier les résultats de Results pour les
coller dans Word. Selon que l’on veut copier du texte ou un tableau (sélectionner uniquement le tableau
avec des lignes entières), on utilisera Copy text ou Copy table dans le menu Edition. En plus de certaines
icônes existant déjà sous office, Stata possède d’autres icônes dont les fonctionnalités sont présentées sur
la figure suivante.
Figure 1.5. Icônes utilisées par Stata
De gauche à droite :
Ouvrir un fichier de données Stata
Sauvegarder un fichier de données (équivalent à la commande save)
Imprimer les résultats tels qu'ils apparaissent dans la fenêtre Results
Commencer un fichier log, un journal qui conservera tout ce qui a été fait
Faire apparaitre la fenêtre Results lorsqu'elle n'est pas présente
Ouvrir la fenêtre d’édition des programmes (Stata Do-file Editor)
Modifier les données chargées en mémoire
visualiser les données chargées en mémoire
Stopper la commande en cours (si c'est trop long ou qu'on s'est rendu compte d'une erreur).
5
Quelques opérateurs logiques et arithmétiques sous Stata
Les paragraphes précédents ont présenté l’interface de Stata. Le tableau suivant rend compte de quelques
opérateurs logiques et arithmétiques qui peuvent être utilisés.
Tableau 1.2. Opérateurs logiques et arithmétiques sous Stata
Opérateurs Rôles
= Opérateur d’égalité d’expression. Il est surtout utilisé lors des calculs ou lors de la
création de variables.
== Test d’égalité entre une expression et une valeur. Il est utilisé lors des
Comparaisons.
~= ou != Différence
+ Addition
- Soustraction
* Multiplication
/ Division
< et > Inférieur et supérieur respectivement
<= et >= Inférieur ou égal et supérieur ou égal respectivement
& Et
| Ou
I.1.4. Recherche d’une commande et de l’aide
Pour trouver une commande lorsqu'on ne connait pas son nom, il suffit de sasir la commande search suivie
d'un ou plusieurs mots clés. Supposons que l'on souhaite trouver une commande permettant de calculer
des statistiques descriptives de base d'une variable :
search univariate summary statistics
Stata retourne la liste de fichiers d'aide des commandes correspondantes ainsi que des liens hypertextes
pointant sur le site web de Stata. Dans l'exemple ci-dessus, il retourne deux commandes dont summarize
qui correspond a ce qu'on souhaite.
Pour trouver ensuite des détails sur la façon d'utiliser la commande summarize, il suffit de saisir :
help summarize
Chaque commande possède un fichier help, en anglais, assez détaillé. Les commandes search et help sont
très utilisées car il est impossible de connaitre, par cœur, toutes les commandes de Stata.
I.1.5. Utilisation et manipulation des fichiers sous Stata
Dans la mesure où l'utilisation courante de Stata nécessite la manipulation de fichiers issus d'autres
logiciels comme Excel ou Access, il est fondamental de comprendre que l'importation des fichiers sous
Stata dépend des séparateurs qui sont utilisés dans le fichier source. Nous allons nous atteler ici à ce qui
est fait avec Excel.
Importation des données depuis Excel
Il existe une façon plus simple d'importer les données d'Excel (voire Annexe 3) à Stata, il s'agit du copier
coller de Windows. Il suffit de copier, sous Excel, les données qu'on souhaite importer puis d'aller les coller
dans l'éditeur de données de Stata.
Figure 1.6. Editeur de données de Stata
Les variables et les observations sont reprises, respectivement, en colonne et en ligne. Il convient de faire
remarquer que, sous l’éditeur de données de Stata, les caractères apparaissent en rouge et les variables
numériques en noir.
I.1.6. Décrire les données sous Stata
La commande describe
Pour avoir une description générale des données (voir annexe 3) et le format pour chaque variable sur
Stata, la commande à saisir est describe, en validant, on a :
Note: dataset has changed since last savedSorted by: newspaperread~k byte %8.0g Newspaper readership (times/wk)heightin byte %8.0g Height (in)averagescoreg~e byte %8.0g Average score (grade)sat int %8.0g SATage byte %8.0g Agecountry str9 %9s Countrymajor str8 %9s Majorstudentstatus str13 %13s Student Statusgender str6 %9s Genderstate str14 %14s Statecity str14 %14s Cityfirstname str6 %9s First Namelastname str5 %9s Last Nameid byte %8.0g ID variable name type format label variable label storage display value size: 2,580 (99.9% of memory free) vars: 14 obs: 30 Contains data
. describe
7
La commande list
La commande list, toute seule, donne l’ensemble des données de façon similaire à browse mais sur la fenêtre
résultat. Il est évident que cela n’a de sens que si les variables sont peu nombreuses et les données réduites. Mais
il est possible d’utiliser list suivi de la variable d’intérêt.
List age
Le resulat est la suite de toutes les observations pour cette variable. Mais il est possible aussi de demander
uniquement quelques observations. Ainsi pour les 5 premières observations :
Ou bien les 5 dernières observations :
La commande summarize
Elle affiche le nombre d’observations, la moyenne, l’écart-type, et les valeurs extremes. Si on souhaite plus
de précision, il suffit de rajouter une option detail.
5. 37 4. 33 3. 26 2. 19 1. 30 age
. list age in 1/5
30. 19 29. 30 28. 20 27. 20 26. 28 age
. list age in -5/l
99% 39 39 Kurtosis 1.92367995% 38 38 Skewness .528934890% 35 37 Variance 47.275% 30 33 Largest Std. Dev. 6.87022650% 23 Mean 25.2
25% 19 18 Sum of Wgt. 3010% 18 18 Obs 30 5% 18 18 1% 18 18 Percentiles Smallest Age
. su age, detail
La commande tabulate
Elle donne le nombre d’observations et la fréquence de chaque valeur de la variable. Elle peut donc etre
utilisée pour regarder la distribution d’une variable. Avec deux variables, elle présente un tableau croisé
souvent très utile.
I.1.7. Travailler sur les données sous Stata
I.1.7. 1. Réorganiser les données
La commande rename
Le premier travail d’un chercheur est souvent de nettoyer son fichier et pour cela, il est parfois nécessaire
de renommer les variables sous des noms plus pratiques. La commande rename (ren) permet de changer
le nom de la variable.
rename agedt age
Les commandes recode et replace
Le codage des variables n’est pas forcément optimal et parfois faux. L’utilisation de la commande recode
permet de remédier à ces problèmes.
recode marital 1=3 si par exemple le code pour célibataire devrait être 3 au lieu de 1
recode salaire 99999=. Si par exemple le codage du salaire donne 99999 en cas d’absence de
réponse. Le point est considré comme une observation manquante.
Avec une variable texte (string), il faut utiliser la commande replace et la commande logique if :
replace pays= " RD Congo" if pays==" Zaïre"
Les commandes keep et drop
Pour travailler sur une base de données pratique, il sera nécessaire de supprimer les variables inutiles ou
les observations non concernées par les objectifs de l’étude. La commande keep permet de garder et drop
de jeter. On les utilise alternativement selon le nombre des variables à garder ou à jeter.
. keep age salaire pays marital
. drop age15 salred salaire150 fdsrt azerty
Avec les observations et les commandes logiques, il est possible de préciser ce que l’on veut effacer en le
conditionnant à la valeur d’autres variables. Par exemple, on garde les plus de 15 ans :
Total 10 10 10 30 Male 7 2 6 15 Female 3 8 4 15 Gender Econ Math Politics Total Major
. tabulate gender major
Total 30 100.00 Male 15 50.00 100.00 Female 15 50.00 50.00 Gender Freq. Percent Cum.
. tabulate gender
9
Keep if age>=15
Ou bien on supprime les individus nés en 1973 et 2005 :
drop if naissance==1973 | naissance==2005
Une commande importante sous Stata est _n qui donne le rang de l’observation, ainsi que _N qui désigne
le nombre d’observation dans la base de données. Ainsi, si vous voulez supprimer les 15 premières
observations de la variable « âge », il suffit de :
drop age if _n<=15 ou pour supprimer la dernière observation : drop age if_n==_N
Les commandes sort et by
La commande sort classe les données par ordre croissant. Il est possible de préciser les variables selon
lesquelles le classement peut être effectué :
. sort sexe age
Cette commande va classer les observations par sexe (d’abord les femmes en numéro 0 et puis
les hommes en numéro 1, par exemple) puis au sein de chaque sexe par âge (les femmes et les enfants
d’abord). On peut utiliser la commande gsort pour effectuer des classements dans des ordres croissant ou
décroissant. Un + ou un – vient donner le sens du classement au sein de chaque variable.
Cela classe d’abord par sexe puis par âge décroissant.
Le processus by… : qui doit suivre obligatoirement un classement avec sort permet d’utiliser la plupart des
commandes pour chaque valeur de la variable indiquée par by. Voici donc quelques exemples pour
comprendre le principe :
10. Female 19 9. Female 19 8. Female 20 7. Female 21 6. Female 21 5. Female 25 4. Female 30 3. Female 31 2. Female 33 1. Female 38 gender age
. list gender age in 1/10
. gsort gender -age
On obtient ainsi la distribution par major d’abord pour les femmes, puis pour les hommes. Cela revient en
fait à faire successivement les commandes1 :
. tabulate major if sexe==0
. tabulate major if sexe==1
I.1.7. 2. Réorganiser les données
Les commandes generate, egen et replace
Les deux commandes principales pour créer des variables sont generate et egen. La commande generate
est la plus simple, utilisée pour toutes les manipulations algébriques des données et egen (l’abréviation de
extended generate) sert plutôt pour les créations des variables avec des combinaisons des moyennes,
sommes, médianes, etc.
Quelques exemples pour évoquer les manipulations algébriques :
gen age2=age^2 (on crée la variable âge au carré)
gen lnsalaire=ln(salaire) (on crée la variable logarithme de base népérien du salaire)
gen id=_n (on crée la variable id nombre d’observation)
Quelques exemples d’utilisation de la variable egen :
. egen popmondiale = sum(pop), by(année) /* on crée la variable population mondiale par
année*/
. egen moypop= mean(pop) /* on crée la variable population moyenne par année*/
. egen maxpop= max(pop) /* on crée la variable valeur de la plus large population*/
. egen difference= diff(pop1 pop2) /* on crée la variable muette é g a l e à 1 si les deux va-
riables sont différente et 0 sinon*/
. egen moyenne= rmean(pop1 pop2) /* on crée la variable moyenne entre plusieurs variables, pour
chaque observation*/
. egen medpop= median(pop) /* on crée la variable population médiane par année*/
. egen sdpop= sd(pop) /* on crée la variable écart-type de la population par a n n é e */
1 Lorsque la variable prend plus de 2 valeurs, l’utilisation de by est donc très économique.
Total 15 100.00 Politics 6 40.00 100.00 Math 2 13.33 60.00 Econ 7 46.67 46.67 Major Freq. Percent Cum.
-> gender = Male
Total 15 100.00 Politics 4 26.67 100.00 Math 8 53.33 73.33 Econ 3 20.00 20.00 Major Freq. Percent Cum.
-> gender = Female
. by gender: tabulate major
. sort gender
11
Enfin la commande replace permet de modifier une variable déjà existante :
. replace salaire= salaire/6.55957 /* on crée la variable salaire en Euros*/
. replace age=99 if age>=100
Lorsqu’on crée une nouvelle variable, il est souvent préferable de préciser la définition de cette
variable sous la forme d’un label :
. label variable sdpop "ecart-type de la population"
I.1.7. 2. Créer des variables avec retard
Avant toute chose si vous disposez de données temporelles, il faut utiliser la commande tsset qui permet
de déclarer une variable comme une série temporelle :
gen t =_n
tsset t
Les variables retardées pourront être créées automatiquement sous la forme de L.nomdevariable pour
un retard et L2.nomdevariable pour deux retards.
I.1.7. 3. Passer de variables textes à des variables numériques
Deux cas de figure peuvent se présenter : soit il s’agit des variables numériques per se (comme âge,
salaire, etc.) mais qui sont stockées en string (texte), et alors il suffit d’utiliser la commande destring :
destring age, replace
destring age, gen(age_numerique)
L’autre cas de figure est une variable string par nature (comme pays) que vous souhaitez coder en
numérique. Dans ce cas, les commandes encode pour passer en numérique et decode pour revenir en
string, seront nécessaire :
encode pays, gen(pays1)
decode pays1, gen(pays)
17
II. Analyse statistique et économétrique des données
II.1. Analyse statistique des données sous STATA
Il n’est pas inutile de rappeler ici que la quasi totalité des traitements que nous allons
réaliser ici peuvent être effectués avec d’autres logiciels statistiques et ne sont pas
spécifiques à STATA. Si la syntaxe diffèrera selon les logiciels, la démarche d’analyse reste
identique.
II.1.1. Types de variables
Avant de rentrer dans le processus d’analyse, il est nécessaire de considérer les catégories
de variables existantes dans la mesure où elles se traitent de façon différente. On
considère classiquement deux catégories de variables :
Les variables qualitatives : elles fournissent une information sur une caractéristique
donnée comme le genre, le niveau de vie, la possession de manuels scolaires. On
distingue les variables dichotomiques qui prennent seulement deux valeurs et les variables
polytomiques qui prennent plus de deux valeurs. Par exemple, dans notre fichier (voir
annexe), nous avons la variable sexe1 qui prend la valeur 0 quand l’étudiant est un garçon
et 1 quand c’est une fille, il s’agit d’une variable dichotomique. L'option generate est très
utile car elle permet de créer une variable indicatrice correspondant a chacune des
modalités. Ici, on crée 2 variables nommées sexe1 et sexe2 :
Par contre, la variable major qui décrit le domaine d’étude, prend trois valeurs 1, 2 et 3.
Total 30 100.00 Male 15 50.00 100.00 Female 15 50.00 50.00 Gender Freq. Percent Cum.
. tabulate gender, gen (sexe)
Total 30 100.00 1 15 50.00 100.00 0 15 50.00 50.00 ale Freq. Percent Cum.gender==Fem
. tab sexe1
Les variables quantitatives : elles permettent de mesurer une grandeur comme un
score à un test, l’âge, le nombre d’années d’expérience professionnelle, etc. Elles prennent
généralement un grand nombre de valeurs. On peut aussi faire le regroupement des
variables continues sous des intervalles choisis. On peut, par exemple, regrouper la
variable « âge » en trois sous-groupes suivants : âge compris entre 18 et 19, entre 20 et
29, et entre 30 et 39. Les options egen et cut/group permettent de créer une nouvelle
variable contenant le nouveau découpage des modalités. Sans spécifier cette option, âge
est remplacée par la variable nouvellement codée. Notre exemple fait trois découpages. Le
premier commence à 18 et se termine avant 20, le second commence à 20 et se termine
avant 30, le troisième commence à 30 et se termine avant 40.
Total 30 100.00 3 10 33.33 100.00 2 10 33.33 66.67 1 10 33.33 33.33 codemajor Freq. Percent Cum.
. tab codemajor
(codemajor: 30 changes made). recode codemajor 104=1 105=2 106=3
10 106 10 105 10 104 tabulation: Freq. Value
unique values: 3 missing .: 0/30 range: [104,106] units: 1
type: numeric (int)
codemajor (unlabeled)
. codebook codemajor
Total 30 100.00 Politics 10 33.33 100.00 Math 10 33.33 66.67 Econ 10 33.33 33.33 Major Freq. Percent Cum.
. tab major
Total 30 100.00 30 11 36.67 100.00 20 9 30.00 63.33 18 10 33.33 33.33 agegroups2 Freq. Percent Cum.
. tab agegroups2
. browse
. egen agegroups2=cut(age), at(18, 20, 30, 40)
19
II.1.2. Analyse descriptive
Comme son nom l’indique, il s’agit avant tout de décrire les données dont nous disposons.
Elle peut apporter des informations importantes sur la situation d’une étude quand
l’échantillon dont on dispose est représentatif. Ce type d’analyse peut également soulever
certaines questions de recherche auxquelles l’analyse causale devra répondre. Nous allons
ici présenter quelques exemples sur la façon de procéder, il ne faut toutefois pas perdre de
vue que l’analyse descriptive si elle n’est pas nécessairement exhaustive doit passer en
revue systématiquement l’ensemble des variables d’intérêt pour une étude. Il s’agit d’un
premier questionnement des données. Utiliser la commande summarize pour avoir
quelques indicateurs pour l’analyse descriptive.
Il est à noter que les zéros indiquent que la variable est un caractère.
Variables qualitatives
En ce qui concerne les variables qualitatives, la description passe par la fréquence de telle
ou telle caractéristique dans la population. On peut, par exemple, s’interroger sur la
proportion de filles parmi les étudiants, ou bien la proportion d’étudiants américains. C’est
l’instruction tabulate (ou son abréviation tab) qui permet de calculer les fréquences
d’apparition des modalités d’une variable discrète.
newspaperr~k 30 4.866667 1.279368 3 7 heightin 30 66.43333 4.658573 59 75averagesco~e 30 80.36667 10.11139 63 96 sat 30 1848.9 275.1122 1338 2309 age 30 25.2 6.870226 18 39 country 0 major 0studentsta~s 0 gender 0 state 0 city 0 firstname 0 lastname 0 id 30 15.5 8.803408 1 30 Variable Obs Mean Std. Dev. Min Max
. summarize
Le tableau précédent nous indique qu’il y a 30 étudiants dans notre échantillon dont 10 ont
un major en économie représentant 33% des étudiants (fréquence relative). « Cum. » est
la fréquence cumulée en ordre croissant de valeurs, par exemple, 66.67% des étudiants
ont un diplôme en économie ou en mathématique. On peut demander à Stata de faire la
même chose pour plusieurs variables, ainsi :
Ce tableau montre que 6 étudiants lisent le journal 3 fois par semaine (20% de
l’échantillon), 9 étudiants le lisent 5 fois par semaine (30% de l’échantillon). 66.67% des
étudiants lisent le journal 3 ou 5 fois par semaine.
On peut également se poser d’autres questions comme de savoir la moyenne d’âge et la
moyenne de points obtenus par des filles, et la moyenne d’âge des étudiants ayant un
diplôme en mathématique, etc.
Total 30 100.00 Politics 10 33.33 100.00 Math 10 33.33 66.67 Econ 10 33.33 33.33 Major Freq. Percent Cum.
. tab major
Total 30 100.00 7 3 10.00 100.00 6 7 23.33 90.00 5 9 30.00 66.67 4 5 16.67 36.67 3 6 20.00 20.00 (times/wk) Freq. Percent Cum. readership Newspaper
. tab newspaperreadershiptimeswk
.
Male 15 27.2 82 Female 15 23.2 78.7333 Gender Freq. mean(age) mean(averag~e)
. table gender, contents(freq mean age mean averagescoregrade)
Politics 10 28.8 65.7 85.1 4.9 Math 10 23 65.2 79.8 5.3 Econ 10 23.8 68.4 76.2 4.4 Major Freq. mean(age) mean(heig~n) mean(aver~e) mean(news~k)
. table major, contents(freq mean age mean heightin mean averagescoregrade mean newspaperreadershiptimeswk)
21
La moyenne d’âge des filles est de 23 ans, pour les garçons, la moyenne d’âge est de 27
ans ; la moyenne de point obtenu par les filles est de 78 et 82 pour les garçons ; les
étudiants ayant fini en mathématique ont une moyenne d’âge de 23 ans, un poids moyen
de 65.2 (in), un point moyen de 79.8 et lisent en moyenne 5 fois un journal par semaine.
Variables quantitatives
Quand on veut décrire des variables quantitatives, on s’intéresse principalement à leurs
caractéristiques de valeur centrale (médiane, moyenne) et à leurs caractéristiques de
dispersion (variance, écart type). On peut également avoir recours à des graphiques pour
visualiser les distributions des variables. Sous STATA, on utilisera l’instruction summarize
(sum). La commande summarize possède l'option détail qui permet d'obtenir plus de
statistiques descriptives (par exemple certains quantiles).
L'option detail permet une description plus précise des variables continues incluant
notamment les coefficients d'asymétrie (la valeur de skewness est de 0 pour une
distribution normale) et d'aplatissement (la valeur de kurtosis est de 3 pour une
distribution normale), les quatre valeurs les plus faibles (smallest) et les plus élevées
(largest) et différents percentiles dont la médiane (percentile = 50%). Les chiffres ci-
dessus montrent une distribution asymétrique à droite, la médiane (23) est inférieure à la
moyenne (25.2) et le coefficient d'asymétrie est positif. Par ailleurs, le coefficient
d'aplatissement ou de concentration est de 1.92 ce qui montre une distribution peu
concentrée (distribution platykurtique).
On peut aussi utiliser la commande inspect pour identifier quelques données atypiques
(outliers). Ces variables peuvent avoir une influence sur le calcul des statistiques
descriptives. Nous utilisons un exemple sur les variables âge et SAT scores.
99% 39 39 Kurtosis 1.92367995% 38 38 Skewness .528934890% 35 37 Variance 47.275% 30 33 Largest Std. Dev. 6.87022650% 23 Mean 25.2
25% 19 18 Sum of Wgt. 3010% 18 18 Obs 30 5% 18 18 1% 18 18 Percentiles Smallest Age
. summarize age, detail
Décider que telles observations sont atypiques est généralement une décision arbitraire
dépendant de chaque étude. Supposons que nous voulons prendre une décision d’enlever
les observations inferieures au premier percentile et supérieures au 99ème percentile,
nous pouvons procéder comme suit :
(30 unique values)1338 2309 30 # # # # # Missing - # # # # Total 30 30 - # # # # # # Positive 30 30 - # Zero - - - # Negative - - - Total Integers Nonintegers sat: SAT Number of Observations
. inspect sat
(13 unique values)18 39 30 # # # # # Missing - # # Total 30 30 - # # Positive 30 30 - # Zero - - - # Negative - - - Total Integers Nonintegers age: Age Number of Observations
. inspect age
23
Les données percentiles identifiées sont donc r(p1)= 18 et r(p99)= 39 (ici, Stata les
sauvegarde comme des scalaires). On pourra ensuite utiliser la commande drop pour
enlever les données atypiques : drop if age < r(p1) | age > r(p99).
Pour les statistiques descriptives (les mesures de position telles que la moyenne et la
médiane et les mesures de dispersion telles que la variance et l’écart-type), de toutes les
variables continues de notre fichier, on peut utiliser la commande tabstat :
On peut aussi obtenir ces statistiques descriptives pour chaque sous-groupe (exemple,
gender, âge, etc.) :
.
r(p99) = 39 r(p95) = 38 r(p90) = 35 r(p75) = 30 r(p50) = 23 r(p25) = 19 r(p10) = 18 r(p5) = 18 r(p1) = 18 r(max) = 39 r(min) = 18 r(sum) = 756 r(kurtosis) = 1.923679454391617 r(skewness) = .5289347736921489 r(sd) = 6.870225614927067 r(Var) = 47.2 r(mean) = 25.2 r(sum_w) = 30 r(N) = 30scalars:
. return list
.
99% 39 39 Kurtosis 1.92367995% 38 38 Skewness .528934890% 35 37 Variance 47.275% 30 33 Largest Std. Dev. 6.87022650% 23 Mean 25.2
25% 19 18 Sum of Wgt. 3010% 18 18 Obs 30 5% 18 18 1% 18 18 Percentiles Smallest Age
. sum age, detail
max 39 2309 96 75 7 min 18 1338 63 59 3 range 21 971 33 16 4 N 30 30 30 30 30variance 47.2 75686.71 102.2402 21.7023 1.636782 sd 6.870226 275.1122 10.11139 4.658573 1.279368 p50 23 1817 79.5 66.5 5 mean 25.2 1848.9 80.36667 66.43333 4.866667 stats age sat averag~e heightin newspa~k
. tabstat age sat averagescoregrade heightin newspaperreadershiptimeswk, s(mean median sd var count range min max)
II.1.3. Représentation graphique des données sous Stata
Il existe plusieurs instructions pour faire des graphiques dans Stata. L’instruction générale
s’écrit comme suit :
graph_command varlist [if] [in] [weight] [, type_specific_options general_options]
Représentation graphique pour les variables quantitatives discrètes ou
continues
La fonction graph dans la barre des tâches peut toujours offrir une alternative aux
instructions plus complexes et moins intuitives. Voici donc quelques exemples pour notre
fichier :
Histogramme : histogram age, frequency title(Figure 2)
39 2309 96 75 7 18 1338 63 59 3 21 971 33 16 4 30 30 30 30 30 47.2 75686.71 102.2402 21.7023 1.636782 6.870226 275.1122 10.11139 4.658573 1.279368 23 1817 79.5 66.5 5 Total 25.2 1848.9 80.36667 66.43333 4.866667 39 2279 96 75 7 18 1434 65 63 3 21 845 31 12 4 15 15 15 15 15 45.88571 61046.14 92.42857 15.55238 1.695238 6.773899 247.0752 9.613978 3.943651 1.302013 28 1787 82 71 4 Male 27.2 1826 82 69.46667 4.533333 38 2309 95 68 7 18 1338 63 59 3 20 971 32 9 4 15 15 15 15 15 43.31429 94609.74 113.6381 9.685714 1.457143 6.581359 307.587 10.66012 3.112188 1.207122 20 1821 79 63 5Female 23.2 1871.8 78.73333 63.4 5.2 gender age sat averag~e heightin newspa~k
by categories of: gender (Gender)Summary statistics: mean, p50, sd, variance, N, range, min, max
> ender). tabstat age sat averagescoregrade heightin newspaperreadershiptimeswk, s(mean median sd var count range min max) by(g
25
Le graphique confirme le constat précédent, on voit que les âges faibles sur la gauche du
graphique sont plus fréquents que les âges élevés d'où l'asymétrie remarquée
précédemment. On peut aussi utiliser l’histogramme pour déterminer la nature d’une
distribution, particulièrement la distribution normale. La syntaxe est : histogram age,
frequency normal
Le diagramme en boîtes : graph box age, over( major) yline(5.1)
05
10
15
Fre
que
ncy
20 25 30 35 40Age
Figure 2
05
10
15
Fre
que
ncy
20 25 30 35 40Age
Représentation graphique pour les variables qualitatives dichotomiques
ou polytomiques
On peut utiliser un diagramme circulaire avec la commande :
20
25
30
35
40
Ag
e
Econ Math Politics
50%50%
Female Male
diagramme circulaire pour gender
33.33%
33.33%
33.33%
Econ Math
Politics
diagramme circulaire pour major
27
Pour visualiser les données qualitatives dichotomiques, on peut aussi utiliser la commande
catplot. Puisque cette commande est un programme défini par l’utilisateur, il faudra donc
l’installer : ssc install catplot
catplot major agegroups, percent(agegroups) blabel(bar)
. graph pie, over(gender) plabel(1 percent) plabel(2 percent) title(diagramme circulaire pour gender)
. graph combine graph1 graph2
. graph pie, over(major) plabel(1 percent) plabel(2 percent) plabel(3 percent) title(diagramme circulaire pour major)
70
20
20
20
30
40
10
50
40
0 20 40 60 80percent
30
20
18
Politics
Math
Econ
Politics
Math
Econ
Politics
Math
Econ
catplot major agegroups, percent(major gender) blabel(bar) by(gender)
graph hbar (mean) age (mean) averagescoregrade, blabel(bar) by(, title(gender
and major)) by(gender major, total)
50
25
50
12.5
33.3333
62.5
66.6667
83.3333
28.5714
100
42.8571
16.6667
28.5714
0 20 40 60 80 100 0 20 40 60 80 100
30
20
18
30
20
18
Politics
Math
Econ
Politics
Math
Econ
Politics
Math
Econ
Politics
Math
Econ
Politics
Math
Econ
Politics
Math
Econ
Female Male
percentGraphs by Gender
70.3333
19
79
23
84.5
26.75
78.7143
25.8571
83
23
85.5
30.1667
80.3667
25.2
0 20 40 60 80 0 20 40 60 80
0 20 40 60 80
Female, Econ Female, Math Female, Politics
Male, Econ Male, Math Male, Politics
Total
mean of age mean of averagescoregrade
Graphs by Gender and Major
gender and major
29
graph hbar (mean) age averagescoregrade newspaperreadershiptimeswk,
over(gender) over(studentstatus, label(labsize(small))) blabel(bar) title(Student
indicators) legend(label(1 "Age") label(2 "Score") label(3 "Newsp read"))
II.2. Analyse bivariée
Après avoir étudié indépendamment différentes variables, il convient de les étudier
conjointement pour mettre en exergue certaines relations. Il faut cependant, d’ores et
déjà, rappeler que l'analyse bivariée ne prouve pas une relation causale. Aussi, il sied de
noter que l'approche de la relation entre deux variables diffère selon qu'il s'agit de
variables continues ou discrètes.
II.2.1. Relation entre deux variables à travers un graphique sous STATA
Une toute première approche pour identifier une éventuelle relation entre deux variables
est de faire un graphique. A titre d'exemple, nous avons ici voulu voir la relation entre SAT
score de début d'année et l’âge.
3.8
83.8
19.4
5.3
78
19.1
4.9
81.1
31.1
5
80.2
31.4
0 20 40 60 80
Undergraduate
Graduate
Male
Female
Male
Female
Student indicators
Age Score
Newsp read
La commande scatterplots permet d’explorer les relations entre les variables et d’identifier
les données atypiques (outliers). La syntaxe est : twoway scatter sat age, mlabel(last) ||
lfit sat age.
Le graphique précédent nous permet de constater qu'il y a une faible relation négative
entre le SAT score et l’âge, c'est-à-dire que plus on a eu un score élevé en SAT score et
moins il y a de chance que l’individu soit âgé. Toutefois, le nuage de point indique que
cette relation est loin d'être parfaite car on voit que pour un même âge, les SAT scores
peuvent varier de façon importante. Un autre exemple consisterait par exemple à faire la
même représentation selon les diplômes obtenus (par catégorie) : twoway scatter sat age,
mlabel(last) by(major, total).
DOE01
DOE02
DOE01
DOE02 DOE03
DOE04
DOE05
DOE03DOE04
DOE05
DOE06
DOE06
DOE07
DOE08
DOE07
DOE08
DOE09
DOE10DOE11
DOE09
DOE12
DOE10
DOE13
DOE14
DOE11
DOE12
DOE13
DOE15DOE14
DOE15
140
01
60
01
80
02
00
02
20
02
40
0
20 25 30 35 40Age
SAT Fitted values
31
II.2.2. Relation entre une variable quantitative et une variable qualitative
L'exemple type est de s'interroger sur l’âge des étudiants selon leur genre ou encore selon
leur domaine d’étude. On commencera alors par calculer le score moyen pour chaque cas
de figure.
DOE02 DOE03DOE04DOE06DOE08
DOE12
DOE10
DOE12
DOE15
DOE15DOE02
DOE01
DOE04
DOE05
DOE06
DOE07
DOE09
DOE11
DOE14
DOE13
DOE01
DOE05
DOE03
DOE07DOE08
DOE10
DOE09
DOE13
DOE11
DOE14 DOE01
DOE02
DOE01
DOE02 DOE03DOE04
DOE05
DOE03DOE04
DOE05
DOE06
DOE06DOE07DOE08
DOE07
DOE08
DOE09
DOE10DOE11
DOE09
DOE12
DOE10DOE13
DOE14
DOE11
DOE12
DOE13
DOE15 DOE14
DOE15
100
01
50
02
00
02
50
01
00
01
50
02
00
02
50
0
20 25 30 35 40 20 25 30 35 40
Econ Math
Politics Total
SA
T
AgeGraphs by Major
age 15 27.2 6.773899 18 39 Variable Obs Mean Std. Dev. Min Max
-> gender = Male
age 15 23.2 6.581359 18 38 Variable Obs Mean Std. Dev. Min Max
-> gender = Female
. by gender: sum age
. sort gender
On constate que les filles ont un âge moyen légèrement inférieur à celui des garçons (23
ans contre 27 ans). L'écart entre les étudiants ayant un diplôme en politique et ceux en
mathématique est plus marqué (28.8 contre 23). Doit-on prendre ces écarts directement
et conclure à des différences entre garçons et filles et entre les diplômés en politique et
mathématique? La réponse est non, pour pouvoir conclure à la différence entre deux
moyennes, il faut avoir recours à un test de comparaison de moyenne.
Le principe du test est de voir si la différence entre les deux moyennes est nulle (Ho). Pour
cela on va tester si la différence est différente de 0, si c'est le cas on rejettera l'hypothèse
Ho sinon on l'acceptera. Ici on a P > |t| = 0.1121, cela signifie qu'on a 11 chances sur 100
age 10 28.8 5.80804 19 39 Variable Obs Mean Std. Dev. Min Max
-> major = Politics
age 10 23 7.102425 18 38 Variable Obs Mean Std. Dev. Min Max
-> major = Math
age 10 23.8 6.779053 18 37 Variable Obs Mean Std. Dev. Min Max
-> major = Econ
. by major: sum age
. sort major
Pr(T < t) = 0.0561 Pr(|T| > |t|) = 0.1121 Pr(T > t) = 0.9439 Ha: diff < 0 Ha: diff != 0 Ha: diff > 0
Ho: diff = 0 degrees of freedom = 28 diff = mean(Female) - mean(Male) t = -1.6403 diff -4 2.438579 -8.995202 .9952023 combined 30 25.2 1.254326 6.870226 22.63462 27.76538 Male 15 27.2 1.749013 6.773899 23.44874 30.95126 Female 15 23.2 1.6993 6.581359 19.55536 26.84464 Group Obs Mean Std. Err. Std. Dev. [95% Conf. Interval] Two-sample t test with equal variances
. ttest age, by (gender)
33
de se tromper si on affirme que la différence entre les deux moyennes est comprise entre
-8.995202 et 0.9952023. Il faut savoir qu'en général au-delà de 5 chances sur 100, on
considère que l'on ne peut accepter l'hypothèse. Ici, on peut donc retenir qu'il n'y a pas de
différence significative entre l’âge moyen des garçons et celui des filles.
Voyons pour les domaines d’étude (politics, math and Econ) :
Nous appliquons l’analyse de variance car nous voulons comparer plusieurs moyennes (au
– delà de deux). L’hypothèse nulle est : 𝐻0: 𝜇𝑃 = 𝜇𝑀 = 𝜇𝐸 contre l’hypothèse alternative 𝐻1:
au moins une de ces égalités est fausse. Avec 𝜇𝑃=moyenne d’âge des étudiants ayant un
diplôme en politique, 𝜇𝑀= moyenne d’âge des étudiant ayant un diplôme en mathématique
et 𝜇𝐸= moyenne d’âge des étudiants ayant un diplôme en économie, on Prob > F =
0.1219, on est donc amené à accepter l’hypothèse sur l’égalité d’âge selon les diplômes
obtenus.
II.2.3. Relation entre deux variables qualitatives
Il est possible de décrire deux variables discrètes dans un seul tableau. On utilise alors un
test de chi2 pour vérifier si les variables sont ou non indépendantes dans un tableau de
contingence. L’hypothèse nulle est que les deux variables sont indépendantes (pas de
relation). Cette hypothèse est rejetée lorsque la p-value est inférieure à 0.05 (pour un
degré de confiance de 95%). Prenons comme exemple le genre (gender) et le domaine
d’étude (major) :
Bartlett's test for equal variances: chi2(2) = 0.3671 Prob>chi2 = 0.832
Total 1368.8 29 47.2 Within groups 1171.2 27 43.3777778Between groups 197.6 2 98.8 2.28 0.1219 Source SS df MS F Prob > F Analysis of Variance
. oneway age major
Pearson chi2(2) = 5.6000 Pr = 0.061
Total 10 10 10 30 Male 7 2 6 15 Female 3 8 4 15 Gender Econ Math Politics Total Major
. tab gender major, chi2
Ici, on a 6 chances sur 100 de se tromper en affirmant que les deux variables ne sont pas
indépendantes, c’est-à-dire qu’il n’y a pas un lien entre le genre et le domaine d’étude
(les deux variables sont donc indépendantes).
II.3. Analyse causale ou économétrique sous STATA
La question de la causalité est aussi redoutable qu'incontournable, c'est pourquoi elle est
abordée ici. Il semble important effectivement de comprendre la différence de statut entre
ce type d'analyse et les analyses précédentes. Toutefois, on ne peut pas ici traiter de façon
complète cet aspect. On peut penser la causalité par rapport l’expérimentation telle que la
pratiquent les sciences expérimentales : on répète la même expérience plusieurs fois, mais
en modifiant seulement une des conditions de l’expérience. Si on constate que les
résultats varient systématiquement en fonction de cette condition, on infère que cette
condition a un effet causal donné sur les résultats.
En sciences sociales, l’expérimentation n’est guère possible. C’est par l’analyse
comparative de situations existantes qu’on essaie de mettre en évidence des relations
causales. Même si expérimentation et analyse comparative apparaissent
fondamentalement différentes, il reste intéressant de penser l’analyse comparative par
rapport à l’expérimentation idéale. En effet, l’analyse comparative fait un double effort
pour se rapprocher des conditions de l’expérimentation : le choix d’un échantillon
comprenant une multiplicité d’individus fait écho à la répétition de l’expérience ; et la
reconstitution de conditions «toutes choses égales par ailleurs» est l’analogue du
contrôle des conditions de l’expérimentation.
Pour le cas par exemple du processus d’acquisition, il est important de rappeler qu'une
multitude de facteurs y interviennent simultanément. Or, si l'on veut mesurer l'effet d'un
facteur donné il faut être en mesure de prendre en compte l'effet des autres facteurs afin
de s'assurer que l'on mesure bien l'effet du seul facteur qui nous intéresse (on parle d'effet
net). Par exemple, dans la comparaison des classes nombreuses et peu nombreuses on va
constater que ces classes diffèrent par leur localisation, par leur public d’élèves, par les
moyens éducatifs mis en œuvre. On va mesurer les effets de ces différences. On va ôter
ces effets de la différence de résultats mesurée entre classes nombreuses et classes peu
nombreuses. La différence restante sera attribuée à la taille de classe.
Pour cela, on a recours à des analyses statistiques multivariées comme la régression
multiple. Il y a en effet une difficulté pratique : pour mesurer l’effet causal de la différence
de tailles de classe, nous devons connaître l’effet causal des autres variables. Mais la
réciproque est vraie : pour connaître l’effet causal des autres variables, nous devons
35
connaître l’effet causal des différences de taille de classe. Prenons par exemple l’effet
causal du milieu rural : nous ne pouvons le déduire de la comparaison simple des résultats
en milieu urbain et en milieu rural. Car on pourrait objecter que les classes de milieu rural
sont aussi en général moins nombreuses, et que cela trouble la comparaison. C’est
pourquoi la régression multivariée identifie de façon simultanée les différents effets.
Il faut donc élaborer un modèle statistique intégrant de multiples variables, il se pose donc
la question du choix des variables. On introduira les variables nécessaires pour tester si
ces effets existent de façon significative, et quelle est leur valeur. On introduira les
variables nécessaires, ni plus, ni moins :
pas moins, car oublier une variable pertinente c’est se heurter à l’objection de la
variable manquante qui vient fausser l’estimation des effets des autres variables.
pas plus, car ce serait demander trop des données existantes que de permettre
d’identifier simultanément les effets de dizaines de variables à partir de
configurations existantes forcément en nombre limité. En particulier, quand deux
variables visent le même concept ou semblent étroitement liées, on n’introduira que
l’une des deux dans le modèle.
Concrètement, le modèle se présente comme une grande équation où figurent, à gauche,
la variable à expliquer, et à droites les variables explicatives.
Il faut ici mettre en évidence deux logiques complémentaires dans l'élaboration des
modèles statistiques. L'objectif de ces modèles est d'expliquer au mieux la réalité, donc on
choisira, après les avoir testées, les variables qui apporteront le plus au pouvoir explicatif
du modèle.
Toutefois, une variable qui n'a pas d'effet significatif peut également s'avérer intéressante.
Par exemple, en matière de politique éducative, le fait que l'électricité n'ait pas d'impact
sur les apprentissages des élèves permettrait aux décideurs de ne pas prendre
prioritairement des mesures en faveur de l'électrification des écoles mais plutôt par
exemple en faveur de la dotation en manuels scolaires. L'élaboration d'un modèle est
toujours une alchimie complexe qui repose sur le contexte de l’étude, l'expérience du
modélisateur et aussi sur les éléments mis en évidence dans les analyses descriptives et
bivariées.
Le modèle de régression repose sur un certain nombre d’hypothèses :
H1. Linéarité : la relation entre y et les régresseurs est linéaire.
H2. Plein rang : il n’existe pas de relation linéaire exacte entre les variables
explicatives, et le rang de la matrice des variables explicatives est égal au nombre
des paramètres à estimer. Cette hypothèse est nécessaire pour l’estimation des
paramètres du modèle. En effet, l’indépendance linéaire des colonnes de X est une
condition nécessaire à l’unicité du vecteur β.2
H3. Exogénéité des variables indépendantes : la matrice des variables
explicatives est composée des variables certaines c.à.d. non aléatoires, en d’autres
termes, les variables indépendantes n’interviennent pas dans la prédiction de εi.
Cette hypothèse implique que les variables explicatives du modèle et les aléas sont
des variables indépendantes.
H4. Homoscédasticité et absence d’autocorrélation : la variance de εi est
constante et finie σ2 et εi n’est pas corrélé avec εj, pour i≠j.
Si cette hypothèse est vérifiée et que l’espérance des aléas est nulle, on dit que l’aléa
est un bruit blanc.3
H5. Données générées de manière exogène : les observations de variables
explicatives peuvent être un mélange de constantes et des variables aléatoires. Le
processus ayant généré les données est indépendant de celui qui a généré l’aléa, ceci
constitue une extension de H3.
H6. Distribution normale : la distribution du terme d’erreurs est normale.
II.3.1. Etude des cas : L’économie américaine de 1992 à 2002
L’analyse porte sur la performance de l’économie américaine de 1992 à 2002 (voire la
deuxième feuille du fichier student, pour les données). Nous avons donc collecté les
données annuelles sur le taux de croissance du PIB (gdpgr), le taux de croissance du PIB
per capita (gdpcapgr), le taux de croissance de la consommation privée (consgr), le taux
de croissance de l’investissement (invgr), le taux de croissance de la productivité du
travail dans les industries manufacturières (producgr), le taux de chômage (unemp), et le
taux d’inflation (inf). Les deux variables peuvent être considérées comme des variables
dépendantes. La consommation, l’investissement et la productivité peuvent être
considérés comme des facteurs qui augmentent le taux de croissance du PIB, par
conséquent ils doivent être affectés du signe positif dans le modèle. Finalement, le
chômage et l’inflation sont fortement corrélés, il faudra donc vérifier si l’un de deux(ou les
deux) peut être inclus dans ce modèle simpliste de croissance.
A. Analyse exploratoire des données
Une analyse exploratoire des données sous Stata nous donne les résultats suivants :
2 JOHNSTON J.et DINARDO J., Méthodes économétriques, 4e éd., Economica, Paris, 1997, pg.90
3 CADORET I.et alli., Econométrie appliquée, éd. DeBoeck, Bruxelles,
37
On peut aussi vérifier la relation entre les variables graphiquement. Par exemple, on
voudrait savoir comment la consommation et l’investissement sont corrélés avec le PIB
(les variables sont exprimées en taux de croissance), la commande utilisée sera donc :
Ce graphique présente les nuages de points pour chaque variable, avec l’investissement
relativement plus supérieur que les deux autres variables. On peut aussi combiner les
graphes dans une seule figure. Les commandes seront alors :
Twoway scatter gdpgr consgr, saving(part1)
twoway scatter gdpgr invgr, saving(part2)
twoway scatter gdpgr producgr, saving(part3)
producgr 11 4.309091 1.590883 1.9 7.2 inf 11 2.590909 .5204893 1.5 3.4 gdpcapgr 11 2.490909 1.048289 .7 4.2 unemp 11 5.327273 1.125247 4 7.5 invgr 11 6.954545 2.408885 3.3 10.7 consgr 11 3.645455 1.03476 2.4 5.3 gdpgr 11 3.463636 1.050974 1.5 5 year 11 1997 3.316625 1992 2002 Variable Obs Mean Std. Dev. Min Max
. summarize
24
68
10
1992 1994 1996 1998 2000 2002year
gdpgr consgr
invgr
twoway scatter unemp inf, saving(part4)
graph combine part1 part2 part3 part4, margin(10)
graph matrix gdpgr consgr invgr producgr unemp inf, half
12
34
5
gdp
gr
2 3 4 5 6consgr
12
34
5
gdp
gr
4 6 8 10 12invgr
12
34
5
gdp
gr
2 3 4 5 6 7producgr
45
67
8
une
mp
1.5 2 2.5 3 3.5inf
gdpgr
consgr
invgr
producgr
unemp
inf
0 5
2
4
6
2 4 6
4
6
8
10
4 6 8 10
2
4
6
8
2 4 6 8
4
6
8
4 6 8
1
2
3
39
B. Régression linéaire
Avant d’estimer un modèle de régression, il est recommandé avant tout de vérifier la
corrélation entre les différentes variables. Pour savoir si cette corrélation est significative,
on peut procéder à un test de nullité du coefficient de la corrélation (la commande est
alors pwcorr et de son option star (5) pour un seuil de signification de 5%).
Ce tableau indique par exemple que le PIB et le PIB per capita sont fortement corrélés (car
l’un intervient dans le calcul de l’autre) avec un coefficient statistiquement significatif de
0.989 mais chacun a un différent coefficient de corrélation avec le taux de chômage
0.4143 pour le taux de croissance du PIB per capita et 0.3035 pour le taux de croissance
du PIB, les deux coefficients n’étant pas statistiquement significatifs. L’inflation et le taux
de chômage ont un coefficient de corrélation positif et modeste (0.3590).
La croissance du PIB dépend de plusieurs variables en même temps. La corrélation nous
permet de tester les variables explicatives une par une, mais pas ensemble. Le modèle
linéaire, ou modèle des moindres carrés ordinaires permet d'estimer l'effet d'un facteur sur
la variable d'intérêt, "toute chose égale par ailleurs", c'est-a-dire en maintenant les autres
variables constantes, a leur moyenne pour les variables continues, à leur valeur dite de
référence pour les variables catégorielles. Il est préférable de choisir la catégorie la plus
représentée comme catégorie de référence.
Maintenant, commençons avec quelques régressions linéaires simples. Par exemple,
vérifions les régressions individuelles du taux de croissance du PIB avec les taux de
croissance de la consommation et de l’investissement.
inf -0.1012 -0.1230 -0.1198 -0.3090 -0.0832 0.3590 1.0000 unemp -0.3035 -0.4143 -0.4761 -0.3684 -0.5336 1.0000 producgr 0.5708 0.6003 0.7050* 0.5238 1.0000 invgr 0.9097* 0.8841* 0.8270* 1.0000 consgr 0.8394* 0.8347* 1.0000 gdpcapgr 0.9890* 1.0000 gdpgr 1.0000 gdpgr gdpcapgr consgr invgr producgr unemp inf
. pwcorr gdpgr gdpcapgr consgr invgr producgr unemp inf, star(5)
Dans le tableau de la régression à proprement parler, en haut à gauche apparaît la
variable qu'on cherche à expliquer (gdpgr). En dessous, la ou les variables explicatives et
la constante. Ici il n'y a que consgr (dans le premier modèle) et invgr (dans le deuxième
modèle) comme variable explicative, concrètement on essaie d'expliquer le taux de
croissance du PIB respectivement par le taux de croissance de la consommation et le taux
d’investissement. A chaque variable est associé un coefficient (coef) qui donne l'impact de
la variable explicative sur la variable expliquée. Par exemple ici, un accroissement d’une
unité dans le taux de consommation (consgr) se traduit par 0.82 accroissement dans le
taux du PIB. Nous avons également pour chaque variable son erreur type, son t de
Student qui nous permet de savoir quelle confiance accordée au coefficient. Si P>|t|>0.05
alors on dira que le coefficient n'est pas significatif dans le cas contraire il sera accepté.
Pour consgr, on a moins d'une chance sur 1000 de se tromper en disant que son
coefficient est compris entre 0.4362 et 1.268. Le coefficient est une valeur moyenne de
cet intervalle.
La statistique F teste l'hypothèse que tous les coefficients du modèle à l'exception de la
constante (_cons) sont nuls, elle est rejetée ici dans les deux régressions.
Le R² (R-squared) indique le pourcentage de variance expliquée par le modèle, c'est-à-dire
en quelque sorte la capacité du modèle à expliquer la réalité. Évidemment, plus le R² est
_cons .7032821 .4422039 1.59 0.146 -.2970526 1.703617 invgr .3969137 .0603774 6.57 0.000 .2603305 .5334969 gdpgr Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 11.0454545 10 1.10454545 Root MSE = .45993 Adj R-squared = 0.8085 Residual 1.90381048 9 .211534498 R-squared = 0.8276 Model 9.14164404 1 9.14164404 Prob > F = 0.0001 F( 1, 9) = 43.22 Source SS df MS Number of obs = 11
. regress gdpgr invgr
.
_cons .3558076 .6949943 0.51 0.621 -1.216379 1.927994 consgr .8525216 .1840263 4.63 0.001 .4362251 1.268818 gdpgr Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 11.0454545 10 1.10454545 Root MSE = .60217 Adj R-squared = 0.6717 Residual 3.26348251 9 .362609168 R-squared = 0.7045 Model 7.78197201 1 7.78197201 Prob > F = 0.0012 F( 1, 9) = 21.46 Source SS df MS Number of obs = 11
. regress gdpgr consgr
41
élevé et plus le modèle est performant. Cette mesure peut augmenter artificiellement
lorsqu'on ajoute des variables explicatives, même si celles-ci n'expliquent pas la variable
dépendante. Aussi, il est d'usage de lui préférer Le R² ajusté. Le R² ajusté (Adj R-squared)
tient compte des degrés de liberté et constitue une mesure plus précise. On constate ici
que le taux de croissance de la consommation permet d'expliquer à lui tout seul 70% de la
variance totale, ce qui souligne l'importance de la consommation dans un modèle de
croissance du PIB.
Pour une régression multiple, le résultat est le suivant :
Dans notre exemple, malgré un 𝑅2 élevé, toutes les variables explicatives, à l’exception du
taux d’investissement, ne sont pas statistiquement significatifs au niveau de 5%. Il y
évidemment quelques raisons liées à ces résultats (notamment la spécification du modèle,
la multicollinéarité, etc.)4.
Nous pouvons aussi faire une estimation log-linéaire après avoir transformé les variables
dans une échelle logarithmique (log naturel) :
gen lngdpgr= ln(gdpgr)
gen lnconsgr=ln(consgr)
gen lninvgr=ln(invgr)
gen lnproduc=ln(producgr)
4 Pour un approfondissement de ces problèmes, l’intéressé peut se référer au guide Laréq pour étudiants de
Tombola (2012a).
.
_cons -.8865854 1.492931 -0.59 0.578 -4.724287 2.951116 inf .3019558 .372596 0.81 0.455 -.6558326 1.259744 unemp .0551669 .1897954 0.29 0.783 -.4327176 .5430514 producgr .0490201 .1547288 0.32 0.764 -.3487228 .4467631 invgr .3448859 .1338048 2.58 0.050 .0009296 .6888422 consgr .1822094 .3605194 0.51 0.635 -.7445351 1.108954 gdpgr Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 11.0454545 10 1.10454545 Root MSE = .51695 Adj R-squared = 0.7581 Residual 1.33620731 5 .267241462 R-squared = 0.8790 Model 9.70924721 5 1.94184944 Prob > F = 0.0242 F( 5, 5) = 7.27 Source SS df MS Number of obs = 11
. regress gdpgr consgr invgr producgr unemp inf
gen lnunemp=ln(unemp)
gen lninf=ln(inf)
regress lngdpgr lnconsgr lninvgr lnproduc lnunemp lninf
On peut donc visualiser les valeurs prédites de la variable dépendante :
predict lngdpfit
twoway scatter lngdpfit year
_cons -.9912522 .787582 -1.26 0.264 -3.015796 1.033292 lninf .1184624 .2785439 0.43 0.688 -.5975574 .8344822 lnunemp .2009322 .3716735 0.54 0.612 -.7544849 1.156349 lnproduc .0950277 .1935535 0.49 0.644 -.4025174 .5925728 lninvgr .779761 .3081229 2.53 0.052 -.0122942 1.571816 lnconsgr .114882 .4666926 0.25 0.815 -1.08479 1.314554 lngdpgr Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 1.22407155 10 .122407155 Root MSE = .17286 Adj R-squared = 0.7559 Residual .149400242 5 .029880048 R-squared = 0.8779 Model 1.07467131 5 .214934262 Prob > F = 0.0247 F( 5, 5) = 7.19 Source SS df MS Number of obs = 11
. regress lngdpgr lnconsgr lninvgr lnproduc lnunemp lninf
.6.8
11
.21
.41
.6
Fitte
d v
alu
es
1992 1994 1996 1998 2000 2002year
43
predict lngdpres, resid
twoway scatter lngdpres year
II.3.2. Diagnostic du modèle linéaire
II.3.2. 1. Etude sur les résidus
L'inférence statistique relative à la régression (estimation par intervalle des coefficients,
tests d'hypothèses, etc.) repose principalement sur les hypothèses liées au terme d'erreur
ε qui résume les informations absentes du modèle. Il importe donc que l'on vérifie ces
hypothèses afin de pouvoir interpréter les résultats. Rappelons brièvement les hypothèses
liées au terme d'erreur :
- sa distribution doit être symétrique, plus précisément elle suit une loi normale ;
- sa variance est constante ;
- les erreurs 𝜀𝑖 (𝑖= 1, . . ., 𝑛) sont indépendantes.
Vérification de la normalité des résidus
Une fois que les résidus sont calculés (voire la commande predict), La vérification de la
normalité des résidus sous Stata s’effectue grâce aux commandes telles que kdensity,
qnorm et pnorm.
predict lngdpres, resid
kdensity lngdpres, normal
Comme le montre ce deux graphiques, il y a une petite déviation par rapport à la
distribution normale, néanmoins cette déviation semble être mineure. Pour une
01
23
4
Den
sity
-.4 -.2 0 .2 .4Residuals
Kernel density estimate
Normal density
kernel = epanechnikov, bandwidth = 0.0681
Kernel density estimate0
.00
0.2
50
.50
0.7
51
.00
Norm
al F
[(ln
gd
pre
s-m
)/s]
0.00 0.25 0.50 0.75 1.00Empirical P[i] = i/(N+1)
45
confirmation de nos résultats, nous pouvons utiliser un test formel plus rigoureux. Un de
ces tests est celui de Shapiro – Wilk, ce test est considéré dans la littérature comme l’un
des tests de conformité à la loi normale le plus fiable et le plus efficace, particulièrement
pour de petits échantillons [n ≤ 50].
Pour notre exemple, notre p-value est de 0.74334 largement supérieur à 0.05, nous ne
pouvons donc pas rejeter l’hypothèse de la normalité des résidus.
Vérification de l’autocorrélation des résidus
Lorsque nous travaillons avec des données longitudinales, la date définit naturellement
l'ordonnancement des observations. Il est important de vérifier que les résidus sont
produits de manière totalement aléatoire. Si l'on conclut au rejet de cette hypothèse, les
résidus sont produits par un processus quelconque, l'hypothèse d'indépendance des
erreurs est rejetée, la méthode des moindres carrés ordinaires n'est plus BLUE : elle est
certes non-biaisée, mais elle n'est plus à variance minimale, et la matrice de variance
covariance n'est plus estimée de manière convergente, les tests de significativité ne sont
plus opérants. La détection de l'autocorrélation des résidus peut s'effectuer visuellement à
l'aide du graphique des résidus. Elle peut également s'appuyer sur des techniques
statistiques. La plus connue est certainement le test de Durbin-Watson qui détecte une
forme particulière de l'autocorrélation (l’autocorrélation d’ordre 1).
lngdpres 11 0.95775 0.684 -0.654 0.74334 Variable Obs W V z Prob>z Shapiro-Wilk W test for normal data
. swilk lngdpres
Pour notre exemple, la valeur de DW de 2.798 nous indique qu’il y a absence
d’autocorrélation des erreurs (voire la table de Durbin-Watson pour une bonne lecture).
Vérification de l’homoscédasticité des résidus
On dit qu’il y a hétéroscédasticité lorsque l’hypothèse de la constance de l’erreur, émise
lors de la présentation de la méthode des moindres carrés ordinaires, est violée. La
conséquence directe de cette violation est que les estimateurs des MCO, bien que encore
non biaisés, ne sont plus efficients, puisque n’ayant plus une variance minimale. Et par
conséquent les t de Student et F de Fisher ne sont plus utilisables à des fins d’inférence.
Durbin-Watson d-statistic( 6, 11) = 2.79778
. dwstat
_cons -.9912522 .787582 -1.26 0.264 -3.015796 1.033292 lninf .1184624 .2785439 0.43 0.688 -.5975574 .8344822 lnunemp .2009322 .3716735 0.54 0.612 -.7544849 1.156349 lnproduc .0950277 .1935535 0.49 0.644 -.4025174 .5925728 lninvgr .779761 .3081229 2.53 0.052 -.0122942 1.571816 lnconsgr .114882 .4666926 0.25 0.815 -1.08479 1.314554 lngdpgr Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 1.22407155 10 .122407155 Root MSE = .17286 Adj R-squared = 0.7559 Residual .149400242 5 .029880048 R-squared = 0.8779 Model 1.07467131 5 .214934262 Prob > F = 0.0247 F( 5, 5) = 7.19 Source SS df MS Number of obs = 11
. regress lngdpgr lnconsgr lninvgr lnproduc lnunemp lninf
delta: 1 unit time variable: year, 1992 to 2002. tsset year
47
En utilisant le test de Breusch-Pagan, nous avons un p-value de 0.0306 inférieur à 0.05,
nous rejetons l’hypothèse d’homoscédasticité des résidus. Ceci est encore confirmé pour le
test de White.
II.3.2.2. Vérification de la multicolinéarité
On parle de colinéarité entre 2 variables exogènes lorsque la corrélation linéaire entre ces
variables est élevée (ex. r > 0.8 a-t-on l'habitude d'indiquer mais ce n'est pas une règle
absolue). On peut généraliser cette première définition en définissant la multicolinéarité
comme la corrélation entre une des exogènes avec une combinaison linéaire des autres
exogènes.
Une fois que la régression est effectuée, on peut donc vérifier la multicolinéarité avec la
commande vif (facteur d’inflation de la variance). On décide qu'il y a un problème de
colinéarité lorsque 𝑣𝑗 ≥ 4. Certains utilisent une règle moins contraignante et préfèrent les
seuils 5 ou même 10 c.-à-d. la multicolinéarité n'est signalée que si elle est vraiment
élevée. A vrai dire, l'essentiel est d'identifier les variables qui posent problème dans la
régression.
La tolérance, définie comme 1 𝑉𝐼𝐹 est également fournie par les logiciels statistiques. Plus
elle est faible, plus la variable 𝑋𝑗 soufre de colinéarité. En dérivant la règle de détection du
VIF, on s'inquiéterait dès que la tolérance est inférieure à 0.25 (lorsque la règle de VIF est
de 4) ou inférieure à 0.1 (lorsque la règle est de 10).
Prob > chi2 = 0.0306 chi2(1) = 4.67
Variables: fitted values of lngdpgr Ho: Constant varianceBreusch-Pagan / Cook-Weisberg test for heteroskedasticity
. estat hettest
Total 16.05 16 0.4496 Kurtosis 0.33 1 0.5633 Skewness 4.71 5 0.4518 Heteroskedasticity 11.00 10 0.3575 Source chi2 df p
Cameron & Trivedi's decomposition of IM-test
. estat imtest
Pour notre exemple, la variable lnconsgr a un VIF de 5.55. On peut donc l’identifier comme
une variable qui pose problème. Une fois, enlevée dans le modèle, on constate une
amélioration dans le diagnostic de la multicolinéarité des variables restantes.
Mean VIF 3.06 lninf 1.29 0.774642 lnproduc 1.86 0.537596 lnunemp 1.91 0.524226 lninvgr 4.68 0.213631 lnconsgr 5.55 0.180027 Variable VIF 1/VIF
. vif
Mean VIF 1.47 lninf 1.19 0.837064 lninvgr 1.27 0.789830 lnunemp 1.69 0.592722 lnproduc 1.75 0.572722 Variable VIF 1/VIF
. vif
_cons -.9507823 .70737 -1.34 0.228 -2.681654 .7800897 lninf .1371867 .2460876 0.56 0.597 -.464968 .7393414 lnunemp .1698301 .3210115 0.53 0.616 -.6156568 .955317 lnproduc .1068273 .1722194 0.62 0.558 -.3145784 .528233 lninvgr .8445445 .1471685 5.74 0.001 .4844362 1.204653 lngdpgr Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 1.22407155 10 .122407155 Root MSE = .15875 Adj R-squared = 0.7941 Residual .151210845 6 .025201807 R-squared = 0.8765 Model 1.07286071 4 .268215177 Prob > F = 0.0068 F( 4, 6) = 10.64 Source SS df MS Number of obs = 11
. regress lngdpgr lninvgr lnproduc lnunemp lninf
49
II.3.2.3. Détection de l’erreur de spécification du modèle
On voudrait vérifier s’il y a un problème de sous-ajustement (variables omises) ou un
problème de surajustement (l’existence des variables superflues). On utilise les
commandes :
ovtest et linktest
Pour notre exemple, nous ne pouvons pas rejeter l’hypothèse que le modèle n’a pas des
variables omises.
Ici on s’intéressera à la significativité de _hatsq. L’hypothèse nulle est que le modèle ne
comporte pas une erreur de spécification. Si le p-value de _hatsq n’est pas significatif alors
l’hypothèse sera acceptée et notre modèle est alors correctement spécifié.
II.3.2.4. Détection de la non-linéarité
On peut faire une détection graphique ou numérique de la non-linéarité du modèle. La
détection graphique présente un double avantage : nous pouvons déceler une éventuelle
non-linéarité, nous disposons de pistes sur la "bonne" forme de la relation. Elle n'est pas
adaptée en revanche pour le traitement automatisé d'un grand nombre de variables. Dans
ce contexte, rien ne remplace un critère numérique qui permet, au moins dans une
Prob > F = 0.3934 F(3, 2) = 1.69 Ho: model has no omitted variablesRamsey RESET test using powers of the fitted values of lngdpgr
. ovtest
.
_cons -.061089 .5273712 -0.12 0.911 -1.277209 1.155031 _hatsq -.0581038 .4772479 -0.12 0.906 -1.158639 1.042432 _hat 1.125274 1.037357 1.08 0.310 -1.266876 3.517424 lngdpgr Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 1.22407155 10 .122407155 Root MSE = .13653 Adj R-squared = 0.8477 Residual .149123927 8 .018640491 R-squared = 0.8782 Model 1.07494763 2 .537473813 Prob > F = 0.0002 F( 2, 8) = 28.83 Source SS df MS Number of obs = 11
. linktest
première étape, d'isoler les cas à problèmes sur lesquels nous devrions nous pencher plus
attentivement. Reprenons notre estimation de départ :
La commande acprplot (augmented component-plus-residual plot) fournit un graphique
afin d’examiner la relation entre les variables. Il fournit un bon test pour la linéarité. Elle
sera utilisée après la regression. L’option lowess (locally weighted scatterplot smoothing)
permet de visualiser les données afin de detecter la non-linéarité. Pour notre exemple, la
variable invgr présente une relation quadratique, il semble nécessaire d’ajouter la version
au carré de cette variable dans le modèle. La syntaxe est : acprplot consgr, lowess
_cons -.8865854 1.492931 -0.59 0.578 -4.724287 2.951116 inf .3019558 .372596 0.81 0.455 -.6558326 1.259744 unemp .0551669 .1897954 0.29 0.783 -.4327176 .5430514 producgr .0490201 .1547288 0.32 0.764 -.3487228 .4467631 invgr .3448859 .1338048 2.58 0.050 .0009296 .6888422 consgr .1822094 .3605194 0.51 0.635 -.7445351 1.108954 gdpgr Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 11.0454545 10 1.10454545 Root MSE = .51695 Adj R-squared = 0.7581 Residual 1.33620731 5 .267241462 R-squared = 0.8790 Model 9.70924721 5 1.94184944 Prob > F = 0.0242 F( 5, 5) = 7.27 Source SS df MS Number of obs = 11
. regress gdpgr consgr invgr producgr unemp inf
51
-1.5
-1
-.5
Aug
me
nte
d c
om
pon
en
t plu
s r
esid
ual
2 3 4 5 6consgr
34
56
7
Aug
me
nte
d c
om
pon
en
t plu
s r
esid
ual
4 6 8 10 12invgr
-.4
-.2
0.2
.4.6
Aug
me
nte
d c
om
pon
en
t plu
s r
esid
ual
2 3 4 5 6 7producgr
55
.56
6.5
Aug
me
nte
d c
om
pon
en
t plu
s r
esid
ual
4 5 6 7 8unemp
1.5
22
.53
Aug
me
nte
d c
om
pon
en
t plu
s r
esid
ual
1.5 2 2.5 3 3.5inf
II.4. Séries chronologiques et prévisions sous STATA
II.4.1. Définitions
Une série chronologique (𝑋𝑡 , 𝑡 ∈ 𝑇) est une série statistique ordonnée en fonction du temps.
Habituellement T est dénombrable, de sorte que t = 1,2,………,T.
La définition mathématique adéquate pour l’étude et la prévision de telles suites consiste à
les considérer comme une réalisation particulière d’une famille de variables aléatoires
{ 𝑋𝑡 , 𝑡 ∈ 𝐼}.
Notation : { 𝑋𝑡 , 𝑡 ∈ 𝐼} ou {𝑋𝑡}𝑡∈𝐼 où 𝐼 est un intervalle de temps qui peut être discret,
(dans ce cas 𝐼 = {1,2, … , 𝑇} et T est le nombre d’observations ou continu (auquel cas on
notera la série 𝑋(𝑡), 𝑡 ∈ 𝐼}).
Une série temporelle peut concerner des données macroéconomiques (Masse monétaire, PIB,
inflation,……), microéconomiques (nombre d’employés d’une entreprise, ventes, …..), politiques
(nombre de votants, nombre de votes nuls,….), démographiques (âge moyen des habitants d’une
localité, leur taille,…..), financières (Indice BRVM composite, cours d’une action,..).
La périodicité de la série importe peu. Il peut s’agir de mesures annuelles,
semestrielles, mensuelles etc. Les figurent qui suivent présentent une variété de séries
chronologiques.
65
Figure 1 : Quelques séries chronologiques (de gauche à droite, (a) nombre des
victimes des accidents de la route au Luxembourg de 1970 à 2001 ; (b) la masse
monétaire au Sénégal (en milliers de F cfa) ; (c) bruit blanc ; (d) le taux de croissance du
PIB de la RD Congo de 1990 à 2007).
L’étude d’une série chronologique peut être motivée par deux contextes différents :
La conjoncture : l’analyse conjoncturelle a pour but d’interpréter la situation correspondant aux
dernières données observées : que s’est-il passé les derniers mois ? Que se passe-t-il
aujourd’hui ? Est-on en présence d’une croissance, d’une stagnation ou d’une diminution, d’un
retournement ? L’évolution observée est-elle structurelle ou accidentelle ? Le but est encore ici,
de déterminer les différentes composantes d’une série {𝑋𝑡}, en particulier, obtenir la série
corrigée des variations saisonnières (méthodes de dessaisonalisation). Pour les séries
stationnaires, on peut aussi chercher à modéliser la série à l’aide d’un modèle ARMA5, par
exemple pour faire la prévision ;
La prévision : on se base généralement sur le postulat implicite que l’information concernant le
futur est incluse dans les données du passé et du présent nécessitant donc une analyse de cette
5 ARMA= AutoRegressive Moving Average.
information. La prévision consiste à prévoir les valeurs futures 𝑋𝑇+ (= 1, 2,3,…) de la série
chronologique à partir de ses valeurs observées jusqu’au temps T : 𝑋1 …𝑋𝑇. La prédiction de la série
chronologique au temps t+h est notée 𝑋 𝑇(h) et, en général, est différente de la valeur réelle 𝑋𝑇+
que prend la série T+h. Pour mesurer cette différence, on définira l’erreur de prédiction par la
différence 𝑋 𝑇(h)−𝑋𝑇+ . En « moyenne » avec l’idée que plus h est grand, plus grande est l’erreur.
L’intervalle de précision, défini par les deux valeurs 𝑋 𝑇 1
() 𝑒𝑡 𝑋 𝑇 2
() est susceptible de contenir la
valeur inconnue de 𝑋𝑇+.
Il existe encore bien d’autres objectifs immédiats à l’étude des séries chronologiques. Par
exemple, si deux séries sont observées, on peut se demander quelle influence elles exercent l’une
sur l’autre. En notant {𝑋𝑡} et {𝑌𝑡} deux séries chronologiques observées, on examine s’il existe,
par exemple des relations de type 𝑌𝑡 = 𝛼1𝑋𝑡−1 + 𝛼2𝑋𝑡−3. Ici, deux questions interviennent : tout
d’abord la question de la causalité c.à.d. quelle variable explique l’autre ? Ce qui amène la
deuxième question, celle du décalage temporel : si une influence de {𝑋𝑡} sur {𝑌𝑡 } existe, avec quel
délai et pendant combien de temps, la variable explicative {𝑋𝑡} influence-t-elle la variable
expliquée {𝑌𝑡 } ?
II.4.2. Les composantes d’une série chronologique
Lorsqu’on souhaite analyser une série chronologique présentée sous la forme d’un tableau de
chiffres, il faut tout d’abord représenter la série sous la forme d’un graphe. Une approche
classique consiste à essayer de décomposer la série étudiée en différents éléments ou
composantes. Nous supposerons que toute série chronologique 𝑋𝑡 puisse être mise sous la forme
de la décomposition (modèle classique de décomposition) :
𝑋𝑡 = 𝑇𝑡 + 𝐶𝑡 + 𝑆𝑡 + 𝐼𝑡
Où les observations 𝑋𝑡 sont modélisées comme superposition additive d’une tendance
déterministe, un cycle, une saisonnalité (déterministe) et une perturbation aléatoire.
- 𝑻𝒕 est appelé trend (ou tendance), représentant l’évolution à moyen terme du phénomène
étudié. Cette tendance agit comme une forte corrélation entre les variables 𝑋𝑡 qui n’exprime
aucune liaison à caractère explicatif. La tendance est soit une fonction décrite par un nombre
fini des paramètres, par exemple une fonction linéaire du temps a+bt ou un polynôme en t, soit
plus généralement une fonction lisse en temps t ;
- Ct est le cycle. C’est un mouvement lisse, quasi périodique autour de la tendance présentant
des phases de croissance et de récession.
67
- 𝑺𝒕 est appelé saisonnalité résultant d’un comportement cyclique dans la série observée. Ainsi,
les grands rythmes naturels tels que le rythme circadien (rotation de la terre en 24 heures), la
succession des saisons gouvernent des cycles sociaux (alternance du jour et de la nuit, périodes
de vacances, etc.). Viennent s’ajouter des rythmes purement sociaux tels que le rythme
hebdomadaire et sa conséquence du repos dominical. 𝑆𝑡 est une fonction périodique.
Soit d la période de 𝑆𝑡 , on a alors 𝑆𝑡 = 𝑆𝑡+𝑑 pour tout t. On supposera également que 𝑆𝑡 ne
contient pas de tendance, en d’autres termes toute la tendance est modélisée dans 𝑇𝑡 , ce qu’on
écrira 𝑆𝑡+𝑗𝑑𝑗 =1 = 0.
- 𝑻𝒕 + 𝑺𝒕 est la composante déterministe du modèle ;
- 𝑰𝒕 est, par opposition, la composante aléatoire (ou Irrégulier), supposée de moyenne nulle (par
ce qu’elle représente les composantes (erreurs) non systématiques), mais possédant en général
une structure de corrélation non nulle. C’est la partie la plus intéressante à modéliser. Sous
certaines hypothèses, on peut ajuster un modèle pour 𝐼𝑡 afin de prévoir les valeurs futures de la
série chronologique.
Dans un premier temps, on estimera la composante déterministe du signal. De cette façon, on
aura plus qu’à s’intéresser à la partie aléatoire.
Ayant envisagé d’éclater la série originale en 3 composantes (𝑇𝑡 , 𝑆𝑡 , 𝐼𝑡), on peut s’interroger sur le
mode de composition6. Diverses solutions sont envisageables :
On distingue souvent un ajustement additif de type 𝑓(𝑡, 𝐼𝑡)=𝑔 𝑡 + 𝐼𝑡
ave𝑐 𝑔 𝑡 = 𝑇𝑡 + 𝑆𝑡 , et un ajustement multiplicatif, c’est-à-dire 𝑓(𝑡, 𝐼𝑡)=𝑔 𝑡 . 𝐼𝑡 pour lequel on fait
référence aux modèles de type (G)ARCH7.
Ainsi, dans le cas de la composition additive, on supposera que les 3 composantes reconstituent
la série originale par la formule suivante : 𝑋𝑡 = 𝑇𝑡 + 𝑆𝑡 + 𝐼𝑡 et pour une composante multiplicative,
la formule sera : 𝑋𝑡 = 𝑇𝑡 . 𝑆𝑡 . 𝐼𝑡
Pour comprendre la différence entre ces deux mécanismes, on peut considérer les unités des
différentes composantes : dans les deux cas, 𝑋𝑡 et 𝑇𝑡 sont dans les mêmes unités, celles de la
variable originale, dans le cas additif, 𝑆𝑡 et 𝐼𝑡 sont également dans les mêmes unités ; en
revanche, dans le cas multiplicatif, elles deviennent de simples coefficients, sans dimension.
Ainsi, dans le premier cas, les variations saisonnières sont des variations absolues, elles
6 Les composantes tendances et cycles sont souvent regroupés et on parle alors de la
composante « tendance-cycle ». 7 ARCH= AutoRegressive Conditional Heteroskedasticity, G= Genaralized.
s’expriment sous la forme de +5000 $ ou -3000$. A l’inverse, dans le cas multiplicatif, les
coefficients s’exprimeront sous la forme 1,20 ou 0,95, sans unité, soit, de manière équivalente
+20% ou -5%. Pour faire ressortir ces coefficients en pourcentage, on peut également écrire le
modèle de composition multiplicative sous la forme :
𝑋𝑡 = 𝑇𝑡 . 1 + 𝑆𝑡′ . (1 + 𝐼𝑡
′)
Dans le modèle multiplicatif, les variations saisonnières sont proportionnelles au niveau de la
série.
Considérons maintenant la série du trafic SNCF représentée ci-dessous, avec en lignes les
années et en colonnes les trimestres :
YEAR
1ST 2ND 3RD 4TH
1963 1964
1965 1966
1967 1968
1969 1970
1971 1972
1973 1974
1975 1976
1977 1978
1979 1980
5130 6410 8080 5900 5110 6680 8350 5910
5080 6820 8190 5990 5310 6600 8090 6020
5320 6800 7650 6110 5486 6738 7258 6111
5629 6696 7491 6494 5682 7359 7836 6583
5963 6430 7844 6692 6270 7525 7997 6853
6472 7871 8188 7207 6892 8236 8978 7561
7505 9005 9591 8608 8139 9212 9522 8816
8088 9494 9583 9204 8983 9986 9907 9457
8829 10340 10070 9669 9009 10265 10236 10458
Création de la variable temps :
Souvent quand les données sont saisies, il y a une variable qui identifie la fréquence de la
variable temps, celle-ci peut être l’année, le trimestre, le mois, etc.
La première de chose est de savoir les observations commencent à quelle période ?
Supposons que nous savons que les données commencent le premier trimestre de l’année
1990, on créera donc la variable temps pour toutes les observations avec la commande :
generate time=q(1990q1)+_n-1
format time %tq
tsset8 time
8 La commande tsset permet de déclarer une variable comme une série temporelle.
69
- Pour les données annuelles débutant à 2000, on aura :
generate time=y(2000)+_n-1
format time %ty
tsset time
- Pour les données semetrielles commençant le deuxiéme semestre de l’année
2000 (2000h2), on aura :
generate time=h(2000h2)+_n-1
format time %th
tsset time
- Pour les données mensuelles de début 2004m7 (juillet 2004), on aura :
generate time=m(2004m7)+_n-1
format time %tm
tsset time
- Pour les données hebdomadaires de début 1994w1 (première semaine de l’année
1994), on aura :
generate time=m(1994w1)+_n-1
format time %tw
tsset time
- Pour les données journalières de début 1jan1999, on aura :
generate time=d(1jan1999)+_n-1
format time %td
tsset time
Une fois que la variable time est créée, on peut donc dans un premier temps visualiser la
série d’intérêt :
. graph twoway line sncft_lin time
II.4.2. 1. Estimation de la tendance
Méthode des moyennes mobiles
Il est clair qu’afin de pouvoir estimer la tendance, c’est-à-dire le mouvement d’un phénomène observé sur
un grand intervalle de temps, il faut disposer d’une série statistique sur une longue période.
Disposant de ces données, le premier travail consiste à effectuer une représentation graphique adéquate
permettant d’avoir une vue globale du phénomène étudié.
Afin d’éliminer ou d’amortir les mouvements cycliques, saisonniers et accidentels, on utilise la technique
des moyennes mobiles. On procède en quelque sorte au lissage de la courbe.
Le principe de cette méthode est de construire une nouvelle série obtenue en calculant des moyennes
arithmétiques successives de longueur p fixe à partir des données originales. Chacune de ces moyennes
obtenues correspondra au ―milieu‖ de la période pour laquelle la moyenne arithmétique vient d’être
calculée.
Appliquons pour notre série sncft_lin, les moyennes mobile simples d’ordres respectifs 39 et 5 sous Stata :
9 Même commande avec : egen sm2= ma(sncft_lin), nomiss t(3)
5000
6000
7000
8000
9000
10000
SN
CF
T_LIN
1963q1 1967q3 1972q1 1976q3 1981q1time
Le trafic sur le sncf
(1/3)*[x(t-1) + 1*x(t) + x(t+1)]; x(t)= sncft_linThe smoother applied was. tssmooth ma sm2= sncft_lin, window(1 1 1)
71
(1/5)*[x(t-2) + x(t-1) + 1*x(t) + x(t+1) + x(t+2)]; x(t)= sncft_linThe smoother applied was. tssmooth ma sm1= sncft_lin, window(2 1 2)
. gr combine Graph3 Graph5, col(1)
5080
10458
1963q1 1967q3 1972q1 1976q3 1981q1time
ma: x(t)= sncft_lin: window(1 1 1) SNCFT_LIN
5080
10458
1963q1 1967q3 1972q1 1976q3 1981q1time
ma: x(t)= sncft_lin: window(2 1 2) SNCFT_LIN
Estimation de la tendance par la moyenne mobile d'odre 3 et 5
. ac noise2
. generate noise2= sncft_lin- sm2
Le graphe montre une évidence significative d’Autocorrélation dans la variable noise2 (ceci pour dire
que la variable contient toujours la composante saisonnière, en effet : T+S+I-T=S+I).
Méthode d’ajustement analytique
Si les données (brutes ou lissées) sur le graphique se présentent sous une forme ressemblant à une
courbe connue (droite, parabole, exponentielle, etc.), on peut essayer de dégager une forme
analytique pour cette courbe.
-1.0
0-0
.50
0.0
00.5
01.0
0
Auto
corr
ela
tions o
f sm
2
0 10 20 30 40Lag
Bartlett's formula for MA(q) 95% confidence bands
.
10. 1965q2 6820 6696.667 6696.667 123.3335 9. 1965q1 5080 5936.667 5936.667 -856.6665 8. 1964q4 5910 6446.667 6446.667 -536.6665 7. 1964q3 8350 6980 6980 1370 6. 1964q2 6680 6713.333 6713.333 -33.3335 5. 1964q1 5110 5896.667 5896.667 -786.6665 4. 1963q4 5900 6363.333 6363.333 -463.3335 3. 1963q3 8080 6796.667 6796.667 1283.333 2. 1963q2 6410 6540 6540 -130 1. 1963q1 5130 5770 . -640 time sncft_~n sm2 sncf3 noise2
. list time sncft_lin sm2 sncf3 noise2 in 1/10
73
Le graphique ci-dessus contient une approximation linéaire et quadratique réalisée automatiquement
par Stata.
La tendance est estimée par la droite de régression de la forme :
L’équation de la tendance est donc : 𝑠𝑛𝑐𝑓𝑡 = 4852,901 + 58,7053𝑡𝑖𝑚𝑒
. graph combine graph2 graph3
. twoway (line sncft_lin time, lpattern(solid)) (qfit sncft_lin time)
. twoway (line sncft_lin time, lpattern(solid)) (lfit sncft_lin time, atobs)
5080
10458
1963q1 1967q3 1972q1 1976q3 1981q1time
SNCFT_LIN Linear prediction
5080
10546
1963q1 1967q3 1972q1 1976q3 1981q1time
SNCFT_LIN Quadratic prediction
Estimation de la tendance par une droite et une parabole
_cons 4852.901 262.5771 18.48 0.000 4329.207 5376.594 time 58.7053 5.064409 11.59 0.000 48.60466 68.80595 sncft_lin Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 163006047 71 2295859.82 Root MSE = 893.09 Adj R-squared = 0.6526 Residual 55832619.6 70 797608.851 R-squared = 0.6575 Model 107173428 1 107173428 Prob > F = 0.0000 F( 1, 70) = 134.37 Source SS df MS Number of obs = 72
. reg sncft_lin time
II.4.2. 1. Estimation des mouvements saisonniers
Modèle additif vs modèle multiplicatif ?
Pour effectuer l’analyse des mouvements saisonniers, on essaie d’abord de déterminer si on est en
présence d’une série dans laquelle pour une observation Y donnée :
- La variation saisonnière S s’ajoute simplement à la résultante des autres composantes R,
Y=R+S (c’est le modèle additif) ;
- La variation saisonnière S est proportionnelle à la résultante des autres composantes R,
S=c.R et alors Y=S+R= c.R+R= R(1+c) (c’est le modèle multiplicatif).
On admet en général que la somme des coefficients saisonniers est égale au nombre de périodes
de la saison pour un modèle multiplicatif et égale à zéro pour un modèle additif.
La série sncft_lin admet un modèle additif alors que la série import admet un modèle multiplicatif :
10. 1965q2 6820 6085.712 734.2876 9. 1965q1 5080 6027.007 -947.0068 8. 1964q4 5910 5968.302 -58.30176 7. 1964q3 8350 5909.596 2440.404 6. 1964q2 6680 5850.891 829.1089 5. 1964q1 5110 5792.186 -682.186 4. 1963q4 5900 5733.48 166.5195 3. 1963q3 8080 5674.775 2405.225 2. 1963q2 6410 5616.07 793.9302 1. 1963q1 5130 5557.365 -427.3647 time sncft_~n sncf noise4
. list time sncft_lin sncf noise4 in 1/10
72. 1980q4 185.78357 71. 1980q3 273.50992 70. 1980q2 397.7333 69. 1980q1 -857.02679 time seas
. list time seas if seas<.
16. 1986q4 .93453805 15. 1986q3 1.0598615 14. 1986q2 .99300432 13. 1986q1 1.0125961 time seas1
. list time seas1 if seas1<.
75
Estimation des variations saisonnières
L’estimation de la saisonnalité peut être déterminée par plusieurs méthodes notamment la méthode
des rapports à la tendance générale. La détermination des coefficients saisonniers par la méthode
des rapports à la tendance générale se fait en 3 étapes :
1. Déterminer la tendance générale à l’aide de l’équation 𝑇𝑡 = 𝛼 + 𝛽𝑡 ;
2. Calculer le rapport à la tendance générale en divisant les valeurs observées 𝑌𝑡 par les valeurs de
la tendance générale 𝑇𝑡 ;
3. Calculer le coefficient saisonnier en faisant la moyenne arithmétique des rapports à la tendance
générale correspondant à chaque saison.
Voici l’évolution trimestrielle en tonnes des produits importés :
Année Trimestre 1 Trimestre 2 Trimestre 3 Trimestre 4
1983 34.9 37.0 39.7 33.0
1984 34.9 36.9 35.5 31.5
1985 34.5 32.8 30.2 26.0
1986 26.9 23.5 24.8 20.3
20
25
30
35
40
Import
1983q1 1984q1 1985q1 1986q1 1987q1time
Evolution trimestrielle des produits importés (en tonnes)
Détermination de la tendance générale :
L’équation de la tendance est donc : 𝑇𝑡 = 40.295− 1.046471𝑇
Calcul des rapports 𝑌𝑡
𝑇𝑡 :
_cons 135.5238 13.97106 9.70 0.000 105.5589 165.4888 time -1.046471 .1402622 -7.46 0.000 -1.347303 -.7456382 import Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 465.980077 15 31.0653385 Root MSE = 2.5863 Adj R-squared = 0.7847 Residual 93.6457657 14 6.68898327 R-squared = 0.7990 Model 372.334312 1 372.334312 Prob > F = 0.0000 F( 1, 14) = 55.66 Source SS df MS Number of obs = 16
. reg import time
.
_cons 40.295 1.356271 29.71 0.000 37.38609 43.20391 t -1.046471 .1402622 -7.46 0.000 -1.347303 -.7456382 import Coef. Std. Err. t P>|t| [95% Conf. Interval]
Total 465.980077 15 31.0653385 Root MSE = 2.5863 Adj R-squared = 0.7847 Residual 93.6457657 14 6.68898327 R-squared = 0.7990 Model 372.334312 1 372.334312 Prob > F = 0.0000 F( 1, 14) = 55.66 Source SS df MS Number of obs = 16
. reg import t
. list time t import tend rap
. gen rap= import/ tend
- preserve. edit
. predict tend, xb
77
Calcul des coefficients saisonniers.
Année Trimestre1 Trimestre2 Trimestre3 Trimestre4
1983 0.889205 0.968534 1.068480 0.913897
1984 0.995361 1.084778 1.076746 0.986742
1985 1.117345 1.099554 1.049201 0.937364
1986 1.007836 0.916379 1.008215 0.861942
Moyenne=
Coefficients
Saisonniers
1.0025 1.0173 1.0507 0.9250
On peut donc normaliser ces indices avec la commande :
16. 1986q4 16 20.3 23.55147 .8619419 15. 1986q3 15 24.8 24.59794 1.008214 14. 1986q2 14 23.5 25.64441 .916379 13. 1986q1 13 26.9 26.69088 1.007835 12. 1985q4 12 26 27.73735 .9373642 11. 1985q3 11 30.2 28.78382 1.0492 10. 1985q2 10 32.8 29.83029 1.099553 9. 1985q1 9 34.5 30.87676 1.117345 8. 1984q4 8 31.5 31.92323 .9867421 7. 1984q3 7 35.5 32.96971 1.076746 6. 1984q2 6 36.9 34.01618 1.084778 5. 1984q1 5 34.9 35.06265 .9953613 4. 1983q4 4 33 36.10912 .9138966 3. 1983q3 3 39.7 37.15559 1.06848 2. 1983q2 2 37 38.20206 .9685341 1. 1983q1 1 34.9 39.24853 .8892053 time t import tend rap
root mean squared error = 1.842546 sum-of-squared residuals = 54.31962 penalized sum-of-squared residuals = 54.31962 gamma = 0.7493 beta = 0.2857 alpha = 0.5445Optimal weights:
Iteration 6: penalized RSS = -54.319622 Iteration 5: penalized RSS = -54.319624 Iteration 4: penalized RSS = -54.319735 Iteration 3: penalized RSS = -54.329794 Iteration 2: penalized RSS = -54.337033 Iteration 1: penalized RSS = -54.463995 Iteration 0: penalized RSS = -55.536263 (not concave)
computing optimal weights. tssmooth shwinters shwa= import, snt_v(seas1)normalize
N.B : Dans le modèle multiplicatif, si le coefficient saisonnier 𝑆𝑡 = 1 cela veut dire que la saison
n’exerce aucune influence sur 𝑌𝑡 , si 𝑆𝑡 > 1 la saison exerce une influence dans le sens de
l’augmentation de 𝑌𝑡 et si 𝑆𝑡 < 1, la saison exerce une influence dans le sens de la diminution de 𝑌𝑡 .
Méthode de désaisonalisation :
L’élimination de l’influence saisonnière dans les valeurs observées 𝑌𝑡 a pour but de faire
apparaitre les autres composantes. Il s’agit de diviser les valeurs observées par le
coefficient saisonnier de la saison correspondante.
Voici les données désaisonnalisées IMPORT_SA de la série IMPORT :
16. 1986q4 .93453805 15. 1986q3 1.0598615 14. 1986q2 .99300432 13. 1986q1 1.0125961 time seas1
. list time seas1 if seas1<.
. gen import_sa= import/ seas
16. 1986q4 20.3 .93453805 21.72196 15. 1986q3 24.8 1.0598615 23.39928 14. 1986q2 23.5 .99300432 23.66556 13. 1986q1 26.9 1.0125961 26.56538 12. 1985q4 26 .93453805 27.82123 11. 1985q3 30.2 1.0598615 28.49429 10. 1985q2 32.8 .99300432 33.03107 9. 1985q1 34.5 1.0125961 34.07084 8. 1984q4 31.5 .93453805 33.70649 7. 1984q3 35.5 1.0598615 33.49494 6. 1984q2 36.9 .99300432 37.15996 5. 1984q1 34.9 1.0125961 34.46587 4. 1983q4 33 .93453805 35.31157 3. 1983q3 39.7 1.0598615 37.45773 2. 1983q2 37 .99300432 37.26066 1. 1983q1 34.9 1.0125961 34.46587 time import seas import~a
. list time import seas import_sa
79
II.4. 3. La prévision
Prévoir, c’est porter un jugement sur les événements ou évolutions possibles à venir en utilisant
comme outils le passé et le présent. Pour réussir une telle entreprise, quatre conditions sont à
remplir :(1) une certaine régularité dans le fonctionnement du monde est tout d’abord
nécessaire, (2) il faut par ailleurs que cette régularité fournisse une information sur l’avenir,
(3) que la méthode choisie pour établir la prévision capture une part de cette régularité et (4)
enfin qu’elle exclue au maximum le « bruit » ou les irrégularités passés. Les deux premières
conditions sont constitutives du système économique, les deux dernières sont fonctions
de la méthode de prévision ou de la théorie économique choisies. Il en résulte que les
prévisions sont toujours entachées d’erreur et qu’il est possible d’en établir plusieurs pour
un même événement à venir (qui constitue l’objet de la prévision). Des outils d’analyse doivent
donc être développés afin de comparer et de hiérarchiser les prévisions pour discerner ce qui
fait qu’on puisse, ou non, en qualifier certaines de « bonnes ».
La qualité d’une prévision est définie par le critère d’évaluation considéré. Ainsi, si on
s’intéresse à l’inf lation en RD Congo en 2014, il est probable que le prévisionniste soit
indifférent entre une erreur de + 0,1 % et de – 0,1 %, i.e. symétrique autour de
l’hypothèse centrale. En revanche le sismologue qui s’attache à déterminer la date de la
prochaine éruption de l’Etna accordera une valeur nettement (infiniment ?) plus grande à
une prévision en deçà de la date d’éruption. Il apparaît clair que, dans ces deux contextes,
les méthodes choisies se ressentiront des critères retenus pour leur évaluation.
20
25
30
35
40
1983q1 1984q1 1985q1 1986q1 1987q1time
Import import_sa
Donnée brute (Import) et donnée désaisonnalisée
De manière générale, trois qualités sont recherchées : l’exactitude, la précision et la certitude, et
on privilégiera l’une ou l’autre selon les cas. Pour bien comprendre leur différence, si nous
supposons que nous disposions en 2005 de deux prévisions de l’inflation en France en
2006 : une à 1,95 ± 0,45 % et l’autre à 2,0 ± 0,2 %. Laquelle préférer ? La première
est davantage précise dans son énoncé, au centième de point de pourcentage près
contre un dixième pour la seconde. En revanche, cette dernière est nettement plus certaine,
car l’intervalle de confiance lui correspondant est assez étroit (en tout 0,4 %) contre une
incertitude de 0,90 % dans le premier cas. Enfin, si on découvre, fin 2006, que l’inflation se
monte à 1,9 %, la première prévision est finalement plus proche — dans son scénario central —
de la réalisation. Mais laquelle peut être dite la plus exacte ? Ceci dépend du critère considéré
— et donc de l’utilisation faite de cette prévision. Et encore ! Que dire des deux déclarations
« l’inflation se portera à 12,314 % en 2006 » et « l’inflation sera d’environ 2 % ». La
première est très précise, i.e. présentant un fort degré de détail dans son assertion, et
certaine (car elle n’autorise, de manière péremptoire, aucune marge d’erreur autour du
scénario central), mais très éloignée de la vérité, l’autre est moins précise et certaine, mais
plus proche de la réalisation. Toutes ces déclarations peuvent pourtant être qualifiées d’inexactes
! Pour mesurer et hiérarchiser l’exactitude, les économistes utilisent souvent le critère de
moyenne quadratique d’erreur de prévision (MQEP) qui combine l’écart à la réalisation (la
moyenne d’erreur de prévision) et l’incertitude entourant le scénario central (la variance de
l’erreur).
II.4. 3. 1. Quelques techniques de prévision sous Stata
(i) La prévision par les techniques de lissage
Le principe fondamental des méthodes de lissage est la simple pondération ou le lissage des
observations antérieures dans une série chronologique en vue de prédire le futur. On utilise les
données historiques en vue d'obtenir pour la série une valeur "lissée" qui devient la prévision pour la
période future. Il y a donc, lorsqu'on emploie une technique de lissage, un processus en deux temps.
Dans un premier temps, on calcule une certaine forme de valeur lissée pour la base des données
historiques et, dans le second, on utilise cette valeur comme prévision applicable à une certaine
période du futur.
Le lissage par moyennes mobiles
- Le lissage par moyennes mobiles
Pour éliminer la composante aléatoire dans une série, on peut considérer l’utilisation d’une
certaine forme de moyenne des valeurs observées récentes. Voire la section précédente pour la
description de la méthode.
81
Les données suivantes représentent l’évolution des ventes mensuelles des maisons (en milliers)
dans les Etats du MidWest Américain de janvier 1994 à mai 2001. Voir le fichier Excel sur la
prévision pour plus de détails.
On peut utiliser la moyenne mobile simple d’ordres 3 et 5 respectivement pour faire la prévision
des ventes :
Nous avons la prévision des ventes pour juin 2001 avec la moyenne mobile d’ordre 3 de 186 et
pour juin 2001 et juillet 2001 avec la moyenne mobile d’ordre 5 de 181 et 186 respectivement.
10. 1994m10 141 9. 1994m9 111 8. 1994m8 112 7. 1994m7 108 6. 1994m6 119 5. 1994m5 125 4. 1994m4 127 3. 1994m3 130 2. 1994m2 135 1. 1994m1 128 newt ventes
. list newt ventes in 1/10
89. 2001m5 186 88. 2001m4 176 87. 2001m3 192 86. 2001m2 168 85. 2001m1 173 newt ventes
(1/5)*[x(t-2) + x(t-1) + 1*x(t) + x(t+1) + x(t+2)]; x(t)= ventesThe smoother applied was. tssmooth ma sm2= ventes, window(2 1 2)
(1/3)*[x(t-1) + 1*x(t) + x(t+1)]; x(t)= ventesThe smoother applied was. tssmooth ma sm1= ventes, window(1 1 1)
91. 2001m7 . . 186 90. 2001m6 . 186 181 89. 2001m5 186 181 184.6667 88. 2001m4 176 184.6667 180.5 87. 2001m3 192 178.6667 179 86. 2001m2 168 177.6667 176.6 85. 2001m1 173 171.6667 171.2 newt ventes sm1 sm2
. list newt ventes sm1 sm2 in 85/91
- Le lissage par moyennes mobiles pondérées
Cette pondération consiste à multiplier chaque valeur de la série par un coefficient représentant le
pourcentage d’information pour lequel cette valeur contribue à la définition de la moyenne. La
moyenne pour la période t+1 sera ainsi donnée par :
𝑃𝑡+1 = 𝛼0𝑌𝑡 + 𝛼1𝑌𝑡−1 + 𝛼1𝑌𝑡−2 + ⋯ + 𝛼𝑖𝑌𝑡−𝑖 …
𝛼0, 𝛼1, … , i𝛼𝑖, ... sont les coefficients de pondération respectifs aux informations Yt, Yt -1,... Yi, ...
avec la contrainte que la somme de termes de ces coefficients (puisqu’ils représentent des
pourcentages) soit égale à 1.
Selon la méthode de moyenne mobile pondérée, la prévision de ventes pour juin 2001 est de
182,6667.
Le problème qui se pose en pratique avec cette méthode consiste à déterminer la structure des
coefficients 𝛼 puisque de cette structure dépend le contenu informationnel de la moyenne. Etant
donné qu’il y a une infinité de combinaisons possibles, il en résulte une infinité de moyennes
possibles, toutes issues de la même série chronologique ; d’où, difficulté de stockage et
d’interprétation des coefficients de pondération.10
Le lissage exponentiel
10 Ici, nous avons utilisé cette structure : 𝑃𝑡+1 = 𝛼𝑖𝑌𝑡−𝑖
2𝑖=−2
avec 𝛼−2 = 1,𝛼−1 = 2, 𝛼0 = 3, 𝛼1 = 2, 𝛼2 = 1
91. 2001m7 . 186 90. 2001m6 . 182.6667 89. 2001m5 186 183.6667 88. 2001m4 176 181.5 87. 2001m3 192 180.3333 86. 2001m2 168 176 85. 2001m1 173 171.5556 newt ventes sm3
. list newt ventes sm3 in 85/91
(1/9)*[1*x(t-2) + 2*x(t-1) + 3*x(t) + 2*x(t+1) + 1*x(t+2)]; x(t)= ventesThe smoother applied was. tssmooth ma sm3= ventes, weights(1/2 <3> 2/1)
83
Le lissage exponentiel est une technique de prévision utilisée dans le cas d’une chronique affectée
d’une tendance aléatoire. Cette technique regroupe l’ensemble des techniques empiriques qui ont
pour caractéristiques communes d’accorder un poids plus important aux valeurs récentes de la
série chronologique. On donne ainsi à chaque observation un poids d’autant plus faible qu’elle est
ancienne et ces poids décroissent exponentiellement dans le passé.
- Le lissage exponentiel simple
Le lissage exponentiel simple (single exponential smoothing) est basé sur l’idée que les
observations récentes contiennent plus d’information sur le futur que les anciennes. Par
conséquent, les observations récentes devront être affectées d’un poids plus important que les
anciennes.
𝑃𝑡+1 = 𝛼𝑌𝑡 + (1 − 𝛼)𝑃𝑡 avec 0 ≤ 𝛼 ≤ 1 où Yt = valeur de la série chronologique à la période t ;
Pt + 1 = prévision pour la période t+1; Pt = valeur prédite à la période t ; 𝛼 = coefficient de
pondération appelé aussi ―constante de lissage‖. Il est généralement compris entre 0 et 1.
C’est la formule générale utilisée dans le calcul des prévisions par la méthode du lissage
exponentiel. Cette formule réduit sensiblement le problème de stockage, étant donné qu’il n’est
plus nécessaire de conserver toutes les données historiques (comme dans le cas de la moyenne) ou
une partie d’entre elles (comme dans le cas de la moyenne mobile). Mieux, seules l’observation
récente, la prévision récente et une valeur de 𝛼 ont besoin d’être stockées.
Dans un premier temps, nous fixons la valeur de 𝛼 à 0,4 et voulons une prévision pour 3 mois, la
commande est donc :
root mean squared error = 14.077sum-of-squared residuals = 17638exponential coefficient = 0.4000
. tssmooth exponential sm2= ventes, parms(.4) forecast(3)
La prévision de vente pour le mois de juin 2001, sera donc de 180,3521 et la valeur de 𝛼=0,4 fournit
l’écart- type de l’erreur quadratique moyenne (RMSE, Root Mean Squared Error) de 14,077.
Le graphique ci-dessous présente la série ventes et la prévision obtenue avec le lissage exponentiel
simple (sm2) :
On peut aussi demander à Stata de choisir le paramètre 𝛼 qui minimise le RMSE, dans ce cas la
commande sera :
93. 2001m9 . 180.3521 92. 2001m8 . 180.3521 91. 2001m7 . 180.3521 90. 2001m6 . 180.3521 89. 2001m5 186 176.5869 88. 2001m4 176 176.9781 87. 2001m3 192 166.9636 86. 2001m2 168 166.2726 85. 2001m1 173 161.7877 newt ventes sm2
. list newt ventes sm2 in 85/93
. line sm2 ventes newt, title("Prévision avec lissage exponential simple") ytitle( ventes) xtitle(time)
100
120
140
160
180
200
vente
s
1994m1 1996m1 1998m1 2000m1 2002m1time
exp parms(0.4000) = ventes Ventes
Prévision avec lissage exponential simple
85
- Le lissage exponentiel double :
L’application du lissage exponentiel simple à une série chronologique comportant une loi de tendance
donne des résultats systématiquement inférieurs à la tendance. Une seconde application du procédé
à ces valeurs lissées produit de nouveau des valeurs inférieures à la tendance modifiée. Le lissage
exponentiel double permet d’ajouter à la valeur résultant du lissage exponentiel simple la différence
entre elle-même et le lissage double, puis ajuster pour tenir compte de la tendance.
La prévision par lissage exponentiel double est :
𝑆𝑡′ = 𝛼𝑌𝑡 + (1 −𝛼)𝑆𝑡−1
′ (1)
𝑆𝑡′′ = 𝛼𝑆𝑡
′ + (1 −𝛼)𝑆𝑡−1′′ (2)
𝑎𝑡 = 2𝑆𝑡′ − 𝑆𝑡
′′ (3)
𝑏𝑡 =𝛼
1−𝛼(𝑆𝑡
′ − 𝑆𝑡′′ ) (4)
𝑃𝑡+1 = 𝑎𝑡 + 𝑏𝑡𝑚 (5)
où S’t est la valeur lissée exponentielle simple à la période t ; S‖t est la valeur doublement lissée de
la série ; 𝛼 est la constante du lissage exponentiel et m est le décalage de la prévision dans le
futur, exprimé en nombre de périodes (l’horizon).
root mean squared error = 13.97811sum-of-squared residuals = 17389.493optimal exponential coefficient = 0.2981
computing optimal exponential coefficient (0,1)
tssmooth exponential sm3= ventes, forecast(3)
root mean squared error = 14.209558sum-of-squared residuals = 17970.127optimal double-exponential coefficient = 0.0863
computing optimal double-exponential coefficient (0,1). tssmooth dexponential sm4= ventes, forecast(3)
La prévision de vente pour juin 2001 est de 173,5572 pour un 𝛼 optimal de 0,0863 (c.à.d. qui
minimise le RMSE).
Le graphique suivant présente la série ventes et la prévision obtenue avec le lissage exponentiel
double (sm4) :
93. 2001m9 . 175.3214 92. 2001m8 . 174.7333 91. 2001m7 . 174.1452 90. 2001m6 . 173.5572 89. 2001m5 186 170.3905 88. 2001m4 176 168.7153 87. 2001m3 192 163.6075 86. 2001m2 168 162.4916 85. 2001m1 173 160.2147 newt ventes sm4
. list newt ventes sm4 in 85/93
> ) xtitle(time). line sm4 ventes newt, clwidth(thin) clpattern(solid) title("Prévision par lissage exponential double") ytitle( ventes
100
120
140
160
180
200
vente
s
1994m1 1996m1 1998m1 2000m1 2002m1time
dexpc(0.0863) = ventes Ventes
Prévision par lissage exponential double
87
- La méthode de Holt-Winters :
(i) La méthode non saisonnière :
Cette technique est appliquée au cas d’une série avec tendance (ou des évolutions de tendance) mais
sans saisonnalité. Cette méthode de lissage linéaire est semblable, en principe, à celle de Brown,
sauf qu’elle ne fait pas intervenir la formule du lissage double. Elle lisse directement les valeurs du
trend.
La prévision fournie cette méthode est obtenue en utilisant deux constantes de lissage 𝛼 et 𝛽
(0 < 𝛼, 𝛽 < 1) et les trois équations ci-après :
𝑆𝑡 = 𝛼𝑌𝑡 + 1 − 𝛼 (𝑆𝑡−1 + 𝑇𝑡−1) (1)
𝑇𝑡 = 𝛽 𝑆𝑡 − 𝑆𝑡−1 + (1 −𝛽)𝑇𝑡−1 (2)
𝑃𝑡+𝑚 = 𝑆𝑡 + 𝑇𝑡𝑚 (3)
avec :
St = niveau de la tendance défini comme une moyenne pondérée de la dernière observation Yt et de
la prévision réalisée en temps t l pour la période t ; Tt = pente de la tendance en période t. Elle
est une moyenne pondérée de la nouvelle pente (St St - 1) et de l’ancienne pente Tt-1 ; 𝜶 =
constante de lissage correspondant au niveau de la série; β = constante de lissage associée à la
tendance; m = horizon supposé égal à 1.
L’équation (1) ajuste directement St pour tenir compte de la tendance de la période précédente, Tt - 1,
en l’ajoutant à la dernière valeur lissée, St - 1. Cet ajustement élimine le décalage et porte St à une
base approximative de la valeur des données actuelles.
La relation (2) actualise le trend qui est exprimé ici comme la différence entre deux valeurs
successives du lissage exponentiel. Ce qui est normal puisque lorsque les données présentent un
trend, les nouvelles valeurs pourraient être plus grandes ou plus faibles que les précédentes. Cette
procédure est identique à celle décrite dans le cas du lissage exponentiel de Brown où l’on a soustrait
les valeurs du lissage exponentiel double des valeurs du lissage simple.
La prévision de ventes pour les mois de juin, juillet et aout 2001 seront respectivement de
177,0798 ; 177,5863 et 178,0928.
root mean squared error = 13.8404 sum-of-squared residuals = 17048.55 penalized sum-of-squared residuals = 17048.55 beta = 0.0000 alpha = 0.2304Optimal weights:
Iteration 10: penalized RSS = -17048.555 Iteration 9: penalized RSS = -17048.555 Iteration 8: penalized RSS = -17048.571 Iteration 7: penalized RSS = -17048.765 Iteration 6: penalized RSS = -17050.057 Iteration 5: penalized RSS = -17056.059 Iteration 4: penalized RSS = -17082.509 Iteration 3: penalized RSS = -17175.178 Iteration 2: penalized RSS = -18022.971 Iteration 1: penalized RSS = -18876.235 (not concave)Iteration 0: penalized RSS = -24920.496 (not concave)
computing optimal weights. tssmooth hwinters hw2= ventes, forecast(3)
92. 2001m8 . 178.0928 91. 2001m7 . 177.5863 90. 2001m6 . 177.0798 89. 2001m5 186 173.752 88. 2001m4 176 172.4211 87. 2001m3 192 165.903 86. 2001m2 168 164.6173 85. 2001m1 173 161.4504 newt ventes hw1
. list newt ventes hw1 in 85/92
89
(ii) La méthode saisonnière :
Il s’agit d’un lissage exponentiel double (LED) de Holt à deux paramètres pour la partie non saisonnière
et d’un lissage exponentiel saisonnier à un paramètre de Winters. Cette méthode de lissage exponentiel
comporte donc trois paramètres à estimer et il existe deux manières de combiner la tendance linéaire et
la composante saisonnière : par addition (modèle additif) et par multiplication (modèle multiplicatif).
La méthode donne des résultats identiques à ceux du lissage exponentiel double, mais a l'avantage
supplémentaire d'incorporer un coefficient saisonnier It, avec une période de saisonnalité égale à L, c'est-
à-dire que It = Tt-L pour tout t (dans la pratique, les estimations de It ne seront toutefois pas
périodiques).
Dans le modèle multiplicatif, les coefficients saisonniers vérifient la propriété :
L
t
t LI1
où L = périodicité des données ou longueur de la saisonnalité (L = 12 en mensuel, L = 4 en trimestriel)
dans une année) et Le principe de la conservation des aires implique pour le modèle additif :
L
t
tI1
0
100
120
140
160
180
200
vente
s
1994m1 1996m1 1998m1 2000m1 2002m1time
hw parms(0.230 0.000) = ventes Ventes
Prévision par la méthode Holt-Winters avec alpha et beta optimaux
Reprenons la série sncft_lin qui comportait une forte saisonnalité et appliquons la méthode de Holt-
Winters avec saisonnalité :
Pour le modèle additif, on aura :
root mean squared error = 278.6436 sum-of-squared residuals = 5590244 penalized sum-of-squared residuals = 5590244 gamma = 0.8279 beta = 0.1208 alpha = 0.1932Optimal weights:
Iteration 5: penalized RSS = -5590243.6 Iteration 4: penalized RSS = -5590243.6 Iteration 3: penalized RSS = -5590269 Iteration 2: penalized RSS = -5593730.1 Iteration 1: penalized RSS = -5895249.4 Iteration 0: penalized RSS = -9881503.7 (not concave)
computing optimal weights. tssmooth shwinters shw1= sncft_lin, forecast(4)
root mean squared error = 271.1647 sum-of-squared residuals = 5294182 penalized sum-of-squared residuals = 5294181 gamma = 0.7602 beta = 0.1472 alpha = 0.2070Optimal weights:
Iteration 4: penalized RSS = -5294180.6 Iteration 3: penalized RSS = -5294180.7 Iteration 2: penalized RSS = -5295149.1 Iteration 1: penalized RSS = -5344101.4 Iteration 0: penalized RSS = -8326825.3 (not concave)
computing optimal weights. tssmooth shwinters shwa= sncft_lin, forecast(4) snt_v(seas) normalize additive
76. 1981q4 . 10694.02 10634.88 75. 1981q3 . 10671.89 10644.32 74. 1981q2 . 10717.21 10690.26 73. 1981q1 . 9332.478 9357.208 72. 1980q4 10458 9854.668 9845.903 71. 1980q3 10236 10287.68 10272.88 70. 1980q2 10265 10568.62 10523.28 time sncft_~n shw1 shwa
. list time sncft_lin shw1 shwa in 70/76
91
Les prévisions pour le troisième trimestre de l’année 1981 seront égales à 10671,89 (pour le modèle
multiplicatif) et 10644,32 (pour le modèle additif). Il est clair que le modèle est additif tel que
l’indique la série seas.
72. 1980q4 185.78357 71. 1980q3 273.50992 70. 1980q2 397.7333 69. 1980q1 -857.02679 time seas
. list time seas if seas<.
81
Références bibliographiques
LEBLOND, S., 2003, Guide d’Econométrie appliquée pour Matlab, Université de
Montréal, 50p.
RAKOTOMALALA, R., 2008, Analyse de la corrélation. Etudes des dépendances –
variables quantitatives, Université Lumière Lyon 2, Lyon, 89p.
HAMILTON, L.C., 2006, Statistics with Stata, Pacific Grove, CA: Thomson
Brook/Cole.
KAMIANTAKO, A., 2010, polycopié du cours de théories et prat iques de
prévision, Faculté de Sciences Economiques et de Gestion, Université de
Kinshasa, Kinshasa.
TOMBOLA, C., 2012, ―Econométrie 1 : Rappels et Recueils d’exercices‖, Guide
Laréq pour étudiant, (Juin 2012), 109p.
Annexe
Annexe1
Année 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
PIB 297,1 290,8 300,9 318,3 336,5 366 386,4 410,8 436,3 448,2
INV 3,5 5,2 9 12,2 12,8 14,2 13 19,5 23,9 29,8
Source : Banque Centrale du Congo et Banque mondiale
83
Annexe 2
Source : Princeton University
Annexe 3
Données sur l’économie américaine
Année gdpr consgr invgr unemp gdpcapgr inf producgr 1992 3.1 2.9 5.2 7.5 1.9 3 5.1
1993 2.7 3.4 5.7 6.9 1.5 3 1.9
1994 4 3.8 7.3 6.1 3 2.6 3
1995 2.7 3 5.4 5.6 1.7 2.8 3.9
1996 3.6 3.2 8.4 5.4 2.6 2.9 3.4
1997 4.4 3.6 8.8 5 3.4 2.3 3.8
1998 4.4 4.7 10.7 4.5 3.4 1.5 6.2
1999 4.2 5.3 9.1 4.2 3.2 2.2 5.8
2000 5 5.3 8.8 4 4.2 3.4 7.2
2001 1.5 2.5 3.3 4.4 0.7 2.6 4.1
2002 2.5 2.4 3.8 5 1.8 2.2 3
Source : US Census
85
Annexe 4
Les données suivantes représentent l'évolution des ventes mensuelles
de maisons (en milliers) dans les états du MidWest Américain.
Mois Ventes janv-94 128 févr-94 135 mars-94 130 avr-94 127 mai-94 125 juin-94 119 juil-94 108 août-94 112 sept-94 111 oct-94 141 nov-94 126 déc-94 113 janv-95 107 févr-95 110 mars-95 122 avr-95 128 mai-95 121 juin-95 131 juil-95 134 août-95 138 sept-95 132 oct-95 131 nov-95 130 déc-95 125 janv-96 146 févr-96 137 mars-96 132 avr-96 128 mai-96 141 juin-96 122
juil-96 133 août-96 173 sept-96 130 oct-96 117 nov-96 127 déc-96 148 janv-97 148 févr-97 119 mars-97 125 avr-97 134 mai-97 137 juin-97 157 juil-97 152 août-97 138 sept-97 129 oct-97 133 nov-97 166 déc-97 157 janv-98 166 févr-98 187 mars-98 178 avr-98 151 mai-98 147 juin-98 173 juil-98 160 août-98 149 sept-98 175 oct-98 159 nov-98 161 déc-98 186 janv-99 152 févr-99 163 mars-99 149 avr-99 169 mai-99 175 juin-99 171 juil-99 171 août-99 185
87
sept-99 158 oct-99 189 nov-99 178 déc-99 148 janv-00 146 févr-00 166 mars-00 168 avr-00 139 mai-00 150 juin-00 148 juil-00 169 août-00 141 sept-00 163 oct-00 158 nov-00 149 déc-00 174 janv-01 173 févr-01 168 mars-01 192 avr-01 176 mai-01 186