Analyse de données fonctionnelles avec le paquet fda



Documents pareils
Chapitre 3. Les distributions à deux variables

Tests non-paramétriques de non-effet et d adéquation pour des covariables fonctionnelles

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Fonctions de plusieurs variables

1 Complément sur la projection du nuage des individus

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Quantification Scalaire et Prédictive

Etude des propriétés empiriques du lasso par simulations

Cours 7 : Utilisation de modules sous python

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Cours d Analyse. Fonctions de plusieurs variables

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Analyse en Composantes Principales

Apprentissage non paramétrique en régression

Chapitre 7. Statistique des échantillons gaussiens. 7.1 Projection de vecteurs gaussiens

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Chapitre 2 Le problème de l unicité des solutions

Introduction à l approche bootstrap

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Programmes des classes préparatoires aux Grandes Ecoles

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

$SSOLFDWLRQGXNULJHDJHSRXUOD FDOLEUDWLRQPRWHXU

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Annexe commune aux séries ES, L et S : boîtes et quantiles

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Déroulement d un projet en DATA MINING, préparation et analyse des données. Walid AYADI

Table des matières. I Mise à niveau 11. Préface

3 Approximation de solutions d équations

Optimisation, traitement d image et éclipse de Soleil

Chapitre 3 : Le budget des ventes. Marie Gies - Contrôle de gestion et gestion prévisionnelle - Chapitre 3

TD1 Signaux, énergie et puissance, signaux aléatoires

TABLE DES MATIÈRES. Bruxelles, De Boeck, 2011, 736 p.

NON-LINEARITE ET RESEAUX NEURONAUX

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Introduction au datamining

Introduction aux Statistiques et à l utilisation du logiciel R

Intérêt du découpage en sous-bandes pour l analyse spectrale

Analyses de Variance à un ou plusieurs facteurs Régressions Analyse de Covariance Modèles Linéaires Généralisés

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

TESTS PORTMANTEAU D ADÉQUATION DE MODÈLES ARMA FAIBLES : UNE APPROCHE BASÉE SUR L AUTO-NORMALISATION

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Économetrie non paramétrique I. Estimation d une densité

Leçon N 4 : Statistiques à deux variables

Exercice : la frontière des portefeuilles optimaux sans actif certain

UFR de Sciences Economiques Année TESTS PARAMÉTRIQUES

Évaluation de la régression bornée

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

TABLE DES MATIERES. C Exercices complémentaires 42

Correction du Baccalauréat S Amérique du Nord mai 2007

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Une application de méthodes inverses en astrophysique : l'analyse de l'histoire de la formation d'étoiles dans les galaxies

Programmation linéaire

Principe de symétrisation pour la construction d un test adaptatif

Extraction d informations stratégiques par Analyse en Composantes Principales

Programmation linéaire et Optimisation. Didier Smets

Séance 0 : Linux + Octave : le compromis idéal

Introduction. Mathématiques Quantiques Discrètes

Introduction au Data-Mining

Régression linéaire. Nicolas Turenne INRA

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Coup de Projecteur sur les Réseaux de Neurones

Contents. 1 Introduction Objectifs des systèmes bonus-malus Système bonus-malus à classes Système bonus-malus : Principes

Sujet 1 : Diagnostique du Syndrome de l apnée du sommeil par des techniques d analyse discriminante.

Mesure de la dépense énergétique

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Introduction à MATLAB R

Transmission d informations sur le réseau électrique

Température corporelle d un castor (une petite introduction aux séries temporelles)

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Enjeux mathématiques et Statistiques du Big Data

La classification automatique de données quantitatives

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Résolution d équations non linéaires

Sillage Météo. Notion de sillage

Les indices à surplus constant

Calcul différentiel. Chapitre Différentiabilité

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Systèmes de transmission

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R

Formations EViews FORMATIONS GENERALES INTRODUCTIVES INTRO : INTRODUCTION A LA PRATIQUE DE L ECONOMETRIE AVEC EVIEWS

Exercices M1 SES Ana Fermin ( fermin.perso.math.cnrs.fr/ ) 14 Avril 2015

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

