Descripción general:
¿Cómo puedo comprobar si se ha realizado correctamente un ajuste no lineal?
(Los datos reales no siempre convergen y pueden necesitar una revisión manual para problemas de automatización/prueba/producto).
Detalle:
Me gustaría escribir una respuesta después de que un ajuste no lineal no converja.Si el ajuste falla, necesito procesar de otra manera y/o eventualmente etiquetar para revisión manual. (Estoy muestreando una población, luego para cada parte, haciendo un ajuste no lineal.Generalmente, si fallo en la convergencia, hubo un problema de prueba en alguna parte; En realidad, no quiero aflojar los criterios de convergencia).
(Mensaje 'Error': "Error: No se puede disminuir la función del objetivo")

Secuencia de comandos modificada solo de derivados numéricos (Ayuda > Índice de secuencias de comandos > "<
(Actualmente ejecutando JMP 15.2.1)
Names Default To Here( 1 );
dt = Open(
"$SAMPLE_DATA/Nonlinear Examples/US Population.jmp"
);
// Random, intentionally divergent, formula on this dataset
dt << New Column( "Random", Numeric, Formula( Random LogLogistic(5) ) );
dt << New Column( "FancyPredictionFormula",
Numeric,
Continuous,
Formula(
Parameter(
{Rth0 = 735, n = 0.5},
(:year / :pop) * ((1 - ((n - 1) * :pop * Rth0) / (:year
* (300 / :year) ^ n)) ^ (-1 / (n - 1)) - 1)
)
)
);
nonlinear = dt << Nonlinear(
Y( :Name( "Random" ) ),
X( :Name("FancyPredictionFormula") ),
Expand Intermediate Formulas( 1 ),
Numeric Derivatives Only( 1 ),
QuasiNewton SR1,
Interation Limit(50),
Finish,
Plot( 0 ),
Confidence Limits,
Save Estimates
);
// How to check if nonlinear fit succeeded?
Ideal.
Si hay una variable de estado booleana devuelta por la plataforma de ajuste no lineal en algún lugar que indique éxito o fracaso, creo que ese sería el método ideal para verificar el éxito.
Alternativa 1.
También puedo tabular o hacer un resumen de los datos para ver si todos los : Nombre ( "Fórmula de predicción elegante" ) los valores son cero.(Los valores parecen ser 0 si falla el ajuste).
Alternativa 2.
Probablemente haya una forma de comprobar el XML y leer el mensaje de "fallido".
Gracias por su tiempo y consideración.
-Aubrey