Réseaux de neurones et séries temporelles : une...

35
UNIVERSITE PARIS DAUPHINE / PARIS 2 PANTHEON-ASSAS MASTER 272 IEF / ISF Réseaux de neurones et séries temporelles : une application sous SAS. Nicolas Arnoult, 2011 Professeur sponsor : Joseph Rynkiewicz RÉSUMÉ. Cet article a pour objectif de présenter une méthode permettant d’utiliser les réseaux de neurones pour répondre à un besoin d’affiner les prévisions de séries temporelles. Il propose une méthodologie pour aborder et répondre, étape par étape, aux problèmes pratiques et théoriques d’utilisation et de programmation des perceptrons multicouches. ABSTRACT. The objective of this paper is to present a method to use artificial neural networks to improve time series forecasting. It suggests a methodology to deal, step by step, with practical and theoretical problems of these models. It also proposes programming solutions to answer this problematic. MOTS-CLÉS : Réseaux de Neurones Autorégressifs, Réseaux de Neurones à Moyenne Mobile, Perceptron Multicouches, Econométrie Non Linéaire. KEYWORDS: Neural Autoregressive Model, Neural Network Modeling, Neural Moving Average Model, Time Delayed Neural Network, NAR, NARMA, NARMAX, Multilayer Perceptron. REMERCIEMENTS: Je tiens à remercier Joseph Rynkiewicz, maître de conférences à l’université Paris 1 Panthéon Sorbonne, pour m’avoir apporté son expérience sur ce sujet.

Transcript of Réseaux de neurones et séries temporelles : une...

Page 1: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

UNIVERSITE PARIS DAUPHINE / PARIS 2 PANTHEON-ASSAS MASTER 272 IEF / ISF

Réseaux de neurones et séries temporelles :

une application sous SAS.

Nicolas Arnoult, 2011

Professeur sponsor : Joseph Rynkiewicz

RÉSUMÉ. Cet article a pour objectif de présenter une méthode permettant

d’utiliser les réseaux de neurones pour répondre à un besoin d’affiner les

prévisions de séries temporelles. Il propose une méthodologie pour aborder et

répondre, étape par étape, aux problèmes pratiques et théoriques d’utilisation

et de programmation des perceptrons multicouches.

ABSTRACT. The objective of this paper is to present a method to use artificial

neural networks to improve time series forecasting. It suggests a methodology

to deal, step by step, with practical and theoretical problems of these models. It

also proposes programming solutions to answer this problematic.

MOTS-CLÉS : Réseaux de Neurones Autorégressifs, Réseaux de Neurones à

Moyenne Mobile, Perceptron Multicouches, Econométrie Non Linéaire.

KEYWORDS: Neural Autoregressive Model, Neural Network Modeling, Neural

Moving Average Model, Time Delayed Neural Network, NAR, NARMA,

NARMAX, Multilayer Perceptron.

REMERCIEMENTS: Je tiens à remercier Joseph Rynkiewicz, maître de conférences à l’université Paris 1 Panthéon Sorbonne, pour m’avoir apporté son expérience sur ce sujet.

Page 2: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

Table des matières

1. INTRODUCTION .................................................................................................. 1

2. PRINCIPES GENERAUX ........................................................................................ 2

2.1. LE RESEAU BIOLOGIQUE ......................................................................................... 2

2.2. LE PERCEPTRON MULTICOUCHES ............................................................................. 3

2.3. LE PERCEPTRON MULTICOUCHES APPLIQUE AUX SERIES TEMPORELLES ............................. 4

3. PRINCIPES D’ESTIMATION .................................................................................. 6

3.1. HYPOTHESES ....................................................................................................... 6

3.2. RECHERCHE DU MODELE DOMINANT ET ELAGAGE ....................................................... 7

4. TECHNIQUES DE PROGRAMMATION ................................................................ 10

4.1. DEFINITION D’UNE ARCHITECTURE ......................................................................... 10

4.2. RECHERCHE DU MODELE DOMINANT ...................................................................... 11

4.3. ELAGAGE .......................................................................................................... 12

4.4. REPRESENTATION GRAPHIQUE .............................................................................. 14

5. APPLICATION ................................................................................................... 17

5.1. PRESENTATION DES DONNEES ............................................................................... 17

5.2. LE MODELE LINEAIRE ........................................................................................... 18

5.3. LE MODELE NEURONAL ........................................................................................ 19

6. EXTENSIONS ..................................................................................................... 25

7. CONCLUSION .................................................................................................... 26

8. REFERENCES ..................................................................................................... 27

9. ANNEXES .......................................................................................................... 28

9.1. IMPORTANCE DES CONSTANTES DANS LE MODELE NEURONAL ...................................... 28

9.2. APPLICATION AU MODELE NARMA ....................................................................... 30

9.3. COMPLEMENTS D’INTERPRETATION ....................................................................... 32

Page 3: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

1

1. Introduction

L’utilisation des réseaux de neurones a longtemps été restreinte à résoudre des problèmes de

classifications en analyse de données. Récemment, des études ont montré que les réseaux de

neurones de la forme des Perceptrons Multicouches (Multi-Layer Perceptron) pouvaient, s’ils

étaient suffisamment bien spécifiés, réduire significativement l’erreur de prévision des séries

temporelles.

Dans cet article, nous nous proposons de présenter et d’utiliser l’une de ces méthodes, qui

consiste à éviter le sur-apprentissage en considérant le MLP comme un modèle statistique à

part entière. Nous utilisons alors des critères d’information permettant de trouver le réseau

optimal.

Nous présentons également des éléments de programmation permettant de rechercher ce

réseau grâce à un algorithme forward/backward, ainsi qu’une technique simple pour

représenter graphiquement le réseau.

Nous choisissons par la suite d’appliquer le modèle ainsi construit sur un exemple concret, et

de comparer le pouvoir prédictif du modèle neuronal avec celui du modèle linéaire.

Enfin, nous proposons des axes d’évolution du programme pour estimer un réseau à sortie

multidimensionnelle ou à plusieurs couches cachées.

Page 4: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

2

2. Principes généraux

2.1. Le réseau biologique

Les réseaux de neurones pour la régression sont inspirés du fonctionement des

neurones biologiques. Le neurone reçoit par l’intermédiaire des dendrites de nombreuses

informations. Nous appelerons ces informations « inputs ». Les inputs sont regroupés dans le

noyau. Une nouvelle information est transmise par une branche de sortie, l’axone, aux autres

