A quoi peuvent vous servir les transformées d'ondelettes?
A part briller en société si vous avez la chance de comprendre de quoi il retourne, je veux dire?
Eh bien, les transformées d'ondelettes peuvent servir à décrire et comprendre des signaux à des échelles variées: elles sont donc particulièrement utiles si l'on s'intéresse à un signal de type série temporelle pouvant être soumis à des variations périodiques.
Cela peut être par exemple:
- des variations de température mesurées toutes les 3h sur une année
- le niveau de la mer mesuré toutes les heures sur quelques mois,
- le flux de trafic routier mesuré toutes les 10 minutes sur quelques jours
- un niveau d'hormones mesuré toutes les 10 minutes sur 48h.
Ce genre de signaux résultant de processus qui s'expriment à différentes échelles, il peut être pertinent de le décrire à travers le temps mais aussi à travers les échelles (ou périodes) pour mieux les comprendre.
Considérons par exemple la série temporelle suivante: j'ai enregistré l'humeur de mon chat toutes les 10 minutes pendant 10 jours grâce à une sonde ultra-perfectionnée (et ultra-imaginaire).
NB: Exceptionnellement, je montre ici des résultats de codes R sans montrer les codes eux-mêmes car les figures suivantes résultent d'un gros travail de mise en application shiny-. Pour l'instant, l'appli waveleT est disponible dans sa version 2016 -!- ici: https://isig-apps.ens-lyon.fr/apps/lvaudor/waveleT/). Le repo github (avec le méga-commit correspondant à sa mise en package et son organisation en modules golem) est ici: https://github.com/lvaudor/waveleT. Je reviendrai ici faire sa promotion et déverser les états d'âme qui m'ont traversée au cours de sa réalisation 🙀 quand sa nouvelle version -golémisée et packagisée- sera déployée...
Décrire par les ondelettes continues
Voici donc une représentation des humeurs de mon chat au cours de quelques jours du mois de juin 2024:

On y devine des variations journalières, atténuées certains jours, avec a priori des pics de bonne humeur entre 17h et 23h environ. (L'appli peut s'avérer utile pour bénéficier d'un "hover" qui vous permet de situer les variations dans le temps en plaçant la souris dessus ;-)).
Si j'applique une transformée d'ondelettes continues sur ce signal j'obtiens quelque chose comme ça:

C'est flamboyant, c'est fascinant, c'est aussi légèrement effrayant peut-être (surtout si par le passé vous avez traîné dans des sessions poster de conférences où rôdent des physiciens pour qui ce genre de représentation est limpide: ça peut laisser un trauma).
En tout cas voilà comment on peut interpréter ce graphique:
- en x, on retrouve le temps: on couvre les quelques jours sur lesquels j'ai effectué des mesures sur mon chat
- en y, on trouve des périodes (ici exprimées en minutes). Donc un rythme journalier s'exprimera aux alentours de 24*60=1440 minutes. Là encore, l'échelle log2 sur l'axe des y rend le "hover" fourni par l'appli bien utile.
- en échelle colorée, on trouve la "puissance" (power) des coefficients d'ondelette. Elles correspondent grosso modo à une mesure de la variance.
Ici, on peut lire le graphique de cette manière: il y a des variations particulièrement importantes dans le signal à la période 1440 min = 24h sur l'ensemble de la période sauf les 8 et 9 juin (qui s'avèrent être un samedi-dimanche): cela se voyait déjà sur le signal brut. Il y a aussi des variations à une échelle de 720 minutes (12h), et des variations (plus irrégulières peut-être à une échelle entre 240 et 480 minutes (entre 4 et 8h).
La puissance nous renseigne sur l'ampleur des variations et non sur leur nature. Si l'on représente directement les coefficients d'ondelettes, on peut voir les variations positives et négatives:

Je peux ainsi constater que mon chat a un coup de mou quotidien (les jours de semaine) à peu près entre 9h et 17h, et un coup de mieux entre 19h et 7h du matin. Le week-end, son humeur est globalement meilleure (pas de coup de mou en journée). Peut-être est-il heureux d'avoir du monde à la maison?
Par ailleurs, pour l'interprétation des périodes 12h et 4-8h, je peux vous fournir une information complémentaire: le distributeur automatique de mon chat lui a distribué une ration chaque jour à 6h, 10h, 18h, et 22h. Visiblement, mon chat est de meilleure humeur quand il a le ventre plein. Mais la fréquence à laquelle le distributeur améliore de façon apparente son humeur varie non seulement par son paramétrage -les croquettes tombent à 4h d'intervalle à certains moments, à 8h d'intervalle à d'autres- et selon l'événement que l'on considère et sa durée -i.e., en quelque sorte, sa "forme"- : le fait d'avoir les croquettes qui tombent -durée 30 secondes- et le fait d'avoir le ventre plein -durée a priori plus importante-. Ainsi, même pour une une causalité claire (d'autant plus claire à vrai dire que j'ai simulé le jeu de données pour que l'humeur de mon chat réponde aux horaires du distributeur de croquettes) il peut être délicat de décrire le signal en temps-fréquence (ou temps-période). Certaines périodicités sautent aux yeux, d'autres moins.
Décomposer par les ondelettes discrètes
Voilà qui m'amène à une autre manière d'utiliser les ondelettes pour comprendre/décrire ce qui se passe dans un signal temporel.
La figure suivante montre le signal "débruité" pour tous les niveaux scalaires inférieures à une périodicité de 24h. On y voit parfaitement le rythme quotidien des humeurs de mon chat.

Techniquement, ce signal débruité est reconstitué via une analyse multi-résolution par les ondelettes discrètes Là encore, je vous renvoie à mon appli waveleT qui permet de paramétrer l'ondelette-mère et les niveaux scalaires de votre choix facilement.
Si je veux être capable d'examiner les variations dans mon signal à une échelle intermédiaire (pour démêler, par exemple, ce qui se passe aux échelles temporelles entre 4 et 12h) je peux sélectionner des niveaux scalaires inférieurs:

Il devient ainsi possible de considérer les variations du signal qui relèvent uniquement d'une certaine période, en excluant ici le bruit (variations sur les périodes les plus courtes) et les variations sur la période de 24 heures et plus. Il s'agit d'un résultat qui reste descriptif, mais qui a le mérite de faciliter la description et l'interprétation des variations d'un signal complexe.
P.S.: le chat orange chez qui j'ai vécu pendant 13 ans n'est plus 💔 . Que ce post soit un hommage vibrant à ce qu'il a accompli (quoique inconsciemment) pour la science et un témoignage ému de l'importance qu'il accordait à ce qui compte vraiment 😽.
1 Comment
Jul*
RIP PB <3