TP Blender n 2 : Importation d un modèle SketchUp et animation

Simulation de variables aléatoires

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

PROJET MODELE DE TAUX

Chapitre 0 Introduction à la cinématique

IV- Equations, inéquations dans R, Systèmes d équations

Etude de fonctions: procédure et exemple

TSTI 2D CH X : Exemples de lois à densité 1

Exemples d application

Transcription:

Analyse de données fonctionnelles avec le paquet fda Christophe Pouzat Jeudi 29 mars 2012

Outline Introduction Des données brutes aux fonctions Analyse de l échantillon de fonctions

Sommaire Introduction Des données brutes aux fonctions Analyse de l échantillon de fonctions

L analyse de données fonctionnelles, c est quoi? l analyse de données fonctionnelles n est pas l analyse fonctionnelle des mathématiciens, même si elle fait appel à certains outils de cette discipline ; les données fonctionnelles ressemblent aux données vectorielles, mais ressemblance n implique pas identité ; c est cette différence qui rend l analyse fonctionnelle beaucoup plus «marrante» de mon point de vue que l analyse multivariée classique.

La croissance des filles : Un premier exemple de données fonctionnelles Étude de croissance de Berkeley Les tailles de 10 filles mesurées à 31 âges. Les cercles marquent les 31 âges de mesures de répartition non-uniforme. L erreur sur chaque mesure est de l ordre de 3 mm. En principe, les mesures auraient pu être effectuées à n importe quel âge.

La croissance des filles : Dérivée seconde Poussée de croissance pubertaire 1. Certaines propriétés remarquables, apparaissent beaucoup plus nettement sur les dérivées premières ou secondes des données. 2. Résumer les données par une moyenne à âge fixe n est pas forcément une bonne idée. 3. Il peut être intéressant de séparer les variations d amplitude des variations «temporelles».

La météo canadienne : où passer ses prochaines vacances Jeu de données CanadianWeather Les 31 stations (27 disques rouges et 4 nommées) du jeu de données. Le jeu contient les temperatures et précipitations moyennes quotidiennes, moyennées de 1960 à 1994.

Températures moyennes et estimations fonctionnelles Températures des 4 stations Les moyennes mensuelles sont figurées par les lettres. Les courbes sont des estimations fonctionnelles (avec une base de Fourier) pour chaque station.

Les premières étapes de l analyse de données fonctionnelles : interpolation et lissage «l élément fonctionnel» i d un échantillon se présente comme un ensemble fini de mesures : { y i1,...,y in } ; la première tâche est de convertir ces mesures en fonction x i dont les valeurs x i (t) sont calculables pour toute valeur de l argument t (dans un certain domaine) ; si les observations sont faites sans erreur, on fait une interpolation ; si les observations sont faites avec erreur, on fait du lissage.

Exemple de lissage Les points représentent la pluie quotidienne moyenne à Prince Rupert en Colombie britannique.

Les premières étapes de l analyse de données fonctionnelles : alignement La figure suivante présente des données de biomécanique : 20 enregistrements de la force exercée entre le pouce et l index d un sujet ; le sujet devait maintenir une force «de repos» de l ordre de 2 Newton avant de développer une force maximale avant de retourner au niveau de repos ; le but de la manipe est l étude du groupe musculaire contrôlant le pouce et l index ; le problème qui se pose avant de commencer l analyse proprement dite, et celui de l alignement des traces...

Les données de force du groupe pouce-index

Après les premières étapes, l exploration de la variabilité jusqu ici nous avons vu essentiellement des exemples de visualisation d échantillons de fonctions ; nous allons aussi être intéressés par des statistiques descriptives comme la moyenne, l écart type ou la fonction de covariance ; nous allons aussi vouloir généraliser l analyse en composantes principales.

