Können Sie auf der JSL- und DOE[]-Plattform für benutzerdefiniertes Design einen Faktor basierend auf dem Wert einer Variablen aus einem modalen Fenster bedingt hinzufügen?Hallo,
Ich möchte ein Skript erstellen, in dem dem DOE[]-Objekt basierend auf einer vorherigen Eingabevariablen mitgeteilt wird, dass es mit einem zusätzlichen Faktor arbeiten soll.
Die Ausführung der DOE-Designgenerierung ist mittlerweile aufwändig (ca. 30 Sekunden), daher suche ich nach einer schlanken Möglichkeit (z. B. optimieren Sie sie, bevor Sie die Nachricht „Design erstellen“ senden).
Idealerweise würde ich gerne mit einer if-Klausel arbeiten, prüfen, ob eine besagte boolesche Variable wahr ist, und wenn ja, den Faktor zum benutzerdefinierten Design hinzufügen.
Etwas „Pseudocode“:
AddSpecialFactor = 1; /* decision rule to add factor, will be retrieved from a modal window based on some more complex molecule chemistry input */
D = DOE(
custom design,
Add Factor(continuous, "A",.....),
Add Factor( ...),
..
If (AddSpecialFactor = 1) then Add Factor(....),
Add Term(),
..
If (AddSpecialFactor = 1) then Add Term() ...,
Alle Vorschläge sind herzlich willkommen
VersuchsplanungBetreff: JSL- und DOE[]-Plattform für benutzerdefiniertes Design. Können Sie basierend auf dem Wert einer Variablen aus einem modalen Fenster bedingt einen Faktor hinzufügen?Danke !
Es funktioniert hervorragend 
Betreff: JSL- und DOE[]-Plattform für benutzerdefiniertes Design. Können Sie basierend auf dem Wert einer Variablen aus einem modalen Fenster bedingt einen Faktor hinzufügen?Hier ist ein Beispiel dafür, wie Sie diesen Prozess skripten könnten.
Names Default to Here( 1 );
dialog = New Window( "Optional Factor", << Modal,
Outline Box( "Choice",
Text Box( "Add X4?" ),
Text Box( "Click OK to add" ),
Text Box( "Click Cancel to skip" )
),
H List Box(
Button Box( "OK" ),
Button Box( "Cancel" )
)
);
doe = DOE( Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ), Set Random Seed( 30650037 ),
Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ),
Add Term( {1, 1}, {2, 1} ), Add Term( {1, 1}, {3, 1} ),
Add Term( {2, 1}, {3, 1} ), Set Sample Size( 12 ), Simulate Responses( 0 ),
Save X Matrix( 0 )}
);
// add 4th factor and the associated main effect and interaction terms
If( dialog["Button"] == 1,
doe
<< Add Factor( Continuous, -1, 1, "X4", 0 )
<< Add Term( {4, 1} )
<< Add Term( {1, 1}, {4, 1} )
<< Add Term( {2, 1}, {4, 1} )
<< Add Term( {3, 1}, {4, 1} )
);Betreff: JSL- und DOE[]-Plattform für benutzerdefiniertes Design. Können Sie basierend auf dem Wert einer Variablen aus einem modalen Fenster bedingt einen Faktor hinzufügen?Danke Byron,
Das Laden von einem Tisch ist eine gute Idee.
Allerdings muss ich das Modell anpassen, da es als RSM komplizierter ist: Es weist Verzweigungsfaktoren auf, wie in der Veröffentlichung von Peter Goos und Bradley Jones:
Goos und Jones (2019) Optimales experimentelles Design in Gegenwart verschachtelter Faktoren. Technometrie.
https://doi.org/10.1080/00401706.2018.1562986
Haben Sie auch Beispiele, bei denen der Code im Textformat erstellt und dann für einen Evaluate()-Ausdruck verwendet wird?
Wie:
DOECODE = "Part of the code " || if(..,) || etc...
.
.
DOEcommand = evaluate(DOECODE);
DOETable = (DOEcommand << Make Table);
Betreff: JSL- und DOE[]-Plattform für benutzerdefiniertes Design. Können Sie basierend auf dem Wert einer Variablen aus einem modalen Fenster bedingt einen Faktor hinzufügen?Das ist irgendwie eine coole Idee für die Designgenerierung.
Ich habe einfach daran gearbeitet, Entwürfe aus einer CSV-Datei zu übernehmen und DOEs zu generieren.Automatisierung der Designerstellung
Es könnte funktionieren, wenn Ihr Skriptkonzept eine Datentabelle generiert und dann das Skript im Blog oben verwendet, um die DOE-Plattform zu laden und auszuführen.
Vielleicht besorgen Sie sich eine Liste mit Spaltennamen, und wenn diese Liste bestimmte Wörter enthält, fügen Sie dann Spalten mit den entsprechenden Faktorstufen hinzu?