neurones connectés à ce réseau. Un neurone transmet l’information lorsque le stimuli reçu est

supérieur à un seuil. Nous appellerons ce seuil « fonction d’activation ». A la fin, toutes ces

informations sont regroupées en une ou plusieurs informations dont notre cerveau tire une

interprétation. Nous appelerons ces informations finales « outputs ». Le développement du

réseau neuronal s’effectue au fur et à mesure des expériences vécues par un individu. En

résumé, même s’il ne dispose pas de toute l’information, le cerveau est capable de trouver une

réponse aux stimulis qu’il reçoit.

Figure 1 : Représentation d’un neurone biologique

Lorsque nous modélisons des séries temporelles, nous ne possédons pas la totalité de

l’information qui nous serait nécessaire pour établir des prévisions fines. Cependant, en

faisant appel à l’historique que nous possédons et en combinant toutes ces informations, nous

pouvons réduire significativement la marge d’erreur de nos prévisions.

Page 5: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

3

2.2. Le perceptron multicouches

Le MLP est un réseau de neurones composé d’une succession de couches. On appelle

« couche » un ensemble de neurones où l’information ne circule pas directement entre ceux-

ci. Le réseau fonctionne en établissant des connexions entre les différentes couches.

On appelle couche d’entrée, les informations lues par le réseau (inputs). Sur cette

couche, un neurone correspond à un signal d’entrée. Une couche de sortie fournie la réponse

du réseau (output). Entre ces deux couches, des couches dites « cachées » participent au

tranfert de l’information. La figure 2 fournit un exemple de la représentation d’un perceptron

multicouches.

Figure 2 : Représentation d’un MLP

Comme nous pouvons le constater, de nombreuses couches cachées avec un nombre

de neurones différents dans chaque couche, peuvent être envisagées. Dans le cas du MLP ci-

dessus, la sortie est dite multidimensionelle (2 outputs).

Page 6: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

4

2.3. Le perceptron multicouches appliqué aux séries temporelles

Nous considérons par la suite un (p,K) perceptron multicouches, avec une unité de

sortie linéaire dans la couche de sortie, p unités linéaires sur la couche d’entrée et K unités sur

la couche cachée munies d’une fonction d’activation sigmoïde . Nous choisissons

volontairement dans un premier temps de présenter un modèle avec une seule couche cachée

et à sortie unidimensionelle.

Le modèle suivant correspond au cas d’un modèle NAR (Neural Autoregressive

Model). Les retards choisis en entrée sont ceux de l’analyse linéaire. La représentation du

MLP dans le cas d’une série temporelle AR(p) prend alors la forme générale représentée par

la figure 3.

Figure 3 : Représentation d’un modèle NAR (p,K)

Soit :

- le poids de la constante reliée au neurone caché j.

- le poids de la constante cachée reliée à l’output.

- le poids de l’input relié au neurone caché j.

- le poids du neurone j relié à l’output.

- les résidus.

Le modèle s’écrit alors comme une fonction non linéaire:

(1)

Page 7: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

5

Il s’étend aisément à un modèle NARMA (Neural Autoregressive Moving Average

Model) en réinjectant les résidus du premier modèle en input, ou NARMAX en ajoutant des

variables exogènes en input. L’expression générale peut alors se formaliser comme ceci :

(2)

Avec l’input numéro i du modèle.

Le choix de la fonction sigmoïde résulte plus d’un choix stratégique en termes de

temps de calcul et d’interprétabilité. En effet, Rynkiewicz (2000) montre qu’il revient

finalement au même de considérer différentes fonctions d’activations sigmoïdes. Ainsi, nous

choisirons la fonction tangente hyperbolique définie ci-dessous :

(3)

Cette fonction présente l’intérêt d’être aisément dérivable (équation 4) et d’être

