Überblick:
Wie kann ich überprüfen, ob eine nichtlineare Anpassung erfolgreich war?
(Echte Daten konvergieren nicht immer und müssen möglicherweise manuell auf Automatisierungs-/Test-/Produktprobleme überprüft werden.)
Detail:
Ich möchte eine Antwort schreiben, nachdem eine nichtlineare Anpassung nicht konvergiert.Wenn die Passform fehlschlägt, muss ich es auf andere Weise verarbeiten und/oder eventuell zur manuellen Überprüfung kennzeichnen. (Ich nehme eine Stichprobe einer Population und mache dann für jeden Teil eine nichtlineare Anpassung.Wenn ich die Konvergenz nicht bestand, gab es im Allgemeinen irgendwo ein Testproblem. Ich möchte die Konvergenzkriterien eigentlich nicht lockern.)
(Meldung „Fehlgeschlagen“: „Fehlgeschlagen: Zielfunktion kann nicht verringert werden“)

Modifiziertes Skript von Numeric Derivatives Only (Hilfe > Skripting-Index > "<
(Derzeit läuft 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.
Wenn irgendwo eine boolsche Statusvariable von der Nonlinear-Fit-Plattform zurückgegeben wird, die Erfolg oder Misserfolg anzeigt, wäre das die ideale Methode, um den Erfolg zu überprüfen, denke ich.
Variante 1.
Ich kann die Daten auch tabellieren oder zusammenfassen, um zu sehen, ob sie alle sind : Name ( "FancyPredictionFormula" ) Werte sind Null.(Werte scheinen 0 zu sein, wenn die Anpassung fehlschlägt).
Variante 2.
Es gibt wahrscheinlich eine Möglichkeit, das XML zu überprüfen und die "fehlgeschlagene" Nachricht zu lesen.
Vielen Dank für Ihre Zeit und Rücksicht.
-Aubrey