Hola a todos. Me llamo Dale Human. Soy ingeniero en GE Healthcare, aquí en Milwaukee, Wisconsin. Hoy les voy a hablar un poco sobre la creación de modelos, el uso de bootstrapping para evaluar las expectativas y la variación entre los modelos y los resultados esperados. Si quieren profundizar un poco más, pueden usar la simulación de Monte Carlo para evaluar con mayor detalle la variación esperada en su sistema en función de la variación de las entradas. Hay mucho que analizar. Empecemos. Voy a explicar brevemente la motivación.
Todo se reduce a situaciones en las que se parte de una muestra pequeña en el desarrollo de nuevos productos o en proyectos de I+D. Se realizan algunas pruebas y, a partir de ellas, se intenta decidir cómo proceder o cómo se espera que se comporte el sistema. Este es un ámbito idóneo para aplicar herramientas como el bootstrapping y la simulación de Monte Carlo. Veamos cómo se hace en JMP.
Vamos a empezar con un sistema bastante sencillo. Imaginemos un sistema de sujeción. Tenemos un destornillador que se usa para apretar una pieza. Hemos insertado una celda de carga para medir la fuerza aplicada al apretar el tornillo. ¿Cuánta fuerza se aplica al conjunto? Es una aplicación mecánica bastante típica. Queremos saber si, al medir el par aplicado al tornillo y obtener la fuerza medida a partir de ese par, podemos establecer una relación y modelar el comportamiento futuro de este sistema.
Tengo una tabla de datos de ejemplo que les mostraré aquí. Como pueden ver, hemos realizado varias pruebas, nueve en este caso, en las que aplicamos un par de torsión al tornillo sin fin y medimos la fuerza. Queremos comprender la relación entre la fuerza y el par de torsión aplicado. Creemos un modelo. Dado que solo tenemos una variable de respuesta, un factor X y una variable de entrada (el par de torsión), podemos usar la herramienta de ajuste de Y por X.
Voy al menú Analizar y luego selecciono Ajustar Y por X. Podemos introducir la fuerza medida como respuesta y el par aplicado como entrada en el cuadro de diálogo. JMP indica que realizará un análisis bivariado en este caso, ya que solo tenemos dos variables. Haré clic en Aceptar. Como suele hacer JMP, hemos comenzado con un gráfico, un simple diagrama de dispersión de los datos. Podemos observar visualmente la relación entre el par aplicado y la fuerza medida. Como se puede apreciar, parece existir cierta relación. A medida que aumento el par, la fuerza medida tiende a aumentar. Esto es lógico.
También parece que empieza a estabilizarse un poco aquí a medida que aumentamos el torque. En este sistema, quizás puedas visualizarlo. En algún punto, el conjunto queda completamente sujeto, por lo que seguir aplicando más torque no aporta mucha ayuda desde la perspectiva de la fuerza, pero sí observamos esa relación. Intentemos crear un modelo. Voy a ir al triángulo rojo. Podría usar la opción "Ajustar línea" para una relación lineal, pero si creo que hay este efecto de estabilización, usaré el cuadro de diálogo "Ajustar especial", que me permite elegir transformaciones en los ejes X e Y.
En este caso, voy a elegir el logaritmo natural de X, lo que ayudará a capturar la idea de que este sistema quizás tenga un efecto de meseta. También desactivé la opción de polinomios centrados. Podrías dejarla activada; no cambia nada. Es solo una forma diferente de ver la ecuación. Por ahora, la he desactivado. Voy a hacer clic en Aceptar. Aquí podemos ver nuestra línea de mejor ajuste. Esto se realiza esencialmente mediante una regresión por mínimos cuadrados utilizando el logaritmo natural del torque aplicado en el análisis y nuestra curva de mejor ajuste. Parece ajustarse bastante bien a nuestros datos.
Eso es bueno. Tenemos la ecuación que se ha desarrollado a partir del análisis, así que pudimos verla. Si ya has realizado una regresión, probablemente hayas visto los valores de R². Aquí tenemos nuestros valores de R², que son muy buenos. Son muy altos, superiores al 90 %. El R² ajustado y el R² son muy similares. En este caso, solo hay una X. Era de esperar.
Si observamos el error cuadrático medio (RMSE), que es como la desviación estándar del modelo, vemos que es un poco grande, tal vez. Es algo difícil de apreciar. Voy a revisar el ajuste que hemos aplicado y activar el intervalo de confianza mediante la opción "Ajuste sombreado con confianza". Ahí podemos ver la incertidumbre del modelo. Si, por ejemplo, tuviera un torque de 100 Nm, la variación esperada en la fuerza promedio medida sería de aproximadamente 1000 Nm. Ese es el ancho del intervalo de confianza.
Es un poco grande. Quizás pienses: «Bueno, solo tienes nueve datos, así que hay mucha incertidumbre en este modelo», y probablemente tengas razón. Abajo tenemos el análisis de estimaciones de parámetros, que muestra, por supuesto, los valores de los parámetros del modelo, la pendiente y la ordenada al origen, que también aparecen en la ecuación. Además, se muestran los errores estándar de estos valores, que cuantifican la incertidumbre asociada.
Como puede verse, la ordenada al origen tiene un error estándar de aproximadamente 2000 newtons, y la pendiente presenta una incertidumbre de unos 500 newton-metros por newton. Estamos intentando determinar si realmente podemos esperar esta cantidad de variación en el futuro. Si recopiláramos cada vez más datos, ¿realmente esperaríamos que la incertidumbre fuera tan grande?
Dado que hemos creado este modelo con una muestra pequeña (nueve datos en este caso), ¿cómo evaluamos lo que realmente esperamos que suceda? ¿O estamos sobreestimando el error en este modelo debido al tamaño reducido de la muestra? Una forma de hacerlo es mediante una técnica llamada Bootstrap.
Hablemos de Bootstrap. El bootstrap es una técnica bastante sencilla que consiste en remuestrear los datos originales muchísimas veces para intentar reestimar los valores de los parámetros que se están calculando. En este caso, reestimaríamos la pendiente y la ordenada al origen de este modelo repetidamente para comprender mejor la incertidumbre real que podemos esperar en este sistema a futuro. Esa es la idea fundamental del bootstrap. Visualmente, en la figura se muestra una pequeña muestra de datos: en este ejemplo, tres puntos de datos.
El remuestreo bootstrap consiste en tomar una muestra aleatoria del conjunto de datos original. Aquí tenemos una muestra aleatoria en este recuadro, que contiene tres puntos de datos. En este caso, he seleccionado aleatoriamente la fila 3 dos veces y la fila 1 una vez. La fila 2 no aparece. Este proceso se repite cientos o miles de veces. Cada vez que se toma una nueva muestra, se recalcula el parámetro de interés del sistema. En nuestro caso, nos interesa analizar los valores de la pendiente y la ordenada al origen del modelo.
Sea cual sea el parámetro de interés, se calcula para cada una de las muestras, y este proceso se repite numerosas veces para intentar comprender la variación esperada, incluso con un conjunto de datos pequeño. Esta es la idea fundamental del bootstrapping. Es una técnica común. Su ventaja radica en que no es paramétrica. No requiere suposiciones sobre la normalidad ni otros aspectos similares, por lo que resulta aplicable en multitud de situaciones.
Puedes usar este método siempre que tengas muestras pequeñas. El motivo para considerarlo es intentar estimar el error en tu modelo o en el cálculo de tu análisis. A menudo, se utilizan herramientas como la varianza para analizar la variación en tu sistema. Recuerda que la varianza se calcula dividiendo entre n o n menos 1. Si tienes una muestra pequeña, generalmente divides entre un número muy pequeño, lo que tiende a inflar la variación esperada. Sin embargo, esta variación podría no ser realista si continuaras recopilando datos. El remuestreo bootstrap es una forma de obtener una estimación más precisa de esa variación.
Ese es el concepto básico del bootstrapping. Como ejemplo sencillo, antes de volver al modelo que hemos creado, podemos observar la distribución de valores que tenemos aquí. De nuevo, tenemos nueve valores de fuerza medida. Comencemos con un análisis de distribución. Voy a ir al menú "Analizar distribución" y, por ahora, me centraré en la fuerza para este ejemplo. Observemos la distribución de valores.
Aquí lo tengo. Como pueden ver, se trata de una tabla con estadísticas resumidas. Por ahora, voy a ocultar los cuantiles, ya que no es el aspecto principal que me interesa. Sin embargo, si observan los datos, tenemos un valor promedio de aproximadamente 7100 newtons y una desviación estándar de unos 2000 newtons. Una desviación estándar bastante grande debido al tamaño reducido de la muestra. Este valor se ve afectado por el pequeño tamaño de la muestra (n).
¿Podemos predecir con exactitud si esta será la variación en nuestra población en el futuro, considerando que solo hemos medido nueve unidades de la población? Podemos intentar el remuestreo bootstrap para determinar si esta es una expectativa realista para nuestra variación. ¿Cómo se hace? JMP lo simplifica mucho. Dado que tenemos esta tabla con el parámetro de interés, nos interesan la media y la desviación estándar. Ambas se encuentran en esta tabla, así que simplemente haré clic derecho en ella. Verás que tienes todas las opciones del menú que quizás ya hayas visto, pero al final está la opción de remuestreo bootstrap.
Esto permite remuestrear los datos varias veces. Para cada muestra individual, se recalcularán todas las estadísticas. Luego, se puede analizar la distribución de esos valores para comprender mejor cómo se comporta el sistema con muestras cada vez mayores. El número predeterminado de muestras es 2500, por lo que JMP analizará los valores de la fuerza medida y seleccionará nueve valores aleatorios de los nueve originales. Como se observa en la figura, a veces se selecciona el mismo valor más de una vez.
No siempre se obtienen los mismos nueve puntos de datos. Esa es la ventaja del remuestreo bootstrap. Por defecto, se repetirá 2500 veces. Haré clic en Aceptar y dejaremos que se ejecute. Tardará solo un par de segundos. Es un cálculo bastante sencillo. Ten en cuenta que si tienes un modelo muy complejo, calcular una gran cantidad de datos podría llevar bastante tiempo. Si se trata de un modelo computacionalmente muy exigente, el cálculo podría tardar más. En este caso, solo calculamos medias y desviaciones estándar. Es bastante sencillo. Ahora tenemos una nueva tabla de datos creada por JMP.
Verás que tiene 2501 filas. Esto se debe a que se remuestrearon los datos originales 2500 veces. La primera fila contiene los valores de los datos originales; es la fila cero. Las demás filas contienen valores calculados y remuestreados para cada una de las estadísticas de esta tabla. Cabe mencionar que, dado que todos estos valores se encuentran en la misma tabla, JMP está intentando aplicar un remuestreo bootstrap a cada una de estas estadísticas. En este momento, no nos interesan los demás valores. Queremos centrarnos en la media, ya que me interesa comprender la variación esperada en el rendimiento promedio de mi sistema, en este caso, la fuerza promedio.
Voy a centrarme en la media. JMP genera automáticamente un análisis de distribución para cada variable de la tabla. Aquí, en la distribución, podemos ejecutar el script, que abrirá el análisis de todas estas variables. Ahora, de nuevo, queremos centrarnos en la media. Voy a mantener pulsada la tecla Control para ocultar todos los análisis de distribución. Luego, mostraré solo la media para que la pantalla sea más clara y la colocaré junto al análisis de distribución.
Voy a ocultar los cuantiles de nuevo. No me centro en los cuantiles. Puede que te interese, pero si observamos los valores calculados, vemos que hay 2500 valores distintos para la media, obtenidos mediante el remuestreo de esta muestra. La media es de aproximadamente 7100 Newtons, muy cercana al valor inicial. Sin embargo, la desviación estándar es mucho menor. Originalmente teníamos una desviación estándar de unos 2100 Newtons.
Ahora son solo unos 670 Newtons, y eso se debe a que estamos remuestreando esta gran población muchas veces. Nuestra estimación de la desviación estándar probablemente se acerca más a lo que deberíamos esperar, la variación real en esta población. Aquí estamos sobreestimando la variación porque tenemos una muestra pequeña. Estamos remuestreando de la misma población. Todos los datos utilizados para estos cálculos provienen de la misma población que estos nueve datos, ya que se extraen de los mismos datos.
Esta es probablemente una representación más realista de la variación que esperaríamos ver en esta población. Ese es el poder del remuestreo bootstrap. Ahora bien, quizás te preguntes: si tomo una muestra bootstrap aún mayor, ¿seguirá disminuyendo mi desviación estándar? Intentémoslo. Volveré a mis datos originales. Hago clic derecho en esta tabla y selecciono bootstrap. Esta vez, usaré 10 000 muestras bootstrap. Haré clic en Aceptar.
De nuevo, tardará unos segundos en ejecutarse, así que dejémoslo en marcha. Quizá algo más. Ahora tenemos una tabla de datos con 10 000 filas, cada una de ellas una muestra diferente de la misma población. Podemos observar la distribución de esta tabla. Voy a abrirla. Me centraré en la media. Cerraré todas las distribuciones y abriré la de la media. Vamos a colocarla junto a las demás ventanas. Disculpen, voy a reorganizar un poco las cosas para que podamos verlas todas juntas.
Ahora tenemos una muestra bootstrap de 10 000 valores. Podemos ver que la media sigue estando alrededor de 7100, pero la desviación estándar se mantiene en torno a 670. Esto no debería sorprendernos, ya que todos estos valores se calculan a partir de la misma población. La población tiene un valor medio, cierta variación y una desviación estándar. No deberíamos esperar que esto cambie, dado el gran tamaño de las muestras en ambos análisis.
Es diferente a este porque la muestra era muy pequeña. Pero esto permite visualizar mejor la evolución futura. Se podría esperar una variación mayor en torno a los 670 Newtons, en lugar de los 2000 Newtons. Y, por supuesto, al final se calculan intervalos de confianza con distintos niveles para que se tenga una idea de la variación esperada en la población.
Nuevamente, observarán que los valores de las muestras bootstrap son muy similares entre sí y ligeramente más ajustados que los intervalos de confianza originales para la media de nuestra pequeña muestra. Esto se debe a que estamos utilizando una estimación probablemente más realista de la desviación estándar. Ese es el poder del bootstrap: permite obtener una idea de la variación en el sistema, incluso si se comenzó con una pequeña muestra de datos. Cerremos estas tablas. Ahora que tenemos la idea básica de lo que el bootstrap nos aporta, voy a cerrar estas tablas para que no nos estorben.
Si volvemos a nuestro cuaderno, ya expliqué cómo se realiza el remuestreo bootstrap y lo demostré. La desviación estándar y la media no deberían cambiar, ya que representan la población de la que se extrajeron los datos originalmente. Esa es la idea del remuestreo bootstrap. Volvamos a nuestro modelo. Abriré esa sección y podemos hacer lo mismo con este modelo. En este modelo, calculamos estimaciones para los parámetros de la pendiente y la ordenada al origen de este modelo de regresión por mínimos cuadrados. La pregunta es: ¿creo realmente que el error en estas estimaciones debería ser tan grande?
Podemos aplicar remuestreo bootstrap a estas estimaciones, tal como hicimos con la media de esas fuerzas. De nuevo, basta con hacer clic derecho en la columna de estimación de la tabla, seleccionar "Remuestreo bootstrap" y elegir la cantidad de remuestreos. Esta vez usaré 2500 para que sea más rápido. Espere unos segundos a que se complete el cálculo. Ahora tenemos otra tabla con 2500 valores. Voy a analizar la distribución que ha generado JMP. Este análisis solo muestra dos valores, ya que solo teníamos dos estimaciones: una para la ordenada al origen y otra para la pendiente.
De nuevo, voy a ocultar los cuantiles manteniendo presionada la tecla Control y cerrando ambas ventanas simultáneamente. Aquí, el error estándar de la ordenada al origen era de aproximadamente 2000 Newtons y el de la pendiente, de aproximadamente 450 Newtons. ¿Qué obtuvimos del bootstrap? Si observamos la desviación estándar de la muestra bootstrap, sigue siendo de aproximadamente 2000, en este caso, 2200. De forma similar, la desviación estándar de la pendiente para el bootstrap es de aproximadamente 475, un valor ligeramente diferente, pero cercano al valor original de 452 del análisis de regresión por mínimos cuadrados. Quizás pienses: «Un momento. El bootstrap no sirvió de nada», y tienes razón. En este caso, el bootstrap no fue de mucha ayuda.
Esto es de esperar, ya que, como recordarán de la regresión por mínimos cuadrados, esta se diseña para elegir el ajuste que minimiza la varianza del modelo. Estos valores para la estimación de la pendiente y la ordenada al origen se eligen específicamente porque minimizan el error en el modelo. Resulta que, para la regresión por mínimos cuadrados, el remuestreo bootstrap no aporta mucho. Solo quería usarlo como ejemplo de cómo aplicar el remuestreo bootstrap a un modelo.
Ahora bien, si utiliza otras técnicas de modelado que no le proporcionan una estimación del error, como un análisis de redes neuronales o un análisis de componentes principales, y no obtiene del análisis una idea directa de la variación esperada ni de sus errores estándar, podría usar remuestreo bootstrap para aproximar dicho error en el modelo. Aquí le muestro que el remuestreo bootstrap no aporta mucho. Generalmente coincide con los resultados del análisis de mínimos cuadrados, ya que este último está diseñado para minimizar la variación.
Este concepto se aplica a cualquier técnica de modelado. Esto se debe a que el bootstrapping no es un método paramétrico. No presupone ninguna distribución de los datos. Se puede usar en todas las técnicas de modelado que se utilicen. Por ejemplo, el bootstrapping sirve para comprender el error en la regresión por mínimos cuadrados, aunque no es muy útil. Si se quiere entender la variación de las medias, como hicimos con la fuerza, se puede usar el bootstrapping para obtener una idea más realista de la variación futura, incluso antes de realizar un modelado más detallado. También se puede usar de esa manera.
Esa es la idea del bootstrapping. Lo he mostrado de la forma más sencilla: veamos la variación esperada en un valor medio. También se puede usar para comprender el error en las estimaciones de un modelo. No tanto por mínimos cuadrados, sino con otras técnicas. Puede ser útil para eso.
Otra herramienta que permite evaluar los efectos de la variación en un sistema es la simulación de Monte Carlo, y JMP facilita su implementación de forma muy sencilla. Forma parte de la plataforma de modelado. Analicemos la simulación de Monte Carlo. Fundamentalmente, ¿qué hace? Si se dispone de un modelo, o generalmente de una ecuación (aquí hemos desarrollado una ecuación modelo a partir de nuestro análisis; se trata del mismo modelo), la simulación de Monte Carlo permite introducir variaciones en las entradas del modelo y evaluar los efectos de dichas variaciones en los factores de salida, es decir, en las variables de respuesta.
Lo que se hace es asumir algún tipo de variación en las entradas. En este caso, por ejemplo, asumo que el par aplicado tendrá una distribución normal centrada en un valor de interés con cierta desviación estándar. Voy a seleccionar aleatoriamente una gran cantidad de valores de esa distribución y luego introducirlos en la ecuación para calcular el resultado y así comprender si la entrada varía de esta manera. Este es el resultado que debería obtener. Esa es la idea básica de la simulación de Monte Carlo.
Nuevamente, esto se hace con una gran cantidad de muestras para comprender la variación esperada en la respuesta. JMP también permite introducir otros tipos de variación en la salida, pero no entraré en detalles aquí. Simplemente ten en cuenta que es una opción disponible. ¿Cómo se realiza el método de Monte Carlo con JMP? Es muy sencillo. Una vez que tienes un modelo (en este caso, hemos creado un modelo de mínimos cuadrados), voy a ajustar el modelo y activar el perfilador. Ahí es donde empezarás. Si ya has visto el perfilador, es una representación gráfica de la ecuación del modelo, determinada a partir del análisis previo. Puedes modificar el valor de entrada X para comprender qué sucede con Y.
Otra función del perfilador es la simulación de Monte Carlo. Al hacer clic en el triángulo rojo del perfilador, se activa el simulador de Monte Carlo. Este permite especificar cómo cambia el valor de X y muestra qué sucede con las variables de respuesta al realizar dichos cambios. Aquí abajo, en este menú desplegable, se puede seleccionar la variación de X, en este caso, el par aplicado. Se seleccionará "aleatoria". Una vez seleccionada esta opción, se puede especificar la distribución deseada para la variación de dicha entrada.
Supongamos, por ejemplo, que queremos operar este sistema a 125 Nm, que es nuestro valor típico de torque. Has realizado algunas mediciones rápidas con la llave dinamométrica que vas a usar y has determinado que, si la programas a 125 Nm, generalmente se alcanza ese valor, pero con una desviación estándar de, digamos, 3 Nm. Puedes introducir la media y la desviación estándar de los valores esperados.
Luego, solo tienes que hacer clic en el botón "Simular" y JMP calculará un número grande, el que hayas introducido en esta casilla. En este caso, se utilizaron 10 000 valores. JMP ha seleccionado aleatoriamente 10 000 valores diferentes de la distribución normal, que tiene una media de 125 y una desviación estándar de 3. Ha introducido los 10 000 valores en la ecuación de tu modelo utilizando las estimaciones de parámetros previamente determinadas y calcula la respuesta para todas esas variables. Esta distribución te muestra cómo se verá.
En esta vista, la gráfica se ve un poco comprimida debido a su escala algo reducida; si lo desea, puede ampliarla. También puede configurar JMP para que le proporcione los valores en una tabla. Aquí abajo está la opción "Simular a tabla". Voy a abrirla y hacer clic en el botón "Crear tabla". Aquí están los 10 000 valores diferentes de torque aplicado, seleccionados aleatoriamente de la distribución normal. Se introdujeron en la ecuación y se utilizaron para calcular la fuerza.
JMP ha realizado un análisis de distribución que se ha guardado aquí. Voy a abrirlo. Aquí se muestra la distribución de las fuerzas medidas. Esta distribución se presenta con mayor resolución para que pueda observar lo que ocurre en su sistema. Esta distribución de las fuerzas medidas muestra el efecto de la variación en el par aplicado según una distribución supuesta, y le permite ver cómo dicha variación afectará la respuesta.
A partir de aquí, podría realizar diversos análisis de capacidad de proceso, análisis de intervalos de tolerancia, etc. Todo esto puede hacerse en este punto para ayudarle a comprender cómo se comportará la respuesta ante esta variación en las entradas. La elección depende de usted. Idealmente, puede utilizar datos históricos. Ya ha consultado la llave dinamométrica que utiliza en este sistema y ha observado que el par varía según esta distribución, por lo que puede elegir la distribución adecuada con los parámetros apropiados.
Es posible que tengas experiencia en el dominio y puedas analizar el funcionamiento de tu sistema y afirmar que debería seguir una distribución uniforme entre estos valores, o bien, puedes hacer una estimación, ya que se trata de un modelo. Si no estás seguro, comienza asumiendo una distribución normal para observar los resultados. Luego, puedes realizar diversos análisis de escenarios hipotéticos que te interesen. Esto se conoce como simulación de Monte Carlo, muy sencilla de implementar en JMP. Junto con el remuestreo bootstrap, ambas técnicas te permiten evaluar la variación en tu sistema, ya sea a partir de pequeñas muestras para el remuestreo bootstrap o basándote en la variación conocida de tus entradas para evaluar el impacto en tus salidas.
Hemos hablado de varias cosas. El bootstrapping es una técnica que permite comprender la variación esperada en un sistema, incluso con muestras pequeñas. El análisis de Monte Carlo permite introducir variaciones en las entradas de un modelo para entender su efecto en las salidas. Son técnicas muy comunes, populares y potentes. Una vez que se tiene un modelo, se dispone de herramientas muy útiles. De eso quiero hablar hoy. Muchas gracias.