bijective sur ]-1 ;1[. Nous reviendrons sur l’intérêt de cette propriété dans la phase d’analyse

du modèle optimal.

(4)

La fonction d’erreur du modèle statistique général à une couche cachée s’écrit donc de

la manière suivante :

(5)

Avec W le vecteur de tous les paramètres

La fonction d’erreur est continue, dérivable au premier et second ordre.

Le minimum de la fonction d’erreur est trouvé grâce à l’algorithme itératif de Newton

Raphson. Cette méthode particulièrement efficace ne dispense pas de prendre des dispositions

pour gérer la présence d’éventuels minimas locaux et de non convergence. Ainsi, nous

choisissons d’initialiser la valeur des paramètres de manière aléatoire. Le nombre

d’initialisations peut être modifié à travers le programme que nous mettons en place.

Rynkiewicz (2001) montre qu’une dizaine d’initialisations suffisent à éviter les minimums

locaux. Enfin, pour limiter le temps de calcul, nous choisissons de stopper le nombre

d’itérations à 100 dans le cas où cet algorithme n’aurait toujours pas convergé. Notons que le

programme permet d’utiliser d’autres algorithmes d’optimisation présents dans la procédure

Neural.

nloptions technique=&method. ;prelim 10 preiter=100 pretech=&method.;

Page 8: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

6

3. Principes d’estimation

3.1. Hypothèses

Les données utilisées sont standardisées par le calcul suivant :

(6)

La fonction d’activation est très sensible à la forme des données et passer par cette

étape permet de se placer dans un cadre correct du point de vue de l’estimation. Arnoult et

Issaad (2011) ont montré dans un projet universitaire que la qualité de la prévision pouvait en

être fortement affectée. Pour effectuer l’opération inverse à la fin du programme, les

statistiques de la moyenne et de l’écart type sont retenues.

/*retain mean and std before standardization*/ proc means data = &table. mean std noprint; var &target.; output out=stat mean=_mean_ std=_std_; run;quit; data _null_; set stat; call symputx("mean",_mean_); call symputx("std",_std_); call symputx("freq", _FREQ_); run; /*****************************************/ /*standardize data*/ proc standard data=&table. out=&table._std mean=0 std=1; var &target. &exvar.; run; /****************/

Il est également nécessaire de vérifier plusieurs hypothèses pour utiliser les réseaux de

neurones avec des séries temporelles. Dans un premier temps, il convient d’étudier les

propriétés du modèle linéaire usuel. Les hypothèses de non autocorrélation, de stationarité,

etc… doivent être vérifiées. Une fois le modèle linéaire établi, nous utilisons les variables

significatives en inputs dans le réseau. Il existe cependant une exception : dans le modèle

linéaire, si toutes les données sont centrées, alors la constante ne sera pas significative. En

revanche, dans un modèle non linéaire, l’utilisation d’une constante et/ou d’une constante

cachée peut s’avérer significative. Nous montrons en annexe 1 que l’oubli de ces constantes

peut nettement dégrader la prévision.

Page 9: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

7

La représentation d’un modèle linéaire à a priori d’autres avantages. Elle permet par

exemple de donner une meilleure interprétabilité au réseau. En effet, celle-ci s’avère de plus

en plus difficile à mesure que le réseau possède un nombre de neurones important.

3.2. Recherche du modèle dominant et élagage

Définition : On entend par « modèle dominant » le réseau d’architecture maximal en

termes de nombre de neurones cachés. Il comprend au moins tous les paramètres significatifs

du modèle.

Si l’on ne choisit pas un critère d’arrêt de l’apprentissage du modèle, celui-ci est alors

totalement sur-paramétré (augmentation du nombre de neurones jusqu’à avoir un fit

pratiquement parfait). Deux techniques sont principalement utilisées pour stopper

l’apprentissage du réseau si l’on utilise des séries temporelles.

La technique la plus classique, l’« early stopping », se rapproche de la technique

utilisée lorsque l’on réalise un score. La base de données est séparée en trois. Une partie de la

base est utilisée comme base d’apprentissage. Il s’agit de l’échantillon sur lequel les

paramètres sont estimés. Le deuxième échantillon est celui de validation. A chaque fois

qu’une itération est effectuée dans l’estimation du réseau (ajout d’un neurone

supplémentaire), l’erreur quadratique moyenne est calculée sur cette base de validation. Dès

que la moyenne des erreurs augmente, l’estimation est stoppée. Il s’agit donc d’un algorithme

de sélection forward. Les poids sont ensuite élagués suivant une méthode d’élagage dite

backward. Le lien faisant le plus baisser la moyenne quadratique des erreurs est éliminé

jusqu’à ce que ce critère ne baisse plus. En pratique, les résultats de cette méthode sont

satisfaisants. En revanche, cette méthode est extrêmement sensible au choix du découpage de

la base de données. Par ailleurs, elle recquiert également un nombre d’observations très

important, ce qui est rarement le cas lorsque l’on utilise des séries temporelles au sein d’une

entreprise. C’est pourquoi nous choisissons d’utiliser la deuxième méthode.

Cette deuxième méthode est basée sur le fait que les réseaux de neurones sont des

modèles statistiques à part entière et que, par conséquent, des critères usuels en séries

temporelles peuvent être utilisés. Mangeas et Yao (1997) et Rinkiewicz et al (2001) montrent

que deux critères consistant théoriquement peuvent être utilisés dans la recherche du modèle

dominant. Il s’agit des critères BIC et BIC* définis ci-dessous :

Soit :

- CR le carré des résidus engendré par le minimum de la fonction d’erreur

- N le nombre d’observation

- m le nombre de paramètres estimés par le modèle

(7)

Page 10: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

8

(8)

Avec une constante.

La méthode de sélection du nombre de neurones avec cette technique est similaire à

celle de l’ « early stopping ». Un neurone est ajouté à la couche cachée tant que cela fait

baisser le critère d’infomation. Ainsi, théoriquement, comme Mangeas et Yao (1997) le

montrent, le modèle converge presque sûrement vers le modèle dominant. Mangeas (1996) a

montré par expérimentation que le critère d’information est une fonction convexe du nombre

d’unités cachés. Nous ne risquons pas de tomber sur un minimum local. Par la suite, c’est à

nouveau la méthode d’élagage backward qui est appliquée.

On remarque que ces deux critères pénalisent plus ou moins fortement le nombre de

paramètres du modèle. C’est cette pénalisation qui va permettre d’éviter un sur-apprentissage.

En pratique, est fixé comme étant de même ordre de grandeur que la variance de l’erreur

résiduelle. Rinkiewicz (2011) montre cependant que lorsque le nombre d’observations est trop

faible (N < 500), autoriser ce paramètre à bouger à chaque étape de l’estimation revient très

souvent à surparamétrer le modèle. Ainsi, si N < 500, nous considérons dans notre

programme ce paramètre comme fixé et déterminé par la variance de l’erreur résiduelle de la

première étape d’estimation (un seul neurone caché). Dans le cas contraire, évolue à chaque

étape du processus d’estimation. Dans notre programme, la macro score à chaque étape la

table sur laquelle le réseau a appris pour calculer cette erreur résiduelle. Grâce aux résidus

estimés, il est ainsi possible de calculer aisément ces deux critères d’information.

score data=&table. out=pred_&z. outfit=fit_&z. nodmdb;

Dans l’extrait de programme ci-dessous :

- &d.=1 et &c.=1 si une constante et/ou une constante cachée sont respectivement

choisies en option de la macro, 0 sinon.

- &nbentrees. est le nombre d’input, c’est une information que l’utilisateur doit saisir

dans l’appel de la macro.

- &freq. est le nombre d’observation de la base, calculé automatiquement par la macro.

/*******Compute the BIC*******/ %if &criterion.=bic %then %do; data bic_&z.; set pred_&z.; CR= (R_&target.)**2; keep CR; run; proc sql ; create table bic_neural as

Page 11: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

9

select count(CR) as n, ((&nbentrees.+&d.)*(&z.)+(&z.+&c.)) as nb_param, sum(CR) as SCR from bic_&z.; create table selection_&z. as select log(sum(SCR)/n)+((log(n)/n)*nb_param)as bic, &z. as hiddenlayer from bic_neural ; quit; %end; /****** End of BIC computation ******/ /*********Compute the corrected BIC*************/ %if &criterion.=bic_corr %then %do; proc sql; create table SCR_&z. as select sum((R_&target.)**2) as SCR from pred_&z.; create table bic_&z. as select (avg(R_&target.))**2 as esp_square, R_&target. as R_&target. from pred_&z.; %if %sysevalf(&freq. < 500) %then %do; create table bic_neural as select count(R_&target.) as n, ((&nbentrees.+&d.)*(&z.)+(&z.+&c.)) as nb_param, (sum((R_&target.-esp_square)**2))as VAR from bic_1; %end; %if %sysevalf(&freq. ge 500) %then %do; create table bic_neural as select count(R_&target.) as n, ((&nbentrees.+&d.)*(&z.)+(&z.+&c.)) as nb_param, (sum((R_&target.-esp_square)**2))as VAR from bic_&z.; %end; create table selection_&z. as select ((SCR/n)+(VAR/n)*(log(n)/n)*nb_param) as bic, &z. as hiddenlayer, (VAR/n)as gamma from bic_neural, SCR_&z. ; quit; %if %sysevalf(&freq. < 500) %then %do; data bic_neural0; set bic_neural; drop nb_param; run; %end; %end; /**********End of corrected BIC computation*************/

Rinkiewicz (2011) montre également un troisième critère d’information consistant qui

pénalise plus fortement le nombre de paramètres. Celui-ci est défini ci-dessous :

(9)

Pour le moment, la macro ne permet pas d’estimer le modèle via cette technique. Il

s’agit là d’un premier axe d’évolution possible.

Page 12: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

10

4. Techniques de programmation

4.1. Définition d’une architecture

Pour établir l’architecture du réseau, nous utilisons la procédure « Neural » du module

SAS Enterprise Miner. Nous choisissons d’identifier toutes les variables en entrée du réseau,

comme dans l’équation 2 .

Ainsi, i&j. est l’input numéro j et h&z. le neurone caché numéro z du réseau. On

observe dans l’extrait de la macro qui suit que la fonction d’activation est bien de la forme

tangente hyperbolique (cf équation 3). On observe également que l’on a choisi de ne

conserver qu’une seule couche cachée.

/*Begin the loop for stage 1*/ %do z=1 %to & maxhiddenneural.; …… /*****Estimation procedure*******/ Title "Neural &z. hidden nodes(s)"; Proc Neural data=&table. dmdbcat=outcat; /* Read data mining data set*/; %do i=1 %to &nbentrees.; input &&var&i.. / level=int id=i&i.; %end; archi mlp hidden=&z. direct; %do i=1 %to &z.; hidden 1/id=h&i. act=tanh comb=lin &constantehid.; %do j=1 %to &nbentrees.; connect i&j. h&i.; /* Connect the nodes */ %end; %end; target &target. / level=int error=normal id=out &constante.; %do i=1 %to &z.; connect h&i. out;/* Connect the nodes */ %end; …… run;quit; /*******************************/ …… %end;

Page 13: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

11

4.2. Recherche du modèle dominant

La macro utilise par défaut un nombre de neurones cachés maximum tel que le nombre

de connexions soit inférieur au nombre d’observations. Le nombre de neurones cachés

maximum est ainsi défini par la règle suivante :

(10)

Avec P le nombre d’inputs, Kmax le nombre de neurones maximum et N le nombre

d’observations de la base. si une constante est ajoutée dans la couche cachée,

si une constante est ajoutée en input. Pour simplifier notre macro programme,

nous fixons ces variables binaires à 1.

En pratique, il est assez rare de voir un réseau dépassant plus de 10 unités sur la

couche cachée. Si ce nombre est supérieur, les temps de calcul peuvent devenir extrêmement

longs.

/*define the maximum number of hidden neurons for the loop*/ data _null_; call symputx ("maxhiddenneural",int(%sysevalf((&freq.-1-1)/(&nbentrees.+1+1)))); run; /********************************************************/

Le calcul du critère d’information tel qu’il est décrit est effectué dans une boucle allant

de 1 jusqu’au nombre de neurones autorisé (cf équation 10). Dans le cas où le critère

d’information à l’étape suivante remonte, une procédure de sortie est alors activée pour que la

macro ne retienne que le modèle dominant.

%do z=1 %to &maxhiddenneural.;

… /*retain best BIC or BICC at each step*/ data _null_; set selection_&z.; call symputx ("bic&z.",bic); run; /******************************/ /*escape procedure*/ %if &z. ne 1 %then %do; %if %sysevalf (&&bic&lagz.. <= &&bic&z..) %then %do; %let hiddenlayer=&lagz.;/*retain the number of hidden layer for next stage*/ %let connected_bic&lagz.=&&bic&lagz..; %goto next; %end;

Page 14: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

12

%end;

… %let lagz=&z.; %end; %next:

Nous avons donc réussi à estimer un modèle dominant. Le problème est désormais

d’initialiser l’élagage du réseau suivant les critères que nous avons déjà choisis.

4.3. Elagage

Nous avons choisi d’élaguer le réseau suivant une méthode de sélection dite backward.

La technique consiste à éliminer à chaque fois une connexion dans le réseau et à récalculer le

critère d’information tant que celui-ci décroît. Le programme prend en compte le cas

particulier où l’élimination d’une seule connexion n’améliorerait pas le critère d’information

pour sortir immédiatement de la boucle.

Pour bien comprendre l’extrait de programme qui suit, rapellons que le processus

d’élagage se déroule en plusieurs étapes successives :

- Dans la première étape, (p-1)K modèles sont estimés (on supprime une connexion

différente à chaque fois) et un critère d’information est calculé.

- Le minimum ces critères d’informations est comparé au critère du modèle

dominant. Si ce dernier est inférieur, on passe à l’étape suivante, sinon, on sort de

la boucle et on valide le modèle dominant comme étant le modèle optimal.

- Dans l’autre cas, la connexion précédemment éliminée est retenue. On estime dans

la seconde étape (p-2)K modèles. En effet, on teste une seconde élimination dans

le réseau. Un critère d’information par modèle est à chaque fois calculé.

- On retient à nouveau le minimum de ces critères en le comprant à celui retenu en

première étape. Si celui-ci est inférieur, la boucle continue de s’exécuter et une

nouvelle itération est faite. Dans le cas contraire, le modèle avec une connexion

éliminée est validé.

/*initializing the loop*/ %let step = 1; %let maxstep= %sysevalf(&nbentrees.*&hiddenlayer.-1); /***********************/ %do %until(&step. = &maxstep. ); %Do z=1 %to &hiddenlayer.; %do w=1 %to &nbentrees.; /*************Estimation procedure*************/ title "Neural &hiddenlayer. hidden nodes(s) connection deleted: i&w. h&z. step=&step."; proc neural data=&table. dmdbcat=outcat;

Page 15: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

13

%do i=1 %to &nbentrees.; input &&var&i.. / level=int id=i&i.; %end; archi mlp hidden=&hiddenlayer. direct; %do i=1 %to &hiddenlayer.; hidden 1/id=h&i. act=tanh comb=lin &constantehid.; %do j=1 %to &nbentrees.; connect i&j. h&i.; %end; %end; target &target. / level=int error=normal id=out &constante.; %do i=1 %to &hiddenlayer.; connect h&i. out; %end; %if &step=1 %then %do; cut i&w. h&z.; %end; %if &step ne 1 %then %do; %do r=1 %to &lagstep.; cut i&&deletedentry&r.. h&&deletedhidden&r..; %end; cut i&w. h&z.; %end; …… run;quit; /**********************************************/ …… %end; %end; %end;

Page 16: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

14

4.4. Représentation graphique

La représentation graphique permet d’analyser rapidement comment est construit le

réseau et d’en donner une première interprétation.

La première partie du programme permet de créer une table regroupant les noms des

inputs, des neurones cachés (de H1 à Hk), de l’output et de positionner ces noms au bon

endroit sur le futur graphique. Pour que le réseau soit représenté de manière bien symétrique,

il faut déterminer la position graphique de chaque neurone. Sur l’axe des abcisses, la couche

inputs prend la valeur 1, la couche cachée la valeur 2 et la couche de sortie la valeur 3. Sur

l’axe des ordonnées, les positions des différents neurones sont déterminées ainsi :

Rappel : P est déterminé par une analyse linéaire, K par la recherche du modèle

dominant.

/*retain labels to plot the network*/ %let positionf= %sysevalf((&nbentrees.+1)/2); data my_labels; retain xsys ysys '2' function 'label' position '1' style "'Arial/bo'" color 'black' ; text="Intercept";x=1;y=0;output; text="HidIntercept";x=2;y=0;output; %do i=1 %to &nbentrees.; text=" &var&i.. "; x=1; y=&i.; output; %let positionh= %sysevalf((&nbentrees./2)+1-(&hiddenlayer./2)); %do j=1 %to &hiddenlayer.;/*nombre hidden*/ text=" H&j. ";x=2; y=&positionh.;output; %let trans=%sysevalf(&positionh.); %let positionh=%sysevalf(&trans.+1); %end; %end; text=" &target. ";x=3; y=&positionf.;output; run; /**************************************/

La seconde étape est de créer dans une table les chemins parcourus par chaque input

jusqu’à l’output. La variable sur l’axe des abcisses, y, prend les valeurs 1, 2 et 3. Sur l’axe des

ordonnées, chaque chemin a donc trois positions à déterminer : input, neurone caché et output.

Il s’agit des mêmes positions que celles détaillées précédemment. Pour plus de

représentativité, on graphe chaque neurone par un cercle. Il est important de signaler à cette

étape que les connexions éliminées par l’élagage ne seront pas représentées. Ces connexions

Page 17: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

15

sont en effet supprimées par la macro grâce à une macro-variable de contrôle. Par la suite, on

inscrit dans une macro variable une chaine de caractère définie comme étant

« chemin_1*y….. chemin_k*y » avec k le nombre de chemins finaux retenus par le modèle.

L’extrait de programme ci-dessous permet de comprendre la structure algorithmique utilisée

pour la représentation graphique.

……… %let positionf= %sysevalf((&nbentrees.+1)/2);/*enter the data*/ data graph; set graph; %do i=1 %to &nbentrees.; %let positionh= %sysevalf((&nbentrees./2)+1-(&hiddenlayer./2)); %do j=1 %to &hiddenlayer.; if _N_=1 then e&i.&j.=&i. ; if _N_=2 then e&i.&j.=&positionh. ; if _N_=3 then e&i.&j.=&positionf.; %if &constante.=bias %then %do; if _N_=1 then c&j.= 0; if _N_=2 then c&j.= &positionh. ; if _N_=3 then c&j.= &positionf.; %end; %let trans=%sysevalf(&positionh.); %let positionh=%sysevalf(&trans.+1); %end; %end; %if &constantehid.=bias %then %do; if _N_=2 then c= 0 ; if _N_=3 then c= &positionf.; %end; run; proc contents data= graph out=contents noprint; run; ……… data contents; set contents; %do k=1 %to &number.; if name= "e&&controle&k.." then delete; %end; run; ……… DATA _null_ ; SET contents; /* each value is in a macro variable namei... */ call symput ("name"||compress(i),compress(name)) ; RUN ; ……… %let string_plot=; %do k=1 %to &count_loop.; %let s=&&name&k.. * Y; %let string_plot=&string_plot. &s.; %end; %if &constante.=bias %then %do; %do j=1 %to &hiddenlayer.; %let s=c&j. * Y;

Page 18: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

16

%let string_plot=&string_plot. &s.; %end; %end; %if &constantehid.=bias %then %do; %let s=c * Y; %let string_plot=&string_plot. &s.; %end;

%if &plotneural.=true %then %do; %let ways=%sysevalf(&hiddenlayer.*&nbentrees.*10); %do i= 1 %to &ways.; symbol&i. i=join v=circle c=black h=2 w=1; %end; Proc gplot data=graph; plot &STRING_plot. / vaxis=0 to &nbentrees. by 1 haxis=0 to 4 by 1 noframe overlay annotate=my_labels ; run;quit; %end;

Page 19: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

17

5. Application

5.1. Présentation des données

Nous décidons de prévoir les rendements trimestriels glissants du prix de l'or en

utilisant les données entre Janvier 1970 et Mai 2010. Nous choisissons volontairement cette

série car nous anticipons que plusieurs paramètres autoregressifs risquent d’être significatifs.

Par ailleurs, la profondeur temporelle nous permettra également d’observer d’éventuels

comportements historiques atypiques captés et gérés par le réseau. Les données sont choisies

en valorisation fin de mois. La figure 4 représente les 484 rendements logarithmiques

trimestriels glissants de la série en question. Notons que les modèles linéaires et neuronaux ne

seront estimés que sur 480 périodes, afin de pouvoir simuler un exercice de prévision out-of-

sample.

Figure 4 : Illustration de la série

Le test de stationnarité de Dickey-Fuller conduit à rejeter l’hypothèse de racine

unitaire. La statistique est de -4.9648, le retard retenu est de 7 et la p-value est inférieure à

Page 20: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

18

0.01. Notons que le nombre de retards est choisi suivant le critère usuel de significativité à

10% du dernier retard.

5.2. Le modèle linéaire

L’étude des fonctions d’autocorrélation et d’autocorrélation partielle suggèrent un

processus ARMA (12,7). Si l’on souhaite conserver pour notre exemple un modèle de type

AR, c’est un AR(12) qui semble se dégager de ce graphique.

Figure 5 : Autocorrélations et autocorélations partielles du processus

L’estimation par une procédure ARIMA nous permet de ne conserver que les retards

significatifs. Pour rester suffisament large, nous choisissons un seuil de significativité

minimum de 15%. Le tableau 1 montre le résultat de cette estimation.

Page 21: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

19

Tableau 1 : Estimation d’un processus AR

Lag Coefficient Std P-value

1 0,874 0,029 ***

3 -0,640 0,049 ***

6 -0,481 0,058 ***

7 0,086 0,050 *

8 0,071 0,049 0,149

9 0,158 0,051 ***

10 0,078 0,048 0,107

11 0,119 0,048 **

12 -0,160 0,060 **

5.3. Le modèle neuronal

Les paramètres autorégressifs de la série sont déclarés comme les inputs du modèle.

Une recherche par la méthode du BIC* donne les résultats suivants:

Tableau 2: Sélection du nombre de neurones cachés et élagage par le critère du BIC*

BIC*

Number of hidden nodes

Connection deleted

0,49533 0,4292 1 .

0,49690 0,4292 2 .

0,48985 0,4292 1

0,48442 0,4292 1

0,47912 0,4292 1

Il n’y a qu’un seul neurone caché, on s'aperçoit que le critère du BIC* remonte si l’on

ajoute un deuxième nœud. Par la suite, trois connexions sont supprimées du réseau, car cela

diminue le critère du BIC*. Notons que cette estimation est réalisée avec une constante en

input du modèle et une constante cachée. Nous verrons en annexe l’importance de l’ajout de

ces constantes dans le modèle non linéaire. Nous pouvons remarquer que l’utilisation de ce

critère sanctionne fortement le nombre de coefficients, puisque seulement 9 connexions sont

établies. Ce résultat est fortement impacté en raison du fait qu’en dessous de 500

observations, est fixé comme la variance de l’erreur résiduelle.

Page 22: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

20

Figure 6: Représentation du réseau optimal par le critère du BIC*

L'estimation des coefficients associés à ce réseau sont présentés dans le tableau 3.

Nous rappelons que ces coefficients sont estimés sur données standardisées.

Page 23: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

21

Tableau 3 : coefficients du MLP optimal sous le critère du ΒIC*

Parameter Estimate Parameter Estimate Parameter Estimate

Β11 0,170536 B15 . B19 -0,031929 Β12 -0,047358 B16 . α10 -0,467154 Β13 -0,028642 B17 . T1 5,412057 B14 0,041643 B18 0,034494 α 2,311748

Il est important de connaître la pertinence de ce modèle dans l'exercice d'une

prévision. Le meilleur moyen de savoir si un tel modèle est adapté est de comparer sa

performance prévisionnelle par rapport au modèle linéaire. Nous comparons l'erreur

quadratique sur un échantillon out-of-sample. Nous réalisons ici cet exercice sur quatre

périodes. Les prévisions présentées dans le tableau 4 sont destandardisées. La règle de

prévision est telle que tous les paramètres sont connus et certains.

Tableau 4 : Comparaison de l'erreur de prévision entre les modèles

linéaire et neuronal sur 4 périodes (BIC*) :

Date Real Linear Forecast

Linear Errors

CR Neural Forecast

(BIC*)

Neural Errors (BIC*)

Neural CR (BIC*)

February 2010 -0,054 -0,13149 0,0775 0,006 -0,05325 -0,00075 5,625E-07 March 2010 0,0148 -0,17268 0,18743 0,0351 -0,14228 0,15708 0,02467 April 2010 0,0871 -0,03294 0,12003 0,0144 -0,01045 0,09755 0,00952 May 2010 0,0846 -0,00188 0,08643 0,0075 0,07343 0,01117 0,00012

La somme des carrés des erreurs pour le modèle linéaire est de 0,06301 contre 0,03431 pour

le modèle neuronal. Ainsi, l'erreur de prévision pour ces quatre périodes est diminuée de

presque 45%. Nous venons de montrer empiriquement comment les MLP peuvent améliorer

la prévision d'une série temporelle.

Attention, dans certains cas, il se peut que les réseaux optimaux déterminés par les

critères BIC et BIC* ne convergent pas vers le même réseau. Cela est très marqué lorsque le

nombre d'observations est d’environ 500 (par construction du BIC et du BIC* dans le macro

programme). Nous avons choisi cette série dans le but d'illustrer ce phénomène. Le critère de

