Au sein du support technique, nous recevons fréquemment des questions concernant l'utilisation des contraintes factorielles dans les plates-formes de conception d'expériences de JMP. Trois options – les contraintes linéaires, le filtre des combinaisons non autorisées et le script des combinaisons non autorisées – offrent la possibilité de restreindre votre espace de conception. Cependant, il arrive que des utilisateurs nous contactent pour signaler que la conception obtenue ne respecte pas les contraintes qu'ils ont définies.
Cet article de blog traitera spécifiquement de l'utilisation du script de combinaisons non autorisées, vers lequel nous orientons généralement les utilisateurs, car il est plus convivial que le filtre de combinaisons non autorisées. L'option de contraintes linéaires est assez simple, mais vous pouvez trouver des conseils à ce sujeticisi besoin.
L'option de script des combinaisons non autorisées vous permet de définir des restrictions sur votre espace de conception à l'aide d'un script JSL. L'aspect clé à garder à l'esprit est de spécifier quelles combinaisons de niveaux de facteurs sont autorisées.pasautorisées dans la conception. Le script JSL saisi doit être évalué comme une expression booléenne. Lorsque l'expression est vraie, elle interdit que cette combinaison se produise dans la conception. Le script n'a pas besoin d'être de forme linéaire, il présente donc l'avantage supplémentaire de pouvoir spécifier des contraintes non linéaires. Vous pouvez également utiliser des fonctions (les fonctions indicatrices peuvent être particulièrement utiles, comme illustré dans l'un des exemples plus loin dans cet article).
Un script de combinaisons non autorisées peut être utilisé conjointement avec des facteurs continus, numériques discrets et catégoriels, mais n'est pas pris en charge avec des facteurs de mélange ou de blocage. D'autres méthodes permettant de définir des restrictions dans des scénarios de mélange sont décrites dans des exemples ultérieurs.
Dans l'expression, les niveaux des facteurs numériques continus et discrets sont référencés par leurs valeurs numériques. Les niveaux des facteurs catégoriels peuvent être référencés soit par leurs valeurs ordinales associées (1, 2, 3, etc.), soit par les valeurs de niveau nommées.
Considérez une conception personnalisée avec deux facteurs continus, un facteur numérique discret à quatre niveaux et un facteur catégoriel à trois niveaux.
Le script pour reproduire le dialogue DOE de démarrage avec les facteurs décrits ci-dessus est :
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 )}
);
À titre d'exemple, supposons qu'aucune exécution ne puisse se produire dans votre conception où le facteur X1 prend une valeur de 1 en même temps que le facteur X4 prend une valeur de A. Ce script simple de combinaisons non autorisées serait écrit comme suit :
X1 == 1 & X4 == 1
ou
X1 == 1 & X4 == "A"
La première expression utilise la valeur ordinale associée à une valeur de X4 = A et la seconde expression fait simplement référence à la valeur de caractère. Les deux sont acceptables. Cette expression empêche toute exécution d'avoir X1 = 1 et X4 = A simultanément.
Après avoir exécuté le script, sélectionnez le bouton radio en regard de Utiliser le script de combinaisons non autorisées dans la section Définir les contraintes de facteur et entrez l’une des expressions ci-dessus.
Pour ajouter des restrictions d'espace de conception supplémentaires au script, utilisez l'opérateur OU (|), qui est nécessaire pour séparer les expressions lorsqu'une conception ne peut pas contenir d'exécutions répondant aux critères de l'expression 1,ouexpression 2,ouexpression 3, etc.
Supposons que, dans le même projet, la somme des facteurs X1 et X2 ne puisse pas être supérieure à une valeur de 102 lorsque le facteur X3 prend une valeur de 3. Cette combinaison non autorisée s'écrirait ainsi :
((X1 + X2) > 102 & X3 == 30)
En utilisant l'opérateur |, le script complet des combinaisons non autorisées serait écrit comme suit :
(X1 == 1 & X4 == 1) |
((X1 + X2) > 102 & X3 == 30)
Après avoir réalisé la conception, vous remarquerez que JMP peut reformater le script comme ci-dessous, en représentant les niveaux de facteurs catégoriels avec la valeur du caractère et en supprimant les parenthèses inutiles par analyse.

