| Conférencier |
Transcription |
| Jordan Hiller |
sortir. |
| Phil Kay |
Merci de votre présence. Je suis Phil Kay, responsable de la formation chez JMP, et je vais commencer cette présentation par un exemple interactif de SVEM, une modélisation d'ensemble auto-validée. |
| |
Je vais expliquer ce qu'est SVEM et son mécanisme de fonctionnement, puis Pete et Trent partageront des exemples. |
| |
des études de cas et des simulations qui expliquent vraiment pourquoi vous souhaitez faire cela. Je vais simplement présenter cela sur un |
| |
étude de cas très simple, donc cela peut ne pas sembler au départ pourquoi... cela peut ne pas sembler clair pourquoi vous voudriez faire cela, mais j'espère que vous comprendrez le mécanisme après que je vous l'ai expliqué. |
| |
Ok, je vais donc arrêter ma vidéo maintenant et me concentrer uniquement sur la démonstration du logiciel ici. |
| |
Nous avons un journal JMP ici, que nous partageons avec vous, afin que vous puissiez y accéder à partir de la publication dans la communauté JMP sur Community.JMP.com. |
| |
L'exemple que nous allons utiliser est un exemple classique de DOE. Il s'agit des données de rebond, disponibles dans les fichiers d'aide de JMP. |
| |
Il s'agit donc de trois facteurs, 15 passages. C'est une conception Box-Behnken et nous avons une réponse extensible, donc assez simple, standard. |
| |
DOE traditionnel à l'ancienne. |
| |
Et il n'y a pas de réel défi à modéliser ces données, et nous voyons si nous adaptons un modèle de surface de réponse que ces comportements curvilignes, ces effets quadratiques et ces interactions entre facteurs également s'avèrent importants. |
| |
Voyons donc comment nous pourrions modéliser cela en utilisant l’approche SVEM. |
| |
Si nous modélisons cela avec SVEM, vous remarquerez d'abord que nous avons 30 lignes de données. Nous avons donc dupliqué chaque ligne, ce qui peut paraître un peu fou. Cela peut paraître de la triche. C'est une astuce clé de la méthodologie SVEM. |
| |
Vous verrez que nous avons des colonnes supplémentaires, la principale étant le poids de validation. Représentons-le graphiquement pour comprendre sa signification. |
| |
Vous pouvez donc voir que, pour chacune de nos lignes de données, chacune de nos exécutions, nous avons en fait des paires d'exécutions, donc l'exécution numéro un, vous pouvez la voir ici. |
| |
Nous pondérons chacune de ces exécutions soit dans l'ensemble d'entraînement, qui est à zéro, soit dans l'ensemble de validation, qui est à un. Vous pouvez le constater pour chaque paire. |
| |
Ces pondérations sont inversement proportionnelles. Par exemple, pour l'exécution numéro sept, vous pouvez constater qu'elle a une pondération élevée dans l'ensemble d'entraînement, zéro dans l'ensemble de validation, et une pondération faible dans l'ensemble de validation. |
| |
Maintenant, ceux-ci ont été attribués au hasard et nous pouvons... |
| |
En cliquant ici, nous pouvons les redessiner et ainsi réaffecter les pondérations. De plus, si une ligne a une pondération élevée dans l'ensemble d'entraînement, par exemple la ligne numéro six, elle aura une pondération faible dans l'ensemble de validation. |
| |
Nous doublons donc nos lignes de données ici. |
| |
Et nous allons utiliser cela pour l'auto-validation. Nous pouvons donc utiliser une variante de la validation de retenue, où |
| |
au lieu de retenir complètement une ligne de données dans l'ensemble de validation, ce que nous allons faire est de retenir des parties de chaque ligne de données, de sorte que chaque ligne puisse réellement être dans l'ensemble d'apprentissage et l'ensemble de validation et, surtout, nous pouvons réaffecter ces poids |
| |
à plusieurs reprises, ce qui sera le cas lorsqu'il s'agira de la modélisation d'ensemble. |
| |
Ok, donc juste pour résumer, nous avons... nous avons dupliqué essentiellement chaque ligne de données et nous leur attribuons des poids de telle sorte que certaines lignes seront davantage dans l'ensemble de formation et d'autres davantage dans l'ensemble de validation. |
| |
Nous pouvons donc maintenant ajuster un modèle en utilisant la validation. |
| |
Nous utilisons donc GenReg ici, et vous pouvez voir que nous utilisons un ensemble de validation (et ignorons simplement le message d'erreur). |
| |
Nous utilisons Lasso et la validation comme méthode de sélection du modèle. Dans ce cas, aucun effet actif n'est sélectionné. Nous avons donc ajusté un modèle de surface de réponse et utilisé la validation comme méthode de sélection, à l'aide du Lasso. |
| |
et nous avons déterminé qu'aucun effet n'est réellement actif, nous avons donc un modèle sans effet actif. |
| |
Ce que nous pouvons ensuite faire, c'est redessiner ces poids à nouveau, afin de pouvoir repondérer nos colonnes. |
| |
Et nous pouvons constater que cette fois, nous obtenons un modèle différent. Certains effets deviennent alors actifs, et la silice est active dans cette interaction entre la silice et le soufre. |
| |
Sauvons ce modèle. |
| |
Alors maintenant, avec notre |
| |
tableau de données, vous pouvez voir que nous avons une colonne de formule de modèle enregistrée. |
| |
Redessinons à nouveau ces pondérations. Nous les redessinons donc de telle sorte que certaines lignes soient davantage affectées à l'apprentissage, d'autres davantage à la validation. |
| |
Et nous avons encore un modèle différent, et enregistrons-le maintenant. Nous avons donc maintenant |
| |
deux rangées de... deux colonnes avec des formules de prédiction enregistrées. |
| |
Et on peut recommencer. Je vais donc redessiner les pondérations et enregistrer la formule de prédiction. J'ai un script qui le fait pour nous. Ensuite, il crée la moyenne du modèle, ce qui nous permet de calculer la moyenne de nos trois modèles enregistrés. |
| |
Ainsi, chaque modèle individuel a utilisé une pondération de validation différente. |
| |
Chaque modèle était différent, certains étaient meilleurs que d'autres. L'essentiel est que, lorsqu'on fait la moyenne de ces modèles, |
| |
La moyenne de ces modèles est le meilleur à ce jour. Vous pouvez donc constater qu'il est assez proche du modèle original que nous avons installé selon les méthodes standard… |
| |
l'ensemble de données d'origine. |
| |
Et on peut continuer comme ça. On peut le faire dix fois, donc on va répéter ça. Et vous pouvez voir les pondérations se redessiner ; à chaque fois, on obtient un modèle légèrement différent. |
| |
Et nous pouvons sauvegarder chacun de ces différents modèles. |
| |
Et finalement, on aboutit à une moyenne qui est probablement le meilleur modèle. |
| |
Et, en fait, si nous comparons cela au modèle original que nous avons vu à partir de l'analyse standard de ces données, |
| |
vous pouvez voir que les deux modèles sont en fait assez proches. |
| |
Donc, dans ce cas, l'utilisation de cette modélisation d'ensemble auto-validée a vraiment permis d'arriver au même modèle que celui que nous obtiendrions en utilisant la modélisation standard. |
| |
régression linéaire. |
| |
Je souhaite donc revenir sur les points clés de ce que vous avez vu. Et comme je l'ai dit, nous allons maintenant donner la parole à Pete et Trent, qui expliqueront les motivations qui ont motivé l'utilisation de cette nouvelle technique de modélisation. |
| |
Ce que nous avons fait, c'est que nous avons dupliqué les lignes de données originales. |
| |
Cela signifie donc que nous pouvons appliquer une pondération aléatoire pour déterminer la part de chaque paire de lignes en cours de formation par rapport à la validation. |
| |
Cela nous permet d'utiliser la validation. Nous ne pourrions pas l'utiliser pour un si petit ensemble de données. Conserver une ligne de données complète serait illogique, mais que pouvons-nous faire avec cet ensemble dupliqué ? |
| |
Il s'agit d'une validation pondérée. Dans ce cas, nous avons donc ajusté un modèle utilisant la sélection Lasso, et cette sélection Lasso a utilisé cette colonne de validation pondérée. |
| |
Nous redessinons ensuite ces pondérations. Nous attribuons aléatoirement des pondérations différentes à ces paires de lignes et réajustons le modèle. Dans notre cas, nous avons répété cette opération 10 à 15 fois, mais en pratique, pour obtenir un bon modèle d'ensemble auto-validé, il faudrait répéter ce processus 100 fois ou plus. |
| |
Et chaque modèle est lui-même... chaque modèle individuel à chaque étape de ce processus itératif n'est pas particulièrement utile, mais la moyenne du modèle ou l'ensemble l'est, comme nous l'avons vu avec notre modèle final que nous avons obtenu comme moyenne de toutes ces itérations. |
| |
Alors, maintenant je veux passer la parole à Pete et il va maintenant parler d'une étude de cas, qui illustre en fait pourquoi vous voudriez utiliser cette méthode inhabituelle pour modéliser des données comme celles-ci. |
| Pierre Hersh |
Merci beaucoup, Phil. Je vais partager mon écran ici. |
| |
Et passons en revue un exemple montrant quand nous pourrions |
| |
utiliser cette méthode. Alors me voilà |
| |
En regardant d'abord les résultats, nous examinons donc quelques conceptions qui sont de très petits DOE, donc un DOE à six, huit et dix exécutions, avec trois facteurs. |
| |
Et ce sont des conceptions de surface de réponse qui sont de nature super saturée à saturée et elles sont toutes de conception optimale, donc ce sont un très petit nombre d'exécutions |
| |
Pour atteindre notre objectif, voici où nous allons. Revenons en arrière et parlons de la conception, puis de la manière dont nous en sommes arrivés là. |
| |
Donc. |
| |
Il s'agit d'une étude de cas où nous essayons de maximiser le taux de croissance d'un microbe en ajustant différentes combinaisons de nutriments. Comme je l'ai mentionné précédemment, nous utilisons un modèle optimal sursaturé et ajustons le nombre d'essais. |
| |
Et ce sont des données simulées, où tous les effets principaux sont actifs, ainsi que toutes les équations du second degré. |
| |
Pour mettre tout cela en place, nous avons commencé par nos trois facteurs. J'ai conçu mon modèle. Si vous n'avez jamais conçu de modèle saturé ou super saturé dans JMP, |
| |
Pour y parvenir, il faut traiter les effets secondaires comme s'ils étaient possibles, ce qui permet d'avoir moins d'exécutions ou le même nombre d'exécutions que pour les effets de modèle. J'ai donc généré mes conceptions à partir de là. |
| |
Et j'ai suivi ce processus que Phil a si bien décrit, celui du rééchantillonnage des données, pour obtenir ces poids inversement proportionnels, qui sont la clé de ce processus. |
| |
Nous avons eu quelques discussions et j'ai juste des codes QR pour celles-ci. |
| |
Cette technique a été développée par Chris Gotwalt et Phil Ramsey, et ils l'ont déjà présentée lors de plusieurs conférences. Et cette dernière |
| |
Le code QR était un module complémentaire qui permettait de configurer cette colonne de validation dans les anciennes versions de JMP. À partir de JMP 16, vous pouvez le faire nativement dans le logiciel, mais si vous utilisez JMP 15, vous devrez utiliser ce module complémentaire. |
| |
Et comme Phil l'a dit, donc un |
| |
Il se peut que chaque modèle individuel ne corresponde pas très bien aux données, certains s'adapteront correctement, d'autres n'auront aucun terme. |
| |
Mais ceci n'est qu'un exemple, où vous pouvez voir chaque modèle individuellement. Certains ne sont qu'une interception, d'autres sont plutôt mal ajustés, et quelques modèles s'en sortent plutôt bien. |
| |
Comme Phil l'a décrit, chacun d'eux a un poids recalculé différent. Nous obtenons donc un modèle légèrement différent et nous allons le sauvegarder. C'est la première étape. |
| |
Ensuite, nous avons calculé la moyenne de ces modèles. Comme vous pouvez le constater, plus on calcule la moyenne, plus l'adéquation s'améliore. Les modèles individuels ne sont pas excellents, mais la moyenne globale nous donne une bonne adéquation. |
| |
Et la dernière étape dont je voulais parler, c'est que ces modèles sont biaisés par nature. Comme vous l'avez vu avec le premier modèle créé par Phil, il n'y avait aucun effet actif. Donc |
| |
lorsque vous effectuez une technique de sélection de modèle ou de variable avec votre modèle, vous obtiendrez parfois un modèle dans lequel cette variable spécifique n'entre pas. |
| |
Donc, si nous regardons ici ces distributions, vous pouvez voir |
| |
tous ces effets sont actifs, et ils ont une distribution autour de 5, qui est la taille de l'effet, mais ils ont aussi cette barre ici qui est 0. |
| |
Nous n'allons donc pas surestimer l'effet aussi souvent que nous obtenons 0 pour contrebalancer cela, donc cela va être biaisé vers une valeur inférieure, nous allons donc faire un |
| |
petite astuce pour débiaiser ces modèles, où nous |
| |
traitez ce modèle comme un prédicteur dans un simple modèle des moindres carrés, et cela supprimera ces biais et je vais parcourir ce processus pour vous montrer comment cela se fait. |
| |
Mais au final, nous obtenons ce très bon résultat que j'ai partagé avec un très petit nombre d'exécutions. C'est pourquoi SVEM est une technique qui permet de prédire et de créer un modèle correct avec moins d'exécutions que sans cette technique. |
| |
Très bien, passons maintenant à JMP ici |
| |
et |
| |
Parcourez ce processus. |
| |
Voici donc le plan d'expérience à six exécutions de l'exemple que j'ai présenté, avec nos trois facteurs et notre taux de croissance. Et ceci après la construction du modèle. |
| |
Voici à quoi cela ressemble, et nous avons maintenant parcouru et exécuté. Nous avons donc nos six exécutions avec nos six résultats. L'étape suivante consiste à créer la colonne de validation et, pour ce faire, dans JMP, nous allons simplement analyser la modélisation prédictive. |
| |
créer une colonne de validation, puis au lieu d'une colonne de validation, nous allons créer une table de validation automatique. |
| |
Voilà, c'est comme ça que j'ai procédé. Je l'ai déjà fait, donc je ne vais pas répéter le processus. |
| |
Mais voici ces données avec leurs données rééchantillonnées et leur pondération inversement corrélée, comme Phil l'a démontré. Vous avez une pondération élevée associée à une pondération faible de l'exécution répétée. Après cela, nous passons à l'étape suivante et créons notre modèle. |
| |
Dans ce cas, j'utilise un modèle GenReg et je souhaite sélectionner une technique de sélection de variables. Si j'exécute cette méthode, je souhaite utiliser une méthode de sélection directe par Lasso. |
| |
ou l'une de ces techniques de sélection. Trent va détailler ces techniques et celles qu'ils ont étudiées. |
| |
Après avoir exécuté le modèle, vous voyez que JMP a analysé et sélectionné certains effets actifs. Il en a détecté certains, mais vous pouvez les voir ici. |
| |
ce biais que nous observons, où ces deux effets principaux devraient être actifs, mais ils sont sortis à 0. Donc, lorsque j'enregistre cela dans la table de données, |
| |
Je vais créer une nouvelle colonne comme Phil l'a montré, puis je recalculerai ce poids et recommencerai l'opération encore et encore. Voici un script simple pour répéter l'opération 100 fois. |
| |
Nous serons ravis de partager cela. Il suffit de copier-coller votre script, votre script modèle, ici et de reproduire ce que nous avons fait. |
| |
Ok, voici donc le résultat final, où nous avons parcouru notre DOE, nos résultats, et ensuite nous avons |
| |
les 100 modèles que j'ai sauvegardés |
| |
et caché ici. Et puis le modèle final, qui est |
| |
une moyenne de ces 100 modèles. La dernière étape consiste à corriger le biais. Il s'agit donc de traiter ce modèle. |
| |
modèle moyen comme prédicteur du taux de croissance. |
| |
Alors ici, vous pouvez voir le modèle original que nous avons |
| |
La pente est beaucoup plus raide, donc le R² est correct, mais ce n'est pas aussi bon que ce que nous espérions. Même avec six runs, six runs, c'est plutôt bien, mais |
| |
Si nous pouvons supprimer ce biais, nous pourrons peut-être faire un peu mieux. Donc, une configuration très simple. Nous prenons simplement le taux de croissance. Notre réponse est notre Y. Nous ajoutons |
| |
modèle d'ensemble ici, moyenne de tous ceux |
| |
Les modèles individuels, comme prédicteur. Nous exécutons cette opération et obtenons un résultat bien meilleur. En comparant ces résultats, nous constatons que la suppression de ce biais a un effet positif important. |
| |
Bien, et donc avant de le rendre à Trent, je voulais en montrer un de plus |
| |
diapositive ici, qui est essentiellement juste un résumé de |
| |
que nous... (j'ai perdu ma barre des tâches, voilà)...que nous vous encourageons vivement à utiliser |
| |
Essayez cette technique, mais ce n'est pas une solution miracle qui fonctionnera à tous les coups. Mais si vous l'utilisez pour des conceptions de filtrage, par exemple, cela pourrait être une technique très efficace. |
| |
vous aider à accomplir des choses que vous n'auriez peut-être pas pu réaliser avec les techniques de modélisation standard. Sur ce, je passe la parole à Trent, qui a |
| |
un peu plus de détails sur la façon dont cela se fait et le |
| |
Il y a des informations. Alors Trent, tu veux les emporter ? |
| Trent Lemkus |
Oui, merci, Peter. J'apprécie. |
| |
Donc |
| |
Je partage mon |
| |
PDF. Je veux juste m'assurer que ce partage est bien effectué et que tout le monde peut le voir. |
| Pierre Hersh |
Ouais. |
| Trent Lemkus |
Ok, fantastique. Alors |
| |
Comme Phil et Peter l'ont présenté, ils ont présenté des études de cas, qui sont, à mon avis, des anecdotes phénoménales qui montrent la puissance de SVEM et quand et pourquoi utiliser SVEM. |
| |
Pour notre article de recherche, actuellement soumis à l'évaluation par les pairs, nous avons mené un nombre considérable d'études de simulation afin de démontrer empiriquement les performances de SVEM dans un contexte prédictif. |
| |
Ensuite… Je vais vous montrer une série de diapositives. Je sais que cela peut paraître un peu ennuyeux et ennuyeux, mais je pense qu'il est impératif d'aborder les détails. |
| |
avant d'entrer dans quelque chose d'un peu plus divertissant, qui est un exemple de la façon dont nous avons utilisé... |
| |
comment nous avons utilisé JMP, JSL et comment j'ai exécuté les simulations à titre d'exemple et pour vous montrer à quoi ressemblent certaines des sorties, ainsi que les résultats. |
| |
Ainsi, tout d’abord, le plan et les objectifs de nos études de simulation étaient principalement |
| |
Nous souhaitions créer une architecture de simulation réaliste. Nos simulations devaient donc reproduire le DOE industriel réel au plus près. |
| |
Et deuxièmement, nous voulions voir comment les techniques contemporaines de construction de modèles ou de sélection de modèles, ainsi que SVEM, fonctionnent lorsqu'elles sont principalement axées sur la prédiction pure, |
| |
C'est aussi simple que cela. Nous voulions donc voir, lorsqu'on adapte un modèle à une conception, comment il prédit une vérité ou un ensemble de données de référence, ou, pardonnez mon accent, des données. |
| |
Et à partir de là, si nous pouvons simuler ces exécutions uniques autant de fois que cela est possible sur le plan informatique, nous voulons faire des inférences aussi réelles que possible... nous voulons faire... déduire des résultats réels aussi proches que possible afin que nous puissions |
| |
prescrire les paramètres et où et comment utiliser SVEM, puisque SVEM est encore naissant. |
| |
Alors, tout d'abord, quels modèles avons-nous utilisés dans nos simulations ? Nous avons utilisé des modèles de criblage définitifs. |
| |
Nous avons utilisé des plans de Box-Behnken, où le modèle générateur réel sous-jacent était un modèle quadratique complet, plus communément appelé modèle du second ordre. Nous avons choisi ces plans car : A) pour les plans de criblage définitifs, |
| |
Plus vous avez d'effets principaux, plus les modèles sont saturés, puis sursaturés. Autrement dit, plus les effets principaux sont importants, plus le nombre de degrés de liberté diminue. Alors que pour vos modèles Box-Behnken avec les effets principaux que nous avons utilisés, |
| |
On ne se retrouve pas dans ce scénario. On a donc une juxtaposition de deux scénarios, où, d'un côté, on a |
| |
degrés de liberté adéquats avec nos plans Box-Behnken pour estimer nos coefficients lors de l'application d'une technique de sélection de modèle, et dans le cas du plan de criblage définitif, nous avons presque |
| |
Dans la plupart de nos cas, notre conception était sursaturée, ce qui nous privilégiait un nombre insuffisant de degrés de liberté. Autrement dit, |
| |
nous n'avons pas pu estimer tous les effets lors de l'utilisation de techniques contemporaines de construction de modèles, comme vos sélections avant, comme vos lassos, vos sélecteurs Dantzig, etc. |
| |
Ce qui nous amène aux algorithmes de modélisation que nous avons utilisés pour nos simulations. Pour les modèles SVEM, il faut garder à l'esprit que si… |
| |
si vous n'avez pas une bonne compréhension de ce qu'est SVEM, il est très important que vous reveniez à certaines des présentations précédentes auxquelles Peter faisait référence. |
| |
Mais nous devons utiliser SVEM avec une technique de construction de modèle sous-jacente, comme la sélection avant, l'élagage avant et le lasso, que nous utilisons pour nos études de simulation. |
| |
Dans nos cas de modèles non SVEM, nous utilisons ces mêmes algorithmes de construction de modèles, mais nous avons également incorporé le sélecteur Dantzig, qui est assez populaire dans le DOE, |
| |
ainsi que la conception de criblage définitif, qui est exclusivement applicable au criblage définitif ; elle n'est pas utilisée sur d'autres conceptions. |
| |
De plus, nous utilisons un critère d'information appelé AICc ou AIC corrigé, qui est très courant dans le DOE et qui est en fait assez connu pour sélectionner des modèles très parcimonieux. |
| |
Donc, comme vous pouvez le voir, nous essayons d'intégrer des techniques contemporaines qui sont très courantes dans l'utilisation du DOE industriel, ce qui reste fidèle au point central que j'ai montré dans la diapositive initiale, à savoir |
| |
nous voulons imiter le monde réel aussi près que possible humainement possible avec nos études de simulation, afin que nous puissions rendre ces études empiriques... |
| |
Nous pourrons ainsi évaluer empiriquement les performances prédictives de ces différents algorithmes de modélisation. Nous espérons pouvoir démontrer empiriquement que SVEM est performant, voire supérieur, à ses concurrents. |
| |
Pour la structure de simulation réelle, nous avons effectué 1 000 simulations pour chaque algorithme de construction de modèle. Par exemple, si nous ajustions un modèle direct avec AICc, |
| |
À chacune de ces 1 000 exécutions, nous générerions un véritable modèle, la vérité, et nous y ajouterions ensuite du bruit. |
| |
bruit gaussien (qui est très courant dans le milieu universitaire et dans et...lors de la recherche), |
| |
Nous créons ainsi un ensemble d'entraînement, si vous voulez, et un ensemble de données de référence. Ainsi, une fois le modèle ajusté, nous pouvons voir comment ce modèle prédit la réalité. Nous réexécutons et régénérons ces ensembles de données de manière aléatoire 1 000 fois. |
| |
L'hyperparamètre SVEM, dont je ne détaillerai pas la nature, nous avons utilisé un nBoot de 200. En termes simples, nous avons essentiellement ajusté 200 modèles et nous avons fait la moyenne de ces modèles pour obtenir notre modèle SVEM final. |
| |
Les conceptions ont également été itérées sur plusieurs caractéristiques. Ainsi, le nombre d'effets principaux |
| |
Pour les plans de criblage définitifs, nous avions quatre effets principaux et huit effets principaux. Pour nos plans Box-Behnken, nous avions |
| |
Trois effets principaux et cinq effets principaux. Par exemple, pour notre DSD, où K est égal à huit, on a huit effets principaux. Si on a un modèle quadratique complet, |