choix entre les deux réseaux se fera alors en fonction de la complexité du modèle et de l'erreur

de prévision out-of-sample et du temps de calcul du réseau. Le tableau 5 montre l'estimation

du réseau suivant le critère du BIC.

Page 24: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

22

Tableau 5 : Sélection du nombre de neurones cachés et élagage par le critère du BIC

BIC

Number of hidden nodes

Parameter deleted

-0.69397 1 . -0.70328 2 . -0.73384 3 . -0.69326 4 . -0.78195 3 -0.81003 3 -0.82229 3 -0.83430 3

Ce résultat illustre parfaitement le phénomène que nous venons de décrire. Un

quatrième neurone caché ne diminue pas le critère BIC. Par ailleurs, la suppression de quatre

connexions diminue le critère d'information. En termes de compréhension, ce MLP est un peu

plus complexe que le précédent car il y a plus de paramètres. La représentation graphique du

réseau, associée aux coefficients estimés dans le tableau 6 permet d’interpréter les résultats du

réseau.

Page 25: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

23

Figure 7: Représentation du réseau optimal par le critère du BIC

Tableau 6 : coefficients du MLP optimal sous le critère du ΒIC

Parameter Estimate Parameter Estimate Parameter Estimate

Β11 -2,781 Β23 -0,003 Β35 -7,927