Quelques références nous allons utiliser le paquet fda (functional data analysis) développé par James Ramsay et ses collaborateurs ; le paquet est disponible sur CRAN ; il contient aussi une version des fonctions pour Matlab (mais je ne les ai pas testées) ; le bouquin «Functional Data Analysis with R and MATLAB» de Ramsay Hooker et Graves, Springer, Use R!, 2009 est un bon point de départ (bouquin «associé» au paquet fda) ; le bouquin «Functional Data Analysis» de Ramsay et Silverman, Springer, 2006, est plus théorique, plus complet mais compréhensible ; le bouquin «Nonparametric Functional Data Analysis» de Ferraty et Vieu, 2006, couvre à peu près le même domaine que le précédent ; il est un peu plus théorique et utilise une approche différente pour passer des données brutes aux fonctions.

Sommaire Introduction Des données brutes aux fonctions Analyse de l échantillon de fonctions

Construction des fonctions On se donne un ensemble {φ k }, k = 1,...,K de fonctions de base ; Une fonction «quelconque» x(t) est alors définie ou approximée par une somme des fonctions bases multipliées par des coefficients ; plus explicitement on va avoir : x(t) = K k=1 c kφ k (t) ; on a donc deux problèmes à résoudre : le choix de l ensemble {φk }, c.-à-d. le choix de la base ; étant données des observations yi = x(t i ) + ɛ i, comment choisir les coefficents {c k }?

Les bases de fda (1) Le paquet fda permet de travailler avec huit types de bases : base constante, x(t) = cste, avec create.constant.basis ; base «monomiale», x(t) = c 1 +c 2 t +c 3 t 2 +, avec create.monomial.basis ; base polynomiale, x(t) = c 1 +c 2 (t ctr) +c 3 (t ctr) 2 +, avec create.polynomial.basis ; base «en puissances», x(t) = K k=1 c k(t ctr) p k, où les p k ne sont pas nécessairement entiers et pas nécessairement positifs, avec create.power.basis ;...

Les bases de fda (2)... base «polygonale», x(t) est linéaire par morceaux, un cas spécial de splines (voir ci-dessous), avec create.polygonal.basis ; base «exponentielle», x(t) = K k=1 c k exp(b k t), avec create.exponential.basis ; base «de Fourier», x(t) = c 1 + (K 1)/2 i=1 c 2i sin(i2π/t )+ (K 1)/2 j=1 c 2j+1 cos(j2π/t ), avec create.fourier.basis ; base de fonctions splines, x(t) est polynomiale par morceaux avec conditions de continuité sur x et ses dérivées aux jointures entre les morceaux, avec create.bspline.basis.

Exemples Pour des exemples de constructions de bases et des méthodes print, summary et plot associées, voir la première démo...

Construction d objets de classe fd comme nous venons de le voir, nous construisons nos fonctions en «combinant» une base avec des coefficients ; les fonctions type create.bspline.basis nous permettent de construire une base ; nous allons illustrer la construction d objet de classe fd (functional data) avec le jeu refinery du paquet ; ce jeu de données est un data.frame qui contient les résultats d une expérience dans une colonne de distillation d une raffinerie de pétrole ; le data.frame comporte trois variables : Time (le temps en minutes), Tray47 (la quantité de produit au niveau 47 de la colonne), Reflux (le flux de vapeur dans la colonne au niveau 47, la valeur est négative quand le flux est sortant) ; la figure suivante montre clairement une «discontinuité» à la 67 e minute.

Les données du jeu refinery

Construction de la base pour l estimation fonctionnelle de Tray47 le cas qui nous intéresse est un peu particulier du fait de la discontinuité de la dérivée de la variable Tray47 à la 67 e minute ; nous allons utiliser une base de fonctions splines (cubiques) en localisant plusieurs nœuds à la 67 e minute ; cela va nous permettre d avoir une dérivée discontinue ; on le fait de la façon suivante : data(refinery) refinknots <- c(seq(0,67,len=3),67,seq(67,193,len=3)) refinerybs <- create.bspline.basis(c(0,193),norder=4, breaks=refinknots)

print de refinerybs Un visualisation rapide de refinerybs donne : refinerybs Basis object: Type: bspline Range: 0 to 193 Number of basis functions: 9 Order of spline: 4 [1] " Interior knots" [1] 33,5 67,0 67,0 67,0 130,0

