Fujifilm Diosynth Biotechnologies es una organización de desarrollo y fabricación por contrato (CDMO) que cuenta con un departamento de Caracterización de Procesos (PCS). El objetivo de los PCS es demostrar la robustez de los procesos de nuestros clientes ante cambios en la configuración de parámetros o en sus rangos operativos normales.
Los PCS suelen emplear el diseño de experimentos (DOE) para investigar los efectos que las entradas del proceso tienen en los atributos de calidad (GC) y los indicadores de rendimiento del proceso (IPP). El análisis DOE es una herramienta útil para identificar las entradas que afectan al GC y los IPP, pero es principalmente cuantitativo.
Además del análisis tradicional de DOE, el cálculo del índice de impacto (IR) para cada insumo proporciona una evaluación cuantitativa y cualitativa y puede ayudar a determinar si un parámetro es crítico o no. El IR proporciona una medida del tamaño del efecto relevante dentro de un rango aceptable.
Realizar los cálculos manualmente requiere mucho tiempo y es propenso a errores. Presentaremos una herramienta de automatización que puede extraer la información necesaria de un modelo DOE y calcular el IR. Una interfaz permite al usuario personalizar el cálculo de los resultados.
Hola a todos. Me alegra mucho estar aquí hoy con mi colega Sam. Hoy hablaremos sobre los índices de impacto. En resumen, ¿cuál es el impacto de los factores DoE en los resultados o respuestas DoE? Presentaré el concepto, los cálculos y los ejemplos en JMP, y luego le daré la palabra a Sam, quien les explicará cómo automatizar ese proceso con JSL y les mostrará cómo lo hizo en un complemento.
Antes que nada, una confesión. Quería titular esta charla "¿Qué tienen en común los científicos de caracterización de procesos con los científicos de la NASA?". Pero la conexión era demasiado tenue y quizás habría resultado un poco confusa. Aun así, sigo usando los conceptos. Por eso tenemos imágenes de meteoritos en la primera diapositiva. Esta es mi metáfora. Estoy observando los cráteres de impacto y comparándolos con las tasas de impacto porque necesitamos divertirnos un poco.
¿Qué está pasando aquí? Tenemos un meteorito muy similar, que podría caer en la Tierra, Marte o la Luna, y las condiciones serían diferentes. En primer lugar, hay atmósfera, muy poca o ninguna, lo que altera la explosión y el comportamiento del meteorito. Si estás en la Tierra, el cráter de impacto que se formará podría tener un impacto enorme en lo que sucede a nuestro alrededor, ya que en la Tierra hay gente viviendo.
Con esto en mente, ¿qué vamos a ver hoy? Veremos otra razón estadística. A los estadísticos les gustan las razones. Luego, veremos qué mide específicamente la razón de impacto. Después, responderemos a la pregunta: "¿Puedo calcular esto en JMP?". La respuesta es, obviamente, que sí, y hay varias maneras de hacerlo. Puedes hacerlo de la forma más tediosa. Te guiaré manualmente. Omitiré este paso porque no tenemos tiempo, pero hemos creado un flujo de trabajo para facilitar la gestión de tablas.
Luego le daré la palabra a Sam, quien les mostrará la forma sencilla de calcular la tasa de impacto haciendo clic en su complemento JMP. Aquí tenemos un dibujo a mano alzada que hice yo mismo para mostrarles algo que probablemente hayan visto muchas veces, ya que se trata de un gráfico de control, y son bastante comunes en el mundo estadístico. Aquí tenemos un resultado que cambia con el tiempo a medida que creamos más lotes, por ejemplo.
En este gráfico, tenemos zonas. En la zona azul-morada, se muestra dónde se sitúa nuestro resultado. Dado que se trata de datos con una distribución normal, podemos predecir dónde se situará con el tiempo. Aquí tenemos estadísticas que nos permiten predecir la amplitud que podría alcanzar esta zona azul. Luego, en verde, entre dos especificaciones, se muestra una zona segura de tipo cliente. Los clientes suelen proporcionarnos especificaciones, o podríamos haber calculado criterios de aceptación a partir del trabajo de desarrollo, por ejemplo.
Lo que queremos hacer es asegurarnos de que nuestro proceso se encuentre en una zona bien delimitada por la zona segura durante el control del proceso. Un índice utilizado para esto es el Índice de Capacidad, al igual que el CPK y el PPK, que básicamente relaciona esta zona con la zona verde. Este es el índice de impacto más similar que he encontrado. Aquí tenemos casi el mismo gráfico. Se nota que he reutilizado el mismo dibujo. Lo único que cambia es que, en lugar de usar estadísticas que predicen la dispersión de los datos, usamos estadísticas que predicen su forma. Modelamos lo que le sucede a una salida específica cuando se cambia la entrada y se mueve su valor de bajo a alto.
Esto es lo que haría si estuviera realizando un DoE y cambiara la condición operativa sistemáticamente. Más específicamente, para la caracterización del proceso, este rango de mínimo a máximo sería un rango que se desea demostrar como aceptable. Aquí tenemos una ecuación al final, y tenemos una zona azul, el mínimo y el máximo previstos para nuestra respuesta, y aún tenemos una zona verde, lo que es aceptable para obtener un producto de calidad al final del proceso.
Estamos comprobando, de nuevo, si la desviación ocupa una proporción aceptable de nuestra zona de seguridad o de juego. Esta tasa de impacto puede ayudarnos a comparar el impacto de diferentes factores, ya que obtendremos un modelo similar para todos nuestros factores. También podría ser un criterio para clasificar dichos factores si forma parte de un DoE. ¿Qué mide realmente esta tasa de impacto? Ya tenían una pista en la diapositiva anterior, pero volvamos a los meteoritos.
Nuestros científicos de la NASA han calculado dos cosas: el lugar donde nuestro meteorito impactará el planeta y el radio del cráter. Han dicho que, mientras nos mantengamos dentro de esta zona verde segura, quienes vivan fuera estarán bien. Claro que esto no sería cierto para un meteorito, pero quédense un momento. Lo que estamos calculando es básicamente el radio del cráter respecto al radio de la zona segura. Esperamos que este número sea mucho menor. Que la zona segura sea muy grande comparada con el cráter de impacto.
Ahora, lo que sucede es que podríamos estar equivocados, de modo que los científicos de la NASA predijeron que el meteorito caería aquí, pero cayó aquí. Aunque el área segura probablemente era lo suficientemente grande para un meteorito/proceso centrado, en este caso, en realidad tenemos el cráter de impacto bastante fuera del área segura. Espero que no vivas por aquí. Otra posibilidad, y hay muchas otras, sería que estuviéramos en el objetivo, pero hubiéramos calculado mal el cráter. El cráter es mucho más grande de lo que pensábamos. De nuevo, está fuera del área segura, y el radio del área segura es en realidad menor que el del cráter de aquí. Esto es solo una imagen, y veamos cómo se vería en un gráfico. El mismo gráfico de nuevo con algunas flechas adicionales y algunas ecuaciones.
En términos sencillos, su índice de impacto realmente calcula el tamaño del efecto sobre la distancia con respecto a su especificación o criterio de aceptación. El tamaño del efecto en este caso son esas delgadas flechas azules y naranjas. Es la distancia desde la predicción mínima hasta el centro o la predicción máxima hasta el centro. Lo calculamos con la distancia desde el centro hasta su especificación en ambos lados. En este caso, esta distancia ocupa el 70 % de nuestra zona de seguridad. Este no es un buen índice de impacto. Aquí solo es del 40 %, pero sigue siendo una cifra bastante alta. Pero para ser justos, tendremos que tomar el máximo de esos dos valores, por lo que consideraríamos el 70 %.
Este es mi dibujo a mano. Veamos un gráfico JMP real. Este es un gráfico de salto, y es solo una parte del perfilador que se obtiene al finalizar un análisis de DoE. En este caso, tenemos algo de curvatura, pero las zonas son las mismas. Si queremos calcular nuestra relación de impacto con el mínimo, la predicción es que el mínimo al centro ocupa aproximadamente el 42 % del mínimo a la especificación. Por otro lado, la predicción del mínimo al techo o máximo solo ocupa aproximadamente el 7 % de nuestra zona segura.
Sin embargo, tendremos que reportar esta cifra, que sigue siendo bastante alta. La pregunta que intentamos responder es: ¿estamos en el camino correcto con un impacto pequeño en comparación con lo aceptable? Ahora, saldré de aquí y entraré en JMP para mostrarles cómo hacerlo manualmente, de la manera más complicada. Aquí tenemos un DoE estándar de caja, de cinco factores. Solo hemos compartido cuatro respuestas. Todo está anonimizado, así que lo siento mucho, pero las cifras parecen un poco extrañas porque todas están entre -1 y 1.
Pero lo que buscamos aquí es tener límites de respuesta especificados para poder experimentar con el objetivo de esas respuestas. Maximizar para la mayoría de ellas, por ejemplo, para impurezas que podrían minimizarse, y puede que ni siquiera nos interese su nivel. No voy a repasar el modelado porque no es para eso. Disculpen. Script incorrecto. Listo. Ya lo ajustamos, y este es el ejemplo que tenía en las notas, así que seguiré con este.
Aquí usamos el Profiler para obtener todos los números que necesitamos para nuestra ecuación. Fijamos esto en el punto central y registramos ese número. Listo. Esas son las condiciones del punto central. Todo se mantiene en el punto central. Voy a pedirle a JMP que recuerde esta configuración. La llamaré "Punto central de carga" porque me interesa la carga. Es la primera que uso. Manualmente, no necesitaría pedir ayuda a JMP. Todo está en el punto central para ambos. Simplemente puedo mover esto al mínimo y registrarlo de nuevo como el valor mínimo. Ese es mi mínimo de carga.
Para el máximo, es un poco más complicado. Podría intentar hacer esto. Podría agrandarlo y asegurarme de alcanzar el máximo. Pero confiaré en JMP para esto. Haré clic en Control + Alt, haré clic en los otros dos gráficos y bloquearé la configuración del factor en el punto central. Solo me interesa el comportamiento de la carga y su máximo cuando todo lo demás se mantiene en ese punto. Luego usaré el maximizador de JMP.
Listo. Podría haberlo alcanzado manualmente, pero ahora sé que está exactamente al máximo. Voy a guardar este también. Ya tenemos el máximo. Ahora tengo casi todo lo que necesito. Si lo haces manualmente, lo haces para cada factor o parámetro de ecuación de esta lista y para cada respuesta. Si tienes modelos bastante grandes, con unas 5 o 10 respuestas, esto se convierte rápidamente en mucho trabajo.
Luego, tendrías que exportar todos estos datos a una tabla. Usarías esto si tuvieras muchos, pero solo tengo uno, así que haré esto. Aquí tienes toda la información que necesitas en el formato incorrecto. Lo que necesitamos es dónde están. Entonces queremos este número aquí. Ahora, usarías la transposición en tablas aquí, pero no lo haré porque ya lo hice con anticipación. Solo quiero compartir esto rápidamente con ustedes. ¿Por qué no está bien? Aquí tenemos los datos de la transposición. Tenemos todas las etiquetas de la tabla aquí.
Manualmente, tendríamos que sumar nuestras especificaciones inferior y superior. A partir de estas, junto con el mínimo, el máximo y el CP, podemos calcular el numerador, el denominador y las proporciones. La distancia pequeña sobre la distancia grande da como resultado la proporción de impacto bajo. Luego, simplemente se usa la fórmula para obtener el máximo de las dos y se repite para cada una. Le cedo la palabra a Sam, quien podría mostrarte lo fácil que es hacer esto una vez que tienes un complemento. ¿Sam?
Gracias, Gwen. Como mencionó Gwen, decidimos crear un complemento para automatizar esta tarea. Ahora les mostraré brevemente cómo funciona. Estoy usando la misma tabla de datos con la que Gwen acaba de trabajar. Decidimos crear un complemento porque facilita la ejecución de un script directamente desde una ventana de script. Lo bueno de tener un complemento es que, al pasar el cursor sobre su nombre, se puede agregar una descripción emergente. En este caso, la descripción emergente simplemente indica la ventana correcta desde la que se debe ejecutar el complemento.
De hecho, si intento hacer clic, verán que no ocurre nada porque no estoy en el lugar correcto. Si abro el script con los modelos que creamos anteriormente, podrán ver que puedo ejecutarlo y que se ejecutará correctamente. Primero, se presentan al usuario varias ventanas con instrucciones y, posteriormente, áreas para la entrada. La primera ventana solo contiene instrucciones sobre los requisitos de la tabla de datos subyacente.
Por ejemplo, las columnas de factores deben codificarse y las unidades también deben ingresarse como propiedades de columna. Si no es así para ninguna de las columnas, simplemente pulsa "Cancelar" para volver a realizar los cambios. En este caso, sé que todas están codificadas correctamente. Pulsaré "Ejecutar" de nuevo y luego "Aceptar". La siguiente ventana solo contiene el área para ingresar la configuración de los factores. Observarás que aquí tenemos una entrada para factores categóricos.
No es posible calcular la tasa de impacto de un factor categórico. Sin embargo, cualquier factor categórico incluido en los modelos debe tener una configuración específica, por lo que el usuario puede introducirla aquí. Para los demás factores continuos evaluados en el DoE, se incluye un área para introducir dicha configuración. El script lee automáticamente los valores mínimo y máximo simplemente leyendo la tabla. También calcula el punto central observando el punto medio entre el mínimo y el máximo.
Sin embargo, en algunos casos, el punto central podría no estar exactamente en el centro del rango. En este caso, ese era el caso de la carga, así que lo cambiaré a 20. Es posible editar cualquiera de estos valores. La ventaja de poder cambiar la entrada aquí es que, si ejecutamos la suma y obtenemos índices de impacto demasiado altos para algunos factores, podemos simplemente ejecutar la suma de nuevo y cambiaré los valores aquí; por ejemplo, intentaré evaluar un rango de factor reducido. Luego, comprobaré si el índice de impacto mejora en ese nuevo rango.
Pero mantendré el resto de los valores y haré clic en Aceptar. La ventana final solo mostrará los criterios de aceptación de la respuesta. Introduciré esos valores. Si solo hay un criterio, puedes introducir uno y dejar el otro en blanco. Si no tienes criterios, puedes dejar ambas casillas en blanco y se podrá calcular la tasa de impacto. En ese caso, es solo la diferencia porcentual entre la respuesta del punto de ajuste y la predicción mínima o máxima. No ofrece la misma medida en términos de significancia práctica, pero el script la calculará.
Ahora, si hago clic en "Aceptar", pueden ver que se ha generado la tabla de resumen. Pero si regreso a la ventana desde la que ejecuté el complemento, pueden ver que, debajo de cada perfilador de predicción, se han guardado las configuraciones. Estas son las configuraciones que se usaron para obtener la predicción mínima y máxima de cada factor del modelo. Esto es útil para poder revisar cómo se realizaron los cálculos. Es útil poder revisarlo.
Ahora daré una visión general del funcionamiento del script. Primero, el script recorre cada modelo de respuesta en la ventana. Luego, establece la conveniencia de maximizar la respuesta. A continuación, el script recorre cada término del modelo. Para el primer término, que en este caso es la carga, desbloquea la configuración del factor para que pueda moverse libremente. A continuación, todos los demás factores se bloquean en su valor establecido. El script ejecuta la función Maximizar y Recordar. Como pueden ver, esta configuración se ha guardado en el Perfilador y hemos maximizado la respuesta simplemente cambiando el factor de carga.
Luego, se continúa con esta operación para cada término del modelo, y se establece la deseabilidad para minimizar la respuesta. El proceso se repite. Cada término se evalúa de nuevo para obtener la predicción mínima. Finalmente, se actualizan todas las configuraciones guardadas para que el nombre sea significativo. Se muestra el nombre del factor y si el objetivo era minimizar o maximizar la respuesta. Finalmente, todo el proceso se repite para cada modelo de respuesta de la ventana. Así funciona el script. Ahora volveré a la tabla de resumen generada.
Aquí se puede ver que todos los datos se recopilan y se generan en esta tabla. Cada fila contiene un factor específico para cada modelo de respuesta evaluado. Hay columnas para los criterios de aceptación introducidos por el usuario. Luego, hay columnas que muestran la predicción según los valores de referencia, y luego la predicción mínima y máxima para cada factor incluido en ese modelo de respuesta. Las columnas restantes son simplemente fórmulas. Aquí tenemos la diferencia entre la predicción mínima y la predicción del valor de referencia, y, de forma similar, la predicción máxima y la predicción del valor de referencia.
Las dos últimas columnas representan los índices de impacto calculados. Tenemos los índices de impacto inferior y superior. Observarán que, como solo tenemos un criterio para la impureza, en este caso, dado que solo tenemos un criterio de aceptación superior, solo calculamos el índice de impacto superior. La última columna representa el índice de impacto general, que es simplemente el máximo entre los índices de impacto inferior y superior. Para concluir esta parte de la charla, resumiré las ventajas de usar un complemento para automatizar esta tarea.
En primer lugar, usar el complemento es mucho más rápido que hacerlo manualmente. En segundo lugar, esto permite repetir la tarea con mayor facilidad. Como mencioné, si al ejecutar el complemento se obtienen índices de impacto demasiado altos, se puede volver a ejecutar, cambiar la configuración del factor y comprobar si se obtienen índices de impacto aceptables. Finalmente, hay menos probabilidades de que se produzcan errores, ya que no es necesario transcribir ni manipular los datos. El script recopila todos los datos y los coloca en una tabla que genera el resultado final.
Bueno, gracias. Con esto concluye mi parte de la charla. Le cedo la palabra a Gwen para que resuma. Gracias.
Además de lo que mencionó Sam, una gran ventaja del complemento es que permite repetir los cálculos y modificar la información ingresada en las primeras tablas. Se puede cambiar la configuración de los factores si se desea, por ejemplo, incorporar lo establecido para mostrar dónde se encuentra el rango aceptable comprobado, presumiblemente un poco fuera del rango operativo normal. Otra cosa que se puede cambiar es revisar las especificaciones o los criterios de aceptación. Si los índices de impacto fueran muy altos, la zona de seguridad podría haber sido demasiado pequeña para operar con comodidad.
Podrías ampliar las especificaciones y comprobar si todos tus índices de impacto son ligeramente menores. De hecho, probablemente podrías usar esto como justificación para cambiar esos criterios de aceptación. Otra cosa que puedes hacer con esos índices de impacto es usarlos colectivamente como criterio para clasificar los parámetros de proceso probados. Un parámetro de proceso podría ser crítico, muy crítico o no crítico al final del DoE porque su impacto es muy pequeño. Creo que con esto concluimos lo que dijimos hoy sobre los índices de impacto. Estamos disponibles para responder cualquier pregunta que tengas. Muchas gracias.