Β13 -11,660 Β24 0,033 Β37 -28,901

Β14 -18,895 Β26 -0,012 Β38 -0,306

Β15 5,983 Β27 0,037 Τ1 -1,624

Β16 -9,569 Β28 -0,008 Τ2 4,832

Β17 35,752 Β29 -0,025 Τ3 -1,943

Β18 -18,161 Β31 4,084 α10 65,445

Β19 0,838 Β32 11,981 α20 -0,578

Β21 0,216 Β33 42,392 α30 -117,315

Β22 -0,054 Β34 16,271 α 2,140

Page 26: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

24

En termes de prévisions, le choix entre le modèle linéaire et les modèles neuronaux est

assez évident, comme le suggère le tableau 8.

Tableau 7 : Comparaison de l'erreur de prévision entre les modèles

linéaire et neuronal (BIC) :

Date Real Linear Forecast

Linear Errors

CR Neural Forecast

(BIC)

Neural Errors (BIC)

Neural CR (BIC)

February 2010 -0,054 -0,13149 0,0775 0,00601 -0,04177 0,01118 0,00013 March 2010 0,0148 -0,17268 0,1874 0,03513 -0,12773 0,12392 0,01536 April 2010 0,0871 -0,03294 0,12 0,01441 0,00357 0,10774 0,01161 May 2010 0,0846 -0,00188 0,0864 0,00747 0,06608 -0,03413 0,00117

