En su empeño por comprender el rendimiento de los productos de levadura industrial en condiciones específicas de cada cliente, los grupos de investigación y desarrollo de aplicaciones de Novonesis destacan por generar conjuntos de datos valiosos para la selección de las mejores levaduras candidatas a escala de cliente. Los científicos emplean habitualmente la estadística para abordar cuestiones complejas relacionadas con escenarios tanto generales como específicos de los clientes.
La incorporación de métodos bayesianos a las bibliotecas de Python ha mejorado significativamente nuestra capacidad para calcular modelos y facilitar la toma de decisiones basada en datos y probabilidades, incluso cuando no se dispone de resultados estadísticamente significativos tradicionales. Además, las nuevas funcionalidades de JMP 18 permiten una integración perfecta con Python, lo que permite a nuestros científicos generar grandes conjuntos de datos y responder a consultas específicas de los clientes sin salir de JMP. Aprovechando los datos de investigación de aplicaciones, los datos de pruebas de clientes y la información previa, estamos emprendiendo un camino para caracterizar nuestras decisiones basándonos en datos informados y estadística bayesiana, en lugar de depender de tendencias estadísticamente insignificantes. Este enfoque busca proporcionar una comprensión y cuantificación más completas del rendimiento, lo que en última instancia conduce a una toma de decisiones más informada.
Hola, me llamo Matt Watts. Soy científico sénior en Novonesis y trabajo en bioenergía e investigación y desarrollo. Aquí, la bioenergía consiste básicamente en convertir el maíz en etanol. En mi puesto, soy responsable de las levaduras y las enzimas de escarificación que hacen que este proceso sea eficiente y proporcione el mayor rendimiento posible para nuestros clientes.
Hoy tengo el privilegio de hablarles un poco sobre cómo hemos estado utilizando el análisis o la estadística bayesiana para ayudarnos a tomar decisiones basadas en datos. Entraremos en un poco de contexto sobre qué es la estadística bayesiana. Es algo relativamente nuevo para mí. Es algo que he estado aprendiendo durante el último año. De ninguna manera soy un experto en el campo, pero es un camino que sigo recorriendo. Con JMP18 viene aún más integración con Python. Veremos algunos aprendizajes y cosas que encontré con esa integración y cómo realmente ha mejorado, pero algunas cosas fueron un poco difíciles al principio.
Introducción a la estadística bayesiana. Se trata de utilizar enunciados de probabilidad para tomar mejores decisiones basadas en datos. Es muy útil porque permite realizar estimaciones con conocimiento previo. Se pueden restringir diferentes variables según información previa, por ejemplo, que el etanol nunca sea inferior a cero. Esto es fundamental al crear modelos, y la estadística bayesiana resulta muy eficaz en este ámbito.
Me basé en un curso de Richard McElreath llamado "Repensamiento Estadístico". Está en la parte inferior derecha de la diapositiva. No se puede hacer clic en el enlace, pero espero que lo veas. Es bastante corto. Me ha sido de gran ayuda para comprender la estadística bayesiana, y vamos a usar un ejemplo de ese curso para explicar el flujo de trabajo bayesiano, lo que te ayudará a entender mejor la metodología bayesiana.
Aquí exploraremos un ejemplo para encontrar la proporción del globo terráqueo cubierta de agua. Hay un flujo de trabajo bayesiano que debemos seguir. Estará en el lado derecho. Puedes pensarlo como un artista. Un artista no pasa de una hoja en blanco a un búho completamente dibujado de la noche a la mañana. Sigue diferentes pasos para añadir más detalles. Empieza con las formas, luego pasa a las líneas, después a la estructura del ojo, las plumas, etc.
Esto es realmente importante al pensar en el flujo de trabajo bayesiano. El primer paso es definir un modelo generativo o causal para seleccionar tierra o agua. Podemos tomar un globo terráqueo y seleccionar múltiples muestras, que básicamente representarán la tierra o el agua. El segundo paso del flujo de trabajo es definir una estimación. En este caso, la estimación es ¿cuál es la proporción del globo cubierta por agua? El tercer paso es profundizar un poco más. Vamos a desarrollar un modelo estadístico para producir una estimación de la proporción aplicando múltiples muestras de tierra o agua.
Aquí es donde la cosa se complica para el enfoque bayesiano, ya que podrías necesitar un modelo estadístico diferente para cada estimación que solicites. Debes tener un amplio conocimiento sobre modelos estadísticos, qué información proporcionan y cómo se combinan para brindarte la información necesaria. Encontré muchas fuentes que me ayudaron en el proceso, y hablaré de algunas de ellas más adelante.
En el paso tres, vamos a probar básicamente el… En realidad, en el paso cuatro. En el paso cuatro, vamos a añadir aún más detalles. Vamos a probar el modelo estadístico usando nuestro modelo generativo. Esto es básicamente lo que hicimos al principio, simplemente seleccionando el globo terráqueo. Vamos a introducir esas muestras en el modelo estadístico y ver si obtenemos la misma proporción del globo cubierta de agua. Si funciona, y tiene sentido, entonces podemos muestrear el modelo estadístico muchas veces.
Normalmente, repetimos este proceso 10 000 veces en múltiples cadenas, lo que nos proporciona una distribución posterior. Esta distribución nos ayuda a determinar la probabilidad de que una parte del globo esté cubierta de agua. En este gráfico, podemos observar que la probabilidad más alta indica que el globo está cubierto en un 75 % de agua, lo cual es impresionante, ya que ofrece una representación visual del modelo. Con estos pasos del flujo de trabajo, es fundamental comprender las pruebas. Es necesario documentar el trabajo, lo que no solo reduce los errores, sino que también permite la repetibilidad y facilita la comprensión del mismo.
Ya hablamos brevemente del concepto de distribuciones posteriores, pero ¿qué son? Una distribución posterior es la distribución de las probabilidades posteriores. Aquí es donde retomo el enfoque bayesiano en lo que respecta a las probabilidades. Estas se calculan multiplicando la verosimilitud por las probabilidades a priori, es decir, dividiendo la información previa entre la evidencia o las métricas medidas en el experimento.
Como se puede ver en rojo, la distribución nos ayuda a comprender que la Tierra tiene una alta probabilidad de estar cubierta de agua en un 75%. Estas son las afirmaciones de probabilidad que mencioné al principio y que nos ayudan a tomar decisiones basadas en datos. Esto es una breve introducción al enfoque bayesiano. Pero aquí quería destacar la curva de aprendizaje que encontré en la integración de JMP y Python. Hubo algunos altibajos, algunos puntos débiles, algunas dificultades, pero al final, encontré muchos beneficios al usar Python en JMP, especialmente al combinar scripts de JSL y Python.
No tengo tiempo para repasar toda la diapositiva, pero quería recomendar PyMC. Esta biblioteca de Python no solo fue fundamental para el código del análisis bayesiano, sino que su sitio web ofrece excelentes ejemplos de modelos estadísticos para diversas pruebas. Además, te lleva a otro software de visualización, que veremos más adelante, y que te ayuda a probar tu modelo antes incluso de empezar a usar un algoritmo o algo similar para obtener el resultado final.
PyMC está diseñado para Jupyter Notebooks. De principio a fin. Entonces, la gente me pregunta: "¿Por qué usas el intérprete de Python de JMP para esto?". La respuesta fue que se trataba de reducir la carga de trabajo de mis compañeros. Es algo que nuestra empresa utiliza. Nuestra empresa utiliza JMP de principio a fin. Si podemos implementar una acción con un solo clic dentro de JMP, donde el backend es Python, entonces mis compañeros pueden usar una nueva herramienta que les ayudará a tomar decisiones en el futuro. Básicamente, esa es la razón por la que emprendimos este proyecto.
Programando con Python en JMP. Las visualizaciones son una de las cosas que más me gustan de JMP. Puedes ver cosas, puedes explorar datos. Diría que es una de las cosas que me resultó más engorrosa porque Python tiene bibliotecas nativas que te ayudan con las visualizaciones y demás, pero no funcionan en JMP. Básicamente, solo tienes que generar una imagen. Hemos escrito parte del código aquí para generar tablas de datos a partir de la información que proporcionan estas bibliotecas, lo que te ayuda a explorar los datos un poco, pero eso es algo que me resultó un poco complicado.
Por otro lado, JMP facilita mucho la interacción del usuario, por ejemplo, con listas de columnas o para determinar si el usuario desea continuar con el script. Se trata simplemente de ventanas emergentes con las que se puede interactuar, en lugar de tener que averiguar dónde escribir el código, cómo nombrar las columnas y demás.
Por último, donde realmente encontré ventajas fue, como ya comenté, al integrar JSL en el script de Python. Ahora podemos tener paneles que muestran la imagen, y debajo de ella se pueden añadir descripciones para que el usuario entienda lo que está viendo. Estos avances me parecieron increíbles.
Ahora entramos de lleno en el tema de hoy: el guion. Comenzamos seleccionando algunos factores que afectarán el resultado observado. En este caso, el resultado observado es la producción de etanol. Para ello, utilizamos un conjunto de datos de muestra del proceso de fermentación de JMP, así que cualquiera puede descargarlo cuando tenga el guion.
En primer lugar, con el método bayesiano, volvemos a la clave: probar, probar y probar. Vamos a comparar los datos simulados con los datos observados para ver si el modelo estadístico que hemos elegido funciona. Podemos ver que sí. Se ajusta bien a nuestros datos observados sin que los ejes se amplíen demasiado.
Entonces podemos probar el modelo. Podemos observar los parámetros univariados dentro del modelo para ver cómo se comparan esas densidades entre sí. Si se alinean, es una muy buena señal de que el modelo funciona correctamente. Podemos usar gráficos de traza, que es otra biblioteca de Python llamada rvs, para ayudarnos a lograrlo.
Luego, la última prueba que hicimos fue un diagrama de energía, observando este muestreador sin giro en U, así que este es el algoritmo principal que da la respuesta. Nuevamente, estamos observando que esas curvas, esas distribuciones, estén superpuestas, y así fue.
Luego llegamos a la última parte. Este es el conjunto de datos final. Esto es realmente importante porque quería mostrar lo que hace JMP con el modelo de ajuste, mínimos cuadrados estándar, y obtenemos que tanto el nivel del tanque como el aire son muy significativos en la producción de etanol. Si observamos la metodología bayesiana, también obtenemos lo mismo. El tanque, el nivel y el aire son significativos. Son los valores más alejados de cero que podemos obtener.
Pero lo interesante del método bayesiano, que nos da una idea más clara, es que podemos observar efectos positivos o negativos. En este caso, dado que el nivel del tanque es grande y negativo, esto significa que cuanto mayor sea el nivel de llenado, menor será el nivel de etanol. Dado que el aire es grande y positivo, esto significa que cuanto mayor sea el nivel de aire, mayor será el nivel de etanol.
Como científico especializado en fermentación, no estoy seguro de estar de acuerdo con la conclusión final. Se trata, por supuesto, de un conjunto de datos de muestra, pero es genial que hayamos obtenido el mismo resultado con ambos métodos, y que el análisis bayesiano nos aporte información adicional para tomar decisiones en el futuro. Como indica el título, en Novozymes, o Novonesis, tomamos decisiones sobre levaduras.
Elegimos un personaje ficticio como nombre del producto: Clint Yeastwood. Mediante análisis bayesiano, pudimos realizar afirmaciones de probabilidad que nos ayudaron a tomar decisiones. En este análisis, Clint Yeastwood alcanza un 1,1 % más de etanol que BadFerm el 78 % de las veces. Esta información es crucial para impulsar el desarrollo de nuestros productos.
En resumen, hoy hablamos sobre la integración de Python en JMP y exploramos los métodos bayesianos. Esperamos haber despertado el interés de todos para explorar y descubrir nuevas formas de pensar, pero sin olvidar la importancia de volver siempre a probar, probar y volver a probar. Con los métodos bayesianos, es necesario probar y documentar para comprender el proceso, tanto para uno mismo como para los demás usuarios.
Finalmente, todo se reduce a la toma de decisiones. Con esto, espero que puedan tomar decisiones basadas en datos y que les hayamos abierto la mente a nuevas posibilidades. Les agradezco mucho que me hayan escuchado hoy. Espero que les haya sido útil. Visiten el sitio web. Allí encontrarán el guion completo y toda la información. Si no lo encuentran, no duden en contactarme. Gracias.