Parameterbeschränkungen bei der nichtlinearen ModellanpassungIch passe ein biexponentielles Wachstumsmodell der folgenden Form an:

Ich möchte die Parameterschätzungen so einschränken, dass dmax1
Gibt es eine Möglichkeit, dies auf der nichtlinearen Plattform zu tun?
Betreff: Parameterbeschränkungen bei der nichtlinearen ModellanpassungVielen Dank für diesen Hinweis @Byron_JMP .In diesem Fall handelt es sich nicht um ein segmentiertes Modell.Der eigentliche physikalische Prozess besteht aus zwei Reaktionen, die gleichzeitig mit unterschiedlichen Geschwindigkeiten ablaufen und das gleiche Ausgangsergebnis erzeugen.Der gemessene Output ist die Summe der beiden Reaktionsoutputs, aber jede Reaktion findet im selben Reaktionssystem statt, sodass Sie sie nicht unabhängig messen können.
Betreff: Parameterbeschränkungen bei der nichtlinearen ModellanpassungIch hatte eine JSL geschrieben, die fast identisch damit war, und sie löste das Problem.Danke für das Teilen.
Betreff: Parameterbeschränkungen bei der nichtlinearen ModellanpassungIch frage mich, ob es einfacher wäre, die Schätzungen nach der nichtlinearen Anpassung ohne Einschränkungen zu verarbeiten. Ich gehe davon aus, dass die Parameterschätzungen dmax1 und rate1 zusammenpassen und die Parameterschätzungen dmax2 und rate2 zusammenpassen, auch wenn die Parameterschätzungen dmax1 und rate1 nicht immer an erster Stelle stehen. Um dann die gewünschte Reihenfolge zu erreichen, können Sie nach dem Speichern der Schätzungstabelle einfach die Reihenfolge in der Datentabelle austauschen. Dieses Beispiel zeigt, was ich vorhabe:
Names Default to Here( 1 );
dt = New Table( "Double Exponential Models",
Add Rows( 20 ),
New Column( "dmax1",
Values( J( 20, 1, Random Uniform() ) )
),
New Column( "rate1",
Values( J( 20, 1, Random Uniform() ) )
),
New Column( "dmax2",
Values( J( 20, 1, Random Uniform() ) )
),
New Column( "rate2",
Values( J( 20, 1, Random Uniform() ) )
)
);
Wait( 5 );
For Each Row(
If( :rate1 > :rate2,
temp = :dmax1;
:dmax1 = :dmax2;
:dmax2 = temp;
temp = :rate1;
:rate1 = :rate2;
:rate2 = temp;
);
);
Betreff: Parameterbeschränkungen bei der nichtlinearen ModellanpassungSue Walsh sprach in einem Artikel über diese Art von Modell Papier bei JMP Discovery vor einiger Zeit.
Die Hinweise in den Folien zu segmentierten Modellen sind etwas spärlich, aber ich denke, Sie werden in der Lage sein, das Wesentliche zu verstehen, wie man es einrichtet.
Betreff: Parameterbeschränkungen bei der nichtlinearen ModellanpassungDas ist eher eine Frage der Bequemlichkeit als der Mathematik.Das eigentliche Problem besteht darin, dass ich ein nichtlineares Modell an mehrere kinetische Profile anpasse, die im Rahmen einer DOE generiert wurden.Das nichtlineare Modell, das ich gezeigt habe, ist das theoretische Modell, von dem wir glauben, dass es den Prozess beschreibt, der aus zwei getrennten Reaktionen besteht, einer „langsam“ und einer „schnell“.Die langsame Reaktionsgeschwindigkeit beträgt etwa 1/100 der schnellen Reaktionsgeschwindigkeit.
Das Problem besteht darin, dass, wenn ich das nichtlineare Modell an jedes Profil anpasse, manchmal der geschätzte Parameter „Rate1“ am kleinsten und manchmal der Parameter „Rate1“ am größten ist.JMP weiß nicht, dass Rate1 die langsame Rate sein soll.Wenn ich die Parameterschätzungen speichere, muss ich einige Datenverarbeitungen durchführen, um zu bestimmen, welche Rate die langsame und welche die schnelle Rate ist.Letztendlich möchte ich die Faktoren im DOE verwenden, um die langsame Reaktionsgeschwindigkeit und die schnelle Reaktionsgeschwindigkeit vorherzusagen.
Ein Teil von mir denkt jedoch, dass das Erzwingen dieser Einschränkung auch dazu führen kann, dass das Modell stabiler passt?Aber vielleicht auch nicht.Ich bin mir nicht sicher.
Betreff: Parameterbeschränkungen bei der nichtlinearen ModellanpassungWenn Sie glauben, dass diese Annahme wahr ist, dann sollte das beste Modell meiner Meinung nach solche Schätzungen ohne Einschränkungen finden. Die Daten sind ein Beweis gegen diese Annahme.
Das benutzerdefinierte Modell würde das gleiche bleiben. Ich denke, dass Sie die Einschränkung als Strafe für die Verlustfunktion einführen müssten. Die Strafe ist hoch, wenn die Einschränkung verletzt wird.
Betreff: Parameterbeschränkungen bei der Anpassung nichtlinearer ModelleGibt es ein Update bezüglich der Nebenbedingungen bei nichtlinearen Anpassungen?
Am Ende des Berichts befinden sich Min/Max-Einstellungen – aber wenn ich auf „Los“ klicke, liegt das Anpassungsergebnis außerhalb des Min/Max-Bereichs.

