La planification et la mise en œuvre d'un plan d'expériences (DOE) peuvent s'avérer complexes et impliquer de nombreux spécialistes. Après l'expérience, les difficultés d'analyse, d'interprétation et de communication des résultats persistent, notamment lorsque les parties prenantes possèdent des niveaux d'expertise technique variés. Afin de simplifier ce processus et d'uniformiser notre flux de travail, nous avons développé un script qui visualise automatiquement les résultats du DOE. Ce script génère deux graphiques intuitifs qui présentent efficacement les conclusions.
Le premier graphique illustre la variabilité totale de chaque variable d'intérêt, indiquant dans quelle mesure elle peut être influencée par le plan d'expériences. Le second graphique résume la sensibilité de la variable d'intérêt aux variations des variables d'entrée.
Notre script est conçu pour offrir une grande flexibilité, permettant l'ajout de nouveaux calculs et la normalisation des graphiques selon les besoins. Cet outil a considérablement amélioré notre efficacité, nous faisant gagner environ deux heures par graphique par rapport aux méthodes manuelles. De plus, le format de visualisation standardisé facilite la communication avec les parties prenantes non techniques, rendant les résultats des plans d'expériences plus accessibles et plus faciles à comprendre.
Chez NNE, nous accompagnons de nombreux clients dans la conception d'expériences (DoE) pour diverses raisons, telles que les tests de robustesse, l'amélioration des processus et la validation. L'un des principaux défis que nous rencontrons fréquemment est la communication des résultats aux parties prenantes. Les difficultés peuvent être nombreuses, notamment parce que certaines d'entre elles sont moins à l'aise avec les statistiques et les mathématiques que nous.
Dans certains cas, il peut même s'agir d'une légère phobie des mathématiques. Beaucoup ne seront pas familiarisés avec l'interface JMP, ce qui peut être intimidant, ou la complexité du modèle que nous avons créé peut représenter un défi pour son analyse ou sa compréhension.
Un autre aspect important est que certaines de nos analyses ont été très chronophages et laborieuses. Elles peuvent être un peu ennuyeuses à réaliser. Or, l'ennui favorise les erreurs, et ce n'est pas bon.
Notre objectif était de créer une méthode permettant de générer rapidement et facilement des graphiques. Nous pourrions ainsi les présenter aux parties prenantes et communiquer les résultats. La génération de ces graphiques devait être automatisée afin de minimiser les erreurs, et rapide pour éviter les temps d'attente. La méthode devait également pouvoir gérer un grand nombre de modèles, car nous en utilisons beaucoup.
Nous avions déjà élaboré les graphiques. Cela nous avait tout de même pris beaucoup de temps. En général, nous avons créé deux graphiques : l’un pour visualiser l’étendue des résultats et l’autre pour visualiser la sensibilité des résultats aux variables utilisées dans notre plan d’expériences.
Nous avons trouvé un moyen d'automatiser l'analyse : nous effectuons les calculs nécessaires en exportant nos modèles vers Python, en résolvant certains problèmes d'optimisation globale, puis en visualisant les résultats dans JMP, et enfin en normalisant le résultat pour permettre les comparaisons.
Vous pouvez voir ici l'un des graphiques. C'est celui que nous avons créé. Il s'agit du graphique de l'étendue. Voici un graphique de sensibilité. Pour le graphique de l'étendue, nous avons créé un petit exemple. Les données proviennent de cultivars de soja, de différents types de soja, pour lesquels nous avons modélisé le rendement de la culture, puis créé ce graphique.
Je peux vous montrer comment on crée ce graphique. C'est assez simple. On a les données ici. On a, en quelque sorte, créé un modèle. Cette virgule apparaît ici. Ensuite, avec notre outil, on appuie sur un petit bouton, et le calcul se lance. Pour certains modèles, surtout s'il y a beaucoup de niveaux pour certaines variables nominales, le calcul peut être un peu long. Il faut résoudre un problème d'optimisation globale pour chaque combinaison, mais même dans les cas les plus complexes, on obtient les résultats assez rapidement.
Voici le résultat. Cela a pris environ 20 secondes. À partir de là, nous pouvons tracer ce que nous voulons. En général, cela créera un graphique. Vous pouvez le personnaliser à votre guise. Certaines de ces variables servent uniquement à des analyses spécifiques. Nous obtenons ainsi presque instantanément un graphique qui nous permet de visualiser précisément les données souhaitées et de les communiquer facilement aux parties prenantes.
Par exemple, pour cet ensemble de données, nous pourrions vouloir déterminer la culture la plus adaptée à la saison. Le point affiché ici représente la valeur nominale, c'est-à-dire le rendement que nous obtiendrons en utilisant cette culture et en paramétrant tous les autres paramètres sur leur valeur moyenne. La barre indique l'étendue des valeurs possibles.
Pour cette culture, la valeur peut varier entre 4 700 et environ 4 000. Les lignes pointillées représentent les limites de contrôle, c'est-à-dire la valeur nominale plus ou moins l'écart type libre, ainsi que, dans ce cas précis, les limites cibles et de spécification. On constate immédiatement que pour la saison 1, trois ou quatre candidats se situent bien dans nos limites, et même un qui est presque exactement conforme à la cible.
On peut l'intégrer à la saison 2, où les résultats sont généralement un peu moins bons, mais on peut quand même en trouver quelques-uns qui conviennent. C'était un exemple d'utilisation. On peut maintenant clore tous ces dossiers. Car, autre chose, il n'y avait qu'une seule variable de sortie.
Un autre cas de figure est celui où l'on peut avoir plusieurs résultats, et ces résultats peuvent avoir des échelles différentes. Voici un autre exemple. Il s'agit de données simulées, mais basées sur un cas réel. Nous avions un produit que nous souhaitions analyser. C'était un produit manufacturé. De nombreuses dimensions ont été mesurées, et nous voulions déterminer lesquelles étaient les plus critiques pour le résultat.
Ici, nous avons deux variables explicatives et cinq dimensions, chacune avec une échelle différente. Je peux donc ignorer cette étape. Nous pouvons relancer notre modèle. Le tracé prend environ cinq secondes, et nous obtenons instantanément nos résultats. On constate rapidement le problème des différentes échelles : si l'on se contente de les représenter, on ne voit que la dynamique de la dimension 4, car elle est beaucoup plus grande que les autres. On pourrait essayer de la redimensionner, mais le problème persisterait. Les dimensions 1 et 2 étant plus grandes que la dimension 3, on ne peut en visualiser qu'une ou deux à la fois.
Ce que nous faisons, c'est normaliser nos graphiques. Par exemple, ici, nous pouvons les normaliser par rapport à la valeur cible. Nous avons simplement placé notre variable ici. La normalisation est effectuée : la cible est toujours à zéro, la limite supérieure de spécification est à un et la limite inférieure de spécification est à moins un. Nous constatons immédiatement que, pour la dimension 3, si nous avons défini 2, nous sommes toujours hors spécifications.
On constate que les dimensions 1 et 2 présentent une variabilité relativement faible par rapport aux limites spécifiées. Dans la configuration 2, la dimension 2 varie considérablement, notamment en fonction des variables d'entrée. Dans ce cas, il est impératif de contrôler la température avec précision.
Cette méthode fonctionne si nous avons des limites de spécification cibles. Sinon, d'autres solutions sont possibles. Nous en avons une autre qui normalise simplement les données par rapport à l'ordonnée à l'origine et aux limites de spécification. Si nous n'avons pas de cible spécifique, nous voulons simplement nous assurer que nous respectons les limites de spécification ; c'est ce qui est normalisé ici. Nous pouvons également utiliser une dernière méthode normalisée par rapport à l'écart type de l'ordonnée à l'origine, ce qui fonctionne toujours, mais nous pourrions tout de même rencontrer le problème d'une échelle différente.
Par exemple, nous pouvons voir ici que la dimension 4 est assez grande par rapport à la variance résiduelle, tandis que la dimension 1 n'a pas de limites de spécification très grandes par rapport à la variance résiduelle.
Enfin, vous pourriez vous intéresser non seulement aux valeurs maximales que peuvent prendre vos variables, mais aussi à la manière de contrôler ces variables de résultat. Prenons l'exemple d'un autre ensemble de données concernant les calories brûlées en fonction de l'âge, de la taille, du poids, du sexe, etc. Nous souhaitons savoir combien de calories je pourrais brûler en fonction de ces variables.
Nous disposons des données. Notre modèle est prêt à être utilisé. Nous cliquons sur le bouton. Après quelques secondes, un graphique apparaît. Nous y représentons les sensibilités. Qu'est-ce que la sensibilité ? Elle indique dans quelle mesure la variable de résultat varie en fonction des paramètres nominaux et pour chaque variable continue.
Par exemple, dans ce cas précis, si je fais de l'exercice et que je prolonge mon effort d'une minute, je brûlerais environ 5,5 calories supplémentaires. Si j'augmentais l'intensité, en augmentant ma fréquence cardiaque d'un battement par minute, je brûlerais environ 2,5 calories de plus.
Les autres variables du modèle pourraient avoir un impact limité en pratique. Mon âge, mon poids, par exemple, n'ont peut-être pas une grande importance. Cependant, cela dépend évidemment de l'échelle de la variable. Si je peux faire varier ma fréquence cardiaque davantage que la durée de l'effort, cela pourrait tout de même avoir un impact significatif.
Il existe une autre méthode de normalisation qui consiste simplement à prendre le gradient, la sensibilité, et à la multiplier par l'amplitude maximale de la plage… Quelle est l'amplitude maximale de variation de ma fréquence cardiaque par rapport à l'amplitude maximale de variation de la durée ?
On constate ici qu'auparavant, la fréquence cardiaque n'avait pas autant d'impact. Désormais, elle peut avoir une influence tout aussi importante sur les calories brûlées que la durée de l'effort, car je peux la moduler davantage.
On constate également que, pendant la durée de l'exercice, je brûlerais davantage de calories. Un exercice plus intense me permettrait de brûler environ 60 calories supplémentaires. On observe l'influence de mon poids et de mon âge sur l'efficacité de l'exercice. Cela pourrait avoir un impact concret, invisible auparavant, sur les effets estimés à long terme au niveau individuel.
On termine tout ça. Pour revenir au début, notre objectif était de créer une méthode automatique d'analyse des expériences. Cette méthode fonctionne désormais. Elle est relativement rapide et personnalisable selon vos besoins, notamment pour obtenir le graphique souhaité. Voilà.