1. Trang chủ
  2. » Thể loại khác

Implémentation d''''''''une copule mutilvariée: Luận văn ThS. Công nghệ thông tin

61 8 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 61
Dung lượng 1,93 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

qx, qy sont des fonctions 1.1.4 Cumulative distribution networks Cumulative distribution network CDN est un mod`ele statistique propos´e dans la th`ese de Huang [7].. Un Cumulative distr

Trang 1

R´ealis´e par :

PHAM Van Trung

Superviseur :Gildas MAZO

Projet MistisCentre de recherche

29 novembre 2013

Trang 2

Je tiens ´egalement `a remercier les membres de l’´equipe MISTIS Grˆace `a leur soutien,j’ai pu m’int´egrer facilement `a l’´equipe.

Je voudrais adresser mes sinc`eres remerciements aux professeurs de l’IFI Leurs coursm’ont permis d’approfondir mes connaissances sur des langages de programmation telsque R et C++

Van qui m’ont support´e ces six mois de stage Leurs encouragements m’ont permis d’ˆetretoujours motiv´e et d’avoir pu remplir mon rˆole

i

Trang 3

L’objectif de ce m´emoire de fin d’´etudes est d’impl´ementer une copule multivari´ee soci´ee `a un Cumulative Distribution Network (CDN) CDN est une fonction de r´epartitiond’un grand nombre de variables qui se factorise en produit de fonctions de r´epartitionbivari´ees Ce mod`ele permet de d´ecrire la d´ependance entre plusieurs variables al´eatoiresvia un graphe o`u les arrˆetes repr´esentent les fonctions reliant les variables La fonction devraisemblance est calcul´ee grˆace `a un algorithme de message-passing L’inf´erence dans

as-le CDN est alors mise en oeuvre via la maximisation de la vraisemblance en utilisantune m´ethode d’optimisation

Toutefois, l’impl´ementation d´elicate de ce mod`ele peut freiner l’utilisateur dans la tique Nous nous proposons de l’impl´ementer et de le rendre disponible sous la formed’un paquet R R est un logiciel de statistique tr`es r´epandu et de plus en plus utilis´e.Avec ce paquet, il est tr`es facile de construire le graphe et de choisir des familles decopule param´etriques ainsi que de mod´eliser des donn´ees avec un CDN Il permet aussi

pra-de calculer la vraisemblance selon l’algorithme pra-de message-passing et pra-de faire l’inf´erence

En outre, la vitesse de l’algorithme est augment´ee grˆace `a l’´ecriture d’une partie du code

en C++

Mots-cl´es : Cumulative Distribution Network, copule, vraisemblance, fonction de r´epartitionmultivari´ee

ii

Trang 4

The goal of the thesis aims at implementing a multivariate copula associated with aCumulative Distribution Network (CDN) CDN is a high-dimensional cumulative dis-tribution function (CDF) defined as a product of bivariate CDFs This model accountsfor dependencies between random variables via a graph where the edges represent thefunctions linking the variables The likelihood function is computed thanks to a message-passing algorithm The inference in CDN is performed by optimizing the likelihoodfunction

However, the implementation of this model is not available for users in practice Hence,

we propose to implement it and make it available as an R package R is a statisticalsoftware widely spread in pratice Using this package, the users can build easily thegraph, choose parametric copula families and generate data with a CDN It allows tocompute the likelihood function according to a message-passing algorithm and performinference in CDN Moreover, the speed of the algorithm has been increased by integratingC++ codes

Keywords : Cumulative Distribution Network, copula, likelihood, multivariate bution function

distri-iii

Trang 5

Remerciements i

1.1 Statistique th´eorique 3

