Mon
nom
est
Briana
Russe,
et
Je suis
a
senior
statisticien
à le Centre pour Mathématique Sciences à Merck.
Aujourd'hui Je vais être en allant sur simulant stérilité violations
avec non paramétrique données.
À Merck, nous souvent livrer notre liquide formulé drogues dans prérempli seringues.
A groupe à Merck que spécialisé
dans que est venu à moi demander moi à voir si I pourrait simuler
si là est n'importe lequel risque à stérilité violations dans eux, selon sur historique données
et quelques différent scénarios ils recherché à regarder à.
Là était deux intéressant parties de ce
que I recherché à aller sur aujourd'hui dans mon montagnes russes et discuter a petit plus loin.
Le d'abord était quelques de le historique données,
spécifiquement, le remplir poids était anormalement distribué.
Quand remplissage le seringues, c'est pas nécessairement traitement à a cible.
C'est capable à se déplacer dans a gamme
et même dérive dehors de que gamme pour a peu avant être corrigé.
Que souvent résultats dans quelques lourd queues 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 scripts
est que I était transaction avec a grand nombre de itérations demandé pour par le client
parce que ils étaient regarder pour 10 million par scénario parce que c'est le commande
de ampleur, ils étaient attendant à créer le seringues.
I était capable à, pendant le projet, découvrir quelques techniques
à réduire le traitement charger sur JMP
que était capable à de manière significative réduire le processus temps pour quand I était en cours d'exécution
le simulations 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, I recherché à aller dans a petit peu à propos plus arrière-plan
sur le prérempli seringues et quoi nous étaient regarder à.
Comme I mentionné, nous avoir le remplir poids données.
C'est le montant de liquide c'est rempli dans le seringue.
Que encore, I recherché à regarder à de manière non paramétrique
en utilisant a densité fonction.
I était capable à trouver que que était très facile à faire dans JSL.
Je vais montrer comment I 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,
I recherché à faire bien sûr que était être capturé.
Là étaient deux clé sorties, et ils étaient a Oui ou Non sortir pour chaque.
Le d'abord était, nous vouloir à faire bien sûr que nous étaient maintenir a é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 a 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 seringues, dire, sur un avion,
ils pourrait être exposé à inférieur atmosphérique pressions,
lequel peut cause le piston à se déplacer en haut.
Si il déplacé en haut aussi beaucoup, il pourrait aller au-delà a 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 a parcelle que va dans le piston mouvement,
pas seulement le air écart, lequel est a 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 a parcelle de différent entrées
et différent sources de variabilité potentiellement
à que pillage mouvement.
I recherché à être capable à simuler tous de ceux.
Que censé que I savait que mon données tableau et JMP
que I recherché à simuler dans était en allant à être très grand.
Le d'abord changement que I était capable à faire, à faire ces simulations
a parcelle plus efficace était en fait juste ouverture en haut le historique données
que I était en allant à utiliser, le données tableau I était en allant à utiliser
comme être invisible.
Ce fait il donc JMP n'a pas avoir à rendre le tableau,
ce potentiellement massif tableau I était en allant à créer
et était capable à vraiment réduire processus temps
et aussi prévenir saut depuis s'écraser à fois,
il a dit, le mémoire de mon ordinateur portable était dépassé.
Une fois I ouvert en haut le historique données comme invisible,
I alors serait ajouter assez rangées à que juste vide rangées à obtenir moi à 10 million,
parce que évidemment mon historique données n'était pas que grand.
Mais I recherché à faire bien sûr que le données tableau avait 10 million rangées,
donc alors I pourrait aller devant et simuler 10 million itérations.
Spécifiquement, quoi I a fait pour le non paramétrique aspect
de le données était I ajuster le données dans le distribution plate-forme dans JMP,
et alors I était capable à juste très facilement utiliser le ajuster lisse courbe fonction
à sauvegarder simulations depuis que non paramétrique données
à 10 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 I mentionné, là était a parcelle de différent calculs
que I était faire dans a 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, I recherché à être boucle sur différent scénarios.
Mais si I était juste en allant à créer a colonne que alors référencé précédent colonnes
dans a boucle, que pourrait cause référence problèmes
pour chaque itération de le boucle, parce que I 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 I recherché à utiliser a formule
pour le colonne, I serait alors besoin à supprimer le formule.
Encore, très inefficace.
Un très simple et facile chemin que I pourrait obtenir autour ce
était plutôt de économie a formule pour a 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 I fait était par vraiment fonctionnement avec mon client
dans ce cas, et vraiment comprendre dehors quoi exactement ils nécessaire,
I était capable à rationaliser des choses a parcelle.
Parce que initialement, I était juste donner eux le cuisine couler.
Donner 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 sorties ?
I était capable à faire livrer que a parcelle plus efficace
par éliminer le besoin de ouverture en haut, dire,
a distribution plate-forme et en essayant à ajuster 10 million rangées.
Plutôt, I juste fait bien sûr que n'importe lequel stérilité enfreindre,
I juste créé a colonne où si a stérilité enfreindre s'est produit,
il était a un, si il n'a pas, il était a 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 à a 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éation graphiques depuis il.
Dans l'ensemble, initialement dans ce projet,
I était capable à livrer il, mais par en utilisant le plate-forme sorties,
visible tables, et sauvegarder formules, il était prise à moins trois heures.
Souvent, I était location il courir du jour au lendemain,
donc I ne le faites pas savoir le exact timing, mais à moins trois heures.
Par simplification le sortir seul, donc en allant directement à le journal plutôt
de économie depuis, dire, le distribution plate-forme et JMP,
I é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 tables et en utilisant le ajuster, lisse courbe fonction.
Alors aussi, si toi sont simulant vraiment grand données s'installe JMP,
si toi sont simplification le sortir, si tu es fabrication bien sûr
que JMP n'est pas 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éation le simulations et donner toi le sorties.
Dans ce particulier cas, en utilisant ceux techniques,
I était capable à réduire mon simulation temps sur a triple.
C'est tous I avoir. Merci pour écoute.