Aperçu:
Comment puis-je vérifier qu'un ajustement non linéaire a réussi ?
(Les données réelles ne convergent pas toujours et peuvent nécessiter un examen manuel pour les problèmes d'automatisation/de test/de produit.)
Détail:
Je voudrais écrire une réponse après qu'un ajustement non linéaire ne converge pas.Si l'ajustement échoue, je dois traiter d'une autre manière et/ou éventuellement étiqueter pour examen manuel. (J'échantillonne une population, puis pour chaque partie, je fais un ajustement non linéaire.Généralement, si j'échoue à la convergence, il y avait un problème de test quelque part; Je ne veux pas vraiment assouplir les critères de convergence.)
(Message "Échec" : "Échec : impossible de réduire la fonction objective")

Script modifié de Dérivées numériques uniquement (Aide > Index des scripts > "<
(JMP 15.2.1 en cours d'exécution)
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?
Idéal.
S'il y a une variable d'état bool renvoyée par la plate-forme d'ajustement non linéaire quelque part indiquant le succès ou l'échec, ce serait la méthode idéale pour vérifier le succès, je pense.
Variante 1.
Je peux aussi tabuler ou faire un résumé des données pour voir si toutes les : Nom ( "FancyPredictionFormula" ) les valeurs sont nulles.(Les valeurs semblent être 0 si l'ajustement échoue).
Variante 2.
Il existe probablement un moyen de vérifier le XML et de lire le message "échec".
Merci pour votre temps et votre considération.
-Aubrey