Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenGibt es eine Möglichkeit, Minimize() oder eine ähnliche Funktion zu verwenden, um diesen Ausdruck zu lösen:
expr1 = expr((a:A+b:B+c:C)=:Target);
anhand der folgenden Tabelle:
| EIN | B | C | Ziel |
| 10 | 0 | 0 | 30 |
| 500 | 0 | 0 | 1500 |
| 9999 | 0 | 0 | 29997 |
| 30 | 0 | 100 | 590 |
| 0 | 50 | 9999 | 500095 |
| 0 | 1000 | 500 | 4500 |
| 50 | 9999 | 0 | 20148 |
| 200 | 100 | 0 | 800 |
| 10 | 0 | 0 | 30 |
| 0 | 0 | 0 | 0 |
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenJa, Sie können die Parameterschätzungen herausziehen. Wie ich in einem früheren Beitrag sagte, schau dir das an das JMP-Skripthandbuch. Beginnen Sie wahrscheinlich mit dem Abschnitt "Navigate JMP Reports".
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenGroßartig, danke, das Anpassungsmodell scheint gut zu funktionieren. Ich werde auch in diese Klasse schauen, um mehr zu erfahren.
Ich nehme an, die Tabelle "Parameterschätzungen" in der Ausgabe des Anpassungsmodells ist die Nummer, nach der ich suche. Gibt es eine Möglichkeit, diese Tabelle mit JSL in eine Datentabelle zu extrahieren?
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenVielleicht möchten Sie sich den kostenlosen Kurs „Statistical Thinking for Industrial Problem Solving“ (oder kurz „Statistical Thinking“-Kurs) ansehen, der auf der Registerkarte „JMP lernen“ verfügbar ist. Sehen Sie sich den Regressionsabschnitt an. Das zeigt Ihnen, wie die Regression funktioniert und wie sie in JMP durchgeführt wird. Regression kann ein Problem dieser Größe bewältigen.
Lassen Sie Ihre X-Spalten in eine JMP-Tabelle eingeben. Sie haben 20 X-Spalten und 200 Zeilen. Fügen Sie auch Ihre Y-Spalte ein, sodass Ihre Tabelle insgesamt 21 Spalten hat. Von dort aus können Sie jeden beliebigen JSL-Code verwenden, wenn Sie JMP-Skripting verwenden möchten. Alternativ können Sie Modell anpassen verwenden. Geben Sie Ihr Y an. Markieren Sie alle Ihre X und klicken Sie auf Hinzufügen. Klicken Sie dann auf Modell ausführen.
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenWährend diese Methode vielversprechend erscheint, habe ich Probleme beim Hochskalieren ... Die Protokollausgaben:
Eingaben haben fehlende Werte.
[., ., ., ., ., ., ., ., ., ., .]
Ich versuche, dies schließlich auf ein Problem mit ~ 20 Variablen zu skalieren, wo
X = [20x200]-Matrix
Y = [1x200]-Matrix
Y = M*X , wobei M eine Matrix aus 20 Variablen ist
Ist dies mit linearer Regression noch möglich? Einige Online-Ressourcen scheinen einen Batch-Gradientenabstieg vorzuschlagen.
Danke
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenDie Formulierung der ursprünglichen Frage deutet vielleicht darauf hin, dass eine Lösung über JSL erforderlich ist. Wenn dies der Fall ist, gibt es eine Alternative, um die Verwendung von JMP-Plattformen zu vermeiden:
NamesDefaultToHere(1);
// Data table
dt = New Table( "Test",
Add Rows( 10 ),
New Column( "A",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [10, 500, 9999, 30, 0, 0, 50, 200, 10, 0] )
),
New Column( "B",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 0, 0, 0, 50, 1000, 9999, 100, 0, 0] )
),
New Column( "C",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 0, 0, 100, 9999, 500, 0, 0, 0, 0] )
),
New Column( "Target",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [30, 1500, 29997, 590, 500095, 4500, 20148, 800, 30, 0] )
)
);
// Get values into vectors (could use table subscripting too)
Y = Column(dt, "Target") << getValues;
Avals = Column(dt, "A") << getValues;
Bvals = Column(dt, "B") << getValues;
Cvals = Column(dt, "C") << getValues;
X = Avals||Bvals||Cvals;
// Do the regression (see 'Help > Scripting Index' for more details of 'results')
results = LinearRegression(Y, X);
parameters = results[1];
Print(parameters);
Aber @Dan_Obermiller weist darauf hin, dass es wie gesagt als Regressionsproblem angesehen werden kann und es im Allgemeinen keine gute Idee ist, eine Regression ohne eine visuelle Überprüfung der Daten oder Ergebnisse durchzuführen.
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenDie Ergebnisse befinden sich im Bericht „Parameterschätzungen“. Wenn Sie versuchen, sie über JSL herauszuziehen, sehen Sie sich den JMP Scripting Guide an. Beginnen Sie wahrscheinlich mit dem Abschnitt "Navigate JMP Reports".
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenHi @Dan , Danke für die Antwort. Das scheint für das, was ich brauche, vielversprechend zu sein, aber wie können Sie das von Ihnen erwähnte Ergebnis erzielen?

Wie würden Sie diese einzelnen Werte für a, b und c herausziehen?
Danke!
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenIch hatte viel Glück mit der nichtlinearen Plattform (sogar für die lineare Optimierung).Sie müssen Parameter in Verbindung mit Spalten eingeben und es wird nach diesen Parametern aufgelöst.
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenIch bin mir nicht sicher, was Sie wirklich versuchen, aber das sieht für mich nach einem Regressionsproblem aus:
Finden Sie die Werte von a, b und c so, dass die Differenz zwischen (a*A + b*B + c*C) (die ich als vorhergesagten Wert bezeichnen werde) und dem Ziel so klein wie möglich ist. Im Regressionskontext würde dies die Summe der quadrierten Fehler minimieren, wobei ein Fehler = Ziel – vorhergesagter Wert.
Sie können dies interaktiv mit Fit Model tun, was ich getan habe. Das Skript davon ist unten. Das Ergebnis ist:

Fit Model(
Y( :Target ),
Effects( :A, :B, :C ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ),
Run(
:Target << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ),
Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 0 )}
)
);
Betreff: Optimierung des linearen Ausdrucks unter Verwendung von Spalten zum Auflösen nach VariablenEntschuldigung, Fehler beim Ausdruck:
dt = aktuelle Datentabelle;
expr1 = expr((a*dt:A+b*dt:B+c*dt:C)=:Ziel);
Suche nach Werten für a, b und c.