Implementierung des „Power Fit“-Modells in JMP und Optimierung des ModellsAlle,
Ich habe einige Daten, die gut zum „Power Fit“ in Excel passen.
Ich habe in diesem Beitrag einige hilfreiche Informationen gefunden ( https://community.jmp.com/t5/Discussions/Power-Fit-Equation-for-JMP/td-p/5783 )
Ich würde mich sehr über weitere Hinweise zu diesem Thema freuen:
- Wenn die Leistungsanpassung der Daten in Excel durchgeführt wird, scheint die Anpassung einigermaßen vernünftig zu sein
- Um die Leistungsanpassung der Daten in JSL durchzuführen, sind Theta1 und Theta2 die beiden einstellbaren Parameter. Ich habe durch Versuch und Irrtum herausgefunden, was ein angemessener Wert für Theta2 und Theta 1 ist, damit die Anpassung die Daten gut modelliert
Wie kann ein Benutzer herausfinden, was die besten Werte für Theta1 und Theta2 für den gegebenen Datensatz sind, ohne das Modell zu stark anzupassen?
Bitte geben Sie nach Möglichkeit ein Beispiel an.
Betreff: Implementierung des „Power Fit“-Modells in JMP und Optimierung des ModellsZum Abschluss veröffentliche ich die Antwort, die ich vom technischen Support erhalten habe.
Im Wesentlichen weist der Start der nichtlinearen Plattform über JSL bestimmte Einschränkungen auf, d. h. der beste Weg, die nichtlinearen Modelle zu nutzen, besteht darin, Folgendes zu tun:
1. Definieren Sie eine Spalte, die die Formel kodiert, die das Modell steuert
2. Stellen Sie die formulierte Spalte als Eingabe für den Funktionsaufruf der nichtlinearen Plattform bereit.
Obwohl ein anfänglicher Startwert erforderlich ist, ist dies die beste Antwort, die ich bisher gefunden habe.
dt << New Column("Model E", Numeric, Continuous,
Formula( Parameter( {theta1 = 0.03, theta2 = 1.25}, theta1 * :year ^ theta2 ) )
);
dt << New Column("Exponential 3", Numeric, Continuous,
Formula( Parameter( {a = -20, b = 0.01, c = 0.01},
a + b * Exp( c * :year ) ) )
);
dt << New Column("Mechanistic Growth", Numeric, Continuous,
Formula( Parameter( {a = -40, b = 0.01, c = -0.01},
a * (1 - b * Exp( -c * :year ) ) ) )
);
dt << Run Formulas;
fc = Nonlinear( Y( :pop ), X( :Name("Exponential 3" )) );
fc << Finish;
fc << Save Prediction Formula;
//End Script;Betreff: Implementierung des „Power Fit“-Modells in JMP und Optimierung des ModellsMein Verständnis der Funktionsweise der nichtlinearen Plattform ist etwas anders.Um diese Plattform auszuführen, erstellen Sie eine Formelvorhersagespalte mit Parametern. Ich glaube, Sie müssen Anfangswerte für diese Parameter als Schätzungen eingeben.Wenn Sie auf „Los“ klicken, teilt Ihnen die Plattform mit, ob eine Lösung gefunden wurde oder nicht.Wenn es konvergiert und Sie die Lösung speichern, werden diese Werte in die von Ihnen erstellte Prädiktorspalte eingefügt – die Formel ist jedoch immer noch dieselbe wie im Original.Mit anderen Worten: Die Prädiktorspalte enthält Parameter, die Sie initialisieren und die optimiert werden müssen.Aber im Gegensatz zu anderen JMP-Plattformen erstellt die Speicherspalte keine neue Spalte, sondern platziert nur die Lösungswerte für die nichtlineare Optimierung in derselben Formelspalte, die Sie erstellt haben.
Mein Verständnis könnte falsch sein, also kann mich jemand korrigieren.
Betreff: Implementierung des „Power Fit“-Modells in JMP und Optimierung des Modells@dale_lehman , @susan_walsh1
Danke für deinen Vorschlag .
Ich versuche, ein Beispiel zusammenzustellen, um den Arbeitsablauf zu verstehen.
Wenn ich die „Nichtlineare“ Modellplattform starte, gebe ich Folgendes an:
- Y – variabel
- X – variabel
- Nichtlineares Modell
Speichern Sie die vorhergesagte Formel – die Werte werden in der Datentabelle gespeichert.
Ich gehe davon aus, dass JMP durch das Befolgen dieser Schritte automatisch die seiner Meinung nach bestmöglichen Werte für die Modellparameter einstellt und die vorhergesagten Daten als Spalte im Modell speichert, da ich keine Startwerte für die Parameter im Modell festlege Datentabelle .
Wenn ich jedoch versuche, ein zweites Modell auf derselben Datentabelle auszuführen, enthält die Spalte, die nach dem zweiten Start der nichtlinearen Plattform hinzugefügt wird, die Gleichung des alten Modells.Bitte sehen Sie sich den Beispielcode unten an:
Clear Log();
Clear Globals();
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/US Population.jmp" );
/* Run Predictions using different models*/
PowerFitPredModel = Nonlinear(Y(:pop),X(:Name("X-formula")),"Model E(2P)");
PowerFitPredModel << Save Prediction Formula ;
PowerFitPredModel << Close Window;
Wait(0.1);
CPredModel = Nonlinear(Y(:pop),X(:Name("X-formula")),"Mechanistic Growth Model(3P)");
CPredModel << Save Prediction Formula ;
CPredModel << Close Window;
Nun, ein paar Dinge, denen ich nicht folge, sind:
- Wenn ich die nichtlineare Plattform mehrmals starte, warum wird dann im obigen Skript nur die erste Modellgleichung angewendet, die ich aufrufe?
- Wie kann ich feststellen, ob die Parameter, von denen JMP annimmt, dass sie zum Modell passen, eine konvergierende Lösung ergeben?

Betreff: Implementierung des „Power Fit“-Modells in JMP und Optimierung des ModellsIch habe keine Antwort, aber dies könnte eine interessante Diskussion auslösen.Im Anhang finden Sie einen kleinen Datensatz mit einigen Beobachtungen zur Fahrzeuggeschwindigkeit und zum Bremsweg.Eine Leistungskurve scheint gut zu passen.Ich habe die nichtlineare Plattform in JMP mit der Schätzerspalte verwendet – ich habe anfängliche Parameterschätzungen von 1,1 verwendet (nicht zu nah an den richtigen Werten, aber nicht sehr weit davon entfernt) – was im Datensatz gespeichert ist, ist die beste Anpassung der nichtlinearen Plattform (als teilweise Antwort auf Ihre Frage berechnet JMP Theta1 und Theta2, sodass Sie sich keine Sorgen über eine „Überanpassung“ machen müssen. Es besteht jedoch die Frage, ob JMP je nach den Werten, die Sie als Startschätzungen verwenden, zu einer Lösung konvergiert.) .Ich habe auch eine Spalte mit der Formel erstellt, die Excel für die Power-Fit-Trendlinie bereitstellt.Beachten Sie, dass sie nicht gleich sind!Die JMP-Anpassung ist besser als die Excel-Anpassung.Dies ist nicht schockierend, da Excel häufig nicht die beste statistische Analyse durchführt.Allerdings war ich überrascht, wie unterschiedlich die beiden Lösungen für diese recht einfachen Daten sind.
Ich glaube, dass sowohl JMP als auch Excel bei der Anpassung einer Leistungsbeziehung an Daten auf Probleme stoßen können.JMP kann zu einer Lösung konvergieren oder auch nicht. Wenn es konvergiert, glaube ich, dass die Lösung zuverlässig ist.Excel gibt Ihnen nur eine Anpassung – ich weiß nicht, ob es eine Fehlermeldung gibt, wenn es nicht passt oder was passiert – vielleicht kann jemand Aufschluss darüber geben, wie Excel die Potenzfunktion an die Daten anpasst.Ich denke, „Überanpassung“ ist hier ein Ablenkungsmanöver – es bezieht sich darauf, ob das Machtverhältnis das richtige ist oder nicht, und nicht auf das bestimmte Machtverhältnis, das angepasst wird.Da der Algorithmus die Theta1- und Theta2-Werte auswählt, sind es die Werte, die am besten zu den Daten passen – eine Überanpassung ist immer möglich, aber es ist eine Eigenschaft der Funktion, die Sie zum Anpassen der Daten verwenden, und nicht die besonderen Auswahlmöglichkeiten der Parameter, die der Algorithmus wählt.Vielleicht lässt es sich deutlicher ausdrücken: Wenn es sich bei diesen bestimmten Daten nicht um eine gute Stichprobe der Daten handelt, die Sie modellieren möchten (vielleicht um einen anderen Fahrzeugtyp), besteht bei der Anpassung des Leistungsverhältnisses an diese Daten das Risiko einer Überanpassung.
Die Frage zwischen Excel und JMP ist eine andere und ich bin daran interessiert, ob jemand Licht auf die Unterschiede zwischen den beiden werfen kann.