<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Health Data Science</title>
<link>https://healthdatascience.org/articles/</link>
<atom:link href="https://healthdatascience.org/articles/index.xml" rel="self" type="application/rss+xml"/>
<description>Articles, cours et exercices — Data Science, Dev &amp; Linux</description>
<generator>quarto-1.6.43</generator>
<lastBuildDate>Mon, 02 Jun 2025 22:00:00 GMT</lastBuildDate>
<item>
  <title>Pipeline de réutilisation des données</title>
  <dc:creator>Antoine Lamer, Chloé Saint-Dizier, Nicolas Paris, Emmanuel Chazard</dc:creator>
  <link>https://healthdatascience.org/articles/pipeline_data_reuse.html</link>
  <description><![CDATA[ 




<section id="pipeline-de-réutilisation-des-données" class="level1">
<h1>Pipeline de réutilisation des données</h1>
</section>
<section id="introduction" class="level1">
<h1>Introduction</h1>
<p>Au cours des années 2000, les hôpitaux et établissements de santé ont accumulé une quantité massive de données cliniques, principalement grâce à l’informatisation des systèmes d’information. Ces données sont collectées à l’origine pour gérer les soins, la facturation ou les démarches administratives. Elles sont également une opportunité pour répondre à d’autres usages : recherche, évaluation de la qualité des soins, gestion hospitalière, santé publique, etc.</p>
<p>Pour exploiter ce potentiel, les hôpitaux se sont dotés d’entrepôts de données <span class="citation" data-cites="doutreligne_entrepots_2022 lamer_development_2023">[@doutreligne_entrepots_2022; @lamer_development_2023]</span>. Pourtant, ces entrepôts ne sont qu’une pièce du puzzle, et la réutilisation efficace des données peut s’appuyer sur un enchaînement d’outils et de structures : data lake, entrepôt, datamarts, feature store… chacun ayant un rôle bien précis dans un pipeline de réutilisation des données.</p>
<p>Dans cet article, je vous propose une vue d’ensemble de ce pipeline. Il s’appuie sur des expériences concrètes de terrain dans le secteur de la santé, mais aussi sur des pratiques inspirées d’autres domaines plus avancés en matière de gestion de données, comme le e-commerce, les plateformes de streamings, ou les services numériques. Ces secteurs ont depuis longtemps adopté des architectures de données modulaires et performantes, et il est temps que la santé s’en inspire. L’objectif : mieux comprendre comment organiser ses données pour faciliter l’analyse, produire des résultats reproductibles, et valoriser enfin toute la richesse des données de santé.</p>
</section>
<section id="le-système-dinformation-un-potentiel-difficile-à-exploiter" class="level1">
<h1>Le Système d’Information : un potentiel… difficile à exploiter</h1>
<p>Les données brutes générées par les hôpitaux sont dispersées dans une multitude de logiciels — dossier patient, laboratoire, imagerie, pharmacie, etc. Chaque outil utilise ses propres formats, ses propres identifiants pour les patients ou les séjours, et repose sur des technologies souvent hétérogènes. Résultat : croiser ces informations est un exercice complexe.</p>
<p>À cela s’ajoute une autre contrainte : les bases de données des logiciels métiers ne sont généralement <strong>pas accessibles en écriture ni en lecture libre</strong>, pour éviter de perturber leur bon fonctionnement. Ce sont des bases <strong>transactionnelles</strong>, conçues pour être précises, fiables et optimisées pour les tâches quotidiennes — pas pour l’analyse.</p>
<p>Et pourtant, ces bases regorgent d’informations utiles : chaque donnée est soigneusement enregistrée en ligne, accompagnée de nombreuses <strong>métadonnées</strong> (auteur de la saisie, date, appareil utilisé…).</p>
</section>
<section id="le-data-lake-un-socle-souple-pour-explorer-ses-données" class="level1">
<h1>Le Data Lake : un socle souple pour explorer ses données</h1>
<p>Premier maillon (optionnel) du pipeline de réutilisation des données, le <strong>data lake</strong> est un espace de stockage centralisé, extensible et très souple. Il permet d’<strong>ingérer et de conserver les données brutes</strong> provenant de multiples sources — même très hétérogènes — <strong>dans leur format d’origine</strong>, sans transformation préalable, et sans avoir à se poser immédiatement la question du modèle de données. Ces données peuvent être structurées (comme des tables), semi-structurées (JSON, XML), ou non structurées (textes libres, images, signaux physiologiques, etc.).</p>
<p>D’un point de vue technique, on y retrouve des bases relationnelles classiques (PostgreSQL, Oracle), mais aussi des technologies issues du big data : stockage distribué (Hadoop, Apache Hudi), traitements massifs (Apache Spark, MapReduce, etc.).</p>
<p>Contrairement à l’entrepôt de données, le data lake ne force pas la structuration immédiate. Cette <strong>flexibilité est précieuse</strong> : elle permet aux data scientists de manipuler librement les données, de tester des hypothèses, d’adapter les extractions à des besoins très spécifiques — sans devoir redéfinir l’ensemble du pipeline à chaque fois.</p>
<p>Sans data lake, il faut <strong>finaliser le processus ETL (extraction, transformation, chargement)</strong> avant de pouvoir analyser quoi que ce soit. Et si, en cours de route, on s’aperçoit qu’il manque une donnée, il faut tout reprendre : adapter le modèle, reconfigurer l’ETL, recharger les données… Ce cycle peut ralentir considérablement la recherche.</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p><strong>En résumé</strong><br>
Le data lake offre un environnement souple et évolutif pour centraliser les données brutes, sans imposer de schéma de données prédéfini. C’est un outil précieux pour l’exploration, les analyses itératives et la recherche agile, notamment lorsqu’on ne connaît pas encore toutes les variables d’intérêt. Il permet de tester, d’adapter, et de retarder les choix techniques — en gagnant en rapidité et en flexibilité.</p>
</div>
</div>
</section>
<section id="the-data-warehouse" class="level1">
<h1>The Data Warehouse</h1>
<p>Parmi tous les composants du pipeline, <strong>l’entrepôt de données</strong> est sans doute le plus connu. Il joue le rôle de <strong>référentiel central</strong>, capable d’agréger les données issues de plusieurs logiciels cliniques ou administratifs, qu’elles soient historiques ou récentes, à un niveau de détail très fin.</p>
<p>Contrairement au data lake, qui stocke les données telles quelles, l’entrepôt impose <strong>une normalisation stricte</strong> : nommage homogène des tables et des champs, identifiants cohérents entre sources, modèle relationnel stable. Tout cela repose sur un processus bien rôdé : l’<strong>ETL</strong> (Extract-Transform-Load), qui consiste à extraire les données pertinentes du système d’information (ou d’autres sources), les nettoyer, les transformer, et les charger dans un modèle unifié.</p>
<p>Durant cette étape, on écarte volontairement certaines métadonnées techniques (logs d’utilisation, réglages logiciels, etc.). On corrige aussi les incohérences (valeurs aberrantes, doublons…), et surtout, on <strong>harmonise les identifiants</strong> pour pouvoir relier les données entre elles, même si elles viennent de logiciels différents.</p>
<p>L’entrepôt repose en général sur des bases relationnelles classiques (PostgreSQL, Oracle, SQL Server…), mais certaines architectures explorent aussi des solutions NoSQL (MongoDB, Cassandra…), utiles pour manipuler des données semi-structurées à grande échelle.</p>
<p>Côté outils, l’ETL peut être développé en <strong>R, Python ou Java</strong>, orchestré avec des planificateurs comme <strong>Apache Airflow</strong>, ou bien conçu via des interfaces graphiques comme <strong>Talend</strong> ou <strong>Pentaho</strong>, sans besoin de coder.</p>
<p>Pour favoriser l’interopérabilité entre établissements, plusieurs initiatives ont vu le jour autour de <strong>modèles de données communs (CDM)</strong>. C’est le cas du modèle <strong>OMOP</strong>, porté par la communauté internationale <strong>OHDSI</strong>, qui propose une nomenclature partagée et une cartographie des terminologies locales vers des vocabulaires standardisés.</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p><strong>En résumé</strong><br>
L’entrepôt fournit une base robuste, homogène et durable pour centraliser les données et les rendre accessibles à une variété d’usages : analyse, recherche, visualisation, reporting, développement d’outils ou d’algorithmes. Il suit la vision d’Inmon : une collection de données orientée “sujets”, intégrée, non volatile, et évolutive dans le temps — bref, un socle prêt à accueillir toutes les analyses futures, même celles qu’on n’a pas encore imaginées.</p>
</div>
</div>
</section>
<section id="les-datamarts-transformer-les-données-en-informations-prêtes-à-lemploi" class="level1">
<h1>Les Datamarts : transformer les données en informations prêtes à l’emploi</h1>
<p>Même si l’entrepôt centralise les données de manière structurée, il reste souvent trop complexe pour répondre directement à des questions spécifiques. C’est là qu’interviennent les <strong>datamarts</strong> : des sous-ensembles de l’entrepôt, organisés autour de cas d’usage précis (recherche clinique, suivi qualité, épidémiologie, etc.).</p>
<p>Le datamart permet d’<strong>extraire et de transformer les données brutes en variables exploitables</strong>, appelées <em>features</em> ou <em>indicateurs</em>. Par exemple, au lieu de conserver toutes les valeurs de potassium d’un patient, le datamart indiquera s’il a présenté une <strong>hypokaliémie</strong> pendant son séjour.</p>
<p>Ces transformations s’appuient sur des règles métier ou des algorithmes : seuils, combinaisons de diagnostics, tendances temporelles… L’objectif est de fournir <strong>des données immédiatement utiles pour répondre à une question donnée</strong>, dans un format déjà partiellement agrégé.</p>
<p>Certains datamarts sont organisés sous forme de <strong>cubes OLAP</strong> (Online Analytical Processing), qui permettent de naviguer dans les données selon plusieurs axes : temps, services hospitaliers, pathologies, etc. Ces structures facilitent les analyses multidimensionnelles, très prisées en épidémiologie ou en gestion hospitalière.</p>
<p>Enfin, les datamarts sont généralement hébergés sur des bases relationnelles classiques (PostgreSQL, Oracle…), mais peuvent aussi s’appuyer sur des technologies orientées analyse comme Apache Kylin.</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p><strong>En résumé</strong><br>
Le datamart sert de passerelle entre l’entrepôt et les besoins métiers. Il transforme les données brutes en variables compréhensibles et directement utilisables, selon des règles adaptées au contexte. Il permet de répondre rapidement à des questions ciblées, sans devoir tout retraiter à chaque fois.</p>
</div>
</div>
</section>
<section id="le-feature-store-loutil-des-data-scientists" class="level1">
<h1>Le Feature Store : l’outil des data scientists</h1>
<p>Le <strong>feature store</strong> est la dernière brique du pipeline, et c’est aussi la plus orientée <strong>science des données</strong>. Son rôle ? <strong>Mettre à disposition des variables prêtes à l’analyse</strong>, dans un format simple, propre et reproductible.</p>
<p>Alors que les datamarts restent souvent organisés en lignes (1 ligne par événement ou par patient-séjour), le feature store <strong>pivote les données</strong> pour les présenter sous forme <strong>colonnes</strong> : 1 variable = 1 colonne, comme dans un fichier d’analyse statistique ou de machine learning.</p>
<p>Ce format simplifie énormément la vie des analystes : plus besoin de faire des jointures complexes, de pivoter les tables ou de retraiter les données. On accède directement à des jeux de données “flat”, souvent comparables à des questionnaires, où chaque ligne correspond à une unité d’analyse (patient, séjour, etc.).</p>
<p>Autre intérêt majeur : le feature store <strong>trace l’origine des variables</strong>. Il conserve les métadonnées de chaque feature (comment elle a été calculée, à partir de quelles données, selon quelle version d’un algorithme…), ce qui garantit la <strong>reproductibilité des analyses</strong>.</p>
<p>Enfin, il peut accueillir des features issues de règles métier (comme les datamarts), mais aussi des features issues de <strong>modèles de machine learning</strong> (par exemple : probabilité de réadmission, score de risque…).</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p><strong>En résumé</strong><br>
Le feature store fournit aux data scientists un accès direct à des variables prêtes à l’analyse, dans un format adapté aux outils statistiques ou de machine learning. Il structure les données en colonnes, trace leur provenance, et favorise la reproductibilité. C’est une brique essentielle pour passer de la donnée à la connaissance.</p>
</div>
</div>
<hr>
</section>
<section id="conclusion-un-pipeline-modulable-pour-une-exploitation-efficace-des-données" class="level1">
<h1>Conclusion : un pipeline modulable pour une exploitation efficace des données</h1>
<p>Ce tour d’horizon avait pour but de clarifier les rôles et les articulations entre les différentes briques d’un pipeline de réutilisation des données : <strong>data lake</strong>, <strong>entrepôt de données</strong>, <strong>datamarts</strong> et <strong>feature store</strong>. Chacune apporte une réponse à des besoins spécifiques — du stockage brut jusqu’à l’analyse fine.</p>
<p>L’entrepôt reste une <strong>base incontournable</strong> : il consolide les données selon un modèle commun, assurant cohérence et pérennité. Mais c’est l’ajout de <strong>datamarts</strong>, pour structurer les informations selon des objectifs métiers, et de <strong>feature stores</strong>, pour les rendre immédiatement exploitables en analyse, qui donne toute sa puissance au pipeline. De son côté, le <strong>data lake</strong> permet d’amorcer les travaux plus tôt, sans attendre que le pipeline complet soit en place.</p>
<p>Sans data lake, chaque ajout de donnée ou modification de besoin oblige à reprendre le processus ETL et le modèle de données. C’est lourd, chronophage, et peu compatible avec une recherche agile.</p>
<p>Bien sûr, la composition de ce pipeline n’est pas figée. Son architecture et la présence de chacun des composants dépendent du contexte : <strong>volume de données</strong>, <strong>complexité des sources</strong>, <strong>nombre de features</strong>, <strong>types de projets</strong>, <strong>ressources humaines disponibles</strong>, et surtout <strong>besoins en reproductibilité</strong>. L’enjeu est d’adapter intelligemment le pipeline aux objectifs de chaque structure.</p>
<table class="caption-top table">
<colgroup>
<col style="width: 12%">
<col style="width: 46%">
<col style="width: 39%">
</colgroup>
<thead>
<tr class="header">
<th>Composant</th>
<th>Avantages</th>
<th>Inconvénients</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><strong>Data lake</strong></td>
<td><ul>
<li>Centralise toutes les sources de données sur un même serveur</li>
<li>Indépendance vis-à-vis des logiciels métiers</li>
<li>Permet des requêtes et analyses exploratoires sans attendre la mise en place complète d’un ET</li>
</ul></td>
<td><ul>
<li>Données hétérogènes (formats, structures)</li>
<li>Pas de schéma standard : requêtes plus complexes</li>
<li>Difficulté à garantir la reproductibilité des analyses</li>
</ul></td>
</tr>
<tr class="even">
<td><div class="line-block"><strong>Entrepôt de données</strong></div></td>
<td><ul>
<li>Modèle de données unifié facilitant les requêtes entre systèmes (administratif, biologique…)</li>
<li>Modèle multidimensionnel difficilement exploitable en analyse statistique directe</li>
<li>Données détaillées conservées (dates, diagnostics, valeurs brutes…)</li>
<li>Compatible avec de nombreux cas d’usage futurs</li>
</ul></td>
<td><ul>
<li>Nécessite de mettre en place un processus ETL</li>
</ul></td>
</tr>
<tr class="odd">
<td><div class="line-block"><strong>Datamart</strong></div></td>
<td><ul>
<li>Variables (features) prêtes à l’emploi</li>
<li>Structuration selon les besoins métiers</li>
</ul></td>
<td><ul>
<li>Données encore organisées en format ligne (une ligne par événement ou variable)</li>
<li>Multiplication de datamarts peut fragmenter l’information</li>
</ul></td>
</tr>
<tr class="even">
<td><div class="line-block"><strong>Feature store</strong></div></td>
<td><ul>
<li>Accès direct à des données analysables sans retraitement technique</li>
<li>Données organisées en colonnes, prêtes pour l’analyse ou le machine learning</li>
<li>Traçabilité des variables et reproductibilité assurée</li>
</ul></td>
<td><ul>
<li>Nécessite d’avoir développé en amont les étapes précédentes du pipeline</li>
</ul></td>
</tr>
</tbody>
</table>
<p>Consultez la page <a href="../about.html">À propos</a> pour plus d’informations sur le projet.</p>


</section>

 ]]></description>
  <guid>https://healthdatascience.org/articles/pipeline_data_reuse.html</guid>
  <pubDate>Mon, 02 Jun 2025 22:00:00 GMT</pubDate>
</item>
<item>
  <title>Entrepôts de données - Barrières et Facilitateurs (1)</title>
  <dc:creator>Antoine Lamer, Paul Quindroit, Boris Delange, Benjamin Popoff</dc:creator>
  <link>https://healthdatascience.org/articles/barrieres_entrepots_donnees.html</link>
  <description><![CDATA[ 




<section id="introduction" class="level1">
<h1>Introduction</h1>
<p>La mise en place d’un entrepôt de données de santé (EDS) constitue une étape essentielle pour favoriser la réutilisation secondaire des données cliniques à des fins de recherche, de pilotage et d’amélioration des soins. Cependant, ce type de projet transversal et innovant se heurte à de nombreuses barrières, qu’elles soient techniques, humaines, organisationnelles ou réglementaires.</p>
<p>Cet article présente une synthèse des obstacles identifiés lors d’un atelier collaboratif mené auprès de professionnels impliqués dans des projets d’EDS. Ces barrières sont classées selon les grandes phases du projet (lancement, mise en œuvre, usage en routine) et selon les dimensions du modèle SEIPS 2.0.</p>
</section>
<section id="barrières-et-difficultés" class="level1">
<h1>Barrières et difficultés</h1>
<section id="barrières-persistantes-tout-au-long-du-projet" class="level2">
<h2 class="anchored" data-anchor-id="barrières-persistantes-tout-au-long-du-projet">Barrières persistantes (tout au long du projet)</h2>
<p>Conflits interpersonnels et manque de coopération entre équipes (P1, P3)</p>
<p>Désaccords sur la gouvernance et le pilotage (O2)</p>
<p>Manque de ressources humaines qualifiées et disponibles (O3)</p>
<p>Retards dans l’avancement des tâches clés (T1)</p>
</section>
<section id="phase-1-lancement-du-projet" class="level2">
<h2 class="anchored" data-anchor-id="phase-1-lancement-du-projet">Phase 1 : Lancement du projet</h2>
<p>Difficultés à obtenir un financement initial (O1)</p>
<p>Réticence au partage de données et incompréhension du projet (P2, P4)</p>
<p>Accès restreint aux bases sources et choix limités de technologies (TT1, TT2, TT3)</p>
<p>Incapacité à couvrir tout le périmètre du SIH (T2)</p>
<p>Cadre juridique complexe et évolutif (E1)</p>
</section>
<section id="phase-2-mise-en-œuvre" class="level2">
<h2 class="anchored" data-anchor-id="phase-2-mise-en-œuvre">Phase 2 : Mise en œuvre</h2>
<p>Données brutes hétérogènes, non structurées, parfois perdues (T3, TT4)</p>
<p>Coopération difficile avec les éditeurs de logiciels (E2)</p>
<p>Processus ETL complexes et peu encadrés (T4, T5)</p>
<p>Problèmes d’interopérabilité structurelle et sémantique (T6, T7)</p>
<p>Données de qualité variable, difficilement évaluables (TT5)</p>
</section>
<section id="phase-3-usage-en-routine" class="level2">
<h2 class="anchored" data-anchor-id="phase-3-usage-en-routine">Phase 3 : Usage en routine</h2>
<p>Demande croissante difficile à absorber (O4)</p>
<p>Requêtes de recherche irréalistes ou inadéquates (T9, T10)</p>
<p>Réplication difficile des EDS en soins primaires (T8)</p>
<p>Difficultés à partager les modèles d’IA (E3)</p>
<p><strong>Remerciements :</strong> Matthieu Doutreligne, Emmanuel Chazard, Romaric Marcilly, Sonia Priou et les participants au workshop MIE2023.</p>


</section>
</section>

 ]]></description>
  <guid>https://healthdatascience.org/articles/barrieres_entrepots_donnees.html</guid>
  <pubDate>Tue, 31 Dec 2024 23:00:00 GMT</pubDate>