Tableau 8 : SCR des 3 modèles estimés :

Linear SCR Neural

SCR (BIC*) Neural

SCR (BIC)

0,06301 0,03431 0,02826

Le réseau déterminé par le critère BIC produit de meilleurs résulats. Cependant, son

degré de complexité et le temps de calul pour le calibrage sont plus importants. Le temps de

calul est un inconvénient pouvant être réglé par l’utilisation d’un serveur ou d’une machine

plus puissante. La compléxité du réseau peut également être gérée, en analysant la table de

sortie fournit par SAS lors de la dernière estimation. Nous proposons en annexe 3, des

graphiques et interprétations sur l’évolution de la valeur de chaque neurone au cours du

temps.

Dans un cadre plus général, comme par exemple avec 200 ou 2 000 observations, la

pratique montre que le résultat est moins tranché. Les structures des deux réseaux tendent à se

rapprocher ou à être identiques. Si la structure du réseau est différente, le choix de l'un ou

l'autre de ces deux réseaux n'est pas obligatoire. Il possible de mixer les résultats des deux

prévisions en leurs affectant des poids qui permettent de diversifier le risque d'erreur.

Enfin, si l'on désir améliorer les prévisions, il est également possible, comme pour un

modèle ARMA, de réinjecter les résidus en input. Cela se traduit par une deuxième estimation

