Scripting für variable Anpassungsmodelle möglich?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo zusammen, ich bin neu in diesem Forum und hoffe, mit euch allen klarzukommen
Ich bin Student und verwende JMP, habe aber einige Schwierigkeiten bei der Skripterstellung im Zusammenhang mit dem Teil zum Anpassen des Modells. Das Folgende zeigt den passenden Modellcode, den ich anscheinend nicht zum Laufen bringen kann:
a=0;var_list={:param1,:param2};rs_list={:test1,:test2,:test3,:test4,:test5};obj=Fit Model( Y(var_list[1]), Effects( response surface(:test1,:test2,:test3,:test4,:test5) ), Personality( Standard Least Squares ), Emphasis( Effect Screening ), Run());if(a==1, obj< var_list[1]< maximize desirability(1), ); obj << {Lack of Fit( 0 ), Sorted Estimates( 1 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )}; );if(a==0, obj< var_list[1]< maximize desirability(1), ); obj << {Lack of Fit( 0 ), Sorted Estimates( 1 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )};);Ich habe 10 Variablen in einer Liste und möchte sie alle verwenden, um eine Reihe von Kleinste-Quadrat-Analysen mittels Fitmodelling durchzuführen, aber es scheint mir nicht zu gelingen, sie zum Laufen zu bringen. Der obige Code sollte ursprünglich in a eingefügt werden for-Schleife für eine 10-malige Schleife (Dies kann variieren, da die Anzahl der Variablen möglicherweise mehr oder weniger beträgt.) Aber ich möchte eine Schleife verwenden, um jmp zu befehlen, die gewünschte Analyse aus der obigen Liste durchzuführen ... ist es auch möglich, sie zu platzieren? rs_list in die Antwortoberflächenfunktion oben? (Ich schaffe es anscheinend auch nicht, die Liste zum Laufen zu bringen) ... für jede Idee oder jeden Rat bin ich sehr dankbar! Vielen Dank im Voraus und einen schönen Tag noch! 
Scripting für variable Anpassungsmodelle möglich?Vielen Dank für die Anleitung, MS, ich weiß das zu schätzen! 
Scripting für variable Anpassungsmodelle möglich?Ok, mein Code funktioniert hier, wenn er auf die Beispieltabelle angewendet wird, die ich verwendet habe. Bei der Anwendung auf eine größere Tabelle stellte ich außerdem fest, dass bei einigen Iterationen die tatsächliche prognostizierte Darstellung fehlte. Ich vermute, dass dies an der langsamen Anpassung der Wünsche liegt und dass JMP weiterhin Code ausführt, obwohl die aktuellen Berechnungen noch nicht abgeschlossen sind. Manchmal lässt sich das lösen, indem man Wait()-Befehle an den richtigen Stellen einfügt (wo diese sein können, ist hier nicht ersichtlich).
Betreff: Variable Fit Model Scripting möglich?MS, ich habe Ihren Code ausprobiert, es sieht so aus, als ob ich auf einige Fehler stoße? ... was ich sehe ist, dass manchmal die tatsächliche Handlung nicht im Vorhersagefenster in Berichten erscheint, während die anderen sie haben, z. B.: Der Drvros-Bericht enthält nicht den tatsächlichen Plot, während der Drvrus-Plot den tatsächlichen Plot enthält. Ich habe auch versucht, entsprechend einer Reihenfolge zu maximieren und zu minimieren, z. B. zuerst maximieren und dann minimieren, aber es scheint auch zu funktionieren ... egal Ideen? Danke im Voraus!:)
PS: Vielen Dank für Ihre fachmännische Anleitung, ich habe aus Ihren beiden Antworten so viel gelernt, JSL kann einem wirklich auf die Nerven gehen, haha, vorher konnte ich die Funktion „response()“ im Skripthandbuch nicht finden (sie ist nicht im JMP9.0.3-Skripthandbuch aufgeführt) und verwendete andere Methoden wie:
Auswirkungen(
var1 & RS,
var2 & RS,
Polynom (var1,var2),
Fakultät(var1,var2),
)
was mit der Funktion „Antwortoberfläche (var1, var2)“ vereinfacht werden kann ... Ich habe gerade beschlossen, es auszuprobieren, und es funktioniert LOL ...
Betreff: Variable Fit Model Scripting möglich?Entschuldigung, ich habe den Respons-Oberflächenteil verpasst. Und wie Sie auch erfahren haben, gibt es eine weitere Funktion, die Listen offenbar nicht gut auflöst. JSL ist in dieser Hinsicht ziemlich ärgerlich, da es oft schwierig ist, die Anforderungen für das Argument im Voraus zu erkennen.
Daher müssen wir den gleichen Trick auch für das Fit Model-Objekt anwenden, dh einen Ausdruck verwenden und ersetzen. Zum Beispiel:
dt = Offen ( „$ENGLISH_SAMPLE_DATA/Tiretread.jmp“ ) ;
A = 0 ;
Zielliste = { Minimieren , Maximieren } ; // Optionsliste
var_list = { : ABRASION , : HÄRTE } ;
rs_list = { : Kieselsäure , : SILAN , : SCHWEFEL } ;
obj_expr = Ausdruck ( obj = dt << Modell anpassen (
Y ( var_list [ ich ] ) ,
Auswirkungen ,
Persönlichkeit ( Standardmäßige kleinste Quadrate ) ,
Schwerpunkt ( Wirkungsscreening ) ,
Passt nicht ( 0 ) ,
Sortierte Schätzungen ( 1 ) ,
Tatsächliche Darstellung durch vorhergesagte Darstellung ( 1 ) ,
Regression darstellen ( 0 ) ,
Plot-Residuum nach Vorhersage ( 0 ) ,
Hebelwirkung des Handlungseffekts ( 0 ) ,
Laufen ()
)) ;
objsettings_expr = Ausdruck (
obj << Profiler (
1 ,
Vertrauensintervalle ( 1 ) ,
var << Antwortgrenzen ( { Ziel ( Max Min ) , Bedeutung ( 1 )} ) ,
Begehrlichkeit maximieren ( 1 ) ,
Erwünschtheitsfunktionen ( 1 )
)
) ;
rs_cols = Regex ( Verkohlen ( rs_list ) , „\{(.+)\}“ , „\1“ ) ; // Liste aus geschweiften Klammern entfernen
Ersetzen in ( obj_expr , Ausdruck ( Auswirkungen ) , Analysieren ( „Effekte( Antwortoberfläche(“ || rs_cols || "))" ) ) ; // die Effekte als Parse(string) einfügen
Ersetzen in ( objsettings_expr , Ausdruck ( Max Min ) , Zielliste [ A + 1 ] ) ; // Ziel setzen
Für ( ich = 1 , ich <= N Artikel ( var_list ) , ich ++,
obj_expr ;
Bewertung ( Ersatz ( Namensausdruck ( objsettings_expr ) , Ausdruck ( var ) , var_list [ ich ] ) ) ; // Profiler-Einstellungen anwenden
) ;
Betreff: Variable Fit Model Scripting möglich?Zunächst einmal vielen Dank an mpb und ms für den Rat, ich weiß Ihre Hilfe wirklich zu schätzen! Erstens, wenn ich mich auf die Antwort von mpb beziehe, muss ich das verwenden Antwortoberfläche() für meine Analyse und es scheint so zu sein:
response surface(eval(rs_list))
Funktioniert nicht. Ich habe die von mpb vorgeschlagene Methode schon viele Male ausprobiert, aber ohne Erfolg. Der folgende Code wurde verwendet:
Cannot find specified column in access or evaluation of 'Eval' , Eval( rs_list )In the following script, error marked by /*###*/obj=Fit Model( Y( var_list ), //this part works perfectly fine if the response list is listed out below Effects( response surface( Eval/*###*/(rs_list) ) ), Personality( Standard Least Squares ), Emphasis( Effect Screening ), Run, invisible);
Gibt es eine Möglichkeit, Response Surface oder andere alternative Methoden zu implementieren?
Was die Antwort von MS betrifft, habe ich mich gefragt: Können Sie meine Gedanken lesen, hahaha ... ja, das Hauptproblem, mit dem ich konfrontiert bin, ist der Teil mit der Antwortbeschränkung! Es scheint nicht richtig zu maximieren oder zu minimieren, wie nötig ... ich werde Ihr Beispiel oben ausprobieren
... aber vielen Dank für Ihre Hilfe, ich schätze all diese Hilfe aufrichtig, während ich das versucht habe für Wochen:)
Variable Fit Model Scripting möglich?Wie oben von mpb erwähnt, verstehen Y() und Effects() Variablen und ausgewertete Listen von Variablen. Die Profiler-Meldung „<< Response limits({})“ scheint jedoch eine Spaltenvariable nicht auszuwerten, zumindest nicht durch ein Listenelement dargestellt. Dies über eine Variablenliste zu schleifen ist daher nicht sehr einfach.
Eine Möglichkeit, dies zu umgehen, besteht darin, Ausdrücke zu verwenden und die kritischen Einträge innerhalb der Schleife zu ersetzen.
Hier ist ein Beispiel (unter Verwendung einer der JMP-Beispieldatendateien):
dt = Offen ( „$ENGLISH_SAMPLE_DATA/Tiretread.jmp“ ) ;
A = 0 ;
Zielliste = { Minimieren , Maximieren } ; // Optionsliste
var_list = { : ABRASION , : HÄRTE } ;
rs_list = { : Kieselsäure , : SILAN , : SCHWEFEL } ;
objsettings_expr = Ausdruck (
obj << Profiler (
1 ,
Vertrauensintervalle ( 1 ) ,
var << Antwortgrenzen ( { Ziel ( Max Min ) , Bedeutung ( 1 )} ) ,
Begehrlichkeit maximieren ( 1 ) ,
Erwünschtheitsfunktionen ( 1 )
)
) ;
Ersetzen in ( objsettings_expr , Ausdruck ( Max Min ) , Zielliste [ A + 1 ] ) ; // Ziel setzen
Für ( ich = 1 , ich <= N Artikel ( var_list ) , ich ++,
obj = dt << Modell anpassen (
Y ( var_list [ ich ] ) ,
Auswirkungen ( Bewertung ( rs_list ) ) ,
Persönlichkeit ( Standardmäßige kleinste Quadrate ) ,
Schwerpunkt ( Wirkungsscreening ) ,
Passt nicht ( 0 ) ,
Sortierte Schätzungen ( 1 ) ,
Tatsächliche Darstellung durch vorhergesagte Darstellung ( 1 ) ,
Regression darstellen ( 0 ) ,
Plot-Residuum nach Vorhersage ( 0 ) ,
Hebelwirkung des Handlungseffekts ( 0 ) ,
Laufen ()
) ;
Bewertung ( Ersatz ( Namensausdruck ( objsettings_expr ) , Ausdruck ( var ) , var_list [ ich ] ) ) ; // Profiler-Einstellungen anwenden
) ;
Variable Fit Model Scripting möglich?Das könnte hilfreich sein:
var_list={:DrvrOS,:DrvrUS};
rs_list={:SKEW,:PKGIMP,:MBIMP,:XT,:MBLEN};
fm = Modell anpassen(
Y(eval(var_list)),
Effekte( eval(rs_list)),
Persönlichkeit (Standard der kleinsten Quadrate),
Schwerpunkt (Wirkungsscreening),
Laufen()
);