Betreff: Parameterbeschränkungen bei der Anpassung nichtlinearer ModelleHallo @hogi ,
Welchen Datensatz haben Sie dafür verwendet?
Danke,
Ben
Betreff: Parameterbeschränkungen bei der Anpassung nichtlinearer ModelleHallo @Ben_BarrIngh ,
Eigentlich habe ich versucht, zwei Spitzen anzupassen und den Anpassungsbereich für die Zentren zu begrenzen.
Es ist schwierig, die Peaks anzupassen, wenn die Ausläufer nicht zur Ausgleichskurve passen ; )
Beim Herumprobieren mit der Anpassung fragte ich mich, ob ich die Anpassung optimieren kann, indem ich den Bereich für den x1/x2-Scan einschränke.
... und fragte sich, ob es auf der Plattform eine Möglichkeit gibt, dies einzuschränken.
) dt = New Table( "spectra",
Add Rows( 200 ),
New Column( "X",
Formula( Row() )
),
New Column( "input",
Formula(
Parameter(
{h1 = 1, W = 40, h2 = 1},
(h1 * W ^ 2) / ((:X - 70) ^ 2 + W ^ 2) + (h2 * W ^ 2) / ((:X - 130)
^ 2 + W ^ 2)
)
)
),
New Column( "fit",
Formula(
Parameter(
{h1 = 1, W = 40, h2 = 1, x1 = 0, x2 = 200},
h1 * Exp( -(:X - x1) ^ 2 / (2 * W ^ 2) ) + h2 *
Exp( -(:X - x2) ^ 2 / (2 * W ^ 2) )
)
)
)
);
dt << Nonlinear( Y( :input ), X( :fit )
Betreff: Parameterbeschränkungen bei der Anpassung nichtlinearer ModelleHallo @hogi ,
Um zu verhindern, dass die Grenzwerte überschritten werden, müssen Sie die Parametergrenzen (rotes Dreieck) festlegen, bevor Sie auf „Start“ klicken. Obwohl die Werte für „Niedrig“ und „Hoch“ in der untenstehenden Tabelle aktualisiert werden sollten, ist es ratsam, das Problem an support@jmp.com zu melden.
Löst das Ihr Anliegen?
Danke,
Ben
Betreff: Parameterbeschränkungen bei der Anpassung nichtlinearer ModelleAh, wunderbar, danke 
Kann jemand die Antwort von @Ben_BarrIngh als „Lösung“ markieren?

Betreff: Parameterbeschränkungen bei der Anpassung nichtlinearer Modelle@Ben_BarrIngh , Zusatzfrage:
Gibt es einen Trick, um globale Beschränkungen und die Sperre festzulegen, wenn ich "By" verwende, um mehrere Spektren anzupassen?

so etwas wie:
new column ("by",Nominal, set each value(mod(row(),3)));
Nonlinear( Y( :input ), X( :fit ), by(:by),
SendToByGroup( Bygroup Default,
Parameter Bounds(
h1( 0, 2 ),
x1( 0, 100),
h1( 0, 2 ),
x2( 100, 200)
) )
)
Betreff: Parameterbeschränkungen bei der Anpassung nichtlinearer ModelleUmgehungslösung für die globalen Beschränkungen:
new column ("by",Nominal, set each value(mod(row(),3)));
nl = Nonlinear( Y( :input ), X( :fit ), by(:by) );
nl << Parameter Bounds(
h1( 0, 2 ),
x1( 0, 100 ),
h2( 0, 2 ),
x2( 100, 200 )
)
Das Schleusentor scheint nicht aufgezeichnet zu sein.
Man könnte Beschränkungen mit min=max festlegen.