1.1.1 Mod`ele statistique 3

1.1.2 Estimation des param`etres d’un mod`ele statistique 4

1.1.3 Copules 5

1.1.4 Cumulative distribution networks 6

1.1.5 La copule associ´ee au CDN 8

1.2 Environnement de programmation 9

1.2.1 R 9

1.2.2 Structure d’un paquet R 9

1.2.3 Rcpp - Interface entre R et C++ 10

2 Algorithme de gradient-derivative-product 11 2.1 Initialisation de l’algorithme 11

2.2 Propagation des messages 12

2.3 Calcul de la fonction de vraisemblance et son gradient 13

3 Impl´ementation 17 3.1 Structure du paquet 17

3.1.1 Code source 18

3.1.2 Documentation 18

3.1.3 Tests et tutoriels 19

3.2 Fonctions du paquet 19

3.2.1 Cr´eation d’un objet CDN 20

3.2.2 Impl´ementation de l’algorithme de message-passing 22

3.2.3 Estimation des param`etres 26

iv

Trang 6

Contents v

4.1 Pr´ecision num´erique de l’algorithme de message-passing 28

4.2 Simulation des donn´ees 30

4.3 Temps d’ex´ecution 33

4.4 Application avec un jeu de donn´ees r´eelles 36

5 Conclusions et perspectives 40 Bibliographie 41 A mpAlgo 43 A.1 Initialisation de l’algorithme de message-passing 43

A.2 Propagation des messages 44

A.3 Calcul de la densit´e et du gradient 47

B cdnOptim 48 B.1 Calcul de la fonction de vraisemblance et son gradient 48

B.2 M´ethode de Broyden-Fletcher-Goldfarb-Shanno bfgs 49

B.3 Limited-memory BFGS with bounds lbfgsb 50

C rCdn, pCdn et dCdn 51 C.1 G´en´eration al´eatoire des observations rCdn 51

C.2 Calcul de la fonction de r´epartition pCdn 52

C.3 Calcul de la densit´e de plusieurs observations dCdn 52

Trang 7

1.1 Exemple d’un CDN `a trois variables 7

1.2 Exemple d’un CDN `a sept variables 8

2.1 Exemple d’un arbre de 5 variables 15

2.2 Propagation des messages dans le CDN 16

3.1 Composants principaux du paquet CDN 17

3.2 Code source du paquet CDN 18

3.3 Documentation du paquet 19

3.4 Tests et d´emo 19

3.5 Diagramme des fonctions du paquet 20

3.6 Cr´eation d’un objet CDN 21

3.7 Exemple de transformation d’un graphe des variables en graphe CDN 22

3.8 Exemple de simplification du graphe 23

3.9 Algorithme de message-passing 23

3.10 Calculation de la fonction de r´epartition normale et ses gradients 24

3.11 Appel des libraries/fonctions dans C/C++ 25

3.12 Comparaison entre cdnOptim et optim 27

4.0 Pr´ecision de l’algorithme de message passing avec 5 mod`eles existants 31

4.1 Pr´ecision de l’algorithme de message passing avec le mod`ele normal 32

vi

Trang 8

List of Tables vii

millise-condes) 354.3 Plan de 9 sites aux ´Etats Unis o`u les pr´ecipitations sont utilis´ees pournotre mod`ele 384.4 R´esultats de 6 mod`eles mutivari´es 39

Trang 9

3.1 Matrice binaire extraite du graphe CDN 22

4.1 Probabilit´e de l’´ev´enement (X1 ≤ x01, X2≤ x02, X3 ≤ x03, X4 ≤ x04, X5 ≤

x05) dans les donn´ees simul´ees et F (x0) = F (x01, x02, x03, x04, x05) 324.2 R´esultats de l’estimation des param`etres 34

(en secondes) 36

viii

Trang 10

Contexte du stage

Les copules [1, 2] jouent un rˆole de plus en plus important dans la construction dedistributions en grande dimension et la description de la d´ependance entre les variablesal´eatoires L’une des difficult´es de la construction d’une copule mutilvari´ee r´eside dansl’inf´erence de mod`eles param´etriques Une copule multivari´ee associ´ee `a un CumulativeDistribution Network (CDN) [3] a ´et´e propos´ee L’int´erˆet de ce mod`ele est la capacit´e

de faire l’inf´erence via un algorithme de message-pasing [4] L’estimation des param`etresest alors mise en oeuvre par la maximisation de la vraisemblance Toutefois, le code pourutiliser le CDN ainsi que l’algorithme de message-passing n’est pas disponible Cela peutfreiner l’utilisateur dans la pratique C’est la raison pour laquelle nous nous proposonsd’impl´ementer cet algorithme dans mon stage

