Chartes de croissances

Nom: Pédiatre.ai

Objectifs: 

Créer un algorithme capable de:

  1. Prédire la future taille d’un enfant à l’âge adulte à partir de ces données de croissances entre 0-2 ans
  2. Détecter des anormalités de croissance et les associées à de possibles diagnostiques

Il existe quelques standards de chartes croissances. Nous allons utiliser ceux de l’Organisation mondiale de la Santé (OMS). L’utilisation ce genre de technique est chapeauté par l’anthropométrie et est particulièrement utile pour détecter des anormalitées dans la croissance de jeunes enfants et peuvent être utiles lors de diagnostiques tel des problèmes d’absorption de nutriments ou de maladies congénitales. En plus d’être utile pour trouver des irrégularités de croissances, ces chartes peuvent aussi être utiliser pour prédire le poids, la taille et la circonférence de crâne de l’enfant ainsi que détecter la poussée de croissance pubertaire.  

Il existe plusieurs chartes: taille-âge, poids-âge, circonférence crânienne-âge et ratio poids-taille ou IMC-âge. Celle-ci sont séparées par sexe et par groupe d’âge puisque les techniques de mesures changent après 2 ans. Par conséquent il existe les chartes 0-2 ans et 2-19 ans. 

Voici la charte taille-âge de l’OMS pour les garçons âge entre 2 et 19 ans. 

Puisque ces chartes de croissances sont déjà un outil prédictif pour les pédiatres, pourquoi pas tenter de créer des algorithmes qui font la même chose? Par conséquent tentons de créer un algorithme capable de:

  1. Prédire la future taille d’un enfant à l’âge adulte à partir de ces données de croissances entre 0-2 ans
  2. Détecter des anormalités de croissance et les associées à de possibles diagnostiques
 

1. Prédire la future taille d’un enfant à l’âge adulte à partir de ces données de croissances générées synthétiquement

Background sur la stratégie de modélisation:

Comme tu le sais ou va découvrir, le gros du travail en modélisation c’est l’organisation de données. Par contre, les données de milliers de chartes croissances d’enfants pour toutes leurs mesures de tailles entre 0-19 ans ne sont pas des données publiques. Par conséquent on va devoir générer les données nous-mêmes. C’est donc une belle opportunité de plonger brièvement dans l’univers des données synthétiques.

Une donnée synthétique est tout simplement une mesure qui n’est pas obtenue en observant le phénomène directement. Il existe plusieurs méthodes de les créer, mais c’est souvent difficile de les générer pour bien représenter avec exactitude la réalité. Sur papier c’est très utile puisque des logiciels de prédictions pourraient être entraînés sans jamais avoir vu les données réels. Si cela t’intéresse, je recommande ce récent papier, qui tente de créer un algorithme pour créer des données synthétique dans le domaine de la santé utilisant un modèle de Markov caché

Dans notre cas, on va pas trop se casser la tête. Nous allons tout simplement construire une population de n individus qui suivent parfaitement la distribution sur la courbe de croissance. Puisque qu’il existe pour chaque valeur sur l’axe des x (âge) une distribution normale en y (taille) , nous avons qu’à créer un nuage de poids à chaque tranche d’âge qui suit cette distribution. 

Visuellement:

Pour générer les données j’ai scripter un simple programme en python qui suite les lignes directrices de l’OMS pour les garçons. Puisque le but de trouvia.io n’est pas d’enseigner comment programmer, je vais simplement lier mon script ici. Si tu désires comprendre un peu plus les détails, je peux recommander cette page

Si on regarde l’allure de nos données, sois avec Excel ou le figures générées par mon script: 

Un point important à faire ici: les données générées sont très simples et évidemment ne représente pas la réalité complexe de la croissance et des différences interindividuelles. Par contre, puisque des techniques de génération de données beaucoup plus complexes seront couvertes plus tard, on va utiliser ces données simples pour simplement présenter le concept.   

Préparation de système d’analyse sur KNIME

Maintenant que nous avons nos données, nous allons pouvoir créer notre algorithme. Démarrons notre session KNIME!

Préparons notre première node. Commençons par aller chercher un lecteur de fichier CSV et le mettre au milieu de l’espace de travail.

Vous pouvez voir que la node a certaines propriétés. De un, la node a un nom: CSV node. Il y a aussi un triangle noir à la droite de a node qui seras la sortie de donnée de la node. De plus, il y a des feux de signalisation qui est rouge avec un triangle jaune. Celui-ci signifie que la node n’est pas connectée. 

Si tu cliques sur celle-ci, un panneau de control apparaît. Cliques sur Browse et trouve les données que tu viens de télécharger. Le reste peut être laissé intouché. Par la suite, juste clicker sur Apply et OK. Et voilà, les données téléchargées et prêtes pour l’algorithme. 

Avec cela, la node devrait maintenant être jaune. Ceci veut dire qu’elle est prête à être roulée!

Pour la rouler et obtenir le feux vert tant convoité, simplement cliquer sur la node et cliquer execute.

C’est maintenant temps de traiter ces belles données! Par conséquent, il est maintenant temps de sélectionner la population de données que nous allons utiliser pour prédire l’âge. Disons que nous voulons créer un algorithme capable de prédire la taille à 19 ans d’un enfant selon sa courbe entre 0-8 ans. Donc, nous allons isoler les colonnes 0 à 8 ans ainsi que 19 ans et éliminer les autres. Pour se faire nous allons utiliser une nouvelles node sous Manipulation > Column > Filter > Column Filter ou en tapant Column Filter dans la barre de recherche. Par la suite, simplement cliquer sur le triangle noir et étendre le trait sur le triangle d’entrée de la nouvelle node. 

La node viens de passer de rouge à jaune. Par conséquent on peut maintenant la programmer.