avec un paramètre de plus, le résidu retardé d'une période de la première régression (modèle

NARMA). Un exemple sur le modèle optimal déterminé par le BIC est observable en annexe

2. Le modèle est également généralisable à l'utilisation d'une ou plusieurs variables exogènes

(NARX-NARMAX).

Page 27: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

25

6. Extensions

Il est possible d'établir un modèle à sortie multidimensionelle (plusieurs outputs) avec

un principe identique. Il s'agit de calculer pour chaque output un critère d'information comme

le BIC ou le BIC*. Tant que ce critière diminue, un neurone caché est ajouté. Si pour l'un des

outputs, ce critère ne diminue plus, alors les neurones cachés rajoutés par la suite ne seront

plus connectés à cette sortie. L'élagage du modèle dominant est réalisé avec le même procédé.

Il est également possible d'ajouter d'autres couches cachées en suivant une technique

similaire. Une fois le modèle dominant avec une couche cachée estimé, il convient de rajouter

une couche supplémentaire et d'ajouter des neurones cachés sur cette couche jusqu'à ce que

l'on trouve le minimum du critère d'information. La fonction reliant le BIC/BIC* par rapport

au nombre de neurones cachés étant convexe, le minimum est trouvé dès que le critère

d'information croît. On compare par la suite le minimum du critère trouvé avec deux couches

cachées contre celui du modèle avec une seule couche cachée. Si celui-ci est inférieur, on

rajoute une couche cachée en suivant le même raisonnement. On itère jusqu'à ce que celà ne

soit plus le cas. Une fois le modèle dominant trouvé, l'élagage "traditionel" peut alors

commencer.

Il est possible de panacher ces deux modèles afin d'avoir un MLP à plusieurs couches

cachées et à sortie multidimensionelle.

Enfin, comme Mangeas (1996) le propose, il est également possible de créer des

réseaux où les connexions peuvent sauter une ou plusieurs couches cachées. Cette méthode

nécessite toutefois des capacités calculatoires très importantes car des milliers de modèles

sont estimés.

Page 28: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

26

7. Conclusion

Nous avons montré comment les réseaux de neurones peuvent améliorer

significativement la prévision de séries temporelles pour répondre aux éventuels problèmes

liés à la non linéarité des processus. Nous avons présenté une technique spécifique permettant

d'éviter le sur-apprentissage du réseau grâce à l'utilisation de deux critères d'information. Ces

critères d'information ne sont pas exhaustifs, tout comme la méthode utilisée. L'utilisation

d'un MLP doit être précédée d'une analyse linéaire qui respecte les hypothèses usuelles. Cela

permet dans un premier temps de sélectionner les inputs, mais également de donner une

signification au réseau qui sera construit par la suite.

Nous avons également proposé une approche en termes de programmation et

d'utilisation de la procédure "Neural" disponible dans le module SAS Enterprise Miner.

L'algorithme forward/backward permet de limiter les temps de calcul en sélectionnant le

modèle dominant puis en élaguant celui-ci.

Quelques pistes d'évolution de la méthode ont été évoquées. Ces évolutions ne posent

pas de problèmes en termes de programmation, mais elles nécessitent une puissance de calcul

plus importante. L'utilisation d'un serveur par exemple, peut remédier à ce problème. Notons

également que la complexité du réseau serait alors plus importante. Cela peut poser des

difficultés d'interprétation.

Ces modèles sont aujourd'hui parmi les plus performant en termes de pouvoir

prédictif, à la condition d'être utilisés de manière rigoureuse et de respecter les hypothèses de

construction telles qu'elles sont décrites dans cet article. Une conférence donnée en Finland

par Osowski et al (2004) montre que l'utilisation d'un MLP est plus efficace que l'utilisation

de Machine à Vecteur de Support (SVM) lorsque l'on considère la régression comme champs

d'étude. En revanche, ceux-ci s'avèreraient plus performants comme méthode de

classification.

Page 29: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

27

8. Références

Arnoult N. et Issaad R., "Réseaux de neurones et séries temporelles : Une application au taux

de change Euro/Dollar", Projet Universitaire, Université Paris Dauphine/Paris 2 Panthéon

Assas, 2011.

Cottrell M., “Polycopie de cours : Les reseaux de neurones : historique, methodes et

applications”, 2010, Université Paris 1 Panthéon Sorbonne, Master TIDE.

Cottrell M., Mangeas M., Yao J., “New criterion of identification in the multilayered

perceptron modeling”, Proc of ESANN’97, Bruges, 1997, DiFacto.

Cottrell M., Mangeas M., Rinkiewicz J., Yao J., “Modèles de réseaux de neurones pour

l’analyse des séries temporelles ou la régression” Publication du SAMMOS, Université Paris

1 Panthéon Sorbonne, 2001.