Objectif de stage

L’objectif de mon stage est d’impl´ementer l’inf´erence de cette copule multivari´ee et de

la rendre disponible sous la forme d’un paquet R [5] Ce paquet qui s’appelle CDN estdisponible pour l’utilisation Je l’ai pr´esent´e dans une communication orale et un poster

en juin 2013 `a Lyon lors des deuxi`emes rencontres R [6] Je pr´evois de le soumettresur le d´epˆot des paquets R (http://cran.r-project.org/) en d´ecembre 2013 apr`es lapublication de [3]

Environnement de stage

cadre du projet MISTIS sous la direction de Mazo Gildas Cette ´equipe a pour domained’expertise la mod´elisation de ph´enom`enes al´eatoires complexes en grande dimension

1

Trang 11

et les statistiques des valeurs extrˆemes, avec pour orientations applicatives privil´egi´ees

le traitement d’images et de donn´ees spatiales et dans les domaines biom´edicaux etindustriels Mon stage s’inscrit `a l’interface des statistiques des valeurs extrˆemes et de

la mod´elisation statistique en grande dimension

Ce m´emoire se compose des cinq chapitres suivants :

statistiques n´ecessaires telles que le mod`ele statistique, la copule, le Cumulative

C++, est aussi expliqu´e

d´etailler un algorithme efficace qui permet de calculer la fonction de vraisemblancedans le Cumulative Distribution Network

– Chapitre 4 Exp´erimentations Dans ce chapitre, je vais faire quelques exp´erimentationspour d´emontrer la pr´ecision des r´esultats obtenus par le paquet CDN, ainsi que sesavantages Les applications sur les donn´ees simul´ees et r´eelles sont aussi montr´ees

contri-butions et les perspectives qui d´ecoulent de mon paquet

Trang 12

Chapitre 1

Introduction

Ce chapitre sert `a introduire quelques notions n´ecessaires sur la statistique th´eorique

et computationnelle Cela permet au lecteur de suivre facilement le rapport Dans lapremi`ere partie, ce sont des concepts principaux concernant les mod`eles statistiques,les copules, le Cumulative distribution networks (CDN) [7], l’inf´erence et l’optimisation.Dans la deuxi`eme, R [5] est pr´esent´e comme un langage de programmation afin ded´evelopper des outils efficaces pour le traitement des donn´ees et l’analyse statistique

1.1.1 Mod`ele statistique

Un mod`ele statistique se compose de deux ingr´edients : une variable al´eatoire X et unefonction de r´epartition F (x) Cette fonction est d´efinie via la probabilit´e d’un ´ev´enementassoci´e `a X comme suit :

Trang 13

Dans le cas d’un vecteur al´eatoires X = (X1, X2, , Xk), la fonction de r´epartitionmultivari´ee est donn´ee par :

f (u1, , ui−1, xi, ui+1, uk)du1 dui−1dui+1 duk (1.7)

Dans le cas de plusieurs variables, par exemple X1 et X2, la marge est donn´ee par :

1.1.2 Estimation des param`etres d’un mod`ele statistique

Soit X1, X2, , Xn (ind´ependantes et identiquement distribu´ees) un ´echantillon d’unepopulation dont la densit´e de probabilit´e est f (.|θ) o`u θ est un vecteur de param`etresinconnus de la population L’objectif de l’estimation est de trouver la vraie valeur duparam`etre θ `a partir de cet ´echantillon La m´ethode du maximum de vraisemblance est

la plus efficace asymptotiquement [8] La vraisemblance est donn´ee par :

Trang 14

Chapitre 1 Introduction 5

∇θ(−L(θ)) L’algorithme s’arrˆete quand la valeur du gradient est suffisamment petite.Bas´ee sur l’id´ee de la m´ethode de Newton, les m´ethodes Broyden-Fletcher-Goldfarb-Shanno (BFGS) et Limited-memory BFGS (L-BFGS) [9] ont ´et´e d´evelopp´ees L’avan-tage de ces m´ethodes est leur impl´ementation pratique C’est la raison pour laquelle jeles ai utilis´ees dans mon impl´emetation

1.1.3 Copules

Les copules [1, 2] ont pour objectif de mod´eliser la d´ependance de plusieurs variables

r´epartition

D´efinition 1.1.3.1 Soit F une fonction de r´epartition `a n dimensions, x = (x1, , xn) ∈

Rn (n ≥ 2) Sa marge Fi (1 ≤ i ≤ n) est obtenue quand x1, x2, , xi−1, xi+1, , xntendent vers +∞ :

Fi(xi) = lim

D´efinition 1.1.3.2 Une copule C : [0, 1]n→ [0, 1] est une fonction de r´epartition dontles marges sont uniformes Soit le vecteur u = (u1, , un) ∈ [0, 1]n, les marges de lacopule C sont donn´ees par :

Ck(uk) = lim

u\uk→1 C(u1, , un) = uk ∀k = 1, , n (1.12)

Th´eor`eme 1.1.3.1 (Sklar [1]) Soit H une fonction de r´epartition dont les marges F

et G sont continues Il existe une unique copule C de sorte que ∀x, y ∈ R :

i1/θ

Trang 15

θ2q(x)2+ θ2q(y)2− 2θq(x)q(y)

2θ2− 2

!dxdy, θ ∈ (−1, 1);

(1.19)o`u θ est un param`etre inconnu

– (1.14) est la famille de copule de Gumbel

– (1.15) est la famille de copule de Farlie-Gumbel-Morgenstern (FGM)

– (1.16) est la famille de copule de Frank

– (1.17) est la famille de copule de Ali-Mikhail-Haq (AMH)

– (1.18) est la famille de copule de Joe

– (1.19) est la famille de copule de Gauss (copule normale) q(x), q(y) sont des fonctions

1.1.4 Cumulative distribution networks

Cumulative distribution network (CDN) est un mod`ele statistique propos´e dans la th`ese

de Huang [7] Dans ce mod`ele, la fonction de r´epartition s’´ecrit comme un produit

de fonction de r´epartition bivari´ees On lui associe un graphe pour repr´esenter lesd´ependances

D´efinition 1.4.1 Un graphe biparti G = (V, S, E) est construit `a partir de trois sembles : deux ensembles de sommets V et S, un ensemble d’arˆetes E Les arrˆetes dugraphe ont une extr´emit´e dans V et l’autre dans S

en-D´efinition 1.4.2 Un Cumulative distribution network (CDN) est un mod`ele statistique

variable et S indique un ensemble de noeuds de fonction, E se compose des arˆetes entredes noeuds de variable et de fonctions Chaque fonction est repr´esent´ee par φs(xs) :

R|N (s)| → [0, 1] o`u s ∈ S, N (s) = {s1, , sd} est l’ensemble de voisins de la fonction s

et xs = xN (s) = (xs1, , xsd) o`u d = |N (s)| est le nombre de voisins de s Toutes lesfonctions φsdoivent satisfaire les propri´et´es caract´eristiques des fonctions de r´epartition

La fonction de r´epartition sur toutes les variables dans le CDN s’´ecrit :

s∈S

Trang 16

Dans notre cas, nous consid´erons un CDN avec les contraintes suivantes :

1 Le graphe ne contient aucun cycle Autrement dit, c’est un arbre de n variables et

n - 1 fonctions

2 Les feuilles sont des noeuds de variables

3 Chaque noeud de fonction n’est reli´e qu’`a deux noeuds de variable En effet, lesfonctions de r´epartition φs sont bivari´ees Cela veut dire que φs(xs) = φs(xα, xβ)o`u α, β sont les variables voisines de la fonction s : N (s) = {α, β}

cercles montrent des noeuds de variable et les diamants indiquent les noeuds de fonction.Alors, la fonction de r´epartition sur trois variables X1, X2et X3 dans le CDN est donn´eepar :

F (x1, x2, x3) = φ1(x1, x2)φ2(x2, x3) (1.26)

Figure 1.1: Exemple d’un CDN ` a trois variables.

fonction de r´epartition sur sept variables X1, X2, X3, X4, X5, X6, X7 dans le CDN

Trang 17

Consid´erons φs comme une fonction param´etrique, on a : φs = φs(xα, xβ; θs) o`u θs est

un param`etre inconnu, α, β sont les voisins de s Nous prenons la fonction φsen fonctiond’une copule :

φs(xα, xβ; θs) = Cs(x1/nα

o`u Cs est une copule `a choisir ; nα et nβ sont respectivement les nombres de voisins desvariables α et β Comme Cs est une copule, xα, xβ ∈ [0, 1] La fonction de r´epartitions’´ecrit alors :

Pour la simulation des donn´ees de la fonction de r´epartition C(x1, , xd|θ), on utilise

le lemme de Liebscher [11] :

Trang 18

o, α = 1, , d.

La fonction de r´epartition du vecteur (U1, U2, , Ud) est C(x1, , xd|θ)

1.2.1 R

le traitement des donn´ees et l’analyse statistique Il est d´evelopp´e par GNU R est

de plus en plus important et connu grˆace `a ses avantages Premi`erement, R est opensource C’est libre `a utiliser et `a d´evelopper Deuxi`emement, il permet de faire de la

disponible sur plusieurs syst`emes d’op´eration populaires comme Unix, Windows et cOS Quatri`emement, R est associ´e `a plusieurs langages de programmation tels queC/C++, Fortan En effet, il permet d’appeler directement le code dans C/C++, For-tan Derni`erement, R s’´etend facilement via des paquets ´ecrits par les d´eveloppeurs Enoutre, il existe le d´epˆot CRAN pourque les d´eveloppeurs puissent d´eposer leurs paquets

Ma-1.2.2 Structure d’un paquet R

Normalement, un paquet R se compose des parties suivantes [12] :

– Un fichier Description qui d´ecrit le paquet, l’auteur et la licence

– Le r´epertoire man/ contient les fichiers de la documentation

– Le r´epertoire R/ est le lieu pour d´eposer le code source en R

– Le r´epertoire data/ fourni les donn´ees disponibles dans le paquet

– Le r´epertoire src/ contient le code source en C/C++, Fortan

– Le r´epertoire tests/ se compose des fichiers R qui sert `a v´erifier les fonctions fourniespar le paquet

– Le r´epertoire exec/ comprend les fichiers ex´ecutables (en Java ou Perl)

– Le r´epertoire vignettes/ donne quelques exemples et renseignements pour l’utilisation

du paquet

Trang 19

et la modification des objets de R en C++ Il peut aussi faciliter l’´echange des donn´eesentre R et C++ et la gestion des erreurs En outre, avec Rcpp, le code peut devenirplus propre et avec moins de bugs C’est la raison pour laquelle Rcpp est utilis´e pourconstruire notre paquet.

Trang 20

s´eparer la d´erivation multiple en une chaˆıne des d´eriv´ees locales sous forme de messages.

En effet, on constate qu’une variable n’apparait que dans ses fonctions de voisin Au lieu

de d´eriver la fonction de repartition par rapport `a toutes les variables, il est n´ecessaire decalculer les d´eriv´ees locales et les mettre sous forme des messages Grˆace `a un processus

de propagation des messages, la fonction de vraisemblance est finalement obtenue :

Cet algorithme GDP se compose des trois ´etapes principales suivantes :

1 Initialisation de l’algorithme,

2 Propagation des messages, et ,

3 Calcul de la fonction de vraisemblance et son gradient

Les messages entre des noeuds de variable et de fonction sont repr´esent´es par les fonctions

µs→α, µα→s, λs→α, λα→s o`u s est un noeud de fonction et α est un noeud de variable s

11

Trang 21

et α sont deux noeuds adjacents : α ∈ N (s), s ∈ N (α) µs→α et λs→αsont les messages

`

messages `a partir des noeuds de variable α aux noeuds de fonction s D’abord, toutesles fonctions de message et leur gradient sont initialis´es `a z´ero sauf µα→s o`u α est unefeuille du graphe :

des variables aux fonctions et l’autre `a partir des fonctions aux variables

• Les messages `a partir des noeuds int´erieurs de variable α aux noeuds de fonction devoisin s ∈ N (α) Les fonctions de message sont mises `a jour comme suit :

Trang 22

Chapitre 2 Algorithme de gradient-derivative-product 13

• Messages `a partir des noeuds de fonction s aux noeuds de variable de voisin α ∈ N (s).Les fonctions de message sont mises `a jour comme suit :

La valeur de ces fonctions est fix´ee et ne change pas dans les it´erations suivantes Dans

la deuxi`eme it´eration, les messages entrant et sortant aux variables `a la hauteur de 2sont mis `a jour et fix´es Semblablement, `a la k -i`eme it´eration, les messages entrant etsortant aux variables `a la hauteur de k sont calcul´es Quand les fonctions de messageentrant la racine sont calcul´ees et fix´ees, l’algorithme s’arrˆete alors

Enfin, il faut calculer la d´eriv´ee f (x|θ) = ∂x α

hQ

Pour trouver la racine α, on va tout d’abord d´efinir quelques notions et des propri´et´es

de l’arbre qui sont d´etaill´ees dans [14,15] Soit G un arbre :

Trang 23

• Si G a n arˆetes, le nombre de sommets de G est alors n + 1.

• La distance entre deux noeuds de G est le nombre des arˆetes dans le plus court chemin

entre eux

• L’excentricit´e d’un sommet est sa distance maximale `a tous les autres sommets de G

• Le centre de G est un sommet dont l’excentricit´e est minimale En outre, le centre du

graphe n’est pas unique En effet, il existe un ensemble des centres

• Les centres du graphe se trouvent au milieu du plus long chemin de G L’excentricit´e

de centre est donc ´egale `a la moiti´e de la longueur du plus long chemin

On remarque que la d´eriv´ee f (x|θ) = ∂x[F (x|θ)] et son gradient ∇θf (x|θ) ne d´ependent

pas de la racine choisie Les r´esultats ne changent pas si on choisit autre racine

Cepen-dant, le choix de la racine permet de d´eterminer le nombre d’it´erations de l’algorithme

En effet, en observant la propagation des messages, on trouve qu’il s’agit de n it´erations

pour obtenir tous les messages entrant `a la racine o`u n est l’excentricit´e de la racine

C’est la raison pour laquelle on choisit un centre du graphe de variables comme la racine

puisque l’excentricit´e du centre est minimale Le nombre d’it´erations de l’algorithme est

alors d´efini comme l’excentricit´e du centre Il faut donc trouver un plus long chemin du

graphe des variables Le noeud au milieu de ce chemin est choisi comme la racine du

graphe CDN

Exemple 2.3.1 Sur la figure 2.1, c’est un arbre de cinq variables et le graphe CDN

correspondant

• La distance entre le sommet X1 et X4 est 3 puisque le plus court chemin entre ces

deux sommets est X1 - X2 - X3 - X4

• Les distances entre le sommet X3 et les autres {X1, X2, X4, X5} sont {2, 1, 1, 1}

L’excentricit´e de X3 est alors 2

• Les excentricit´es des sommets {X1, X2, X3, X4, X5} sont {3, 2, 2, 3, 3} Le centre du

graphe de variables est donc {X2, X3}

• Dans le graphe de variable, il y a deux plus longs chemins : X1 - X2 - X3 - X4 et X1

- X2 - X3 - X5 Deux centres {X2, X3} se trouvent au milieu des plus longs chemins

• La racine du graphe CDN est un des deux centres {X2, X3}

graphe CDN se compose de 6 variables (X1,X2,X3,X4,X5,X6) et 5 fonctions (Φ1, Φ2, Φ3, Φ4, Φ5)

Le plus long chemin est (X1 - X2 - X3 - X5 - X6) La racine du graphe de variables est

alors le sommet X3 Le nombre d’it´eration est 2 L’algorithme de message-passing est

d´etaill´e comme suit :

• `A l’´etape d’initialisation, les messages sortant des feuilles sont initialis´es Ce sont des

messages variables-fonctions X1 − Φ1, X4 − Φ3, X6 − Φ5

Trang 24

Chapitre 2 Algorithme de gradient-derivative-product 15

Figure 2.1: Exemple d’un arbre de 5 variablese.

• Dans la premi`ere it´eration, les messages entrant et sortant pour X2, X3 et X5 sontcalcul´es Pour la variable X2, c’est Φ1 − X2, puis X2 − Φ2 Pour la variable X3, c’estΦ3 − X3 Pour la variable X5, c’est Φ5 − X5, puis X5 − Φ4

• `A la deuxi`eme it´eration, les messages entrant `a la variable X3 sont calcul´es Ce sontdes messages fonctions-variables Φ4 − X3 et Φ2 − X3 On note que la figure 2.2montre seulement les messages n´ecessaires pour le calcul f (x|θ) et ∇θf (x|θ) Ce sontdes messages tendant vers la racine X3 Pour les autres, on n’affiche pas Par exemple,

calcul´es Toutefois, ils ne servent pas `a calculer f (x|θ) et ∇θf (x|θ)

• Enfin, f (x|θ) et ∇θf (x|θ) sont calcul´es `a partir des messages entrant `a la racine X3.Par exemple,

Trang 25

Figure 2.2: Propagation des messages dans le CDN.

Trang 26

Chapitre 3

Apr`es avoir fait le point sur les connaissances importantes concernant le CDN (1.22), on

va se concentrer sur ce que j’ai fait dans mes travaux C’est d’impl´ementer l’inf´erence de

la copule associ´ee `a un CDN pr´esent´ee dans l’´equation (1.29) et de le rendre disponiblesous forme d’un paquet R En d´etail, je vais montrer ce qui est install´e dans ce paquet

et comment ¸ca fonctionne En outre, quelques astuces servant `a acc´el´erer la vitesse desfonctions du paquet sont pr´esent´ees

Dans cette section, je vais montrer des composants principaux du paquet CDN quisont affich´es sur la figure 3.1 Le code source et la documentation sont deux partiesindispensables dans chaque paquet R Les tests et le tutoriel ne sont pas n´ecessairesmais appr´eci´es

Figure 3.1: Composants principaux du paquet CDN.

17

Trang 27

3.1.1 Code source

(Figure 3.2) D’une part, le code C++ est mis dans le r´epertoire /src Il fournit quelques

Compute.cpp, Derivatives.cpp, Gradient.cpp, miwa.cpp) et l’inf´erence dans le CDN tim.cpp, lbfgsb.cpp) Les fichiers de R se trouvent dans le r´epertoire /R Ils ont pourobjectif de cr´eer l’objet CDN qui est pr´ecis´e dans la section 3.2.1 (CDN.R, cdnMo-dels.R), d’appeler des fonctions C++ (cdnOptim.R, mpAlgo.R), de g´en´erer des donn´eesal´eatoires (rCdn.R) Le d´etail des fonctions du paquet est montr´e dans la section 3.2

(Op-Figure 3.2: Code source du paquet CDN.

3.1.2 Documentation

La documentation du paquet (Figure 3.3) est mise dans deux r´epertoire : /man et gnettes Les fichiers dans /man d´ecrivent le paquet (CDN-package.Rd ) et les donn´eesdisponibles (JapanSeaLevel.Rd ) Ils expliquent aussi comment cr´eer l’objet CDN (CDN-class.Rd, cdnModels.Rd ), utiliser l’algorithme de message-passing (mpAlgo.Rd ), fairel’inf´erence (cdnOptim.Rd ), g´en´erer des donn´ees al´eatoires (CDN.Rd ) En outre, les vi-

et l’utiliser pour r´esoudre des probl`emes statistiques Les fichiers de test et de tutorielsont montr´es sur la figure 3.4

Trang 28

Chapitre 3 Impl´ementation 19

Figure 3.3: Documentation du paquet.

3.1.3 Tests et tutoriels

Le r´epertoire /tests contient des fichiers qui testent quelques sc´enarios diff´erents afin

corrects En effet, on va v´erifier la justesse d’impl´ementation de l’algorithme passing (precision.R, testingFunctions.R), la simulation des donn´ees al´eatoires (simula-tion.R) et l’inf´erence dans le CDN (optim.R) De plus, il reste un fichier de descriptionqui pr´esente g´en´eralement le paquet CDN et les paquets de d´ependance tels que Rcpp(l’interface R/C++), igraph et methodes (pour cr´eer l’objet CDN), copula (pour simulerdes donn´ees), numDeriv (pour les tests)

message-Figure 3.4: Tests et d´emo.

Dans cette section, je vais montrer les fonctions fournies par le paquet CDN La figure3.5 d´ecrit le fonctionnement g´en´eral des fonctions importantes du paquet et les lieux o`uelles sont install´ees Le paquet se compose alors des trois ´etapes principales suivantes :

• Premi`erement, c’est l’entr´ee des donn´ees utilis´ees pour les fonctions du paquet Legraphe cr´e´e par le paquet igraph montre la relation entre les variables Les donn´ees

se composent des vecteurs d’observation et d’un vecteur de param`etres La copule Cs

dans (1.28) est choisie par l’utilisateur Tout est r´ealis´e dans le code R

Trang 29

• Deuxi`emement, c’est l’appel des fonctions fournies par le paquet CDN qui sont impl´ement´eesdans le code R ou C++.

– cdn sert `a cr´eer un objet CDN et a besoin d’un graphe et d’un mod`ele param´etrique.– cdnPlot permet de visualiser l’objet CDN en repr´esentant le graphe

– rCdn (Annexe C.1) g´en`ere al´eatoirement des observations et pCdn (Annexe C.2)calcule la fonction de r´epartition

– mpAlgo (Annexe A) impl´emente l’algorithme de message-passing product Son entr´ee est un objet CDN et un vecteur de variables Sa sortie est ladensit´e de cette observation et la gradient par rapport au vecteur des param`etres.– cdnOptim (Annexe B) utilise mpAlgo afin de construire la fonction de vraisemblance

gradient-derivative-et son gradient Ensuite, une m´ethode d’optimisation est choisie pour trouver lavaleur du param`etre qui maximise la fonction de vraisemblance

– dCdn (Annexe C.3) a pour objectif de calculer la densit´e de plusieurs observationsd’entr´ee via mpAlgo

• Derni`erement, les r´esultats sont affich´es dans R La transmission des donn´ees et desfonctions entre C++ et R est r´ealis´ee par l’interface Rcpp [13]

Dans les parties suivantes, je vais d´etailler l’impl´ementation des fonctions du paquet

Figure 3.5: Diagramme des fonctions du paquet.

3.2.1 Cr´eation d’un objet CDN

Pour cr´eer un objet CDN, il s’agit de choisir un graphe des variables et d’une famille decopules Cs (1.28) Ces donn´ees d’entr´ees sont trait´ees avant d’assigner les valeurs auxcomposants de l’objet (Figure 3.6)

Trang 30

Chapitre 3 Impl´ementation 21

Figure 3.6: Cr´eation d’un objet CDN.

Pour le mod`ele, on peut choisir une des six familles existantes dans le paquet Ce sontdes copules populaires qui sont mentionn´ees dans la section 1.1.3 : Gumbel (”gumbel”),Farlie-Gumbel-Morgenstern (”fgm”), Frank (”frank”), Gauss (”normal”), Ali-Mikhail-

des variables et d’un mod`ele choisi est montr´e ci-apr`es

la valeur de l’´el´ement (i,s) est mise `a 1 ; sinon `a z´ero Sur le tableau 3.1, nous affichons

la matrice binaire extraite `a partir du graphe CDN de la figure 3.7

Concernant la cr´eation d’un graphe avec le paquet igraph, la fa¸con la plus simple et tique pour l’utilisateur est d’utiliser la commande graph.formula Cependant, il apparait

pra-un probl`eme `a r´esoudre C’est que cette commande fait par d´efaut simplifier le graphed’entr´ee Par exemple, on cr´ee un graphe avec la commande :

1 g

Ngày đăng: 23/09/2020, 22:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN