Evaluating external design & large designs

Hello everyone,
I would need some advice on the following three points:
(1) I have an external design that I want to evaluate in Ngene. The design was created in Sawtooth, and is some sort of a nearly-orthogonal design, with balanced attribute-levels. The design is very large: 3600 choice tasks (rows) grouped in 300 versions (12 tasks in each) that are equivalent to blocks in Ngene language I guess. In the survey, each respondent is given one set of choice tasks (12) randomly selected from among these 300 versions. I don't know more, since - as is known - Sawtooth is a bit of a black box and the documentation is very meager.
The external design is prepared according to the information in Ngene's manual - first column with design number, second with tasks, further columns with attributes appearing as in Ngene syntax. The syntax is for an unlabeled design, with all attributes dummy coded, the model assumed is MNL with zero priors. All I want to get is a D-error for this design so that I can compare it with the alternative one made in Ngene for the same model. Unfortunately, even though Ngene loads the file and everything indicates that the file structure, etc. is correct, Ngene returns: D-error = undefined. I've tried a number of ways to make it work - reducing the external design to several dozen rows, adding/removing asterisks from alternatives, adding/removing blocking.
What could be the source of this problem? Is there anything more to care about except for what is mentioned in the manual (file structure, no syntax like alg; etc.)?
I can provide code if needed.
(2) This is less about Ngene, and more about experimental design. We typically work with designs that have from a few (say 8) to a few dozen rows (say 60), which are then blocked if too large for one person. The number of rows must be larger than the degrees of freedom, and we also try to make attribute levels balanced. And we do all this under the assumption that each respondent receives the same set of choice tasks (or one of the blocks). Somewhat inspired by Sawtooth's approach (which is unclear to me due to the sparse documentation in this regard), I am wondering whether it could make sense, and what difference it could potentially make, if each respondent received a unique set of choice tasks. This would of course lead to a very large design. For instance, knowing that we have 100 respondents (e.g., when ordering an online panel study), we make a design with 1000 rows, 100 blocks of 10 choice tasks, and each of the 100 respondent gets one of those blocks. Wouldn't this lead to higher efficiency and more variation in the data?
Or to put it the other way around, what brings us the fact that we have a fixed design and show the same thing to every respondent?
(3) I have two dummy variables (transfers and delay) with multiple levels. I want to interact both and am confused about what to do with the base levels. Is the code below, with base levels skipped, correct?
Thank you so much,
Bartosz
I would need some advice on the following three points:
(1) I have an external design that I want to evaluate in Ngene. The design was created in Sawtooth, and is some sort of a nearly-orthogonal design, with balanced attribute-levels. The design is very large: 3600 choice tasks (rows) grouped in 300 versions (12 tasks in each) that are equivalent to blocks in Ngene language I guess. In the survey, each respondent is given one set of choice tasks (12) randomly selected from among these 300 versions. I don't know more, since - as is known - Sawtooth is a bit of a black box and the documentation is very meager.
The external design is prepared according to the information in Ngene's manual - first column with design number, second with tasks, further columns with attributes appearing as in Ngene syntax. The syntax is for an unlabeled design, with all attributes dummy coded, the model assumed is MNL with zero priors. All I want to get is a D-error for this design so that I can compare it with the alternative one made in Ngene for the same model. Unfortunately, even though Ngene loads the file and everything indicates that the file structure, etc. is correct, Ngene returns: D-error = undefined. I've tried a number of ways to make it work - reducing the external design to several dozen rows, adding/removing asterisks from alternatives, adding/removing blocking.
What could be the source of this problem? Is there anything more to care about except for what is mentioned in the manual (file structure, no syntax like alg; etc.)?
I can provide code if needed.
(2) This is less about Ngene, and more about experimental design. We typically work with designs that have from a few (say 8) to a few dozen rows (say 60), which are then blocked if too large for one person. The number of rows must be larger than the degrees of freedom, and we also try to make attribute levels balanced. And we do all this under the assumption that each respondent receives the same set of choice tasks (or one of the blocks). Somewhat inspired by Sawtooth's approach (which is unclear to me due to the sparse documentation in this regard), I am wondering whether it could make sense, and what difference it could potentially make, if each respondent received a unique set of choice tasks. This would of course lead to a very large design. For instance, knowing that we have 100 respondents (e.g., when ordering an online panel study), we make a design with 1000 rows, 100 blocks of 10 choice tasks, and each of the 100 respondent gets one of those blocks. Wouldn't this lead to higher efficiency and more variation in the data?
Or to put it the other way around, what brings us the fact that we have a fixed design and show the same thing to every respondent?
(3) I have two dummy variables (transfers and delay) with multiple levels. I want to interact both and am confused about what to do with the base levels. Is the code below, with base levels skipped, correct?
- Code: Select all
+ b_transfers.dummy[0|0] * transfers[2,3,1] ? transfers dummy: 1 = 0 transfers (base), 2 = 1 transfer, 3 = 2 transfers
+ b_delay.dummy[0|0|0] * delay[2,3,4,1] ? delay dummy: 1 = on time (base), 2 = 1h, 3 = 2h, 4 = 3h
+ i_tra_del_1[0] * transfers.dummy[2] * delay.dummy[2]
+ i_tra_del_2[0] * transfers.dummy[2] * delay.dummy[3]
+ i_tra_del_3[0] * transfers.dummy[2] * delay.dummy[4]
+ i_tra_del_4[0] * transfers.dummy[3] * delay.dummy[2]
+ i_tra_del_5[0] * transfers.dummy[3] * delay.dummy[3]
+ i_tra_del_6[0] * transfers.dummy[3] * delay.dummy[4]
Thank you so much,
Bartosz