DOE, conception personnalisée équilibréebonjour la communauté,
J'essaie de faire un DOE équilibré sur 2 facteurs : A à 3 niveaux et B à 31 niveaux. Je veux que mon facto B soit répliqué ~ 1,41 fois (les 31 niveaux de mon facteur B sont testés sur chaque niveau de facot A et 13 d'entre eux sont testés deux fois pour chaque niveau de facteur A).
Je veux que la plate-forme DOE me conçoive une expérience où j'ai le même nombre d'exécutions pour chaque niveau de mon facteur A (et plus ou moins équilibré également pour mon facteur
. Je demande donc un nombre personnalisé de Runs de 132 (44 run par niveau de facteur A). Mais malheureusement je ne peux pas avoir quelque chose d'équilibré : j'ai 43 /44 /45 runs pour chaque niveau de facteur A. Ce n'est peut-être pas clair, j'espère que le code vous aidera.
lstA = {"L1","L2" , "L3"};
lstB= {"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8", "V1_9",
"V1_10", "V1_11", "V1_12", "V1_13", "V1_14", "V1_15", "V1_16", "V1_17", "V1_18",
"V1_19", "V1_20", "V1_21", "V1_22", "V1_23", "V1_24", "V1_25", "V1_26", "V1_27",
"V1_28", "V1_29", "V1_30"};
eval(parse("DOE1 =
DOE(
Custom Design,
{ Add Factor( Categorical, "||char(lstA )||", \!"A\!", 0 ),
Add Factor( Categorical,"|| char(lstB)||", \!"B\!", 0 ),
//Set Random Seed( seed1 ),
Set Sample Size( "||char( 132)||" )}
);"));
DOE1<< Make Design;
DT_DOE= DOE1<< Make Table();
DOE1<<CLOSE window=""></CLOSE>Cela fonctionne parfaitement bien lorsque j'ai plus de niveau pour mon facteur A.Je suppose que 3 niveaux sont un peu bas, mais il semble toujours possible de faire quelque chose. Il y a peut-être une option que j'ai oublié.
Toute aide est la bienvenue !
Merci beaucoup d'avance
(fonctionnant sur JMP 14.1.0 64bit)
BICHEScriptRe : DOE, conception personnalisée équilibréeBonjour @johanna_younous ,
pour moi, il semble que la conception déséquilibrée soit causée par l'optimisation, que JMP fait lors de la création de la conception selon le critère d'optimalité.
Si vous limitez le nombre de départs à 1, vous obtenez exactement 44 courses pour chaque niveau de A.
Voir: Nombre de démarrages (jmp.com)
Vous pouvez comparer la conception que vous avez obtenue avec l'optimisation à celle sans. Dans votre cas, il ne semble pas y avoir de réelle différence à première vue (analyse de puissance, etc.).
Peut-être y a-t-il une meilleure réponse de la part d'autres membres ou du personnel de JMP également.
Names Default To Here( 1 );
doe_obj = DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Categorical, {"L1", "L2", "L3"}, "X1", 0 ), Add Factor(
Categorical,
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8", "V1_9", "V1_10", "V1_11", "V1_12", "V1_13", "V1_14", "V1_15",
"V1_16", "V1_17", "V1_18", "V1_19", "V1_20", "V1_21", "V1_22", "V1_23", "V1_24", "V1_25", "V1_26", "V1_27", "V1_28", "V1_29", "V1_30"},
"X2",
0
), Set Random Seed( 1348397327 )
, Number of Starts( 1 /* 1000 */ )
, Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Alias Term( {1, 1}, {2, 1} ), Set Sample Size( 132 ), Simulate Responses( 0 ),
Save X Matrix( 0 ), Make Design}
);
doe_dt = doe_obj << make table();
doe_obj << close window();
doe_dt << Summary( Group( :X1 ), Freq( "None" ), Weight( "None" ) );Re : DOE, conception personnalisée équilibréeBonjour Georg,
Merci beaucoup pour cette réponse.
Malheureusement, je viens de tester cette solution mais fixer le Nombre de démarrages à "1" n'est pas suffisant pour toujours obtenir ce résultat de 44 pour les niveaux A. En effet, il peut changer pendant que le numéro de graine change.
Jusqu'à présent j'ai réglé mon problème "manuellement" par une boucle intervertissant les niveaux A pour un de mes niveau B jusqu'à ce que j'obtienne cet équilibre mais cela se fait après coup et ce n'est peut-être pas la meilleure solution ni la plus élégante ni la meilleure statistiquement.J'aimerais pouvoir le faire directement dans le module DOE.
Re : DOE, conception personnalisée équilibrée"Balance" est une caractéristique des conceptions classiques.Alors que nous pouvons affirmer que l'équilibre nous donne de belles propriétés statistiques, la principale motivation était probablement la capacité de faire l'analyse quelques jours avant l'accès aux ordinateurs (par exemple l'algorithme de Yates).Les conceptions personnalisées n'imposent pas d'équilibre et, en fait, un léger déséquilibre peut améliorer les performances statistiques (je pense que cela est discuté dans "Optimal Design of Experiments: A Case Study Approach" de Jones & Goos.Si vous êtes vraiment intéressé, je peux probablement trouver quelques exemples où j'ai équilibré manuellement la conception et montré que les performances statistiques sont dégradées en conséquence.
Re : DOE, conception personnalisée équilibréeBonjour @johanna_younous , "pas toujours" signifie qu'il existe des solutions JMP qui répondent à vos besoins. Alors pourquoi ne pas laisser JMP essayer jusqu'à ce que la conception soit équilibrée.
Voir la boucle dans le script ci-dessous. C'est mieux que de modifier manuellement les facteurs. En essayant plusieurs centaines de fois, j'ai trouvé que la conception était équilibrée dans plus de la moitié des essais. Ainsi, la boucle ci-dessous devrait toujours avoir une solution pour vous.
Names Default To Here( 1 );
dt_sum = New Table( "DOE designs",
New Column( "Balanced", "Character", formula( If( :L1 == L2 == L3, "y", "n" ) ) ),
New Column( "L1", "Continuous" ),
New Column( "L2", "Continuous" ),
New Column( "L3", "Continuous" )
);
done = 0;
For( i = 1, (i <= 100) & !done, i++,
doe_obj = DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Categorical, {"L1", "L2", "L3"}, "X1", 0 ), Add Factor(
Categorical,
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8", "V1_9", "V1_10", "V1_11", "V1_12", "V1_13", "V1_14", "V1_15",
"V1_16", "V1_17", "V1_18", "V1_19", "V1_20", "V1_21", "V1_22", "V1_23", "V1_24", "V1_25", "V1_26", "V1_27", "V1_28", "V1_29", "V1_30"},
"X2",
0
), Number of Starts( 1 ), Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
Set Sample Size( 132 ), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
);
doe_dt = doe_obj << make table();
doe_obj << close window();
Summarize( doe_dt, by_grp = by( :X1 ), by_cnt = Count() );
dt_sum << add row( 1 );
dt_sum:L1[N Rows( dt_sum )] = by_cnt[1];
dt_sum:L2[N Rows( dt_sum )] = by_cnt[2];
dt_sum:L3[N Rows( dt_sum )] = by_cnt[3];
// finish, when design is balanced, otherwise continue with new try
If( by_cnt[1] == by_cnt[2] == by_cnt[3],
done = 1,
Close( doe_dt, NoSave )
);
);
dt_sum << Distribution( Nominal Distribution( Column( :Balanced ) ) );Re : DOE, conception personnalisée équilibréeC'est un bon point !
Je peux utiliser la boucle "while" plutôt que le "if" classique, mais j'aime votre solution merci !
Re : DOE, conception personnalisée équilibréeJ'ai choisi la boucle for pour ne pas se retrouver dans des boucles infinies, car il peut y avoir des définitions DOE où nous ne trouverons pas la solution. Et puis nous avons un point final.
Re : DOE, conception personnalisée équilibréeJe suis un peu en retard sur ce fil, et il y a des solutions intéressantes. Cependant, je me demande si vous changez simplement le critère d'optimalité en Alias Optimal. Ces critères d'optimisation équilibreront généralement les choses autant que possible. Voici un script lorsque j'ai adopté cette approche et cela a semblé fonctionner.
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Categorical, {"L1", "L2", "L3"}, "A", 0 ),
Add Factor(
Categorical,
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8",
"V1_9", "V1_10", "V1_11", "V1_12", "V1_13", "V1_14", "V1_15", "V1_16",
"V1_17", "V1_18", "V1_19", "V1_20", "V1_21", "V1_22", "V1_23", "V1_24",
"V1_25", "V1_26", "V1_27", "V1_28", "V1_29", "V1_30"},
"B",
0
), Set Random Seed( 1127601240 ), Number of Starts( 3796 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {1, 1}, {2, 1} ),
Set Sample Size( 132 ), Optimality Criterion( Make Alias Optimal Design ),
Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
)Re : DOE, conception personnalisée équilibréeBonjour David
Je comprends que ma demande d'équilibrage n'est peut-être pas la meilleure statistiquement mais c'est une contrainte technique à laquelle je ne peux pas échapper
De plus, j'ai vérifié les performances (optimalité/puissance...)et il semble être très proche. Merci aussi pour votre recommandation de lecture, je vais y jeter un œil.