In seinem Zufällig gehen In einem Blog zeigt Mike Croucher, wie eine einfache nichtlineare Kurve mithilfe von fünf verschiedenen statistischen Programmbibliotheken angepasst werden kann: R, MATLAB, Maple, Julia und Python / Numpy. Die Idee ist, konkrete Beispiele für eine häufig gestellte Modellierungsfrage zu geben, die einfach zu formulieren ist, aber nicht so einfach zu lösen ist.
Bei einem gegebenen Datensatz von 10 x- und y-Werten besteht das Problem darin, die besten Werte für die Parameter p zu finden 1 und P 2 damit die folgende Kurve am besten zu den y-Werten passt:
p 1 cos (p 2 x) + p 2 Sünde (p 1 x)
Da bei der nichtlinearen Anpassung eine iterative Suche des Lösungsraums erfolgt, benötigen wir Startparameterwerte, die Croucher als gibt
p 1 = 1,0, p 2 = 0,2.
Wie würdest du das Gleiche tun? JMP ?
Normalerweise beginnen Sie mit einer Datentabelle und verwenden die nichtlineare Plattform im Menü Analysieren, um die Anpassung interaktiv zu starten. Bei einem Modell wie diesem, das nicht in JMP integriert ist, können Sie es in eine Formelspalte einfügen und es im Dialogfeld Nichtlinear verwenden. Aber wie fast alles in JMP kann es, wenn Sie möchten, vollständig von einem JSL-Skript gesteuert werden.
Hier ist meine JSL-Version:
xv
= [ - 2 . -1,64 - 1,33 . -0,7 . 0 . 0,45 . 1.2 . 1,64 . 2.32 . 2,9 ] ; yv = [ 0,699369 . 0,700462 . 0,695354 . 1,03905 . 1.97389 .
2.411430 . 1.910910 . 0,919576 . -0,730975 . -1.42001 ] ;
dt = Neue Tabelle ( "Daten" .
Neue Spalte ( "x" . Werte setzen ( xv )) .
Neue Spalte ( "y" . Werte setzen ( yv ) ) ) ;
dt << Nichtlinear ( Y ( : y ) . X ( : x ) .
Modell ( Parameter ( { p1 = 1 . p2 = 0,2 } .
p1 * Kosinus ( p2 * : x ) + p2 * Sinus ( p1 * : x ) ) ) .
Fertig . Grenzen des Selbstvertrauens ) ;
Dieses Skript erzeugt die folgende interaktive Ausgabe.

Einige der anderen Sprachen erfordern zusätzliche Arbeit, um die Konfidenzintervalle zu ermitteln. Es ist also schön zu sehen, dass dies in JMP nur eine Option entfernt ist.