Comment définir des contraintes pour une variable catégorielleJ'essaie de créer une conception avec environ 10 variables catégorielles, chacune avec deux niveaux (0,1).J'aimerais que ma conception modélise les effets principaux et toutes les interactions binaires.Lorsque j'utilise les valeurs par défaut de JMP, j'obtiens une conception D-optimale telle que le nombre moyen de variables cétégoriques au niveau "1" est d'environ 5. Existe-t-il un moyen de contraindre la conception de sorte que je n'autoriserais qu'au plus 3 des les variables soient au niveau "1" ?(Je comprends que cela peut nécessiter plus de courses, mais je suis d'accord avec ça.)
Merci.
Re : Comment définir des contraintes pour une variable catégorielleLorsque vous dites non égal, vous restreignez trop l'algorithme avec seulement 100 exécutions. Vous ne pourrez peut-être pas estimer tous les termes du modèle.
Par exemple, lorsque vous limitez à seulement 3 facteurs étant à leur réglage élevé, il y a 120 combinaisons possibles. Même si vous choisissez les 120 combinaisons, vous ne pouvez pas estimer un modèle d'effets principaux. Pourquoi? Parce que vous avez une singularité intégrée. Plus précisément, l'ordonnée à l'origine (une colonne de 1 dans la matrice de conception) serait égale à une combinaison linéaire de tous les facteurs : 1/3*(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10 ). Par conséquent, l'analyse ne peut pas être complétée et aucune conception n'a pu être trouvée pour un tel modèle.
Vous feriez peut-être mieux de recommencer à dire "pas plus de" 3 ou 4 ou quel que soit le niveau que vous souhaitez.
Re : Comment définir des contraintes pour une variable catégorielleDan, merci encore pour cette réponse très utile.Je suis heureusement à la recherche d'un bon design, mais je me retrouve à nouveau dans l'impasse...
J'essaie de créer un graphique qui trace les diagnostics de conception (d'un intérêt particulier est la variance moyenne de la prédiction) en fonction du nombre de facteurs catégoriques au niveau élevé.Dans tous les cas, j'ai dix facteurs à deux niveaux, et je n'autorise qu'un nombre défini d'exécutions, 100.Je m'attends en quelque sorte à ce que la conception se dégrade lorsque j'en ai "trop" ou "trop peu" autorisés au niveau élevé.
Ainsi, j'exécute le script DOE encore et encore avec une série de contraintes différentes sur le nombre de facteurs autorisés à haut niveau, c'est-à-dire :
Combinaisons non autorisées( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 2
Combinaisons non autorisées( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 3
Combinaisons non autorisées( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 4
Combinaisons non autorisées( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 5
Combinaisons non autorisées( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 6
Combinaisons non autorisées( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 7
Combinaisons non autorisées( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 8
(Ce serait bien d'avoir cela dans une boucle, mais je ne fais que copier-coller le script).
Ce que je trouve, c'est que seuls ceux avec 2 ou 8 facteurs aux niveaux élevés convergent et délivrent la conception !. Pour les autres, j'obtiens un message d'erreur "Le concepteur optimal n'a pas réussi à converger".Existe-t-il un moyen de contourner cela?
Re : Comment définir des contraintes pour une variable catégorielleVous n'avez pas besoin d'utiliser le script pour créer le design. Le script est juste un moyen pratique de configurer tout le travail.
Vous avez besoin du script comme je l'avais posté pour les contraintes. Étant donné votre désir d'essayer différents scénarios, je vous recommande d'utiliser l'interface graphique, mais spécifiez les contraintes linéaires en tant que "script de combinaisons non autorisées" et collez le script que j'ai fourni. Cela vous permettra d'essayer quelque chose, et si vous ne l'aimez pas, cliquez simplement sur le bouton de retour, faites un changement et réessayez.
En ce qui concerne le nombre d'exécutions, le nombre minimal d'exécutions correspond au nombre total de termes de modèle que vous essayez d'estimer. Pour 10 facteurs à 2 niveaux, vous auriez une interception (1) + des effets principaux (10) + des interactions bidirectionnelles (45). Cela donne un total de 56 termes, c'est donc le nombre minimum d'exécutions.
Le nombre d'exécutions par défaut a des critères intégrés qui fourniront des degrés de liberté pour l'erreur (généralement 4) et s'efforceront d'atteindre l'orthogonalité (jusqu'à un certain point). Ce n'est pas une formule simple. Pour cette même situation, le nombre d'exécutions par défaut est de 60 (c'est pourquoi Ryan a généré cette conception -- et notez 4 degrés de liberté pour l'erreur). Le nombre d'exécutions par défaut ne tient compte d'aucune contrainte (à ma connaissance !). Par conséquent, si vous créez cette même conception avec ou sans contraintes, la valeur par défaut reste à 60. La valeur par défaut ne garantit PAS un design qui répondra à vos besoins ! Comme vous l'avez noté, lorsque vous ajoutez des contraintes, trouver une bonne conception peut être plus difficile et nécessitera souvent plus d'exécutions. Puisque 60 a donné des résultats horribles, optez pour un nombre plus élevé. À ma connaissance, il n'y a pas de calcul facile qui vous indiquera le nombre d'exécutions nécessaires pour obtenir un certain niveau de variance moyenne de prédiction (mais n'oubliez pas la VARIANCE sur la variance de prédiction ! En d'autres termes, n'oubliez pas la Fraction of Design Space Plot).
J'espère que cela aide et bonne chasse pour un bon design !
Re : Comment définir des contraintes pour une variable catégorielleMerci Ryan et Dan!
J'ai le script en cours d'exécution et je peux faire les dessins. J'ai ajouté toutes les interactions binaires entre les 10 variables, mais maintenant une autre question s'est posée. Lorsque je limite au maximum 3 facteurs au niveau supérieur et que je n'autorise que 60 exécutions (comme dans le script), les diagnostics de conception ont l'air vraiment horribles (l'efficacité D est très faible et la variance moyenne de la prédiction est très élevée). Il semble que lorsque je réalise des conceptions sans contraintes via l'interface graphique, il existe un calcul en arrière-plan pour le nombre minimum et par défaut d'exécutions qui sont renseignées en fonction des termes du modèle. Lorsque j'utilise le script, je peux choisir le nombre d'exécutions (Ryan a choisi 60), mais existe-t-il un moyen d'invoquer ce calcul en arrière-plan pour le nombre d'exécutions par défaut ?
(Ce que j'essaie vraiment de faire, c'est de créer des graphiques pour comprendre les compromis entre le nombre de variables à deux niveaux, le nombre maximum de variables à un niveau supérieur par exécution et le nombre total d'exécutions nécessaires pour obtenir une variance moyenne de prédiction donnée ? )
Re : Comment définir des contraintes pour une variable catégorielleL'approche de Ryan est exactement ce que j'allais suggérer. Cependant, si vous voulez VRAIMENT laisser vos facteurs catégoriques (et en supposant qu'ils sont nommés x1 - x10), vous pouvez spécifier un script Disallowed Combinations qui ressemble à ceci :
(x1 == 2) + (x2 == 2) + (x3 == 2) + (x4 == 2) + (x5 == 2) + (x6 == 2) + (x7 == 2)
+(x8 == 2) + (x9 == 2) + (x10 == 2) > 3
Notez que les facteurs sont catégoriques, donc chacun des X # == 2 indique en fait si ce facteur est au deuxième niveau.
Re : Comment définir des contraintes pour une variable catégorielleLorsque je rencontre cela, je convertis généralement le catégorique en un facteur numérique discret 0/1, puis j'utilise des combinaisons non autorisées pour m'assurer que la somme ne dépasse pas le nombre de 1 souhaité. Pour 10 entrées (modèle d'effets principal, mais juste pour vous donner une idée), quelque chose comme ça :
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Discrete Numeric, {0, 1}, "X1", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X2", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X3", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X4", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X5", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X6", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X7", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X8", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X9", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X10", 0 ), Set Random Seed( 1550400750 ), Number of Starts( 3017 ),
Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ),
Add Term( {5, 1} ), Add Term( {6, 1} ), Add Term( {7, 1} ), Add Term( {8, 1} ), Add Term( {9, 1} ),
Add Term( {10, 1} ), Set Sample Size( 16 ), Disallowed Combinations(
X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 > 3
), Make Design}
);