Can't generate valid initial design

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Can't generate valid initial design

Postby lcameron1 » Wed Aug 04, 2021 2:44 pm

Hello,

When I run the below syntax I get the following error message:

'A valid initial random design could not be generated after approximately 10 seconds. In this time, of the 146699 attempts made, there were 0 row repetitions, 6829 alternative repetitions, and 139870 cases of dominance. There are a number of possible causes for this, including the specification of too many constraints, not having enough attributes or attribute levels for the number of rows required, and the use of too many scenario attributes. A design may yet be found, and the search will continue for 10 minutes. Alternatively, you can stop the run and alter the syntax.'

I have tried changing the number of rows and blocks, removing the condition, and dropping the con property but I still get this message. The only way I get a valid initial design is if I allow dominated alternatives or significantly reduce the number of interactions, neither of which I want for my design in an ideal world.

Do you have any suggestions for how I can find a valid design?

I really appreciate your help.

Thank you

Lachy

Code: Select all
Design
;alts = A*, B*, C
;rows = 36
;block = 3
;eff = (mnl, d)
;cond:
if(A.Time = 0, B.Time <> 1)
;con
;model:
U(A)= b0[(n,0.001,0.001)] + b2.effects[(n,0,0.001)|(n,-0.001,0.001)|(n,0.001,0.001))]*odds[1,2,3,0] + b3.effects[(n,0.001,0.001)]*time[1,0]
+ b4.effects[(n,0.001,0.001)]*form[1,0] + b5.effects[(n,0.001,0.001)]*tip[1,0] + b6.effects[(n,0.001,0.001)]*induce[1,0]
+ b7[(n,0,0.001)]*odds.effects[1]*time.effects[1] + b8[(n,0,0.001)]*odds.effects[2]*time.effects[1]
+ b9[(n,0,0.001)]*odds.effects[3]*time.effects[1]
+ b12[(n,0,0.001)]*odds.effects[1]*form.effects[1] + b13[(n,0,0.001)]*odds.effects[2]*form.effects[1]
+ b14[(n,0,0.001)]*odds.effects[3]*form.effects[1]
+ b17[(n,0,0.001)]*odds.effects[1]*tip.effects[1] + b18[(n,0,0.001)]*odds.effects[2]*tip.effects[1]
+ b19[(n,0,0.001)]*odds.effects[3]*tip.effects[1]
+ b27[(n,0,0.001)]*odds.effects[1]*induce.effects[1] + b28[(n,0,0.001)]*odds.effects[2]*induce.effects[1]
+ b29[(n,0,0.001)]*odds.effects[3]*induce.effects[1]
+ b37[(n,0,0.001)]*time.effects[1]*form.effects[1] + b38[(n,0,0.001)]*time.effects[1]*tip.effects[1] + b40[(n,0,0.001)]*time.effects[1]*induce.effects[1]
+ b42[(n,0,0.001)]*form.effects[1]*tip.effects[1] + b44[(n,0,0.001)]*form.effects[1]*induce.effects[1]
+ b46[(n,0,0.001)]*tip.effects[1]*induce.effects[1]
/
U(B)= b1[(n,0,0.001)] + b2.effects*odds + b3.effects*time
+ b4.effects*form + b5.effects*tip + b6.effects*induce
+ b7*odds.effects[1]*time.effects[1] + b8*odds.effects[2]*time.effects[1]
+ b9*odds.effects[3]*time.effects[1]
+ b12*odds.effects[1]*form.effects[1] + b13*odds.effects[2]*form.effects[1]
+ b14*odds.effects[3]*form.effects[1]
+ b17*odds.effects[1]*tip.effects[1] + b18*odds.effects[2]*tip.effects[1]
+ b19*odds.effects[3]*tip.effects[1]
+ b27*odds.effects[1]*induce.effects[1] + b28*odds.effects[2]*induce.effects[1]
+ b29*odds.effects[3]*induce.effects[1]
+ b37*time.effects[1]*form.effects[1]+ b38*time.effects[1]*tip.effects[1] + b40*time.effects[1]*induce.effects[1]
+ b42*form.effects[1]*tip.effects[1] + b44*form.effects[1]*induce.effects[1]
+ b46*tip.effects[1]*induce.effects[1]
$
lcameron1
 
Posts: 1
Joined: Tue Aug 03, 2021 4:32 pm

Re: Can't generate valid initial design

Postby Michiel Bliemer » Wed Aug 11, 2021 8:34 am

Apologies for the late reply, I seem to have missed this post earlier.

