DOE, ausgewogenes, individuelles DesignHallo Community,
Ich versuche, ein ausgewogenes DOE-Design auf der Grundlage von zwei Faktoren zu erstellen: A auf 3 Ebenen und B auf 31 Ebenen. Ich möchte, dass mein Faktor B etwa 1,41 Mal repliziert wird (die 31 Stufen meines Faktors B werden auf jeder Stufe von Faktor A getestet und 13 davon werden zweimal auf jeder Stufe von Faktor A getestet).
Ich möchte, dass die DOE-Plattform für mich ein Experiment entwirft, bei dem ich für jede Stufe meines Faktors A die gleiche Anzahl an Durchläufen habe (und auch für meinen Faktor B mehr oder weniger ausgeglichen). Daher bitte ich um eine benutzerdefinierte Anzahl von Läufen von 132 (44 Läufe pro Stufe von Faktor A). Aber leider kann ich nichts Ausgewogenes erreichen: Ich habe 43/44/45 Läufe für jede Stufe des Faktors A. Es ist möglicherweise nicht klar, ich hoffe, der Code hilft.
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>Das läuft völlig reibungslos, wenn ich mehr Level für meinen Faktor A habe.Ich gehe davon aus, dass 3 Level etwas niedrig sind, aber es scheint trotzdem möglich zu sein, etwas zu tun. Möglicherweise gibt es eine Option, die ich vergessen habe.
Jede Hilfe ist willkommen!
vielen Dank im Voraus
(funktioniert auf JMP 14.1.0 64bit)
Verbraucher- und MarktforschungVersuchsplanungBetreff: DOE, ausgewogenes kundenspezifisches Designhallo David
Ich verstehe, dass meine Bitte um Ausgewogenheit statistisch gesehen vielleicht nicht die beste ist, aber es handelt sich um eine technische Einschränkung, der ich mich nicht entziehen kann
Außerdem habe ich die Leistungen überprüft (Optimalität/Leistung...)und es scheint wirklich nah dran zu sein. Vielen Dank auch für deine Leseempfehlung, ich werde einen Blick darauf werfen.
Betreff: DOE, ausgewogenes kundenspezifisches DesignIch komme etwas zu spät zu diesem Thread und es gibt einige interessante Lösungen. Ich frage mich jedoch, ob Sie das Optimalitätskriterium einfach in „Alias Optimal“ ändern. Diese Optimierungskriterien sorgen in der Regel für einen größtmöglichen Ausgleich. Hier ist ein Skript, als ich diesen Ansatz wählte und es schien zu funktionieren.
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}
)Betreff: DOE, ausgewogenes kundenspezifisches DesignIch habe die for-Schleife gewählt, um nicht in Endlosschleifen zu enden, da es DOE-Definitionen geben kann, bei denen wir keine Lösung finden. Und dann haben wir einen Endpunkt.
Betreff: DOE, ausgewogenes kundenspezifisches DesignDas ist ein guter Punkt !
Ich verwende vielleicht die „while“-Schleife anstelle des klassischen „if“, aber deine Lösung gefällt mir, danke!
Betreff: DOE, ausgewogenes kundenspezifisches DesignHallo @johanna_younous „Nicht immer“ bedeutet, dass es Lösungen von JMP gibt, die Ihre Anforderungen erfüllen. Warum also nicht JMP ausprobieren lassen, bis das Design ausgewogen ist?
Siehe Schleife im Skript unten. Es ist besser, als Faktoren manuell zu ändern. Als ich es ein paar hundert Mal versuchte, stellte ich fest, dass das Design in mehr als der Hälfte der Versuche ausgewogen war. Die folgende Schleife sollte also immer eine Lösung für Sie bereithalten.
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 ) ) );Betreff: DOE, ausgewogenes kundenspezifisches Design„Balance“ ist ein Merkmal klassischer Designs.Während wir argumentieren können, dass das Gleichgewicht uns schöne statistische Eigenschaften verleiht, war die Hauptmotivation wahrscheinlich die Möglichkeit, die Analyse innerhalb weniger Tage durchzuführen, bevor wir auf Computer zugreifen konnten (z. B. Yates-Algorithmus).Benutzerdefinierte Designs erzwingen kein Gleichgewicht, und tatsächlich kann ein leichtes Ungleichgewicht die statistische Leistung verbessern (ich denke, dies wird in „Optimal Design of Experiments: A Case Study Approach“ von Jones & Goos besprochen.Wenn Sie wirklich interessiert sind, kann ich wahrscheinlich einige Beispiele ausgraben, bei denen ich das Design manuell ausgeglichen habe und gezeigt habe, dass die statistische Leistung dadurch beeinträchtigt wird.
Betreff: DOE, ausgewogenes kundenspezifisches DesignHallo Georg,
Vielen Dank für diese Antwort.
Leider habe ich diese Lösung gerade erst getestet, aber die Festlegung der Anzahl der Starts auf „1“ reicht nicht aus, um für die Stufen A immer das Ergebnis 44 zu erhalten. Tatsächlich kann es sich ändern, wenn sich die Anzahl der Samen ändert.
Bisher habe ich mein Problem „manuell“ durch eine Schleife behoben, die die Ebenen A mit einer meiner Ebenen B verwechselt, bis ich dieses Gleichgewicht erhalte. Dies geschieht jedoch erst später und es ist möglicherweise weder die beste noch die eleganteste noch statistisch gesehen die beste Lösung.Ich wünschte, ich könnte das direkt im DOE-Modul tun.
Betreff: DOE, ausgewogenes kundenspezifisches DesignHallo @johanna_younous ,
Für mich sieht es so aus, als ob das unausgewogene Design durch die Optimierung verursacht wird, die JMP bei der Erstellung des Designs gemäß dem Optimalitätskriterium durchführt.
Beschränkt man die Anzahl der Starts auf 1, dann erhält man für jede A-Stufe genau 44 Läufe.
Sehen: Anzahl der Starts (jmp.com)
Sie können das Design, das Sie mit Optimierung erhalten haben, mit dem ohne vergleichen. In Ihrem Fall scheint es auf den ersten Blick keinen wirklichen Unterschied zu geben (Leistungsanalyse usw.).
Vielleicht gibt es auch eine bessere Antwort von anderen Mitgliedern oder JMP-Mitarbeitern.
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" ) );