Diallo A. et Arnoult N., “Gold prices determining factors”, Projet Universitaire, Université

Paris 1 Panthéon Sorbonne, 2010.

Mangeas M, « Propriétés statistiques des modèles paramétriques non linéaires de prévisions

de séries temporelles », Thèse de doctorat, Université Paris 1 Panthéon Sorbonne, 1996.

Osowski S., Siwek K. et Markiewicz T., “ MLP and SVM networks - a Comparative study ”,

proceedings of the 6th Nordic Signal Processing Symposium, 2004, pages 37-40, Espoo

(Finland).

Rynkiewicz J., « Modèles hybrides intégrant des réseaux de neurones artificiels à des

modèles de chaines de Markov cachées : application à la prédiction de séries temporelles »

Thèse de doctorat, Université Paris 1 Panthéon Sorbonne, 2000.

Rynkiewicz J., « Manuel de Regress et quelques autres programmes » Publication du

SAMMOS, Université Paris 1 Panthéon Sorbonne, 2001.

Rynkiewicz J., « General bound of overfitting for MLP regression models », 19th European

Symposium on Artificial Neural Networks, 2011.

Support SAS, “The NEURAL Procedure”, Online Miner documentation,

http://support.sas.com/documentation/onlinedoc/miner/em43/neural.pdf

Widrow B. et Lehr M.A. “Perceptrons, Adalines, and Backpropagation,'' in Handbook of

Brain Theory and Neural Networks, M.A. Arbib, ed., pp.719-724, MIT Press, 1995

Page 30: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

28

9. Annexes

9.1. Importance des constantes dans le modèle neuronal

Dans le modèle linéaire, si les données sont centrées, la constante apparaît comme non

significative. Or, lorqu’un modèle non linéaire est estimé, l’utilisation d’une constante en

input et d’une constante cachée peut améliorer considérablement la prévision. Cet annexe

presente la différence entre une estimation avec (cf 5.3. Le modèle neuronal) ou sans

constante pour le modèle défini grâce au critère d’information BIC. L’estimation du modèle

sans constante donne les résultats suivants :

Tableau 9 : Sélection du nombre de neurones cachés et élagage par le critère du BIC

BIC Number of hidden

nodes Parameter

deleted

-0.70698 1 . -0.71933 1 -0.73164 1 -0.74051 1

Le résultat est très différent. Le modèle dominant est considéré comme ayant un seul

neurone caché et trois connexions supprimées. On remarque que le critère d’information BIC

est plus élevé que lorsqu’une constante et une constante cachée sont intégrées au modèle (cf :

tableau 4). Le modèle est donc sous paramétré. La figure 8 fournit une représentation du

réseau :

Page 31: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

29

Figure 8 : Représentation du réseau optimal par le critère du BIC

Tableau 10 : coefficients du MLP optimal sous le critère du ΒIC

Parameters Coefficients

B11 -0.029353

B12 0.008171

B13 0.004034

B14 -0.007074

B18 -0.005686

B19 0.004537

T1 -26.023083

La prévision en est également affectée : la somme des erreurs au carré est de 0,046675

contre 0,02826 (cf : tableau 7) dans le modèle avec constantes.

Page 32: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

30

9.2. Application au modèle NARMA

Comme nous l’avons précisé dans notre étude, il est possible de rajouter en inputs les

résidus retardés (modèle NARMA) ou encore une ou plusieurs variables exogènes (modèle

NARX/NARMAX). Nous proposons ici un exemple en réinjectant à notre modèle les résidus

retardés d’une période du modèle NAR en input. Les résultats de la recherche du modèle

dominant et de l’élagage sont fournis dans le tableau 8.

Tableau 11 : Sélection du nombre de neurones cachés et élagage par le critère du BIC

BIC Number of hidden nodes Parameter deleted

-0,70129 1 . -0,71359 1 -0,72586 1 -0,73723 1

Un seul neurone caché est nécessaire pour estimer ce réseau. Le réseau estimé lors de

cette deuxième étape est bien moins complexe que lors de la première estimation.

Figure 9 : Représentation du réseau optimal par le critère du BIC

Page 33: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

31

Tableau 12 : coefficients du MLP optimal sous le critère du ΒIC

Parameters Coefficients B1,1 -0,145056 B1,2 0,03773 B1,3 0,03077 B1,4 -0,043087 B1,8 -0,035879 B1,9 0,030903 B1,10 -0,024904

α1,0 0,591348 T1 -6,27987

α 3,27655

La prévision est également améliorée avec un SCR égal à 0,027765.

Tableau 13 : Comparaison de l'erreur de prévision entre les modèles

NAR (BIC) et NARMA (BIC) :

Date Real NAR

forecast NAR

Errors NAR CR

NARMA forecast

NARMA Errors

NARMA CR

February 2010 -0,054 -0,04177 0,01118 0,00013 -0,0418 -0,01222 0,000149

March 2010 0,0148 -0,12773 0,12392 0,01536 -0,1277 0,14248 0,0203

April 2010 0,0871 0,00357 0,10774 0,01161 0,0036 0,08351 0,006975

May 2010 0,0846 0,06608 -0,03413 0,00117 0,0661 0,01847 0,000341

Page 34: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

32

9.3. Compléments d’interprétation

Les figures 10, 11 et 12 représentent les valeurs prises par chaque neurone au cours du

temps. Il est intéressant de remarquer dans un premier temps que le second neurone semble

jouer un rôle presque ordinaire, celui de fitter la variable prédite lorsque celle-ci suit un

comportement habituel. En revanche, les neurones 1 et 3 semblent refléter des périodes de

fortes turbulences. L’intérêt de prendre une série à l’historique si important, est qu’un

comportement atypique 30 ans plus tôt, a permis de préciser la prévision aux alentours de

l’année 2010. Ces deux neurones, peuvent également être considérés comme reflétant un

régime différent de celui que suit le processus en temps normal, sa valeur passant d’un

extrême à l’autre très rapidement. Dans un projet universtaire, Diallo et Arnoult (2010) ont

montré qu’une telle série pouvait se traduire par un processus à deux régimes.

Figure 10 : Valeur de H1 (BIC)

Page 35: Réseaux de neurones et séries temporelles : une ...nicolasarnoult.free.fr/mapage/r-seaux-de-neurones-et-s-ries... · Figure 1 : Représentation d’un neurone biologique ... Model)

33

Figure 11 : Valeur de H2 (BIC)

Figure 12 : Valeur de H3 (BIC)