The error message indicates that your design is extremely constrained, mainly due to dominance checks. You are asking Ngene to find a design with 36 rows using the default swapping in which there exist no choice tasks with a dominant alternative. Almost 60% of the choice tasks in the full factorial have a dominant alternative and therefore selecting 36 of them without any dominance will be difficult for the column-based swapping algorithm. The solution is to switch to the row-based modified Federov algorithm as I have done in the syntax below. Note that this algorithm does not support conditional constraints so I rewrote your constraint as a reject constraint. Further, this algorithm does not guarantee attribute level balance so I have added a constraint for the odds attribute to ensure that each level appears between 8 and 10 times. Further, I have used "fixed" in the efficiency command since your standard deviations of the normally distributed priors are extremely small and therefore would not have any purpose and would only increase the computation time. Using fixed priors will already take a long time, you will want to run the syntax below for several hours at least (the computation time is high since the variance-covariance matrix is very large due to the many parameters).

Code: Select all
Design
;alts = A*, B*, C
;rows = 36
;block = 3
;eff = (mnl, d, fixed)
;alg = mfederov(candidates = 1500)
;reject:
A.time = 0 and B.time = 1
;con
;model:
U(A)= b0[(n,0.001,0.001)]
    + b2.effects[(n,0,0.001)|(n,-0.001,0.001)|(n,0.001,0.001))] * odds[1,2,3,0](8-10,8-10,8-10,8-10)
    + b3.effects[(n,0.001,0.001)]                               * time[1,0]
    + b4.effects[(n,0.001,0.001)]                               * form[1,0]
    + b5.effects[(n,0.001,0.001)]                               * tip[1,0]
    + b6.effects[(n,0.001,0.001)]                               * induce[1,0]
    + b7[(n,0,0.001)]                                           * odds.effects[1] * time.effects[1]
    + b8[(n,0,0.001)]                                           * odds.effects[2] * time.effects[1]
    + b9[(n,0,0.001)]                                           * odds.effects[3] * time.effects[1]
    + b12[(n,0,0.001)]                                          * odds.effects[1] * form.effects[1]
    + b13[(n,0,0.001)]                                          * odds.effects[2] * form.effects[1]
    + b14[(n,0,0.001)]                                          * odds.effects[3] * form.effects[1]
    + b17[(n,0,0.001)]                                          * odds.effects[1] * tip.effects[1]
    + b18[(n,0,0.001)]                                          * odds.effects[2] * tip.effects[1]
    + b19[(n,0,0.001)]                                          * odds.effects[3] * tip.effects[1]
    + b27[(n,0,0.001)]                                          * odds.effects[1] * induce.effects[1]
    + b28[(n,0,0.001)]                                          * odds.effects[2] * induce.effects[1]
    + b29[(n,0,0.001)]                                          * odds.effects[3] * induce.effects[1]
    + b37[(n,0,0.001)]                                          * time.effects[1] * form.effects[1]
    + b38[(n,0,0.001)]                                          * time.effects[1] * tip.effects[1]
    + b40[(n,0,0.001)]                                          * time.effects[1] * induce.effects[1]
    + b42[(n,0,0.001)]                                          * form.effects[1] * tip.effects[1]
    + b44[(n,0,0.001)]                                          * form.effects[1] * induce.effects[1]
    + b46[(n,0,0.001)]                                          * tip.effects[1]  * induce.effects[1]
    /
U(B)= b1[(n,0,0.001)]
    + b2.effects                                                * odds
    + b3.effects                                                * time
    + b4.effects                                                * form
    + b5.effects                                                * tip
    + b6.effects                                                * induce
    + b7                                                        * odds.effects[1]*time.effects[1]
    + b8                                                        * odds.effects[2]*time.effects[1]
    + b9                                                        * odds.effects[3]*time.effects[1]
    + b12                                                       * odds.effects[1]*form.effects[1]
    + b13                                                       * odds.effects[2]*form.effects[1]
    + b14                                                       * odds.effects[3]*form.effects[1]
    + b17                                                       * odds.effects[1]*tip.effects[1]
    + b18                                                       * odds.effects[2]*tip.effects[1]
    + b19                                                       * odds.effects[3]*tip.effects[1]
    + b27                                                       * odds.effects[1]*induce.effects[1]
    + b28                                                       * odds.effects[2]*induce.effects[1]
    + b29                                                       * odds.effects[3]*induce.effects[1]
    + b37                                                       * time.effects[1]*form.effects[1]
    + b38                                                       * time.effects[1]*tip.effects[1]
    + b40                                                       * time.effects[1]*induce.effects[1]
    + b42                                                       * form.effects[1]*tip.effects[1]
    + b44                                                       * form.effects[1]*induce.effects[1]
    + b46                                                       * tip.effects[1]*induce.effects[1]
$


Michiel
Michiel Bliemer
 
Posts: 1885
Joined: Tue Mar 31, 2009 4:13 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 19 guests

cron