</item>
<item>
  <title>L’extraction de caractéristiques (ou feature extraction)</title>
  <dc:creator>Antoine Lamer, Chloé Saint-Dizier, Emmanuel Chazard</dc:creator>
  <link>https://healthdatascience.org/articles/extraction_caracteristiques.html</link>
  <description><![CDATA[ 




<section id="contexte" class="level2">
<h2 class="anchored" data-anchor-id="contexte">Contexte</h2>
<p>En data science, et dans le cadre de la réutilisation des données en particulier, nous travaillons à partir de bases de données brutes, déjà collectées. Ces bases n’ont pas été conçues pour répondre à des objectifs d’analyse, de modélisation ou de visualisation, mais pour des finalités opérationnelles telles que le soin, la facturation ou le suivi administratif. Leur structure reflète ces usages, et non les besoins d’une réutilisation secondaire à des fins scientifiques ou décisionnelles.</p>
<p>L’exploitation de ces bases de données se heurte à plusieurs difficultés :</p>
<ul>
<li><strong>Multidimensionnalité</strong> : elles comportent souvent plusieurs tables, reliées entre elles par des relations un-à-plusieurs.</li>
<li><strong>Dépendance au temps</strong> : les enregistrements sont datés (par exemple, une administration de médicament), mais non alignés dans le temps, car ils suivent la prise en charge propre à chaque individu.</li>
<li><strong>Variables qualitatives complexes</strong> : les modalités sont nombreuses et exprimées avec des terminologies standardisées, comme la CIM-10 (diagnostics) ou la CCAM (actes médicaux), qui comportent chacune des milliers de codes.</li>
<li><strong>Déséquilibre des distributions</strong> : certains modalités ou valeurs sont très rares et peu fréquentes à l’échelle d’un individu.</li>
</ul>
<p>Enfin, les données brutes ne sont souvent pas utilisables en l’état pour mener des analyses statistiques : elles doivent être transformées en variables dérivées, appelées <em>caractéristiques</em> ou <em>features</em>, c’est à dire des variables adaptées à l’analyse.</p>
</section>
<section id="caractéristiques-features" class="level2">
<h2 class="anchored" data-anchor-id="caractéristiques-features">Caractéristiques (<em>Features</em>)</h2>
<p>Une <strong>caractéristique</strong> (<em>feature</em>) est une valeur unique associée à un nom, comme <em>25 minutes</em> pour la durée d’hypotension en dessous de 65 mmHg (Table&nbsp;1).</p>
<p>Dans une caractéristique, la dimension temporelle est implicite : elle n’est plus formalisée par une date précise dans l’enregistrement. Elle peut parfois apparaître dans le nom de la variable — par exemple, la valeur maximale de <a href="https://fr.wikipedia.org/wiki/Cr%C3%A9atinine">créatinine</a> à J0, c’est à dire au premier jour de l’hospitalisation (<em>max_creat_j0</em>) — ou être intégrée directement dans la valeur de la caractéristique elle-même, pour exprimer un délai ou une durée — par exemple, la durée du séjour (<em>duree_sejour</em>).</p>
<p>Une caractéristique dépend fortement du contexte de l’étude. Par exemple, pour la créatinine, J0 fait référence au premier jour de l’hospitalisation considérée dans le protocole d’analyse. De même, une variable décrivant la présence d’antécédents médicaux dépendra étroitement de la définition retenue dans l’étude : celle-ci peut s’appuyer sur la présence d’un diagnostic codé, la réalisation d’un acte médical spécifique, ou encore la délivrance d’un médicament donné. Ces événements doivent être recherchés sur une période d’observation définie (par exemple les 12 mois précédents l’inclusion), en fonction des objectifs de l’étude et des antécédents jugés pertinents pour la pathologie étudiée.</p>
<div id="tbl-features" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-features-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;1: Exemples de caractéristiques / features
</figcaption>
<div aria-describedby="tbl-features-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<table class="caption-top table">
<colgroup>
<col style="width: 50%">
<col style="width: 50%">
</colgroup>
<thead>
<tr class="header">
<th>Caractéristiques / Features</th>
<th>Données</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Durée d’hypotension (&lt;65 mmHg)</td>
<td>Mesures de pression artérielle moyenne</td>
</tr>
<tr class="even">
<td>Insuffisance rénale aigüe</td>
<td>Mesures de créatinine</td>
</tr>
<tr class="odd">
<td>Durée de séjour</td>
<td>Séjours hospitaliers</td>
</tr>
<tr class="even">
<td>Réhospitalisation à 30 jours / 6 mois / 1 an</td>
<td>Séjours hospitaliers</td>
</tr>
<tr class="odd">
<td>Valeur maximale de créatinine à l’admission</td>
<td>Biologie</td>
</tr>
</tbody>
</table>
</div>
</figure>
</div>
</section>
<section id="extraction-de-caractéristiques-feature-extraction" class="level2">
<h2 class="anchored" data-anchor-id="extraction-de-caractéristiques-feature-extraction">Extraction de caractéristiques (<em>feature extraction</em>)</h2>
<p>L’extraction de caractéristiques (<em>feature extraction</em>) est le processus qui consiste à transformer des données brutes en variables pertinentes et exploitables pour répondre à une question précise, ou alimenter un modèle d’analyse. Cette étape mobilise à la fois la connaissance du domaine (dans notre cas, la santé) et des méthodes pour résumer, combiner ou dériver des informations utiles à partir des données disponibles.</p>
<section id="lhypotension-au-bloc-opératoire" class="level3">
<h3 class="anchored" data-anchor-id="lhypotension-au-bloc-opératoire">L’hypotension au bloc opératoire</h3>
<p>A partir des données enregistrées au bloc opératoire (fréquence cardiaque, pression artérielle, saturation en oxygène), il est possible de dériver des événements indésirables peropératoires tels que la survenue d’une bradycardie, d’une tachycardie, d’une hypotension, d’une hypertension ou encore d’une désaturation (Figure&nbsp;1). Ces événements sont essentiels pour la recherche car les médicaments utilisés pour l’anesthésie, en particulier les hypnotiques, modifient les paramètres physiologiques du patient. L’hypotension peropératoire, par exemple, est associée à une augmentation de la mortalité post-opératoire et à la survenue de complications rénales <span class="citation" data-cites="wijnberge_association_2021">[@wijnberge_association_2021]</span>.</p>
<div id="fig-pam_hypotension" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pam_hypotension-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://healthdatascience.org/articles/img/pam_hypotension.svg" class="img-fluid figure-img" style="width:80.0%">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pam_hypotension-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: Variation de la pression artérielle moyenne à la suite de l’administration d’hypnotiques
</figcaption>
</figure>
</div>
<p>En l’état, les données représentées dans la (Figure&nbsp;1) ne sont pas directement exploitables. Il s’agit en effet de mesures dépendantes du temps, avec une valeur par enregistrement, et dont les instants de recueil diffèrent d’un patient à l’autre. Pour analyser l’hypotension, il est préférable de calculer des indicateurs dérivés, tels que la durée passée sous un seuil donné — par exemple 65 mmHg — comme illustré dans la (Figure&nbsp;2). Cette opération nécessite la mise en place d’un algorithme permettant de comptabiliser le temps cumulé sous la valeur seuil, en tenant compte notamment de la gestion des données manquantes (lorsque l’intervalle entre deux mesures est anormalement long) et de la fréquence d’échantillonnage <span class="citation" data-cites="lamer_methodology_2016">[@lamer_methodology_2016]</span>.</p>
<div id="fig-pam_hypotension_area" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pam_hypotension_area-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://healthdatascience.org/articles/img/pam_hypotension_area.svg" class="img-fluid figure-img" style="width:80.0%">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pam_hypotension_area-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: Hypotension au bloc opératoire, à la suite de l’administration d’hypnotiques
</figcaption>
</figure>
</div>
<p>Ainsi, des données initialement organisées ligne par ligne, avec une mesure par ligne et un nombre de mesures variable selon la durée de prise en charge au bloc opératoire, sont transformées en un format où chaque colonne correspond à une caractéristique spécifique (Figure&nbsp;3).</p>
<div id="fig-feature_extraction" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-feature_extraction-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://healthdatascience.org/articles/img/feature_extraction.svg" class="img-fluid figure-img" style="width:100.0%">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-feature_extraction-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: Extraction de caractéristiques
</figcaption>
</figure>
</div>
</section>
<section id="opérations-usuelles-pour-lextraction-de-caractéristiques" class="level3">
<h3 class="anchored" data-anchor-id="opérations-usuelles-pour-lextraction-de-caractéristiques">Opérations usuelles pour l’extraction de caractéristiques</h3>
<p>Les principales opérations utilisées lors de l’extraction de caractéristiques sont les suivantes :</p>
<ul>
<li><p>Sélection de modalités : repérer les événements pertinents dans une base à partir de codes ou de terminologies standardisées. Exemple : identification des diagnostics CIM-10 de catatonie (F06.1 et F20.2) <span class="citation" data-cites="mastellari_exploring_2024">[@mastellari_exploring_2024]</span> ; sélection des délivrances d’antidépresseurs par les codes ATC N06A <span class="citation" data-cites="lamer_prolonged_2024">[@lamer_prolonged_2024]</span>.</p></li>
<li><p>Filtres temporels : restreindre l’analyse à une période donnée. Exemple : calcul des délivrances de médicaments par semaine <span class="citation" data-cites="lamer_prolonged_2024">[@lamer_prolonged_2024]</span> ; définir une fenêtre de 90 jours avant une hospitalisation pour quantifier les expositions médicamenteuses.</p></li>
<li><p>Lien entre plusieurs bases : associer des informations issues de sources différentes afin de reconstruire une trajectoire ou contextualiser un événement. Exemple : relier les données d’administration de médicaments avec le passage d’un patient au bloc opératoire.</p></li>
<li><p>Fonctions de résumé : elles permettent de dériver des caractéristiques synthétiques à partir des données brutes. On distingue :</p>
<ul>
<li><p>les opérations d’agrégation, qui condensent une série de valeurs en un indicateur unique (moyenne, médiane, minimum, maximum, écart-type) ;</p></li>
<li><p>les opérations de comptage, qui quantifient la fréquence ou l’ampleur d’un événement (nombre d’occurrences, nombre d’individus concernés) ;</p></li>
<li><p>les opérations de dérivation, qui produisent de nouvelles variables à partir de relations entre mesures (par exemple, calcul d’une différence ou d’une durée entre deux événements) <span class="citation" data-cites="lamer_prolonged_2024">[@lamer_prolonged_2024]</span>.</p></li>
</ul></li>
</ul>
<p>Pour calculer une caractéristique, ces opérations peuvent s’enchaîner (Figure&nbsp;4). On peut par exemple commencer par associer deux bases de données afin de disposer à la fois de mesures ponctuelles (par exemple, les résultats de biologie) et de périodes (comme les séjours dans différentes unités de soins). On sélectionne ensuite les paramètres biologiques et les unités pertinentes, puis on applique un filtre temporel pour restreindre l’analyse à une période donnée. Enfin, une fonction de résumé permet de calculer un indicateur synthétique, par exemple la valeur maximale d’un biomarqueur au cours d’un séjour en unité de réanimation.</p>
<div id="fig-workflow" class="quarto-float quarto-figure quarto-figure-center anchored" data-fig-align="center">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-workflow-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://healthdatascience.org/articles/img/pipeline_feature_extraction.svg" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:44.0%">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-workflow-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: Chaîne d’opérations pour l’extraction de caractéristiques
</figcaption>
</figure>
</div>
</section>
</section>
<section id="une-proposition-de-méthode" class="level2">
<h2 class="anchored" data-anchor-id="une-proposition-de-méthode">Une proposition de méthode</h2>
<p>Nous proposons de découper le processus en deux étapes : la <strong>définition de tracks</strong> (ou pistes), qui consiste à transformer les données brutes en segments temporels ou signaux d’intérêt, et l’<strong>agrégation des tracks</strong> (track aggregation), qui permet de résumer ces segments par des valeurs exploitables (Figure&nbsp;5). Les features obtenues sont alors des variables unidimensionnelles et indépendantes du temps, compatibles avec une unité statistique unique (patient, séjour, acte, etc.).</p>
<p>Lors de cette transformation, la structure des données change : on passe de nombreuses lignes réparties sur plusieurs tables à un tableau synthétique où chaque ligne représente l’unité statistique, et chaque colonne une caractéristique extraite. Cette standardisation permet de gérer la complexité initiale des données de santé, souvent hétérogènes, multidimensionnelles et dépendantes du temps. Par exemple, dans une étude sur les interactions médicamenteuses, des administrations de plusieurs médicaments sont combinées pour détecter une exposition concomitante, qui est ensuite agrégée pour produire un indicateur binaire ou une durée.</p>
<div id="fig-data_track_feature" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-data_track_feature-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://healthdatascience.org/articles/img/data_track_feature.svg" class="img-fluid figure-img" style="width:100.0%">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-data_track_feature-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;5: Extraction de caractéristiques - Track et features
</figcaption>
</figure>
</div>
</section>
<section id="cas-dusage-complet" class="level2">
<h2 class="anchored" data-anchor-id="cas-dusage-complet">Cas d’usage complet</h2>
<p>Nous souhaitons mesurer le nombre de médicaments appartenant à la liste de Laroche [laroche_potentially_2007] dans les 90 jours qui précédent l’hospitalisation (Figure&nbsp;6).</p>
<p>Tout d’abord, les enregistrements bruts des données administratives (dates d’admission et de sortie d’hospitalisation) ont été transformés en un nouveau type d’enregistrement correspondant à la survenue d’une hospitalisation (<em>étape 1</em>). Ensuite, cette piste a été transformée pour obtenir une seconde piste représentant les 90 jours précédant l’hospitalisation (90_days) (<em>étape 2</em>).</p>
<p>Les administrations de médicaments figurant dans la liste de Laroche ont été identifiées, et les périodes d’administration du médicament A et du médicament B ont été calculées à partir des dates d’administration et de la durée de traitement, aux étapes 3 et 4, respectivement. Des pistes similaires ont été calculées pour l’ensemble des médicaments de la liste de Laroche, mais, pour des raisons de clarté de la figure, nous avons choisi d’illustrer uniquement les deux premiers médicaments.</p>
<p>Après ces quatre étapes, des comparaisons entre pistes ont été réalisées successivement. Cela a permis de comparer les pistes d’administration du médicament A et du médicament B à la piste 90_days, aux étapes 5 et 6, respectivement. Les résultats ont ensuite été réunis dans une piste commune afin d’obtenir les pistes d’administration des éléments de la liste de Laroche au cours de la période 90_days (<em>étape 7</em>).</p>
<p>Enfin, le nombre d’éléments distincts a été comptabilisé pour obtenir la caractéristique finale, à savoir le nombre de médicaments de la liste de Laroche administrés au cours des 90 jours précédant l’hospitalisation.</p>
<div id="fig-data_track_feature_laroche" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-data_track_feature_laroche-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://healthdatascience.org/articles/img/data_track_feature_laroche.svg" class="img-fluid figure-img" style="width:100.0%">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-data_track_feature_laroche-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;6: Extraction de caractéristiques - Track et features
</figcaption>
</figure>
</div>
</section>
<section id="enjeux-et-bonnes-pratiques-de-lextraction-de-caractéristiques" class="level2">
<h2 class="anchored" data-anchor-id="enjeux-et-bonnes-pratiques-de-lextraction-de-caractéristiques">Enjeux et bonnes pratiques de l’extraction de caractéristiques</h2>
<p>L’extraction de caractéristiques est une étape cruciale dans les projets de data science en santé. Bien qu’elle permette souvent de disposer des variables nécessaires pour directement à la question d’analyse posée, ce processus reste méthodologiquement complexe.</p>
<p>Dans de nombreux cas, les caractéristiques sont extraites à partir de bases de données médicales figées, contenant des épisodes de soins passés et un grand nombre d’enregistrements. Cela implique que tous les scénarios d’analyse doivent être anticipés, afin d’éviter des modifications manuelles fastidieuses ou sources d’erreur en aval.</p>
<p>La manière dont les caractéristiques sont extraites peut influencer significativement les résultats (voir notamment les travaux de Pasma à ce sujet <span class="citation" data-cites="pasma_artifact_2020">[@pasma_artifact_2020]</span>). Le choix des variables, des fenêtres temporelles, ou encore des méthodes de calcul, peut introduire des biais ou masquer des signaux pertinents.</p>
<p>Ce processus illustre bien la démarche pluridisciplinaire propre à la data science en santé : il mobilise des compétences en santé (pour comprendre les parcours de soins et sélectionner les bonnes données), en informatique (pour automatiser et fiabiliser l’extraction), et en statistique (pour interpréter les résultats avec rigueur).</p>
<p>Enfin, pour aller plus loin, il peut être pertinent d’intégrer un feature store pour centraliser le stockage des caractéristiques, et un feature catalogue pour documenter leur définition, leur version, et leur utilisation dans différents projets ou publications.</p>
</section>
<section id="a-voir" class="level2">
<h2 class="anchored" data-anchor-id="a-voir">A voir</h2>
<p><a href="../articles/pipeline_data_reuse/">Pipeline de réutilisation des données</a></p>
</section>
<section id="synthèse" class="level2">
<h2 class="anchored" data-anchor-id="synthèse">Synthèse</h2>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p><strong>Définition :</strong> Une <em>feature</em> (ou <strong>caractéristique</strong>) est une variable ou un attribut calculé à partir des données brutes, qui résume une information jugée pertinente pour répondre à une question de recherche ou alimenter un modèle prédictif. Dans le domaine de la santé, il peut s’agir par exemple du nombre de jours d’hospitalisation, de la prise cumulée d’un traitement ou de la fréquence d’un symptôme.</p>
</div>
</div>


</section>

 ]]></description>
  <guid>https://healthdatascience.org/articles/extraction_caracteristiques.html</guid>
  <pubDate>Tue, 31 Dec 2024 23:00:00 GMT</pubDate>
</item>
</channel>
</rss>
