Restricciones de parámetros en el ajuste de modelos no linealesEstoy ajustando un modelo de crecimiento bi-exponencial de la siguiente forma:

Me gustaría restringir las estimaciones de los parámetros para que dmax1
¿Hay alguna manera de hacer esto en la plataforma no lineal?
Re: Restricciones de parámetros en ajuste de modelo no linealSi cree que esa suposición es cierta, creo que el mejor modelo debería encontrar tales estimaciones sin restricciones. Los datos son evidencia contra esa suposición de lo contrario.
El modelo personalizado seguiría siendo el mismo. Creo que tendrías que introducir la restricción como penalización a la función de pérdida. La penalización es alta cuando se viola la restricción.
Re: Restricciones de parámetros en ajuste de modelo no linealEsto es más una cuestión de conveniencia que las matemáticas. El problema real es que estoy ajustando un modelo no lineal a varios perfiles cinéticos generados como parte de un DOE. El modelo no lineal que mostré es el modelo teórico que creemos que describe el proceso, que consiste en dos reacciones separadas, una que es "lenta" y otra que es "rápida". La velocidad de reacción lenta es aproximadamente 1/100 de la velocidad de reacción rápida.
El problema es que cuando ajusto el modelo no lineal a cada perfil, a veces el parámetro "rate1" que se estima es el más pequeño, y otras veces el parámetro "rate1" es el más grande. JMP no sabe que quiero que rate1 sea lento. Cuando guardo las estimaciones de los parámetros, tengo que hacer un procesamiento de datos para determinar qué velocidad es la velocidad lenta y qué velocidad es la velocidad rápida. En última instancia, quiero usar los factores en el DOE para predecir la velocidad de reacción lenta y la velocidad de reacción rápida.
¿Una parte de mí piensa, sin embargo, que forzar esta restricción también puede hacer que el modelo se ajuste más estable? Pero tal vez no. No estoy seguro.
Re: Restricciones de parámetros en ajuste de modelo no linealSue Walsh habló sobre este tipo de modelo en un papel en JMP Discovery hace un tiempo.
Las notas en las diapositivas sobre modelos segmentados son un poco escasas, pero creo que podrá obtener la esencia de cómo configurarlo.
Re: Restricciones de parámetros en ajuste de modelo no linealMe pregunto si sería más fácil procesar las estimaciones después del ajuste no lineal sin restricciones. Supongo que las estimaciones de los parámetros dmax1 y rate1 irán juntas y las estimaciones de los parámetros dmax2 y rate2 irán juntas, incluso si las estimaciones de los parámetros dmax1 y rate1 no siempre son las primeras. Luego, para lograr el orden que desea, simplemente puede intercambiar el orden en la tabla de datos después de guardar la tabla de estimaciones. Este ejemplo muestra lo que tengo en mente:
Names Default to Here( 1 );
dt = New Table( "Double Exponential Models",
Add Rows( 20 ),
New Column( "dmax1",
Values( J( 20, 1, Random Uniform() ) )
),
New Column( "rate1",
Values( J( 20, 1, Random Uniform() ) )
),
New Column( "dmax2",
Values( J( 20, 1, Random Uniform() ) )
),
New Column( "rate2",
Values( J( 20, 1, Random Uniform() ) )
)
);
Wait( 5 );
For Each Row(
If( :rate1 > :rate2,
temp = :dmax1;
:dmax1 = :dmax2;
:dmax2 = temp;
temp = :rate1;
:rate1 = :rate2;
:rate2 = temp;
);
);
Re: Restricciones de parámetros en ajuste de modelo no linealHabía escrito un JSL que era casi idéntico a eso, y resolvió el problema. Gracias por compartir.
Re: Restricciones de parámetros en ajuste de modelo no linealGracias por esa referencia @Byron_JMP . En este caso, no es un modelo segmentado. El proceso físico real es dos reacciones que ocurren simultáneamente a dos velocidades diferentes, produciendo el mismo resultado de salida. La salida medida es la suma de las dos salidas de reacción, pero cada reacción ocurre en el mismo sistema de reacción, por lo que no puede medirlas independientemente.
Re: Restricciones de parámetros en el ajuste de modelos no lineales¿Hay alguna novedad sobre las restricciones en el ajuste no lineal?
En la parte inferior del informe hay ajustes de mínimo/máximo, pero cuando hago clic en Ir, el resultado del ajuste está fuera del rango mínimo-máximo.

Re: Restricciones de parámetros en el ajuste de modelos no linealesHola @hogi ,
¿Qué conjunto de datos utilizaste para esto?
Gracias,
Ben
Re: Restricciones de parámetros en el ajuste de modelos no linealesHola @Ben_BarrIngh ,
En realidad, estaba intentando ajustar dos picos y traté de limitar el rango de ajuste para los centros.
Es difícil ajustar los picos cuando las colas no coinciden con la curva de ajuste ; )
Mientras jugaba con el ajuste, me pregunté si podría optimizarlo restringiendo el rango del escaneo x1/x2.
... y se preguntó si existe alguna forma de restringirlo en la plataforma.
) dt = New Table( "spectra",
Add Rows( 200 ),
New Column( "X",
Formula( Row() )
),
New Column( "input",
Formula(
Parameter(
{h1 = 1, W = 40, h2 = 1},
(h1 * W ^ 2) / ((:X - 70) ^ 2 + W ^ 2) + (h2 * W ^ 2) / ((:X - 130)
^ 2 + W ^ 2)
)
)
),
New Column( "fit",
Formula(
Parameter(
{h1 = 1, W = 40, h2 = 1, x1 = 0, x2 = 200},
h1 * Exp( -(:X - x1) ^ 2 / (2 * W ^ 2) ) + h2 *
Exp( -(:X - x2) ^ 2 / (2 * W ^ 2) )
)
)
)
);
dt << Nonlinear( Y( :input ), X( :fit )
Re: Restricciones de parámetros en el ajuste de modelos no linealesHola @hogi ,
Debes configurar los límites de los parámetros (triángulo rojo) antes de hacer clic en "Continuar" para evitar que se excedan los puntos. Aunque los valores Mínimo/Máximo deberían actualizarse en la tabla del gráfico inferior, quizá convenga informar del problema a soporte@jmp.com.
¿Eso resuelve lo que intentas lograr?
Gracias,
Ben
Re: Restricciones de parámetros en el ajuste de modelos no lineales¡Ah, maravilloso, gracias! 
¿Podría alguien marcar la respuesta de @Ben_BarrIngh como "solución"?

Re: Restricciones de parámetros en el ajuste de modelos no lineales@Ben_BarrIngh , pregunta adicional:
Cuando utilizo "By" para ajustar múltiples espectros, ¿existe algún truco para establecer restricciones globales y el bloqueo?

algo como:
new column ("by",Nominal, set each value(mod(row(),3)));
Nonlinear( Y( :input ), X( :fit ), by(:by),
SendToByGroup( Bygroup Default,
Parameter Bounds(
h1( 0, 2 ),
x1( 0, 100),
h1( 0, 2 ),
x2( 100, 200)
) )
)
Re: Restricciones de parámetros en el ajuste de modelos no linealesSolución alternativa para las restricciones globales:
new column ("by",Nominal, set each value(mod(row(),3)));
nl = Nonlinear( Y( :input ), X( :fit ), by(:by) );
nl << Parameter Bounds(
h1( 0, 2 ),
x1( 0, 100 ),
h2( 0, 2 ),
x2( 100, 200 )
)
El candado no parece estar registrado.
Se podrían establecer restricciones con min=max.