Voici quelques scénarios courants que les utilisateurs nous présentent :
1) Comment spécifier des restrictions sur l'espace de conception dans une conception de mélange, puisque les combinaisons non autorisées ne sont pas prises en charge avec les facteurs de mélange ?
En utilisant des facteurs numériques discrets et/ou continus à la place des facteurs de mélange, il existe plusieurs façons de gérer cela. Tout d'abord, nous pouvons imposer une contrainte d'égalité dans le script de combinaisons non autorisées (et ajouter toute autre contrainte nécessaire). JMP ne sera probablement pas en mesure de trouver une conception réalisable en utilisant une contrainte d'égalité stricte (par exemple en utilisant l'opérateur !=, ou en utilisant les inégalités strictes < et > dans une condition). Ainsi, nous devons utiliser une expression spécifiant que la somme des valeurs des facteurs estproche de1.
Supposons que nous ayons trois facteurs de mélange et que la somme du mélange soit égale à un. Nous savons que l'un des facteurs (X1) ne peut prendre que des niveaux discrets de 0, 0,25, 0,5, 0,75 et 1. Les deux autres facteurs (X2 et X3) peuvent prendre n'importe quelle valeur entre 0 et 1, inclus. Ainsi, il est plus logique de définir le premier comme un facteur numérique discret à cinq niveaux et les deux autres comme des facteurs continus.Pour que la somme des trois facteurs soit approximativement égale à un, nous pouvons spécifier la contrainte de pseudo-égalité comme suit :
X1 + X2 + X3 > 1.001 | X1 + X2 + X3 < 0.999
qui limite la somme à un millième de un. Étant donné que la force motrice de cette question est de pouvoir spécifier des contraintes de facteurs dans le contexte d'un plan de mélange, supposons que nous voulions également empêcher la valeur de X3 d'être supérieure à la valeur de X2 dans le plan. L'expression complète à saisir dans le champ de script des combinaisons non autorisées dans ce cas serait :
X1 + X2 + X3 > 1.001 | X1 + X2 + X3 < 0.999 | X3 > X2
Exécutez le script JSL ci-dessous pour créer un exemple de cette conception.
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}
);
Étant donné que les valeurs des trois facteurs ne s'additionnent pas exactement à une, vous devrez ajuster légèrement l'une des valeurs des facteurs continus dans la table de conception résultante.
Une deuxième approche plus propre à la question d'origine consiste à saisir uniquement les facteurs X1 (le facteur numérique discret à cinq niveaux) et X2 (facteur continu allant de 0 à 1) dans la boîte de dialogue de conception personnalisée initiale. Les valeurs de X3 peuvent facilement être générées dans la table de conception à l'aide de la formule 1 - X1 - X2. Dans la configuration de conception initiale avec uniquement les facteurs X1 et X2, nous utiliserons un script de combinaisons non autorisées pour garantir que la somme de X1 et X2 ne soit ni inférieure à zéro ni supérieure à 1. De plus, nous ajouterons à nouveau la restriction selon laquelle X3 ne peut pas être supérieur à X2. Étant donné que X3 = 1 - X1 - X2, nous pouvons réécrire la restriction X3 > X2 comme 2*X2 + X1 < 1 et l'inclure dans l'expression avec un opérateur OU.
Dans ce scénario, le script complet des combinaisons non autorisées serait :
X1 + X2 > 1 | X1 + X2 < 0 | 2 * X2 + X1 < 1
Un script complet pour créer cet exemple de conception est :
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}
);
Dans les deux approches ci-dessus, les propriétés des colonnes des facteurs dans la table de conception doivent être modifiées à la fin pour refléter les véritables caractéristiques de mélange de la conception. Vous pouvez ajouter manuellement les propriétés en fonction des instructionsici dans notre documentation. Cependant, une méthode plus rapide consiste à créer une autre conception personnalisée en utilisant des facteurs de mélange réels (pas besoin de combinaisons interdites) et à créer le tableau (en tant que modèle). Ensuite, copiez votre conception dans ce tableau « modèle ». Cela garantit que les propriétés de colonne appropriées pour les facteurs de mélange sont présentes.
2) Comment puis-je spécifier qu'un nombre maximal de facteurs peuvent être « actifs » dans une seule expérience ? Supposons qu'il y ait six facteurs, mais qu'au plus trois d'entre eux puissent prendre une valeur supérieure à zéro dans toute expérience. Nous choisissons de définir six facteurs numériques discrets (X1 - X6) avec un nombre variable de niveaux.
Il est essentiel de se rappeler que le script des combinaisons interdites accepte les fonctions. Les fonctions indicatrices sont essentielles dans ce scénario. Par exemple, la fonction indicatrice (X1 > 0) se résout à 1 si X1 est supérieur à zéro et se résout à 0 dans le cas contraire. Ainsi, la somme des fonctions indicatrices pour les six facteurs, puis l'exclusion des cas où la somme est supérieure à 3, restreindront l'espace de conception de sorte que pas plus de trois facteurs ne soient actifs dans une seule exécution. Le script des combinaisons interdites s'écrit comme suit :
(X1 > 0) + (X2 > 0) + (X3 > 0) + (X4 > 0) + (X5 > 0) + (X6 > 0) > 3
Et, cet exemple de conception peut être créé avec le script JSL suivant :
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}
);
Après avoir exécuté le script, notez qu’au moins trois facteurs prennent une valeur de zéro pour chaque exécution dans la conception.
Dans l'un de ces scénarios, si l'alerte JMP « Le concepteur optimal n'a pas pu converger » s'affiche, vos contraintes sont peut-être trop restrictives. Si possible, relâchez les contraintes pour donner laalgorithme d'échange de coordonnéesune meilleure chance de trouver un design. Vous pouvez également essayer d'augmenter lenombre de départset/ou en modifiant l’estimabilité des termes dans votre modèle supposé pourSi possibleau lieu deNécessairepour voir si la convergence peut être atteinte.
Comme toujours, n'hésitez pas à contacter le support technique si vous avez des questions sur l'utilisation des options de restriction de l'espace de conception dans JMP, ou si votre conception produit des exécutions qui ne sont pas judicieuses compte tenu des contraintes prévues.