Esta es la cuarta de una serie de publicaciones sobre cómo ajustar funciones continuas por partes a conjuntos de datos. Me gusta comenzar cada publicación con enlaces a todas las demás publicaciones anteriores de la serie:
Vamos a la parte 4...
Introducción
En publicaciones anteriores de esta serie, hemos estado trabajando en el conjunto de datos que se muestra en el siguiente gráfico:
Figure 1: Sample Data Set.Figura 1: Conjunto de datos de muestra.
Hasta ahora hemos analizado la segmentación de las regiones de datos y la definición de curvas asociadas con cada región, que incluyen:
- Eliminando algunos coeficientes de las ecuaciones segmentadas en virtud de continuidad en los puntos finales.
- Usando JMP Editor de fórmulas con parámetros desconocidos y múltiples ecuaciones, todo en una sola fórmula, en preparación para resolver las incógnitas.
Ahora estamos listos para utilizar la plataforma no lineal de JMP para encontrar los parámetros desconocidos y proporcionar un modelo de mejor ajuste. Ahora discutimos:
- Cómo resolver las ecuaciones por partes usando la plataforma no lineal de JMP
- Conseguir que los modelos converjan mediante:
- Algoritmos de convergencia opcionales
- Configuración de límites de parámetros
- Objetivos de convergencia
Miremos más de cerca.
Plataforma no lineal de JMP
La plataforma no lineal utiliza uno de varios procesos de estimación iterativos seleccionables por el usuario para resolver los parámetros desconocidos descritos en el Editor de fórmulas. Para resolver las ecuaciones por partes como se describe en publicaciones de blog anteriores, primero vamos a Analizar-->Modelado especializado-->No lineal. Se abre la siguiente interfaz de usuario:
Figure 2: The Nonlinear Input InterfaceFigura 2: La interfaz de entrada no lineal
En la Figura 2, ya hemos completado las entradas.
- "Y, Respuesta" son los datos originales (medidos).
- "X, Fórmula predictiva" es la columna de fórmula definida en la publicación anterior del blog.
- Tenga en cuenta que los valores de x en los que se midieron los valores de y no se ingresan directamente en la GUI, sino que se incluyen mediante referencias en la columna de fórmula.
- Tenga en cuenta que los parámetros de la columna de fórmula se muestran (junto con sus valores iniciales) en la sección Opciones/Predictor. JMP completa esto automáticamente para nosotros.
Después de hacer clic en Aceptar, aparece la siguiente ventana:
Figure 3: Nonlinear platform, ready to fitFigura 3: Plataforma no lineal, lista para instalar
Aquí vemos un resumen del modelo hasta el momento, con valores iniciales mostrados para cada parámetro desconocido. También vemos el criterio de convergencia (que se analiza más adelante). Vemos los datos originales (puntos negros) y el ajuste actual (línea negra delgada, resultante del uso de valores iniciales de parámetros).
También tenemos cuatro botones:
- Ir: inicia el proceso de resolución iterativa.
- Detener: Detiene el proceso (si el solucionador no converge).
- Paso: realice manualmente un paso de iteración a la vez para observar cómo cambian el criterio de convergencia y el gráfico de ajuste.
- Restablecer: Restablece los parámetros a sus valores iniciales.
Al hacer clic en el botón "Paso" varias veces, podemos ver el algoritmo de convergencia en funcionamiento:
Figure 4: Convergence In ActionFigura 4: Convergencia en acción
En las subtramas de la Figura 4, observe que la delgada línea negra definitivamente converge hacia los datos medidos a medida que incrementamos los pasos. Además, los parámetros están cambiando y los criterios de convergencia también se están reduciendo.
Al hacer clic en el botón Ir, automáticamente llegamos a los valores convergentes finales, como se muestra a continuación:
Figure 5: Final Converged ModelFigura 5: Modelo convergente final
En la Figura 5, en la parte superior del resultado tenemos un mensaje de advertencia que dice "Error: se excedieron el máximo de iteraciones". Hablaremos de eso más adelante en esta publicación. Pero si observamos el gráfico, queda claro que ya hemos logrado una buena convergencia del modelo con los datos observados.
Algunas observaciones sobre los parámetros:
- Recuerde de la Figura 1 que X1, X2, X3 y X4 eran los puntos de corte de las funciones por partes. Estos se han desplazado apropiadamente de sus valores iniciales estimados para dar buenos puntos finales para cada una de las funciones por partes.
- Todos los parámetros restantes tienen importancia para las partes curvas individuales. Por ejemplo, a0 representa el nivel Y promedio antes de que los datos de prueba comiencen a acumularse en X1=24,8.
¿Qué pasa si no tenemos convergencia?
Opciones para cuando la solución no converge
Como se señaló anteriormente, esta solución particular no convergió (técnicamente). Esto significa que el algoritmo de convergencia predeterminado no cumplió con sus criterios de convergencia, tal como se define en el panel de control Ajuste no lineal. De hecho, sin convergencia, JMP no nos permite hacer mucho con los resultados (como guardar los nuevos parámetros).
Entonces, ¿qué podemos hacer?Hay varias opciones:
Cambiar los criterios de convergencia
En la sección Criterios de la Figura 5, podemos ver cuáles son los criterios de convergencia actuales y qué tan cerca estamos de cumplirlos. Por ejemplo, JMP pasó por 60 pasos de iteración en el ejemplo anterior y no logró la convergencia. Por lo tanto, es posible que deseemos aumentar el "límite de parada" para intentar más pasos (a costa de tardar más en converger).
O es posible que deseemos cambiar el cambio de objeto, el degradado relativo o el degradado. La convergencia se logra si cualquiera de los tres criterios cae por debajo del "límite de parada".
Cambiar el algoritmo de estimación iterativo
El triángulo rojo junto a "Ajuste no lineal" (consulte la Figura 3) ofrece varias opciones, incluidas "Opciones de iteración". Aquí tenemos tres algoritmos de iteración diferentes para elegir:
- Newton (el valor predeterminado)
BFGS cuasi-Newton
Cuasi-Newton SR1
Algunas de estas opciones también permiten el cálculo de "Sólo derivadas numéricas". Según la ayuda de JMP , no hay consenso sobre cuál de estos algoritmos es el mejor para usar, ya que depende de los datos particulares y la ecuación que se ajuste.
Puedes combinar los algoritmos. Por ejemplo, en nuestro caso de prueba el método de Newton no convergió. Pero puede conservar los valores a los que llegó el método de Newton y simplemente cambiar el algoritmo de iteración y luego hacer clic en el botón Ir para continuar con la convergencia desde el punto final logrado por el algoritmo de Newton. ¿Por qué funciona esto? Porque estamos empezando con mejores estimaciones de los parámetros.
Lo que me lleva a mi siguiente opción para mejorar la convergencia...
Establecer límites de parámetros
A veces, cuando un algoritmo iterativo ajusta un parámetro, puede "despegar" en la dirección equivocada o quedarse atascado en un mínimo local, etc. Cuando esto sucede, puede resultar beneficioso limitar los rangos que pueden tomar los parámetros.
En nuestro problema de ejemplo, quizás sepamos que el punto de corte X1 debería tener un valor aproximado de 20. Es posible que deseemos decirle a JMP que X1 no debe quedar fuera del rango 15-25. Esto ayudará a evitar que el algoritmo iterativo se "pierda" mientras realiza su trabajo.
Los límites de parámetros se pueden encontrar debajo del mismo triángulo rojo de Ajuste no lineal. Una vez activado, aparece una tabla en la parte inferior del informe, que le permite ingresar estimaciones y rangos para cada variable. También cabe destacar que puede utilizar los controles deslizantes de esta tabla como una especie de generador de perfiles para examinar los efectos de cambiar cada parámetro en el ajuste general que se muestra en el gráfico.
La Figura 6 muestra un ejemplo de la tabla de límites de parámetros:
Figure 6: Parameter Bounds TableFigura 6: Tabla de límites de parámetros
Una vez que hayamos logrado la convergencia
Si tiene una ecuación adecuada formada en el Editor de fórmulas y ha logrado la convergencia mediante las opciones descritas anteriormente, entonces la plataforma no lineal de JMP debería haber proporcionado las mejores estimaciones de todos los parámetros desconocidos. Verá una nota con el efecto "Convergido en gradiente" en la parte superior del informe, y en la parte inferior del informe verá una sección para "Solución", que muestra las estimaciones finales de todos los parámetros desconocidos:
Figure 7: Converged Parameter EstimatesFigura 7: Estimaciones de parámetros convergentes
Además, justo encima del gráfico de datos medidos y la función de mejor ajuste, ahora debería haber un botón para "Guardar estimaciones". Al hacer clic en este botón se reemplazarán los valores de los parámetros actuales en la fórmula con los nuevos valores de mejor ajuste.
Siguiente publicación de blog (última de la serie)
Esta publicación resume cómo usar la plataforma no lineal para resolver una función arbitraria (y en particular una función por partes). Pero la plataforma no lineal también tiene una "Biblioteca de modelos" especial que merece su propia publicación de blog.
Por eso, la última publicación del blog de la serie Piecewise hablará sobre cómo es posible que desee adaptar otros modelos "enlatados" integrados en la plataforma no lineal. ¡Espero que lo compruebes!