Im technischen Support erhalten wir häufig Fragen zur Verwendung von Faktorbeschränkungen in den Versuchsplanungsplattformen von JMP. Drei Optionen – lineare Beschränkungen, der Filter für nicht zulässige Kombinationen und das Skript für nicht zulässige Kombinationen – bieten die Möglichkeit, Ihren Entwurfsraum einzuschränken. Manchmal kontaktieren uns jedoch Benutzer und melden, dass der resultierende Entwurf die von ihnen definierten Beschränkungen nicht einhält.
In diesem Blogbeitrag wird insbesondere die Verwendung des Skripts für nicht zulässige Kombinationen behandelt, auf das wir Benutzer normalerweise hinweisen, da es benutzerfreundlicher ist als der Filter für nicht zulässige Kombinationen. Die Option für lineare Einschränkungen ist ziemlich unkompliziert, aber Sie finden Anleitungen dazuHierfalls erforderlich.
Mit der Skriptoption „Nicht zulässige Kombinationen“ können Sie mithilfe eines JSL-Skripts Einschränkungen für Ihren Designbereich definieren. Der wichtigste Aspekt, den Sie beachten sollten, ist die Angabe, welche Kombinationen von Faktorstufen zulässig sind.nichtim Design zulässig. Das eingegebene JSL-Skript muss als Boolescher Ausdruck ausgewertet werden. Wenn der Ausdruck wahr ist, ist diese Kombination im Design nicht zulässig. Das Skript muss nicht linear sein, daher besteht der zusätzliche Vorteil, dass nichtlineare Einschränkungen angegeben werden können. Sie können auch Funktionen verwenden (Indikatorfunktionen können besonders nützlich sein, wie in einem der Beispiele weiter unten in diesem Beitrag dargestellt).
Ein Skript für nicht zulässige Kombinationen kann in Verbindung mit kontinuierlichen, diskreten numerischen und kategorialen Faktoren verwendet werden, wird jedoch bei Mischungs- oder Sperrfaktoren nicht unterstützt. Alternative Möglichkeiten zum Definieren von Einschränkungen in Mischungsszenarien werden in späteren Beispielen beschrieben.
Im Ausdruck werden die Ebenen kontinuierlicher und diskreter numerischer Faktoren durch ihre numerischen Werte referenziert. Die Ebenen kategorialer Faktoren können entweder durch ihre zugehörigen Ordinalwerte (1, 2, 3 usw.) oder die benannten Ebenenwerte referenziert werden.
Stellen Sie sich ein benutzerdefiniertes Design mit zwei kontinuierlichen Faktoren, einem diskreten numerischen Faktor mit vier Ebenen und einem kategorischen Faktor mit drei Ebenen vor.
Das Skript zum Reproduzieren des DOE-Startdialogs mit den oben beschriebenen Faktoren lautet:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, 100, 105, "X2", 0 ),
Add Factor( Discrete Numeric, {10, 20, 30, 40}, "X3", 0 ),
Add Factor( Categorical, {"A", "B", "C"}, "X4", 0 ),
Add Term( {1, 0} ), Add Term( {1, 1} ),
Add Term( {2, 1} ), Add Term( {3, 1} ), Add Potential Term( {3, 2} ),
Add Potential Term( {3, 3} ), Add Term( {4, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {1, 1}, {4, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {3, 1}, {4, 1} ),
Set Sample Size( 12 ), Simulate Responses( 1 ), Save X Matrix( 0 )}
);
Nehmen wir beispielsweise an, dass in Ihrem Design kein Lauf auftreten kann, bei dem Faktor X1 den Wert 1 annimmt und Faktor X4 gleichzeitig den Wert A annimmt. Dieses einfache Skript für nicht zulässige Kombinationen würde folgendermaßen geschrieben:
X1 == 1 & X4 == 1
oder
X1 == 1 & X4 == "A"
Der erste Ausdruck verwendet den zugehörigen Ordinalwert für einen Wert von X4 = A und der zweite Ausdruck verweist einfach auf den Zeichenwert. Beides ist akzeptabel. Dieser Ausdruck verhindert, dass bei einem Durchlauf gleichzeitig X1 = 1 und X4 = A gilt.
Wählen Sie nach dem Ausführen des Skripts das Optionsfeld neben „Skript für nicht zulässige Kombinationen verwenden“ im Abschnitt „Faktorbeschränkungen definieren“ aus und geben Sie einen der oben stehenden Ausdrücke ein.
Um dem Skript zusätzliche Beschränkungen für den Entwurfsbereich hinzuzufügen, verwenden Sie den Operator ODER (|), der zum Trennen von Ausdrücken erforderlich ist, wenn ein Entwurf keine Läufe enthalten kann, die die Kriterien von Ausdruck 1 erfüllen.oderAusdruck 2,oderAusdruck 3 usw.
Nehmen wir an, dass im gleichen Design die Summe der Faktoren X1 und X2 nicht größer als 102 sein kann, wenn Faktor X3 den Wert 3 annimmt. Diese nicht zulässige Kombination würde wie folgt geschrieben:
((X1 + X2) > 102 & X3 == 30)
Mit dem Operator | würde das vollständige Skript für nicht zulässige Kombinationen wie folgt geschrieben:
(X1 == 1 & X4 == 1) |
((X1 + X2) > 102 & X3 == 30)
Nachdem Sie den Entwurf erstellt haben, werden Sie feststellen, dass JMP das Skript möglicherweise wie unten beschrieben neu formatiert, indem es kategorische Faktorebenen mit dem Zeichenwert darstellt und durch Parsen unnötige Klammern entfernt.