plot de refinerybs par(cex=2) plot(refinerybs,cex=2)

Obtention des coefficients «à la main» (1) nous supposons un modèle du type : y i x(t i ) + ɛ(t i ), où les y i sont les éléments de la variable Tray47, x(t i ) est ce que nous cherchons et ɛ(t i ) est un bruit d espérance nulle, de variance finie et non auto-corrélé (en tout cas on l espère) ; ici les x(t i ) ont la forme : x(t i ) = 9 j=1 c i φ j (t i ) ; où les φ j sont les fonctions de notre base ; de façon classique pour un modèle linéaire, nous commençons par créer notre matrice d expérience (design matrix), X, qui sera ici une matrice à 194 lignes (nombres de temps de mesure) et à 9 colonnes (nous avons 9 fonctions dans notre base) ; nous obtenons X en appliquant la méthode predict à refinerybs : refineryx <- predict(refinerybs,refinery$time) dim(refineryx) [1] 194 9

Obtention des coefficients «à la main» (2) à ce stade l élément (X) ij est φ j (t i ) ; si nous écrivons c le vecteur (c 1,...,c 9 ) et x le vecteur (x(t 1 ),...,x(t 194 )), notre prédiction s écrit sous forme matricielle : x = X c ; l estimateur des moindres carrés b de c est alors donné par : b = (X X) 1 X y, où y est le vecteur (y 1,...,y 194 ) et où X est la transposée de X ; si tout ça est un peu difficile pour vous, consultez les notes de D. Bates sur le sujet http ://www.stat.wisc.edu/courses/st849-bates/lectures/ ; avec R on effectue cela comme suit : refineryb <- solve(crossprod(refineryx), crossprod(refineryx,refinery$tray47))

Construction de refineryfd maintenant que nous avons notre base, refinerybs, et nos coefficients, refineryb, nous n avons plus qu à les combiner pour obtenir notre première donnée fonctionnelle ; on emploie la fonction fd pour effectuer cette opération : refineryfd <- fd(refineryb,refinerybs)

Le résultat avec la méthode lines appliquée à refineryfd

Vers une méthode automatique (1) L approche que nous venons de suivre présente, une fois le type de base choisi en fonction de la nature du problème, plusieurs inconvénients qui peuvent être formulés comme d embêtantes questions ouvertes : Comment choisir le nombre de fonctions dans la base? Comment positionner les fonctions?

Vers une méthode automatique (2) Heureusement, ces problèmes de régression non-paramétrique sont «vieux» et des solutions ont été formulées : on utilise assez de fonctions pour suivre «toute caractéristique intéressante» des données, ce qui peut vouloir dire autant de fonctions que d observations (ou même plus) ; pour éviter de sur-ajuster les données, on emploie une pénalisation ; on va ainsi minimiser, pour des fonctions non-périodiques, des critères du type : F (b) = n ( (y j x(t j )) 2 d 2 x(u) + λ dt 2 j=1 )2 du avec x(t) = K i=1 b i φ i (t) ; λ, le paramètre de lissage ; on pourra être amené à changer l ordre de la dérivée sous le signe somme suivant que x ou une de ses dérivée nous intéresse ;

Vers une méthode automatique (3) pour les fonctions périodiques on emploiera : F (b) = n (y j x(t j )) 2 + λ j=1 où T est la période. (( ) 2π 2 dx(u) T dt + d 3 )2 x(u) dt 3 du

Ajustement à λ fixé : exemple de la raffinerie (1) Pour ajuster un modèle de splines pénalisés au données de production du niveau 47 de la raffinerie, on fait d abord appel à la fonction fdpar : temps <- refinery$time nœuds <- sort(c(temps,67,67)) raffineriebs <- create.bspline.basis(c(0,193), norder=4, breaks=nœuds) raffinerie.fdpar <- fdpar(fdobj=raffineriebs, Lfdobj=2,lambda=0.01)

Ajustement à λ fixé : exemple de la raffinerie (2) On effectue ensuite l ajustement avec la fonction smooth.basis : produit <- refinery$tray47 raffinerie.smooth <- smooth.basis(argvals=temps, y=produit, fdparobj=raffinerie.fdpar)

