Vereinfachte Vorhersageformel per Skript abrufenHallo, ich bin ziemlich neu im JMP-Skript, aber ich versuche, die Koeffizienten der Vorhersageformel aus angepassten Modellen zu erhalten.
Es gibt bereits viele Posts, die beschreiben, wie man die Vorhersageformel in Skripten erhält, aber was ich will, ist die Formel nach der Anwendung von „Simplify“ in der JMP-Oberfläche.
Spalten speichern==>Vorhersageformel==>Formel aus der Datentabelle öffnen==>Wählen Sie im roten Dreieck-Popup-Menü des Gleichungseditors Vereinfachen

Mein ideales Bild ist, die vereinfachten Formelkoeffizienten in einer neuen Datentabelle zu erhalten, ähnlich wie bei einem Rechtsklick in "Parameterschätzungen" ==> "In (kombinierte) Datentabelle erstellen".

Ich habe den Code zum Erstellen des angepassten Modells, aber ich weiß nicht, wie ich die vereinfachte Funktion einfügen und in einer neuen Tabelle speichern kann.
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = dt << Fit Model(
Y( :ABRASION ),
Effects(
:SILICA & RS, :SILANE & RS, :SILICA * :SILICA, :SILICA * :SILANE,
:SILANE * :SILANE
),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
Profiler(
1,
Confidence Intervals( 1 ),
Desirability Functions( 1 ),
ABRASION << Response Limits(
{Lower( 100, 0.066 ), Middle( 150, 0.5 ),
Upper( 200, 0.9819 ), Goal( "Maximize" ), Importance( 0.25 )}
),
Term Value(
SILICA( 1.2, Lock( 0 ), Show( 1 ) ),
SILANE( 50, Lock( 0 ), Show( 1 ) )
)
),
:ABRASION << {Summary of Fit( 0 ), Analysis of Variance( 0 ),
Parameter Estimates( 1 ), Effect Details( 0 ), Sorted Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 1 ),
Plot Effect Leverage( 0 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 1 )}
),
SendToReport(
Dispatch(
{"Response ABRASION"},
"Parameter Estimates",
OutlineBox,
{Close( 0 )}
)
)
);
Danke, wenn jemand mit Erfahrungen helfen kann!
DatentabelleSkripterstellungBetreff: Vereinfachte Vorhersageformel per Skript abrufenSie können den Ausdruck auch direkt parsen. Weitere Informationen zu den Funktionen Head(), N Args() und Arg() finden Sie in der JMP-Hilfe oder im Skriptindex. Sie durchlaufen den Ausdruck als Baum oder verkettete Liste.
Betreff: Vereinfachte Vorhersageformel per Skript abrufenIn dem Beispiel, das ich gegeben habe, wird es als Ausdruck belassen. Ich denke, Sie müssen es zuerst in einen String konvertieren mit:
simplified_formula_str = Char(simplified_formula);
Und von dort aus beginnen Sie, es in Listen zu zerlegen. Für das Parsen könnten Ihnen die folgenden Funktionen den Einstieg erleichtern: Words(), Substitute() (und Regex, wenn Sie wissen, wie man es benutzt). Weitere Funktionen finden Sie im Scripting Index:

Nachdem Sie eine Werteliste haben, können Sie Set Values verwenden, um Werte zur Datentabelle hinzuzufügen:
Names Default To Here(1);
intercept_list = {"Intercept", "SILICA"};
estimate_list = [123, 1];
New Table("Untitled",
Add Rows(2),
Compress File When Saved(1),
New Column("Term", Character, "Nominal", Set Values(intercept_list)),
New Column("Estimate",
Numeric,
"Continuous",
Format("Best", 12),
Set Values(estimate_list)
)
);
Betreff: Vereinfachte Vorhersageformel per Skript abrufen@jthi
Vielen Dank!
Das erste ist genau das, was ich will.
Aber ich möchte eine neue Tabelle erstellen, die die Koeffizienten und die Variablen aus der vereinfachten Formel wie "Make Into Data Table" zeigt.
Wenn Sie die ursprüngliche Funktion "In Datentabelle erstellen" verwenden, wird eine Tabelle erstellt, die die Koeffizienten der "nicht vereinfachten" enthält.
Da jetzt die Simplified_Formula gespeichert wurde, gibt es eine Möglichkeit, sie in eine Tabelle umzuwandeln (nicht den Vorhersagewert, nur die Koeffizienten und Variablen)?
Ich habe versucht, es zu analysieren oder in eine Matrix oder Tabelle zu ändern, aber bisher funktioniert keine davon.
(Ich bin mir nicht sicher, was der Typ des Formelobjekts ist ... Text?)
Betreff: Vereinfachte Vorhersageformel per Skript abrufenSie können die vereinfachte Formel wie folgt erhalten:
col_formula = Expr(Column(dt, "Pred Formula ABRASION") << Get Formula);<BR />simplified_formula = Expr(Simplify Expr(col_formula));
Und Sie können die Make In-Datentabelle aus dem Fit-Modell skripten:
dt_new = ((obj << report)["Parameter Estimates"])[TableBox(1)]<< Make Into Data Table;
Suchen Sie im Scripting Index nach einer guten Quelle für JSL-Scripting.