Mon nom est Briana Russe, et Je suis un senior statisticien
à le Centre pour Mathématique les sciences à Merck.
Aujourd'hui Je vais être en allant sur simulation stérilité violations
avec non paramétrique données.
À Merck, nous souvent livrer notre liquide formulé drogues dans prérempli seringues.
UN groupe à Merck que spécialisé
dans que est venu à moi demander moi à voir si je pourrait simuler
si là est n'importe lequel risque à stérilité violations dans eux, en fonction, dépendemment sur historique données
et quelques différent scénarios ils recherché à regarder à.
Là était deux intéressant les pièces de ce
que je recherché à aller sur aujourd'hui dans mon Coaster et discuter un petit plus loin.
Le d'abord était quelques de le historique données,
spécifiquement, le remplir poids était anormalement distribué.
Quand remplissage le des seringues, c'est pas nécessairement traitement à un cible.
C'est capable à se déplacer dans un gamme
et même dérive dehors de que gamme pour un peu avant être corrigée.
Que souvent résultats dans quelques lourd queue de le données,
lequel toi peut voir dans le bas gauche ici.
C'est un exemple de que.
Nous recherché à faire bien sûr que nous étaient capturer que lourd queue,
parce que évidemment c'est où le le plus élevé risque est en allant à être.
Le autre intéressant partie que va spécifiquement, dans quelques JSL script
est que je était transaction avec un grand nombre de itérations demandé pour par le client
parce que ils étaient regarder pour dix million par scénario parce que c'est le commande
de ordre de grandeur, ils étaient attendant à créer le seringues.
je était capable à, pendant le projet, découvrir quelques techniques
à réduire le traitement charger sur JMP
que était capable à significativement réduire le processus temps pour quand je était en cours d'exécution
le simulation et prévenir n'importe lequel s'écraser ou rien comme que depuis mémoire problèmes.
Je vais touche sur les deux de ceux des choses.
Mais d'abord, je recherché à aller dans un petit peu à propos plus arrière-plan
sur le prérempli seringues et quoi nous étaient regarder à.
Comme je mentionné, nous avoir le remplir poids données.
C'est le montant de liquide c'est rempli dans le seringue.
Que encore, je recherché à regarder à non paramétrique
en utilisant un densité fonction.
je était capable à trouver que que était très facile à faire dans JSL.
Je vais montrer comment je a fait que.
Alors le autre aspect était le piston insertion profondeur.
Comment profond est le piston être inséré et comment fermer est que à le liquide remplir?
Alors le dimensions de le prérempli seringue.
Là est quelques variabilité depuis le fabricant,
je recherché à faire bien sûr que était être capturé.
Là étaient deux clé les sorties, et ils étaient un Oui ou Non sortir pour chaque.
Le d'abord était, nous vouloir à faire bien sûr que nous étaient maintenir un écart
entre le liquide remplir et le piston.
Parce que si nous ne le faites pas, alors étaient en allant à être obtenir
liquide en haut sur le piston, et que pourrait être un stérilité risque.
Nous recherché à faire bien sûr que le air écart longueur était toujours plus grand que zéro.
Le autre un était nous aussi ne le faites pas vouloir que air écart à être aussi grand
parce que quand étaient expédition le des seringues, dire, sur un avion,
ils pourrait être exposé à inférieur atmosphérique les pressions,
lequel peut cause le piston à se déplacer en haut.
Si il déplacé en haut aussi beaucoup, il pourrait aller au-delà un stérile barrière
que était créé quand le piston était inséré.
Nous ne le faites pas vouloir il à aller aussi faible. Nous ne le faites pas vouloir il à aller aussi grand.
Mais il y a un parcelle que va dans le piston mouvement,
pas seulement le air écart, lequel est un fonction de le dimensions
de le piston et comment profond le piston était inséré
et comment fermer il est à le remplir.
Mais encore, aussi différent atmosphérique pressions
et le croix en coupe zone, donc le dimensions de le seringue.
Il y a un parcelle de différent contributions
et différent sources de variabilité potentiellement
à que pillage mouvement.
je recherché à être capable à simuler tous de ceux.
Que censé que je savait que mon données tableau et JMP
que je recherché à simuler dans était en allant à être très grand.
Le d'abord changement que je était capable à faire, à faire ces simulation
un parcelle plus efficace était en fait juste ouverture en haut le historique données
que je était en allant à utiliser, le données tableau je était en allant à utiliser
comme être invisible.
Ce fait il donc JMP n'a pas avoir à rendre le tableau,
ce potentiellement massif tableau je était en allant à créer
et était capable à vraiment réduire processus temps
et aussi prévenir saut depuis s'écraser à fois,
Ça disait, le mémoire de mon ordinateur portable était dépassé.
Une fois je ouvert en haut le historique données comme invisible,
je alors serait ajouter assez Lignes à que juste vide Lignes à obtenir moi à dix million,
parce que évidemment mon historique données n'était pas que grand.
Mais je recherché à faire bien sûr que le données tableau avait dix million Lignes,
donc alors je pourrait aller devant et simuler dix million itérations.
Spécifiquement, quoi je a fait pour le non paramétrique aspect
de le données était je ajuster le données dans le distribution plate-forme dans JMP,
et alors je était capable à juste très facilement utiliser le ajuster lisse courbe fonction
à sauvegarder simulation depuis que non paramétrique données
à dix million itérations.
Super simple et facile chemin à ajuster essentiellement noyau densité fonction
simulé valeurs.
Le autre deux des choses que vraiment amélioré mon simulation
était, comme je mentionné, là était un parcelle de différent calculs
que je était faire dans un données tableau et différent scénarios sur 20 différent,
pour exemple, piston profondeur cibles nous recherché à regarder à.
Comme partie de mon JSL scénario, je recherché à être boucle sur différent scénarios.
Mais si je était juste en allant à créer un colonne que alors référencé précédent Colonnes
dans un boucle, que pourrait cause référence problèmes
pour chaque itération de le boucle, parce que je serait fin en haut avec essentiellement
tous de le nouveau Colonnes ayant le même formule
parce que ils auraient tous juste fin en haut référencement peu importe le dernier
itération de le boucle était.
À prévenir que, si je recherché à utiliser un formule
pour le colonne, je serait alors besoin à supprimer le formule.
Encore, très inefficace.
Un très simple et facile chemin que je pourrait obtenir autour ce
était plutôt de économie un formule pour un nouveau colonne,
juste utiliser ensemble chaque valeur.
Ce moyens que JMP n'a pas besoin à sauvegarder le formule à tous.
Il éliminé que problème avec le boucle référence
et alors aussi, encore, réduit processus temps.
Le final amélioration que je fait était par vraiment fonctionnement avec mon client
dans ce cas, et vraiment comprendre dehors quoi exactement ils nécessaire,
je était capable à rationaliser des choses un parcelle.
Parce que initialement, je était juste donnant eux le cuisine couler.
Donnant eux distributions et histogrammes de chaque célibataire paramètre et sortir,
lequel ils pensée était intéressant mais était pas vraiment valeur le effort
et valeur le processus temps.
Quoi ils vraiment juste recherché était quoi est le % échec taux pour ces deux les sorties?
je était capable à faire livrer que un parcelle plus efficace
par éliminer le besoin de ouverture en haut, dire,
un distribution plate-forme et en essayant à ajuster dix million Lignes.
Plutôt, je juste fait bien sûr que n'importe lequel stérilité enfreindre,
je juste créé un colonne où si un stérilité enfreindre s'est produit,
il était un un, si il n'a pas, il était un zéro.
Alors il était très facile à juste calculer le colonne signifier à donner
le pourcentage de échec pour n'importe lequel scénario et directement sortir que à un journal.
Que chemin, le journal aussi n'était pas ayant à être massif parce que il était économie
donc beaucoup information depuis le données tableau parce que il était créer graphiques depuis il.
Dans l'ensemble, initialement dans ce projet,
je était capable à livrer il, mais par en utilisant le plate-forme les sorties,
visible les tables, et sauvegarder des formules, il était prise à moins trois heures.
Souvent, je était location il courir pendant la nuit,
donc je ne le faites pas savoir le exact Horaire, mais à moins trois heures.
Par simplifier le sortir seul, donc en allant directement à le journal plutôt
de économie depuis, dire, le distribution plate-forme et JMP,
je était capable à obtenir ce vers le bas à un heure et 49 minutes.
Alors juste ceux deux simple changements
de fabrication bien sûr que le données tableau était invisible
et économie valeurs plutôt de économie, le formule a obtenu moi vers le bas
à 52 minutes malgré le volume de calculs
que étaient être nécessaire à être fait.
Dans l'ensemble, il peut être très simple
et facile à simuler non paramétrique données dans JMP
en utilisant ces données les tables et en utilisant le ajuster, lisse courbe fonction.
Alors aussi, si toi sont simulation vraiment grand données s'installe JMP,
si toi sont simplifier le sortir, si tu es fabrication bien sûr
que JMP n'est-ce pas le rendu des choses il n'a pas besoin à ou calculateur
et économie des choses il n'a pas besoin à, il peut en fait être très efficace
dans créer le simulation et donnant toi le les sorties.
Dans ce particulier cas, en utilisant ceux techniques,
je était capable à réduire mon simulation temps sur un triple.
C'est tous je avoir. Merci pour écoute.