Einige häufige Szenarien, die uns Benutzer präsentieren, sind:
1) Wie gebe ich Einschränkungen des Entwurfsraums in einem Mischungsentwurf an, da nicht zulässige Kombinationen mit Mischungsfaktoren nicht unterstützt werden?
Wenn Sie anstelle von Mischfaktoren diskrete numerische und/oder kontinuierliche Faktoren verwenden, gibt es verschiedene Möglichkeiten, dies zu handhaben. Erstens könnten wir im Skript für nicht zulässige Kombinationen eine Gleichheitsbedingung auferlegen (und alle anderen erforderlichen Bedingungen hinzufügen). JMP wird wahrscheinlich kein durchführbares Design finden können, wenn eine strikte Gleichheitsbedingung verwendet wird (z. B. wenn der Operator != verwendet wird oder wenn in einer Bedingung strikte Ungleichheiten von < und > verwendet werden). Daher müssen wir einen Ausdruck verwenden, der die Summe der Faktorwerte angibt:in der Nähe von1.
Angenommen, wir haben drei Mischfaktoren und die Summe der Mischfaktoren ist eins. Wir wissen, dass einer der Faktoren (X1) nur diskrete Stufen von 0, 0,25, 0,5, 0,75 und 1 annehmen kann. Die anderen beiden Faktoren (X2 und X3) können jeden Wert zwischen 0 und 1 (einschließlich) annehmen. Daher ist es am sinnvollsten, den ersten als diskreten numerischen Faktor mit fünf Stufen und die anderen beiden als kontinuierliche Faktoren zu definieren.Damit die Summe der drei Faktoren ungefähr eins ergibt, können wir die Pseudogleichheitsbeschränkung wie folgt angeben:
X1 + X2 + X3 > 1.001 | X1 + X2 + X3 < 0.999
wodurch die Summe auf ein Tausendstel von eins beschränkt wird. Wenn man bedenkt, dass die treibende Kraft hinter dieser Frage darin besteht, Faktorbeschränkungen im Kontext eines Mischungsdesigns angeben zu können, nehmen wir an, dass wir auch verhindern möchten, dass der Wert von X3 im Design größer als der Wert von X2 ist. Der vollständige Ausdruck, der in diesem Fall in das Skriptfeld für nicht zulässige Kombinationen eingegeben werden muss, wäre:
X1 + X2 + X3 > 1.001 | X1 + X2 + X3 < 0.999 | X3 > X2
Führen Sie das folgende JSL-Skript aus, um ein Beispiel dieses Designs zu erstellen.
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Discrete Numeric, {0, 0.25, 0.5, 0.75, 1}, "X1", 0 ),
Add Factor( Continuous, 0, 1, "X2", 0 ), Add Factor( Continuous, 0, 1, "X3", 0 ),
Set Random Seed( 12345 ), Number of Starts( 1000 ), Add Term( {1, 1} ),
Add Term( {1, 2} ), Add Term( {1, 3} ), Add Term( {1, 4} ), Add Term( {2, 1} ),
Add Term( {3, 1} ), Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {3, 1} ), Set Sample Size( 20 ),
Disallowed Combinations( X1 + X2 + X3 > 1.001 | X1 + X2 + X3 < 0.999 | X3 > X2 ),
Make Design}
);
Da die Summe der Werte der drei Faktoren nicht genau eins ergibt, müssen Sie einen der Werte der kontinuierlichen Faktoren in der resultierenden Entwurfstabelle leicht anpassen.
Ein zweiter, saubererer Ansatz für die ursprüngliche Frage besteht darin, im anfänglichen Dialogfeld „Benutzerdefiniertes Design“ nur die Faktoren X1 (der diskrete numerische Faktor mit fünf Ebenen) und X2 (kontinuierlicher Faktor im Bereich von 0 bis 1) einzugeben. Die Werte für X3 können mithilfe der Formel 1 - X1 - X2 ganz einfach in der Designtabelle generiert werden. Im anfänglichen Design-Setup mit nur den Faktoren X1 und X2 verwenden wir ein Skript für nicht zulässige Kombinationen, um sicherzustellen, dass die Summe von X1 und X2 weder kleiner als null noch größer als 1 ist. Außerdem fügen wir erneut die Einschränkung hinzu, dass X3 nicht größer als X2 sein kann. Da X3 = 1 - X1 - X2, können wir die Einschränkung X3 > X2 als 2*X2 + X1 < 1 umschreiben und sie mit einem ODER-Operator in den Ausdruck aufnehmen.
In diesem Szenario würde das vollständige Skript für nicht zulässige Kombinationen wie folgt aussehen:
X1 + X2 > 1 | X1 + X2 < 0 | 2 * X2 + X1 < 1
Ein vollständiges Skript zum Erstellen dieses Beispieldesigns lautet:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor(
Discrete Numeric,
{0, 0.25, 0.5, 0.75, 1},
"X1",
0
), Add Factor( Continuous, 0, 1, "X2", 0 ),
Number of Starts( 1000 ), Add Term( {1, 0} ), Add Term( {1, 1} ), Add Potential Term( {1, 2} ),
Add Potential Term( {1, 3} ), Add Potential Term( {1, 4} ), Add Term( {2, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Set Sample Size( 20 ),
Disallowed Combinations( X1 + X2 > 1 | X1 + X2 < 0 | 2 * X2 + X1 < 1 ),
Simulate Responses( 1 ), Save X Matrix( 0 ), Make Design}
);
Bei beiden oben genannten Ansätzen müssen die Spalteneigenschaften der Faktoren in der Entwurfstabelle am Ende geändert werden, um die tatsächlichen Mischungseigenschaften des Entwurfs widerzuspiegeln. Sie können die Eigenschaften manuell hinzufügen, basierend auf den Anweisungenhier in unserer Dokumentation. Eine schnellere Methode besteht jedoch darin, ein weiteres benutzerdefiniertes Design mit tatsächlichen Mischungsfaktoren zu erstellen (keine Notwendigkeit für unzulässige Kombinationen) und die Tabelle (als Vorlage) zu erstellen. Kopieren Sie dann Ihr Design in diese „Vorlagentabelle“. Dadurch wird sichergestellt, dass die entsprechenden Spalteneigenschaften für Mischungsfaktoren vorhanden sind.
2) Wie kann ich festlegen, dass in einem einzelnen Experiment eine maximale Anzahl von Faktoren „aktiv“ sein kann? Angenommen, es gibt sechs Faktoren, aber höchstens drei davon können in einem Versuchsdurchlauf einen Wert größer als Null annehmen. Wir entscheiden uns, sechs diskrete numerische Faktoren (X1 - X6) mit unterschiedlichen Anzahlen von Ebenen zu definieren.
Ein wichtiges Tool, das Sie sich merken sollten, ist, dass das Skript für nicht zulässige Kombinationen Funktionen akzeptiert. In diesem Szenario sind Indikatorfunktionen von entscheidender Bedeutung. Beispielsweise ergibt die Indikatorfunktion (X1 > 0) 1, wenn X1 größer als Null ist, und 0, wenn dies nicht der Fall ist. Wenn Sie also die Indikatorfunktionen für alle sechs Faktoren summieren und dann Fälle ausschließen, in denen die Summe größer als 3 ist, wird der Entwurfsraum so eingeschränkt, dass in einem einzigen Durchlauf nicht mehr als drei Faktoren aktiv sind. Das Skript für nicht zulässige Kombinationen wird wie folgt geschrieben:
(X1 > 0) + (X2 > 0) + (X3 > 0) + (X4 > 0) + (X5 > 0) + (X6 > 0) > 3
Und dieses Beispieldesign kann mit dem folgenden JSL-Skript erstellt werden:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X1", 0 ),
Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X2", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X3", 0 ),
Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X4", 0 ), Add Factor( Discrete Numeric, {0, 1, 5}, "X5", 0 ),
Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X6", 0 ), Add Term( {1, 0} ), Add Term( {1, 1} ), Add Potential Term( {1, 2} ),
Add Potential Term( {1, 3} ), Add Term( {2, 1} ), Add Potential Term( {2, 2} ), Add Potential Term( {2, 3} ),
Add Term( {3, 1} ), Add Term( {4, 1} ), Add Potential Term( {4, 2} ), Add Potential Term( {4, 3} ), Add Term( {5, 1} ),
Add Potential Term( {5, 2} ), Add Term( {6, 1} ), Add Potential Term( {6, 2} ), Add Potential Term( {6, 3} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {1, 1}, {4, 1} ),
Add Alias Term( {1, 1}, {5, 1} ), Add Alias Term( {1, 1}, {6, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {2, 1}, {5, 1} ), Add Alias Term( {2, 1}, {6, 1} ),
Add Alias Term( {3, 1}, {4, 1} ), Add Alias Term( {3, 1}, {5, 1} ), Add Alias Term( {3, 1}, {6, 1} ),
Add Alias Term( {4, 1}, {5, 1} ), Add Alias Term( {4, 1}, {6, 1} ), Add Alias Term( {5, 1}, {6, 1} ), Set Sample Size( 16 ),
Disallowed Combinations( (X1 > 0) + (X2 > 0) + (X3 > 0) + (X4 > 0) + (X5 > 0) + (X6 > 0) > 3 ),
Save X Matrix( 0 ), Make Design}
);
Beachten Sie, dass nach dem Ausführen des Skripts bei jedem Durchlauf im Design mindestens drei Faktoren den Wert Null annehmen.
Wenn in einem dieser Szenarien die JMP-Warnung „Konvergenz des optimalen Designers fehlgeschlagen“ angezeigt wird, sind Ihre Einschränkungen möglicherweise zu restriktiv. Wenn möglich, lockern Sie die Einschränkungen, um demKoordinatenaustauschalgorithmuseine bessere Chance, ein Design zu finden. Sie könnten auch versuchen, dieAnzahl der Startsund/oder die Schätzbarkeit von Termen in Ihrem angenommenen Modell zu ändern aufWenn möglichanstattNotwendigum zu sehen, ob Konvergenz erreicht werden kann.
Wie immer können Sie sich gerne an den technischen Support wenden, wenn Sie Fragen zur Verwendung der Optionen zur Entwurfsraumbeschränkung in JMP haben oder wenn Ihr Entwurf Durchläufe produziert, die angesichts der beabsichtigten Einschränkungen nicht sinnvoll sind.