Ajustement à λ fixé : exemple de la raffinerie (3) En rouge, λ = 0,01, en bleu, λ = 10 6.

Guide pour choisir λ Le critère de validation croisée généralisé (GCV, generalized cross-validation) peut être utilisé pour guider le choix de λ. Ce critère est défini par : n SSE GCV(λ) = n df (λ) n df (λ) où, SSE représente la somme des erreurs au carré (sum of squared errors) et où df (λ) désigne le nombre «équivalent» de degrés de liberté, c est un des éléments de l objet de classe fdsmooth retourné par la fonction smooth.basis.

GCV pour la raffinerie (1)

GCV pour la raffinerie (2) En rouge, le meilleur au sens du GCV (log λ = -1,5) en bleu, mon choix (log λ = 3,5).

Choix de λ pour des données périodiques Voir la deuxième démo...

Autres cas... Une des originalités très utiles de fda est qu il permet d estimer des fonctions : positives ou négatives avec smooth.pos, Kj=1 ) y i = exp( c j φ j (t i ) + ɛ i ; monotones avec smooth.monotone, y ti Kj=1 ) i = β 0 + β 1 t 0 exp( c j φ j (u) du + ɛ i ; densités de probabilité avec density.fd ; voir la troisième démo...

Sommaire Introduction Des données brutes aux fonctions Analyse de l échantillon de fonctions

Statistique descriptive fonctionnelle : fonction moyenne À un échantillon {x 1,...,x N } de fonctions (ajustées à des données), on associe la fonction moyenne empirique : µ x (t) = N 1 N x i (t). i=1 On calcule cette quantité avec la méthode mean : mean.logprec <- mean(logprecfitl[[bestidx]]$fd)

Statistique descriptive fonctionnelle : fonctions variance et écart type On associe de même une fonction variance empirique : et une fonction écart type : σ 2 x(t) = (N 1) 1 N (x i (t) µ x (t)) 2 i=1 σ x (t) = σ 2 x(t). Cette dernière est calculée par la fonction std.fd : std.logprec <- std.fd(logprecfitl[[bestidx]]$fd)

Statistique descriptive fonctionnelle : fonction covariance La fonction covariance ν(s,t) quantifie l écart à la moyenne de l élément x i aux temps s et t. Elle est estimée par : ν(s,t) = (N 1) 1 N (x i (s) µ x (s))(x i (t) µ x (t)). i=1 Elle est calculée par la fonction var.fd : nu.logprec <- var.fd(logprecfitl[[bestidx]]$fd)

Statistique descriptive fonctionnelle : fonction covariance

Statistique descriptive fonctionnelle : fonction covariance

Analyse en composantes principales fonctionnelle (1) L analyse en composantes principales s étend au cas fonctionnel en faisant intervenir des concepts d analyse fonctionnelle mathématique comme le produit interne ou produit scalaire, généralisation aux espaces de fonctions du produit scalaire euclidien. Pour ξ, fonction (convenablement définie) et x i élément de notre échantillon fonctionnel, on définit le produit scalaire, ξ,x i, par : ξ,x i ξ(t)x i (t)dt. Deux fonctions ξ et ψ sont orthogonales si : ξ,ψ = 0. En somme, avec quelques précautions, on généralise à des espaces de fonctions l intuition que nous avons développée sur les espaces euclidiens.

Analyse en composantes principales fonctionnelle (2) Ainsi, la norme ou longueur d une fonction ξ est-elle donnée par : ξ = ξ,ξ. La première composante principale est alors définie comme la fonction ξ qui maximise : N ξ,(x i µ x ) 2 i=1 tout en satisfaisant la contrainte : ξ = 1. Les composantes successives sont obtenues en projetant dans le sous espace orthogonal à la dernière composante obtenue.

Analyse en composantes principales fonctionnelle (3) La fonction pca.fd fait le travail pour nous. Et les fonctions qui lui sont associées permettent d explorer le résultat comme le montre la démo suivante...