Unlabeled mode choice experiment with "mode" attribute

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Unlabeled mode choice experiment with "mode" attribute

Postby evanthiaK » Tue Mar 26, 2019 10:13 pm

Hello,

I am developing an unlabeled mode choice experiment where the mode is treated as an attribute.

I have 12 potential modes. Only 5 alternatives will be offered to the respondent in each choice situation.
Given that I have an unlabeled design, I am trying to code this without an availability design, using constraints and require conditions,
where I basically let the software decide which 5 alternatives to offer in each choice situation.

For simplicity, I provide a simple specification with only 3 potential modes and 2 alternatives in each choice task, which I am using to test my approach.

Code: Select all
Design
;alts = alt1*, alt2*
;rows = 16
;block = 2
;bdraws = sobol(500)
;eff=(mnl,d,mean)
;alg=mfederov

;cond:
if(alt1.mode.dummy[1] = 1, alt2.mode.dummy[1] = 0,
if(alt2.mode.dummy[1] = 1, alt1.mode.dummy[1] = 0,
if(alt1.mode.dummy[2] = 1, alt2.mode.dummy[2] = 0,
if(alt2.mode.dummy[2] = 1, alt1.mode.dummy[2] = 0,
if(alt1.mode.dummy[3] = 1, alt2.mode.dummy[3] = 0,
if(alt2.mode.dummy[3] = 1, alt1.mode.dummy[3] = 0

;require:
alt1.mode.dummy[1] + alt1.mode.dummy[2] + alt1.mode.dummy[3] = 1,
alt2.mode.dummy[1] + alt2.mode.dummy[2] + alt2.mode.dummy[3] = 1

;model:

U(alt1) = Beta.dummy[1.0|0.5] * mode[1,2,3] + BETA_Cost[-1.1] * Cost_1[0.5, 1, 1.5, 2] * mode.dummy[1] + BETA_Cost[-1.1] * Cost_2[0] * mode.dummy[2] + BETA_Cost[-1.1] * Cost_3[1.5, 2, 2.75, 3.5] * mode.dummy[3] + BETA_TT1[-0.15] * TT1_1[10, 15, 20, 25] * mode.dummy[1] + BETA_TT1[-0.15] * TT1_2[20, 25, 30, 35] * mode.dummy[2] + BETA_TT1[-0.15] * TT1_3[10, 15, 20, 25] * mode.dummy[3] /
U(alt2) = Beta.dummy[1.0|0.5] * mode[1,2,3] + BETA_Cost * Cost_1 * mode.dummy[1] + BETA_Cost * Cost_2 * mode.dummy[2] + BETA_Cost * Cost_3 * mode.dummy[3] + BETA_TT1 * TT1_1 * mode.dummy[1] + BETA_TT1 * TT1_2 * mode.dummy[2] + BETA_TT1 * TT1_3 * mode.dummy[3]

$     


I get the error: A logical expression has an invalid element: alt1.mode.dummy[3] and I don't see why --could be because my approach is problematic, or ...?

Does someone have an intuition about it?

Thank you!
Eva
evanthiaK
 
Posts: 8
Joined: Tue Mar 26, 2019 12:46 am

Re: Unlabeled mode choice experiment with "mode" attribute

Postby Michiel Bliemer » Wed Mar 27, 2019 8:27 am

Hi Eva,

There are several issues with your syntax:

1) ;cond should be used with the default swapping algorithm, while ;require should be used with the mfederov algorithm. They cannot be combined given that one is a column based algorithm and the other is a row based algorithm.
2) In your conditional constraints you should use the syntax: if(alt1.mode = 1, alt2.mode =2), removing ".dummy" and adding a bracket.
3) Your require constraints should also use the attribute levels, not the dummy coded levels.

In theory, the following syntax would be appropriate:

Code: Select all
Design
;alts = alt1*, alt2*
;rows = 16
;block = 2
;eff=(mnl,d,fixed)

;cond:
if(alt1.mode = 1, alt2.mode = [2,3]),
if(alt2.mode = 1, alt1.mode = [2,3]),
if(alt1.mode = 2, alt2.mode = [1,3]),
if(alt2.mode = 2, alt1.mode = [1,3]),
if(alt1.mode = 3, alt2.mode = [1,2]),
if(alt2.mode = 3, alt1.mode = [1,2])

;model:

U(alt1) = Beta.dummy[1.0|0.5] * mode[1,2,3] + BETA_Cost[-1.1] * Cost_1[0.5, 1, 1.5, 2] * mode.dummy[1] + BETA_Cost[-1.1] * Cost_2[0] * mode.dummy[2] + BETA_Cost[-1.1] * Cost_3[1.5, 2, 2.75, 3.5] * mode.dummy[3] + BETA_TT1[-0.15] * TT1_1[10, 15, 20, 25] * mode.dummy[1] + BETA_TT1[-0.15] * TT1_2[20, 25, 30, 35] * mode.dummy[2] + BETA_TT1[-0.15] * TT1_3[10, 15, 20, 25] * mode.dummy[3] /
U(alt2) = Beta.dummy[1.0|0.5] * mode[1,2,3] + BETA_Cost * Cost_1 * mode.dummy[1] + BETA_Cost * Cost_2 * mode.dummy[2] + BETA_Cost * Cost_3 * mode.dummy[3] + BETA_TT1 * TT1_1 * mode.dummy[1] + BETA_TT1 * TT1_2 * mode.dummy[2] + BETA_TT1 * TT1_3 * mode.dummy[3]
$


However, using the default column based algorithm will not be able to find a design since it is too heavily constrained. Therefore, the row based mfederov algorithm needs to be used. One method for generating partial choice set designs (where only a subset of alternatives is shown in each choice task) is described in the Ngene manual in Section 8.11. In this method, you need to create the candidate set yourself. Given that you have generic parameters, I think that in your case the easiest would be to use ;reject or ;require constraints in the following way:

Code: Select all
Design
;alts = alt1*, alt2*
;rows = 16
;block = 2
;eff=(mnl,d,fixed)

;reject:
alt1.mode = alt1.mode,
alt2.mode = alt2.mode
alt1.mode = 1 and alt1.cost = 2.75,
alt1.mode = 1 and alt1.cost = 3.5,
... etc.

;model:

U(alt1) = Beta.dummy[1.0|0.5] * mode[1,2,3] + BETA_Cost[-1.1] Cost_1[0, 0.5, 1, 1.5, 2, 2.75, 3.5] + BETA_TT[-0.15] * TT[10, 15, 20, 25, 30, 35] /
U(alt2) = Beta.dummy[1.0|0.5] * mode[1,2,3] + BETA_Cost[-1.1] Cost_1[0, 0.5, 1, 1.5, 2, 2.75, 3.5] + BETA_TT[-0.15] * TT[10, 15, 20, 25, 30, 35]
$


Here I have only one cost and one traveltime attribute that contains the levels of all modes, and then use constraints to limit them to the appropriate mode. See if this works for you.

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

Re: Unlabeled mode choice experiment with "mode" attribute

Postby evanthiaK » Wed Mar 27, 2019 6:28 pm

Thank you for the clarifications and the suggestions Michiel! I will try them out.

Best,
Eva
evanthiaK
 
Posts: 8
Joined: Tue Mar 26, 2019 12:46 am

Re: Unlabeled mode choice experiment with "mode" attribute

Postby evanthiaK » Wed Mar 27, 2019 11:49 pm

Hello again,

I went through it once more and I think that the method of "partial choice set design" is probably not the best approach for my unlabeled design. I could indeed treat my design as (imitate) a labeled design and generate candidate sets, but I would end up with a huge complete set to sample from, given that I have 12 possible modes for only 5 alternatives. I thought that the following syntax should be valid:

Code: Select all
Design
;alts = alt1*, alt2*, alt3*, alt4*, alt5*
;rows = 30
;block = 2
;eff=(mnl,d,fixed)
;alg=mfederov

;reject:
alt1.mode = alt1.mode,
alt2.mode = alt2.mode,
alt3.mode = alt3.mode,
alt4.mode = alt4.mode,
alt5.mode = alt5.mode,

alt1.mode = alt2.mode,
alt1.mode = alt3.mode,
alt1.mode = alt4.mode,
alt1.mode = alt5.mode,
alt2.mode = alt3.mode,
alt2.mode = alt4.mode,
alt2.mode = alt5.mode,
alt3.mode = alt4.mode,
alt3.mode = alt5.mode,
alt4.mode = alt5.mode

;require:
alt1.Cost_1 = 0.5 and alt1.Cost_3 = 1.5 and alt1.Cost_4 = 1,
alt2.Cost_1 = 0.5 and alt2.Cost_3 = 1.5 and alt2.Cost_4 = 1,
alt3.Cost_1 = 0.5 and alt3.Cost_3 = 1.5 and alt3.Cost_4 = 1,
alt4.Cost_1 = 0.5 and alt4.Cost_3 = 1.5 and alt4.Cost_4 = 1,
alt5.Cost_1 = 0.5 and alt5.Cost_3 = 1.5 and alt5.Cost_4 = 1,

alt1.Cost_1 = 1 and alt1.Cost_3 = 2 and alt1.Cost_4 = 1.5,
alt2.Cost_1 = 1 and alt2.Cost_3 = 2 and alt2.Cost_4 = 1.5,
alt3.Cost_1 = 1 and alt3.Cost_3 = 2 and alt3.Cost_4 = 1.5,
alt4.Cost_1 = 1 and alt4.Cost_3 = 2 and alt4.Cost_4 = 1.5,
alt5.Cost_1 = 1 and alt5.Cost_3 = 2 and alt5.Cost_4 = 1.5,

alt1.Cost_1 = 1.5 and alt1.Cost_3 = 2.75 and alt1.Cost_4 = 2,
alt2.Cost_1 = 1.5 and alt2.Cost_3 = 2.75 and alt2.Cost_4 = 2,
alt3.Cost_1 = 1.5 and alt3.Cost_3 = 2.75 and alt3.Cost_4 = 2,
alt4.Cost_1 = 1.5 and alt4.Cost_3 = 2.75 and alt4.Cost_4 = 2,
alt5.Cost_1 = 1.5 and alt5.Cost_3 = 2.75 and alt5.Cost_4 = 2,

alt1.Cost_1 = 2 and alt1.Cost_3 = 3.5 and alt1.Cost_4 = 2.5,
alt2.Cost_1 = 2 and alt2.Cost_3 = 3.5 and alt2.Cost_4 = 2.5,
alt3.Cost_1 = 2 and alt3.Cost_3 = 3.5 and alt3.Cost_4 = 2.5,
alt4.Cost_1 = 2 and alt4.Cost_3 = 3.5 and alt4.Cost_4 = 2.5,
alt5.Cost_1 = 2 and alt5.Cost_3 = 3.5 and alt5.Cost_4 = 2.5,

alt1.TT1_1 = 10 and alt1.TT1_3 = 10 and alt1.TT1_4 = 20 and alt1.TT1_5 = 20 and alt1.TT1_6 = 5 and alt1.TT2_7 = 5 and alt1.TT1_8 = 5 and alt1.TT2_9 = 5 and alt1.TT1_10 = 5 and alt1.TT2_11 = 5 and alt1.TT1_12 = 5,
alt2.TT1_1 = 10 and alt2.TT1_3 = 10 and alt2.TT1_4 = 20 and alt2.TT1_5 = 20 and alt2.TT1_6 = 5 and alt2.TT2_7 = 5 and alt2.TT1_8 = 5 and alt2.TT2_9 = 5 and alt2.TT1_10 = 5 and alt2.TT2_11 = 5 and alt2.TT1_12 = 5,
alt3.TT1_1 = 10 and alt3.TT1_3 = 10 and alt3.TT1_4 = 20 and alt3.TT1_5 = 20 and alt3.TT1_6 = 5 and alt3.TT2_7 = 5 and alt3.TT1_8 = 5 and alt3.TT2_9 = 5 and alt3.TT1_10 = 5 and alt3.TT2_11 = 5 and alt3.TT1_12 = 5,
alt4.TT1_1 = 10 and alt4.TT1_3 = 10 and alt4.TT1_4 = 20 and alt4.TT1_5 = 20 and alt4.TT1_6 = 5 and alt4.TT2_7 = 5 and alt4.TT1_8 = 5 and alt4.TT2_9 = 5 and alt4.TT1_10 = 5 and alt4.TT2_11 = 5 and alt4.TT1_12 = 5,
alt5.TT1_1 = 10 and alt5.TT1_3 = 10 and alt5.TT1_4 = 20 and alt5.TT1_5 = 20 and alt5.TT1_6 = 5 and alt5.TT2_7 = 5 and alt5.TT1_8 = 5 and alt5.TT2_9 = 5 and alt5.TT1_10 = 5 and alt5.TT2_11 = 5 and alt5.TT1_12 = 5,

alt1.TT1_1 = 15 and alt1.TT1_3 = 15 and alt1.TT1_4 = 20 and alt1.TT1_5 = 20 and alt1.TT1_6 = 7 and alt1.TT2_7 = 7 and alt1.TT1_8 = 7 and alt1.TT2_9 = 7 and alt1.TT1_10 = 7 and alt1.TT2_11 = 7 and alt1.TT1_12 = 7,
alt2.TT1_1 = 15 and alt2.TT1_3 = 15 and alt2.TT1_4 = 20 and alt2.TT1_5 = 25 and alt2.TT1_6 = 7 and alt2.TT2_7 = 7 and alt2.TT1_8 = 7 and alt2.TT2_9 = 7 and alt2.TT1_10 = 7 and alt2.TT2_11 = 7 and alt2.TT1_12 = 7,
alt3.TT1_1 = 15 and alt3.TT1_3 = 15 and alt3.TT1_4 = 20 and alt3.TT1_5 = 25 and alt3.TT1_6 = 7 and alt3.TT2_7 = 7 and alt3.TT1_8 = 7 and alt3.TT2_9 = 7 and alt3.TT1_10 = 7 and alt3.TT2_11 = 7 and alt3.TT1_12 = 7,
alt4.TT1_1 = 15 and alt4.TT1_3 = 15 and alt4.TT1_4 = 20 and alt4.TT1_5 = 25 and alt4.TT1_6 = 7 and alt4.TT2_7 = 7 and alt4.TT1_8 = 7 and alt4.TT2_9 = 7 and alt4.TT1_10 = 7 and alt4.TT2_11 = 7 and alt4.TT1_12 = 7,
alt5.TT1_1 = 15 and alt5.TT1_3 = 15 and alt5.TT1_4 = 20 and alt5.TT1_5 = 25 and alt5.TT1_6 = 7 and alt5.TT2_7 = 7 and alt5.TT1_8 = 7 and alt5.TT2_9 = 7 and alt5.TT1_10 = 7 and alt5.TT2_11 = 7 and alt5.TT1_12 = 7,

alt1.TT1_1 = 20 and alt1.TT1_3 = 20 and alt1.TT1_4 = 30 and alt1.TT1_5 = 30 and alt1.TT1_6 = 10 and alt1.TT2_7 = 10 and alt1.TT1_8 = 10 and alt1.TT2_9 = 10 and alt1.TT1_10 = 10 and alt1.TT2_11 = 10 and alt1.TT1_12 = 10,
alt2.TT1_1 = 20 and alt2.TT1_3 = 20 and alt2.TT1_4 = 30 and alt2.TT1_5 = 30 and alt2.TT1_6 = 10 and alt2.TT2_7 = 10 and alt2.TT1_8 = 10 and alt2.TT2_9 = 10 and alt2.TT1_10 = 10 and alt2.TT2_11 = 10 and alt2.TT1_12 = 10,
alt3.TT1_1 = 20 and alt3.TT1_3 = 20 and alt3.TT1_4 = 30 and alt3.TT1_5 = 30 and alt3.TT1_6 = 10 and alt3.TT2_7 = 10 and alt3.TT1_8 = 10 and alt3.TT2_9 = 10 and alt3.TT1_10 = 10 and alt3.TT2_11 = 10 and alt3.TT1_12 = 10,
alt4.TT1_1 = 20 and alt4.TT1_3 = 20 and alt4.TT1_4 = 30 and alt4.TT1_5 = 30 and alt4.TT1_6 = 10 and alt4.TT2_7 = 10 and alt4.TT1_8 = 10 and alt4.TT2_9 = 10 and alt4.TT1_10 = 10 and alt4.TT2_11 = 10 and alt4.TT1_12 = 10,
alt5.TT1_1 = 20 and alt5.TT1_3 = 20 and alt5.TT1_4 = 30 and alt5.TT1_5 = 30 and alt5.TT1_6 = 10 and alt5.TT2_7 = 10 and alt5.TT1_8 = 10 and alt5.TT2_9 = 10 and alt5.TT1_10 = 10 and alt5.TT2_11 = 10 and alt5.TT1_12 = 10,

alt1.TT1_1 = 25 and alt1.TT1_3 = 25 and alt1.TT1_4 = 35 and alt1.TT1_5 = 35 and alt1.TT1_6 = 12 and alt1.TT2_7 = 12 and alt1.TT1_8 = 12 and alt1.TT2_9 = 12 and alt1.TT1_10 = 12 and alt1.TT2_11 = 12 and alt1.TT1_12 = 12,
alt2.TT1_1 = 25 and alt2.TT1_3 = 25 and alt2.TT1_4 = 35 and alt2.TT1_5 = 35 and alt2.TT1_6 = 12 and alt2.TT2_7 = 12 and alt2.TT1_8 = 12 and alt2.TT2_9 = 12 and alt2.TT1_10 = 12 and alt2.TT2_11 = 12 and alt2.TT1_12 = 12,
alt3.TT1_1 = 25 and alt3.TT1_3 = 25 and alt3.TT1_4 = 35 and alt3.TT1_5 = 35 and alt3.TT1_6 = 12 and alt3.TT2_7 = 12 and alt3.TT1_8 = 12 and alt3.TT2_9 = 12 and alt3.TT1_10 = 12 and alt3.TT2_11 = 12 and alt3.TT1_12 = 12,
alt4.TT1_1 = 25 and alt4.TT1_3 = 25 and alt4.TT1_4 = 35 and alt4.TT1_5 = 35 and alt4.TT1_6 = 12 and alt4.TT2_7 = 12 and alt4.TT1_8 = 12 and alt4.TT2_9 = 12 and alt4.TT1_10 = 12 and alt4.TT2_11 = 12 and alt4.TT1_12 = 12,
alt5.TT1_1 = 25 and alt5.TT1_3 = 25 and alt5.TT1_4 = 35 and alt5.TT1_5 = 35 and alt5.TT1_6 = 12 and alt5.TT2_7 = 12 and alt5.TT1_8 = 12 and alt5.TT2_9 = 12 and alt5.TT1_10 = 12 and alt5.TT2_11 = 12 and alt5.TT1_12 = 12,

alt1.Res_3 = 0 and alt1.WaitT_3 < 15 and alt1.WaitT_4 < 15 and alt1.WaitT_7 < 15 and alt1.WaitT_9 < 15,
alt2.Res_3 = 0 and alt2.WaitT_3 < 15 and alt2.WaitT_4 < 15 and alt2.WaitT_7 < 15 and alt2.WaitT_9 < 15,
alt3.Res_3 = 0 and alt3.WaitT_3 < 15 and alt3.WaitT_4 < 15 and alt3.WaitT_7 < 15 and alt3.WaitT_9 < 15,
alt4.Res_3 = 0 and alt4.WaitT_3 < 15 and alt4.WaitT_4 < 15 and alt4.WaitT_7 < 15 and alt4.WaitT_9 < 15,
alt5.Res_3 = 0 and alt5.WaitT_3 < 15 and alt5.WaitT_4 < 15 and alt5.WaitT_7 < 15 and alt5.WaitT_9 < 15,

alt1.Res_3 = 1 and alt1.WaitT_3 > 5 and alt1.WaitT_4 > 5 and alt1.WaitT_7 > 5 and alt1.WaitT_9 > 5,
alt2.Res_3 = 1 and alt2.WaitT_3 > 5 and alt2.WaitT_4 > 5 and alt2.WaitT_7 > 5 and alt2.WaitT_9 > 5,
alt3.Res_3 = 1 and alt3.WaitT_3 > 5 and alt3.WaitT_4 > 5 and alt3.WaitT_7 > 5 and alt3.WaitT_9 > 5,
alt4.Res_3 = 1 and alt4.WaitT_3 > 5 and alt4.WaitT_4 > 5 and alt4.WaitT_7 > 5 and alt4.WaitT_9 > 5,
alt5.Res_3 = 1 and alt5.WaitT_3 > 5 and alt5.WaitT_4 > 5 and alt5.WaitT_7 > 5 and alt5.WaitT_9 > 5


;model:

U(alt1) = Beta.dummy[1|0.5|-0.1|1|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost_1[-1.1] * Cost_1[0.5, 1, 1.5, 2] * mode.dummy[1] + BETA_Cost_2 * Cost_2[0] * mode.dummy[2] + BETA_Cost_3 * Cost_3[1.5, 2, 2.75, 3.5] * mode.dummy[3] + BETA_Cost_4 * Cost_4[1, 1.5] * mode.dummy[4] + BETA_Cost_5 * Cost_5[1, 1.5] * mode.dummy[5] + BETA_Cost_6 * Cost_6[1, 1.5] * mode.dummy[6] + BETA_Cost_7 * Cost_7[1, 1.5] * mode.dummy[7] + BETA_Cost_8 * Cost_8[1, 1.5] * mode.dummy[8] + BETA_Cost_9 * Cost_9[1, 1.5] * mode.dummy[9] + BETA_Cost_10 * Cost_10[1, 1.5] * mode.dummy[10] + BETA_Cost_11 * Cost_11[1, 1.5] * mode.dummy[11] + BETA_Cost_12 * Cost_12[1, 1.5] * mode.dummy[12] + BETA_Res_1[1.1] * Res_1[0] * mode.dummy[1] + BETA_Res_2 * Res_2[0] * mode.dummy[2] + BETA_Res_3 * Res_3[0, 1] * mode.dummy[3] + BETA_Res_4 * Res_4[0, 1] * mode.dummy[4] + BETA_Res_5 * Res_5[0] * mode.dummy[5] + BETA_Res_6 * Res_6[0] * mode.dummy[6] + BETA_Res_7 * Res_7[0, 1] * mode.dummy[7] + BETA_Res_8 * Res_8[0] * mode.dummy[8] + BETA_Res_9 * Res_9[0, 1] * mode.dummy[9] + BETA_Res_10 * Res_10[0] * mode.dummy[10] + BETA_Res_11 * Res_11[0] * mode.dummy[11] + BETA_Res_12 * Res_12[0] * mode.dummy[12] + BETA_WaitT_1[-0.1] * WaitT_1[0] * mode.dummy[1] + BETA_WaitT_2 * WaitT_2[0] * mode.dummy[2] + BETA_WaitT_3 * WaitT_3[5, 10, 15, 20] * mode.dummy[3] + BETA_WaitT_4 * WaitT_4[5, 10, 15, 20] * mode.dummy[4] + BETA_WaitT_5 * WaitT_5[5, 10] * mode.dummy[5] + BETA_WaitT_6 * WaitT_6[5, 10] * mode.dummy[6] + BETA_WaitT_7 * WaitT_7[5, 10, 15, 20] * mode.dummy[7] + BETA_WaitT_8 * WaitT_8[5, 10] * mode.dummy[8] + BETA_WaitT_9 * WaitT_9[5, 10, 15, 20] * mode.dummy[9] + BETA_WaitT_10 * WaitT_10[5, 10] * mode.dummy[10] + BETA_WaitT_11 * WaitT_11[0] * mode.dummy[11] + BETA_WaitT_12 * WaitT_12[5, 10] * mode.dummy[12] + BETA_WalkT_1[-0.25] * WalkT_1[5, 10] * mode.dummy[1] + BETA_WalkT_2 * WalkT_2[2, 5] * mode.dummy[2] + BETA_WalkT_3 * WalkT_3[0] * mode.dummy[3] + BETA_WalkT_4 * WalkT_4[2, 5] * mode.dummy[4] + BETA_WalkT_5 * WalkT_5[10, 12] * mode.dummy[5] + BETA_WalkT_6 * WalkT_6[5, 7] * mode.dummy[6] + BETA_WalkT_7 * WalkT_7[5, 7] * mode.dummy[7] + BETA_WalkT_8 * WalkT_8[5, 7] * mode.dummy[8] + BETA_WalkT_9 * WalkT_9[0] * mode.dummy[9] + BETA_WalkT_10 * WalkT_10[5, 7] * mode.dummy[10] + BETA_WalkT_11 * WalkT_11[2, 5] * mode.dummy[11] + BETA_WalkT_12 * WalkT_12[5, 7] * mode.dummy[12] + BETA_TT1_1[-0.15] * TT1_1[10, 15, 20, 25] * mode.dummy[1] + BETA_TT1_2 * TT1_2[20, 25, 30, 35] * mode.dummy[2] + BETA_TT1_3 * TT1_3[10, 15, 20, 25] * mode.dummy[3] + BETA_TT1_4 * TT1_4[20, 25, 30, 35] * mode.dummy[4] + BETA_TT1_5 * TT1_5[5, 7, 10, 12] * mode.dummy[5] + BETA_TT1_6 * TT1_6[5, 7, 10, 12] * mode.dummy[6] + BETA_TT1_7 * TT1_7[3, 5] * mode.dummy[7] + BETA_TT1_8 * TT1_8[5, 7, 10, 12] * mode.dummy[8] + BETA_TT1_9 * TT1_9[3, 5] * mode.dummy[9] + BETA_TT1_10 * TT1_10[5, 7, 10, 12] * mode.dummy[10] + BETA_TT1_11 * TT1_11[3, 5] * mode.dummy[11] + BETA_TT1_12 * TT1_12[5, 7, 10, 12] * mode.dummy[12] + BETA_TT2_1[-0.15] * TT2_1[0] * mode.dummy[1] + BETA_TT2_2 * TT2_2[0] * mode.dummy[2] + BETA_TT2_3 * TT2_3[0] * mode.dummy[3] + BETA_TT2_4 * TT2_4[0] * mode.dummy[4] + BETA_TT2_5 * TT2_5[0] * mode.dummy[5] + BETA_TT2_6 * TT2_6[10, 12] * mode.dummy[6] + BETA_TT2_7 * TT2_7[5, 7, 10, 12] * mode.dummy[7] + BETA_TT2_8 * TT2_8[3, 5] * mode.dummy[8] + BETA_TT2_9 * TT2_9[5, 7, 10, 12] * mode.dummy[9] + BETA_TT2_10 * TT2_10[3, 5] * mode.dummy[10] + BETA_TT2_11 * TT2_11[5, 7, 10, 12] * mode.dummy[11] + BETA_TT2_12 * TT2_12[3, 5] * mode.dummy[12] + BETA_ExtraCost_1[-2] * ExtraCost_1[0, 1, 2, 5] * mode.dummy[1] + BETA_ExtraCost_2 * ExtraCost_2[0] * mode.dummy[2] + BETA_ExtraCost_3 * ExtraCost_3[0] * mode.dummy[3] + BETA_ExtraCost_4 * ExtraCost_4[0] * mode.dummy[4] + BETA_ExtraCost_5 * ExtraCost_5[0] * mode.dummy[5] + BETA_ExtraCost_6 * ExtraCost_6[0] * mode.dummy[6] + BETA_ExtraCost_7 * ExtraCost_7[0] * mode.dummy[7] + BETA_ExtraCost_8 * ExtraCost_8[0] * mode.dummy[8] + BETA_ExtraCost_9 * ExtraCost_9[0.5, 0.75] * mode.dummy[9] + BETA_ExtraCost_10 * ExtraCost_10[0.5, 0.75] * mode.dummy[10] + BETA_ExtraCost_11 * ExtraCost_11[0] * mode.dummy[11] + BETA_ExtraCost_12 * ExtraCost_12[0] * mode.dummy[12] + BETA_ExtraTime_1[-0.2] * ExtraTime_1[0] * mode.dummy[1] + BETA_ExtraTime_2 * ExtraTime_2[0] * mode.dummy[2] + BETA_ExtraTime_3 * ExtraTime_3[0] * mode.dummy[3] + BETA_ExtraTime_4 * ExtraTime_4[0] * mode.dummy[4] + BETA_ExtraTime_5 * ExtraTime_5[0] * mode.dummy[5] + BETA_ExtraTime_6 * ExtraTime_6[0] * mode.dummy[6] + BETA_ExtraTime_7 * ExtraTime_7[5, 10] * mode.dummy[7] + BETA_ExtraTime_8 * ExtraTime_8[5, 10] * mode.dummy[8] + BETA_ExtraTime_9 * ExtraTime_9[5, 10] * mode.dummy[9] + BETA_ExtraTime_10 * ExtraTime_10[5, 10] * mode.dummy[10] + BETA_ExtraTime_11 * ExtraTime_11[5, 10] * mode.dummy[11] + BETA_ExtraTime_12 * ExtraTime_12[0] * mode.dummy[12] + BETA_WorkSurf_1[1.1] * WorkSurf_1[0] * mode.dummy[1] + BETA_WorkSurf_2 * WorkSurf_2[0] * mode.dummy[2] + BETA_WorkSurf_3 * WorkSurf_3[0, 1] * mode.dummy[3] + BETA_WorkSurf_4 * WorkSurf_4[0] * mode.dummy[4] + BETA_WorkSurf_5 * WorkSurf_5[0] * mode.dummy[5] + BETA_WorkSurf_6 * WorkSurf_6[0] * mode.dummy[6] + BETA_WorkSurf_7 * WorkSurf_7[0] * mode.dummy[7] + BETA_WorkSurf_8 * WorkSurf_8[0] * mode.dummy[8] + BETA_WorkSurf_9 * WorkSurf_9[0, 1] * mode.dummy[9] + BETA_WorkSurf_10 * WorkSurf_10[0, 1] * mode.dummy[10] + BETA_WorkSurf_11 * WorkSurf_11[0] * mode.dummy[11] + BETA_WorkSurf_12 * WorkSurf_12[0] * mode.dummy[12] /

U(alt2) = Beta.dummy[1|0.5|-0.1|1|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost_1 * Cost_1 *  mode.dummy[1] + BETA_Cost_2 * Cost_2 *  mode.dummy[2] + BETA_Cost_3 * Cost_3 *  mode.dummy[3] + BETA_Cost_4 * Cost_4 *  mode.dummy[4] + BETA_Cost_5 * Cost_5 *  mode.dummy[5] + BETA_Cost_6 * Cost_6 *  mode.dummy[6] + BETA_Cost_7 * Cost_7 *  mode.dummy[7] + BETA_Cost_8 * Cost_8 *  mode.dummy[8] + BETA_Cost_9 * Cost_9 *  mode.dummy[9] + BETA_Cost_10 * Cost_10 *  mode.dummy[10] + BETA_Cost_11 * Cost_11 *  mode.dummy[11] + BETA_Cost_12 * Cost_12 *  mode.dummy[12] + BETA_Res_1 * Res_1 *  mode.dummy[1] + BETA_Res_2 * Res_2 *  mode.dummy[2] + BETA_Res_3 * Res_3 *  mode.dummy[3] + BETA_Res_4 * Res_4 *  mode.dummy[4] + BETA_Res_5 * Res_5 *  mode.dummy[5] + BETA_Res_6 * Res_6 *  mode.dummy[6] + BETA_Res_7 * Res_7 *  mode.dummy[7] + BETA_Res_8 * Res_8 *  mode.dummy[8] + BETA_Res_9 * Res_9 *  mode.dummy[9] + BETA_Res_10 * Res_10 *  mode.dummy[10] + BETA_Res_11 * Res_11 *  mode.dummy[11] + BETA_Res_12 * Res_12 *  mode.dummy[12] + BETA_WaitT_1 * WaitT_1 *  mode.dummy[1] + BETA_WaitT_2 * WaitT_2 *  mode.dummy[2] + BETA_WaitT_3 * WaitT_3 *  mode.dummy[3] + BETA_WaitT_4 * WaitT_4 *  mode.dummy[4] + BETA_WaitT_5 * WaitT_5 *  mode.dummy[5] + BETA_WaitT_6 * WaitT_6 *  mode.dummy[6] + BETA_WaitT_7 * WaitT_7 *  mode.dummy[7] + BETA_WaitT_8 * WaitT_8 *  mode.dummy[8] + BETA_WaitT_9 * WaitT_9 *  mode.dummy[9] + BETA_WaitT_10 * WaitT_10 *  mode.dummy[10] + BETA_WaitT_11 * WaitT_11 *  mode.dummy[11] + BETA_WaitT_12 * WaitT_12 *  mode.dummy[12] + BETA_WalkT_1 * WalkT_1 *  mode.dummy[1] + BETA_WalkT_2 * WalkT_2 *  mode.dummy[2] + BETA_WalkT_3 * WalkT_3 *  mode.dummy[3] + BETA_WalkT_4 * WalkT_4 *  mode.dummy[4] + BETA_WalkT_5 * WalkT_5 *  mode.dummy[5] + BETA_WalkT_6 * WalkT_6 *  mode.dummy[6] + BETA_WalkT_7 * WalkT_7 *  mode.dummy[7] + BETA_WalkT_8 * WalkT_8 *  mode.dummy[8] + BETA_WalkT_9 * WalkT_9 *  mode.dummy[9] + BETA_WalkT_10 * WalkT_10 *  mode.dummy[10] + BETA_WalkT_11 * WalkT_11 *  mode.dummy[11] + BETA_WalkT_12 * WalkT_12 *  mode.dummy[12] + BETA_TT1_1 * TT1_1 *  mode.dummy[1] + BETA_TT1_2 * TT1_2 *  mode.dummy[2] + BETA_TT1_3 * TT1_3 *  mode.dummy[3] + BETA_TT1_4 * TT1_4 *  mode.dummy[4] + BETA_TT1_5 * TT1_5 *  mode.dummy[5] + BETA_TT1_6 * TT1_6 *  mode.dummy[6] + BETA_TT1_7 * TT1_7 *  mode.dummy[7] + BETA_TT1_8 * TT1_8 *  mode.dummy[8] + BETA_TT1_9 * TT1_9 *  mode.dummy[9] + BETA_TT1_10 * TT1_10 *  mode.dummy[10] + BETA_TT1_11 * TT1_11 *  mode.dummy[11] + BETA_TT1_12 * TT1_12 *  mode.dummy[12] + BETA_TT2_1 * TT2_1 *  mode.dummy[1] + BETA_TT2_2 * TT2_2 *  mode.dummy[2] + BETA_TT2_3 * TT2_3 *  mode.dummy[3] + BETA_TT2_4 * TT2_4 *  mode.dummy[4] + BETA_TT2_5 * TT2_5 *  mode.dummy[5] + BETA_TT2_6 * TT2_6 *  mode.dummy[6] + BETA_TT2_7 * TT2_7 *  mode.dummy[7] + BETA_TT2_8 * TT2_8 *  mode.dummy[8] + BETA_TT2_9 * TT2_9 *  mode.dummy[9] + BETA_TT2_10 * TT2_10 *  mode.dummy[10] + BETA_TT2_11 * TT2_11 *  mode.dummy[11] + BETA_TT2_12 * TT2_12 *  mode.dummy[12] + BETA_ExtraCost_1 * ExtraCost_1 *  mode.dummy[1] + BETA_ExtraCost_2 * ExtraCost_2 *  mode.dummy[2] + BETA_ExtraCost_3 * ExtraCost_3 *  mode.dummy[3] + BETA_ExtraCost_4 * ExtraCost_4 *  mode.dummy[4] + BETA_ExtraCost_5 * ExtraCost_5 *  mode.dummy[5] + BETA_ExtraCost_6 * ExtraCost_6 *  mode.dummy[6] + BETA_ExtraCost_7 * ExtraCost_7 *  mode.dummy[7] + BETA_ExtraCost_8 * ExtraCost_8 *  mode.dummy[8] + BETA_ExtraCost_9 * ExtraCost_9 *  mode.dummy[9] + BETA_ExtraCost_10 * ExtraCost_10 *  mode.dummy[10] + BETA_ExtraCost_11 * ExtraCost_11 *  mode.dummy[11] + BETA_ExtraCost_12 * ExtraCost_12 *  mode.dummy[12] + BETA_ExtraTime_1 * ExtraTime_1 *  mode.dummy[1] + BETA_ExtraTime_2 * ExtraTime_2 *  mode.dummy[2] + BETA_ExtraTime_3 * ExtraTime_3 *  mode.dummy[3] + BETA_ExtraTime_4 * ExtraTime_4 *  mode.dummy[4] + BETA_ExtraTime_5 * ExtraTime_5 *  mode.dummy[5] + BETA_ExtraTime_6 * ExtraTime_6 *  mode.dummy[6] + BETA_ExtraTime_7 * ExtraTime_7 *  mode.dummy[7] + BETA_ExtraTime_8 * ExtraTime_8 *  mode.dummy[8] + BETA_ExtraTime_9 * ExtraTime_9 *  mode.dummy[9] + BETA_ExtraTime_10 * ExtraTime_10 *  mode.dummy[10] + BETA_ExtraTime_11 * ExtraTime_11 *  mode.dummy[11] + BETA_ExtraTime_12 * ExtraTime_12 *  mode.dummy[12] + BETA_WorkSurf_1 * WorkSurf_1 *  mode.dummy[1] + BETA_WorkSurf_2 * WorkSurf_2 *  mode.dummy[2] + BETA_WorkSurf_3 * WorkSurf_3 *  mode.dummy[3] + BETA_WorkSurf_4 * WorkSurf_4 *  mode.dummy[4] + BETA_WorkSurf_5 * WorkSurf_5 *  mode.dummy[5] + BETA_WorkSurf_6 * WorkSurf_6 *  mode.dummy[6] + BETA_WorkSurf_7 * WorkSurf_7 *  mode.dummy[7] + BETA_WorkSurf_8 * WorkSurf_8 *  mode.dummy[8] + BETA_WorkSurf_9 * WorkSurf_9 *  mode.dummy[9] + BETA_WorkSurf_10 * WorkSurf_10 *  mode.dummy[10] + BETA_WorkSurf_11 * WorkSurf_11 *  mode.dummy[11] + BETA_WorkSurf_12 * WorkSurf_12 *  mode.dummy[12] /

U(alt3) = Beta.dummy[1|0.5|-0.1|1|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost_1 * Cost_1 *  mode.dummy[1] + BETA_Cost_2 * Cost_2 *  mode.dummy[2] + BETA_Cost_3 * Cost_3 *  mode.dummy[3] + BETA_Cost_4 * Cost_4 *  mode.dummy[4] + BETA_Cost_5 * Cost_5 *  mode.dummy[5] + BETA_Cost_6 * Cost_6 *  mode.dummy[6] + BETA_Cost_7 * Cost_7 *  mode.dummy[7] + BETA_Cost_8 * Cost_8 *  mode.dummy[8] + BETA_Cost_9 * Cost_9 *  mode.dummy[9] + BETA_Cost_10 * Cost_10 *  mode.dummy[10] + BETA_Cost_11 * Cost_11 *  mode.dummy[11] + BETA_Cost_12 * Cost_12 *  mode.dummy[12] + BETA_Res_1 * Res_1 *  mode.dummy[1] + BETA_Res_2 * Res_2 *  mode.dummy[2] + BETA_Res_3 * Res_3 *  mode.dummy[3] + BETA_Res_4 * Res_4 *  mode.dummy[4] + BETA_Res_5 * Res_5 *  mode.dummy[5] + BETA_Res_6 * Res_6 *  mode.dummy[6] + BETA_Res_7 * Res_7 *  mode.dummy[7] + BETA_Res_8 * Res_8 *  mode.dummy[8] + BETA_Res_9 * Res_9 *  mode.dummy[9] + BETA_Res_10 * Res_10 *  mode.dummy[10] + BETA_Res_11 * Res_11 *  mode.dummy[11] + BETA_Res_12 * Res_12 *  mode.dummy[12] + BETA_WaitT_1 * WaitT_1 *  mode.dummy[1] + BETA_WaitT_2 * WaitT_2 *  mode.dummy[2] + BETA_WaitT_3 * WaitT_3 *  mode.dummy[3] + BETA_WaitT_4 * WaitT_4 *  mode.dummy[4] + BETA_WaitT_5 * WaitT_5 *  mode.dummy[5] + BETA_WaitT_6 * WaitT_6 *  mode.dummy[6] + BETA_WaitT_7 * WaitT_7 *  mode.dummy[7] + BETA_WaitT_8 * WaitT_8 *  mode.dummy[8] + BETA_WaitT_9 * WaitT_9 *  mode.dummy[9] + BETA_WaitT_10 * WaitT_10 *  mode.dummy[10] + BETA_WaitT_11 * WaitT_11 *  mode.dummy[11] + BETA_WaitT_12 * WaitT_12 *  mode.dummy[12] + BETA_WalkT_1 * WalkT_1 *  mode.dummy[1] + BETA_WalkT_2 * WalkT_2 *  mode.dummy[2] + BETA_WalkT_3 * WalkT_3 *  mode.dummy[3] + BETA_WalkT_4 * WalkT_4 *  mode.dummy[4] + BETA_WalkT_5 * WalkT_5 *  mode.dummy[5] + BETA_WalkT_6 * WalkT_6 *  mode.dummy[6] + BETA_WalkT_7 * WalkT_7 *  mode.dummy[7] + BETA_WalkT_8 * WalkT_8 *  mode.dummy[8] + BETA_WalkT_9 * WalkT_9 *  mode.dummy[9] + BETA_WalkT_10 * WalkT_10 *  mode.dummy[10] + BETA_WalkT_11 * WalkT_11 *  mode.dummy[11] + BETA_WalkT_12 * WalkT_12 *  mode.dummy[12] + BETA_TT1_1 * TT1_1 *  mode.dummy[1] + BETA_TT1_2 * TT1_2 *  mode.dummy[2] + BETA_TT1_3 * TT1_3 *  mode.dummy[3] + BETA_TT1_4 * TT1_4 *  mode.dummy[4] + BETA_TT1_5 * TT1_5 *  mode.dummy[5] + BETA_TT1_6 * TT1_6 *  mode.dummy[6] + BETA_TT1_7 * TT1_7 *  mode.dummy[7] + BETA_TT1_8 * TT1_8 *  mode.dummy[8] + BETA_TT1_9 * TT1_9 *  mode.dummy[9] + BETA_TT1_10 * TT1_10 *  mode.dummy[10] + BETA_TT1_11 * TT1_11 *  mode.dummy[11] + BETA_TT1_12 * TT1_12 *  mode.dummy[12] + BETA_TT2_1 * TT2_1 *  mode.dummy[1] + BETA_TT2_2 * TT2_2 *  mode.dummy[2] + BETA_TT2_3 * TT2_3 *  mode.dummy[3] + BETA_TT2_4 * TT2_4 *  mode.dummy[4] + BETA_TT2_5 * TT2_5 *  mode.dummy[5] + BETA_TT2_6 * TT2_6 *  mode.dummy[6] + BETA_TT2_7 * TT2_7 *  mode.dummy[7] + BETA_TT2_8 * TT2_8 *  mode.dummy[8] + BETA_TT2_9 * TT2_9 *  mode.dummy[9] + BETA_TT2_10 * TT2_10 *  mode.dummy[10] + BETA_TT2_11 * TT2_11 *  mode.dummy[11] + BETA_TT2_12 * TT2_12 *  mode.dummy[12] + BETA_ExtraCost_1 * ExtraCost_1 *  mode.dummy[1] + BETA_ExtraCost_2 * ExtraCost_2 *  mode.dummy[2] + BETA_ExtraCost_3 * ExtraCost_3 *  mode.dummy[3] + BETA_ExtraCost_4 * ExtraCost_4 *  mode.dummy[4] + BETA_ExtraCost_5 * ExtraCost_5 *  mode.dummy[5] + BETA_ExtraCost_6 * ExtraCost_6 *  mode.dummy[6] + BETA_ExtraCost_7 * ExtraCost_7 *  mode.dummy[7] + BETA_ExtraCost_8 * ExtraCost_8 *  mode.dummy[8] + BETA_ExtraCost_9 * ExtraCost_9 *  mode.dummy[9] + BETA_ExtraCost_10 * ExtraCost_10 *  mode.dummy[10] + BETA_ExtraCost_11 * ExtraCost_11 *  mode.dummy[11] + BETA_ExtraCost_12 * ExtraCost_12 *  mode.dummy[12] + BETA_ExtraTime_1 * ExtraTime_1 *  mode.dummy[1] + BETA_ExtraTime_2 * ExtraTime_2 *  mode.dummy[2] + BETA_ExtraTime_3 * ExtraTime_3 *  mode.dummy[3] + BETA_ExtraTime_4 * ExtraTime_4 *  mode.dummy[4] + BETA_ExtraTime_5 * ExtraTime_5 *  mode.dummy[5] + BETA_ExtraTime_6 * ExtraTime_6 *  mode.dummy[6] + BETA_ExtraTime_7 * ExtraTime_7 *  mode.dummy[7] + BETA_ExtraTime_8 * ExtraTime_8 *  mode.dummy[8] + BETA_ExtraTime_9 * ExtraTime_9 *  mode.dummy[9] + BETA_ExtraTime_10 * ExtraTime_10 *  mode.dummy[10] + BETA_ExtraTime_11 * ExtraTime_11 *  mode.dummy[11] + BETA_ExtraTime_12 * ExtraTime_12 *  mode.dummy[12] + BETA_WorkSurf_1 * WorkSurf_1 *  mode.dummy[1] + BETA_WorkSurf_2 * WorkSurf_2 *  mode.dummy[2] + BETA_WorkSurf_3 * WorkSurf_3 *  mode.dummy[3] + BETA_WorkSurf_4 * WorkSurf_4 *  mode.dummy[4] + BETA_WorkSurf_5 * WorkSurf_5 *  mode.dummy[5] + BETA_WorkSurf_6 * WorkSurf_6 *  mode.dummy[6] + BETA_WorkSurf_7 * WorkSurf_7 *  mode.dummy[7] + BETA_WorkSurf_8 * WorkSurf_8 *  mode.dummy[8] + BETA_WorkSurf_9 * WorkSurf_9 *  mode.dummy[9] + BETA_WorkSurf_10 * WorkSurf_10 *  mode.dummy[10] + BETA_WorkSurf_11 * WorkSurf_11 *  mode.dummy[11] + BETA_WorkSurf_12 * WorkSurf_12 *  mode.dummy[12] /

U(alt4) = Beta.dummy[1|0.5|-0.1|1|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost_1 * Cost_1 *  mode.dummy[1] + BETA_Cost_2 * Cost_2 *  mode.dummy[2] + BETA_Cost_3 * Cost_3 *  mode.dummy[3] + BETA_Cost_4 * Cost_4 *  mode.dummy[4] + BETA_Cost_5 * Cost_5 *  mode.dummy[5] + BETA_Cost_6 * Cost_6 *  mode.dummy[6] + BETA_Cost_7 * Cost_7 *  mode.dummy[7] + BETA_Cost_8 * Cost_8 *  mode.dummy[8] + BETA_Cost_9 * Cost_9 *  mode.dummy[9] + BETA_Cost_10 * Cost_10 *  mode.dummy[10] + BETA_Cost_11 * Cost_11 *  mode.dummy[11] + BETA_Cost_12 * Cost_12 *  mode.dummy[12] + BETA_Res_1 * Res_1 *  mode.dummy[1] + BETA_Res_2 * Res_2 *  mode.dummy[2] + BETA_Res_3 * Res_3 *  mode.dummy[3] + BETA_Res_4 * Res_4 *  mode.dummy[4] + BETA_Res_5 * Res_5 *  mode.dummy[5] + BETA_Res_6 * Res_6 *  mode.dummy[6] + BETA_Res_7 * Res_7 *  mode.dummy[7] + BETA_Res_8 * Res_8 *  mode.dummy[8] + BETA_Res_9 * Res_9 *  mode.dummy[9] + BETA_Res_10 * Res_10 *  mode.dummy[10] + BETA_Res_11 * Res_11 *  mode.dummy[11] + BETA_Res_12 * Res_12 *  mode.dummy[12] + BETA_WaitT_1 * WaitT_1 *  mode.dummy[1] + BETA_WaitT_2 * WaitT_2 *  mode.dummy[2] + BETA_WaitT_3 * WaitT_3 *  mode.dummy[3] + BETA_WaitT_4 * WaitT_4 *  mode.dummy[4] + BETA_WaitT_5 * WaitT_5 *  mode.dummy[5] + BETA_WaitT_6 * WaitT_6 *  mode.dummy[6] + BETA_WaitT_7 * WaitT_7 *  mode.dummy[7] + BETA_WaitT_8 * WaitT_8 *  mode.dummy[8] + BETA_WaitT_9 * WaitT_9 *  mode.dummy[9] + BETA_WaitT_10 * WaitT_10 *  mode.dummy[10] + BETA_WaitT_11 * WaitT_11 *  mode.dummy[11] + BETA_WaitT_12 * WaitT_12 *  mode.dummy[12] + BETA_WalkT_1 * WalkT_1 *  mode.dummy[1] + BETA_WalkT_2 * WalkT_2 *  mode.dummy[2] + BETA_WalkT_3 * WalkT_3 *  mode.dummy[3] + BETA_WalkT_4 * WalkT_4 *  mode.dummy[4] + BETA_WalkT_5 * WalkT_5 *  mode.dummy[5] + BETA_WalkT_6 * WalkT_6 *  mode.dummy[6] + BETA_WalkT_7 * WalkT_7 *  mode.dummy[7] + BETA_WalkT_8 * WalkT_8 *  mode.dummy[8] + BETA_WalkT_9 * WalkT_9 *  mode.dummy[9] + BETA_WalkT_10 * WalkT_10 *  mode.dummy[10] + BETA_WalkT_11 * WalkT_11 *  mode.dummy[11] + BETA_WalkT_12 * WalkT_12 *  mode.dummy[12] + BETA_TT1_1 * TT1_1 *  mode.dummy[1] + BETA_TT1_2 * TT1_2 *  mode.dummy[2] + BETA_TT1_3 * TT1_3 *  mode.dummy[3] + BETA_TT1_4 * TT1_4 *  mode.dummy[4] + BETA_TT1_5 * TT1_5 *  mode.dummy[5] + BETA_TT1_6 * TT1_6 *  mode.dummy[6] + BETA_TT1_7 * TT1_7 *  mode.dummy[7] + BETA_TT1_8 * TT1_8 *  mode.dummy[8] + BETA_TT1_9 * TT1_9 *  mode.dummy[9] + BETA_TT1_10 * TT1_10 *  mode.dummy[10] + BETA_TT1_11 * TT1_11 *  mode.dummy[11] + BETA_TT1_12 * TT1_12 *  mode.dummy[12] + BETA_TT2_1 * TT2_1 *  mode.dummy[1] + BETA_TT2_2 * TT2_2 *  mode.dummy[2] + BETA_TT2_3 * TT2_3 *  mode.dummy[3] + BETA_TT2_4 * TT2_4 *  mode.dummy[4] + BETA_TT2_5 * TT2_5 *  mode.dummy[5] + BETA_TT2_6 * TT2_6 *  mode.dummy[6] + BETA_TT2_7 * TT2_7 *  mode.dummy[7] + BETA_TT2_8 * TT2_8 *  mode.dummy[8] + BETA_TT2_9 * TT2_9 *  mode.dummy[9] + BETA_TT2_10 * TT2_10 *  mode.dummy[10] + BETA_TT2_11 * TT2_11 *  mode.dummy[11] + BETA_TT2_12 * TT2_12 *  mode.dummy[12] + BETA_ExtraCost_1 * ExtraCost_1 *  mode.dummy[1] + BETA_ExtraCost_2 * ExtraCost_2 *  mode.dummy[2] + BETA_ExtraCost_3 * ExtraCost_3 *  mode.dummy[3] + BETA_ExtraCost_4 * ExtraCost_4 *  mode.dummy[4] + BETA_ExtraCost_5 * ExtraCost_5 *  mode.dummy[5] + BETA_ExtraCost_6 * ExtraCost_6 *  mode.dummy[6] + BETA_ExtraCost_7 * ExtraCost_7 *  mode.dummy[7] + BETA_ExtraCost_8 * ExtraCost_8 *  mode.dummy[8] + BETA_ExtraCost_9 * ExtraCost_9 *  mode.dummy[9] + BETA_ExtraCost_10 * ExtraCost_10 *  mode.dummy[10] + BETA_ExtraCost_11 * ExtraCost_11 *  mode.dummy[11] + BETA_ExtraCost_12 * ExtraCost_12 *  mode.dummy[12] + BETA_ExtraTime_1 * ExtraTime_1 *  mode.dummy[1] + BETA_ExtraTime_2 * ExtraTime_2 *  mode.dummy[2] + BETA_ExtraTime_3 * ExtraTime_3 *  mode.dummy[3] + BETA_ExtraTime_4 * ExtraTime_4 *  mode.dummy[4] + BETA_ExtraTime_5 * ExtraTime_5 *  mode.dummy[5] + BETA_ExtraTime_6 * ExtraTime_6 *  mode.dummy[6] + BETA_ExtraTime_7 * ExtraTime_7 *  mode.dummy[7] + BETA_ExtraTime_8 * ExtraTime_8 *  mode.dummy[8] + BETA_ExtraTime_9 * ExtraTime_9 *  mode.dummy[9] + BETA_ExtraTime_10 * ExtraTime_10 *  mode.dummy[10] + BETA_ExtraTime_11 * ExtraTime_11 *  mode.dummy[11] + BETA_ExtraTime_12 * ExtraTime_12 *  mode.dummy[12] + BETA_WorkSurf_1 * WorkSurf_1 *  mode.dummy[1] + BETA_WorkSurf_2 * WorkSurf_2 *  mode.dummy[2] + BETA_WorkSurf_3 * WorkSurf_3 *  mode.dummy[3] + BETA_WorkSurf_4 * WorkSurf_4 *  mode.dummy[4] + BETA_WorkSurf_5 * WorkSurf_5 *  mode.dummy[5] + BETA_WorkSurf_6 * WorkSurf_6 *  mode.dummy[6] + BETA_WorkSurf_7 * WorkSurf_7 *  mode.dummy[7] + BETA_WorkSurf_8 * WorkSurf_8 *  mode.dummy[8] + BETA_WorkSurf_9 * WorkSurf_9 *  mode.dummy[9] + BETA_WorkSurf_10 * WorkSurf_10 *  mode.dummy[10] + BETA_WorkSurf_11 * WorkSurf_11 *  mode.dummy[11] + BETA_WorkSurf_12 * WorkSurf_12 *  mode.dummy[12] /

U(alt5) = Beta.dummy[1|0.5|-0.1|1|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost_1 * Cost_1 *  mode.dummy[1] + BETA_Cost_2 * Cost_2 *  mode.dummy[2] + BETA_Cost_3 * Cost_3 *  mode.dummy[3] + BETA_Cost_4 * Cost_4 *  mode.dummy[4] + BETA_Cost_5 * Cost_5 *  mode.dummy[5] + BETA_Cost_6 * Cost_6 *  mode.dummy[6] + BETA_Cost_7 * Cost_7 *  mode.dummy[7] + BETA_Cost_8 * Cost_8 *  mode.dummy[8] + BETA_Cost_9 * Cost_9 *  mode.dummy[9] + BETA_Cost_10 * Cost_10 *  mode.dummy[10] + BETA_Cost_11 * Cost_11 *  mode.dummy[11] + BETA_Cost_12 * Cost_12 *  mode.dummy[12] + BETA_Res_1 * Res_1 *  mode.dummy[1] + BETA_Res_2 * Res_2 *  mode.dummy[2] + BETA_Res_3 * Res_3 *  mode.dummy[3] + BETA_Res_4 * Res_4 *  mode.dummy[4] + BETA_Res_5 * Res_5 *  mode.dummy[5] + BETA_Res_6 * Res_6 *  mode.dummy[6] + BETA_Res_7 * Res_7 *  mode.dummy[7] + BETA_Res_8 * Res_8 *  mode.dummy[8] + BETA_Res_9 * Res_9 *  mode.dummy[9] + BETA_Res_10 * Res_10 *  mode.dummy[10] + BETA_Res_11 * Res_11 *  mode.dummy[11] + BETA_Res_12 * Res_12 *  mode.dummy[12] + BETA_WaitT_1 * WaitT_1 *  mode.dummy[1] + BETA_WaitT_2 * WaitT_2 *  mode.dummy[2] + BETA_WaitT_3 * WaitT_3 *  mode.dummy[3] + BETA_WaitT_4 * WaitT_4 *  mode.dummy[4] + BETA_WaitT_5 * WaitT_5 *  mode.dummy[5] + BETA_WaitT_6 * WaitT_6 *  mode.dummy[6] + BETA_WaitT_7 * WaitT_7 *  mode.dummy[7] + BETA_WaitT_8 * WaitT_8 *  mode.dummy[8] + BETA_WaitT_9 * WaitT_9 *  mode.dummy[9] + BETA_WaitT_10 * WaitT_10 *  mode.dummy[10] + BETA_WaitT_11 * WaitT_11 *  mode.dummy[11] + BETA_WaitT_12 * WaitT_12 *  mode.dummy[12] + BETA_WalkT_1 * WalkT_1 *  mode.dummy[1] + BETA_WalkT_2 * WalkT_2 *  mode.dummy[2] + BETA_WalkT_3 * WalkT_3 *  mode.dummy[3] + BETA_WalkT_4 * WalkT_4 *  mode.dummy[4] + BETA_WalkT_5 * WalkT_5 *  mode.dummy[5] + BETA_WalkT_6 * WalkT_6 *  mode.dummy[6] + BETA_WalkT_7 * WalkT_7 *  mode.dummy[7] + BETA_WalkT_8 * WalkT_8 *  mode.dummy[8] + BETA_WalkT_9 * WalkT_9 *  mode.dummy[9] + BETA_WalkT_10 * WalkT_10 *  mode.dummy[10] + BETA_WalkT_11 * WalkT_11 *  mode.dummy[11] + BETA_WalkT_12 * WalkT_12 *  mode.dummy[12] + BETA_TT1_1 * TT1_1 *  mode.dummy[1] + BETA_TT1_2 * TT1_2 *  mode.dummy[2] + BETA_TT1_3 * TT1_3 *  mode.dummy[3] + BETA_TT1_4 * TT1_4 *  mode.dummy[4] + BETA_TT1_5 * TT1_5 *  mode.dummy[5] + BETA_TT1_6 * TT1_6 *  mode.dummy[6] + BETA_TT1_7 * TT1_7 *  mode.dummy[7] + BETA_TT1_8 * TT1_8 *  mode.dummy[8] + BETA_TT1_9 * TT1_9 *  mode.dummy[9] + BETA_TT1_10 * TT1_10 *  mode.dummy[10] + BETA_TT1_11 * TT1_11 *  mode.dummy[11] + BETA_TT1_12 * TT1_12 *  mode.dummy[12] + BETA_TT2_1 * TT2_1 *  mode.dummy[1] + BETA_TT2_2 * TT2_2 *  mode.dummy[2] + BETA_TT2_3 * TT2_3 *  mode.dummy[3] + BETA_TT2_4 * TT2_4 *  mode.dummy[4] + BETA_TT2_5 * TT2_5 *  mode.dummy[5] + BETA_TT2_6 * TT2_6 *  mode.dummy[6] + BETA_TT2_7 * TT2_7 *  mode.dummy[7] + BETA_TT2_8 * TT2_8 *  mode.dummy[8] + BETA_TT2_9 * TT2_9 *  mode.dummy[9] + BETA_TT2_10 * TT2_10 *  mode.dummy[10] + BETA_TT2_11 * TT2_11 *  mode.dummy[11] + BETA_TT2_12 * TT2_12 *  mode.dummy[12] + BETA_ExtraCost_1 * ExtraCost_1 *  mode.dummy[1] + BETA_ExtraCost_2 * ExtraCost_2 *  mode.dummy[2] + BETA_ExtraCost_3 * ExtraCost_3 *  mode.dummy[3] + BETA_ExtraCost_4 * ExtraCost_4 *  mode.dummy[4] + BETA_ExtraCost_5 * ExtraCost_5 *  mode.dummy[5] + BETA_ExtraCost_6 * ExtraCost_6 *  mode.dummy[6] + BETA_ExtraCost_7 * ExtraCost_7 *  mode.dummy[7] + BETA_ExtraCost_8 * ExtraCost_8 *  mode.dummy[8] + BETA_ExtraCost_9 * ExtraCost_9 *  mode.dummy[9] + BETA_ExtraCost_10 * ExtraCost_10 *  mode.dummy[10] + BETA_ExtraCost_11 * ExtraCost_11 *  mode.dummy[11] + BETA_ExtraCost_12 * ExtraCost_12 *  mode.dummy[12] + BETA_ExtraTime_1 * ExtraTime_1 *  mode.dummy[1] + BETA_ExtraTime_2 * ExtraTime_2 *  mode.dummy[2] + BETA_ExtraTime_3 * ExtraTime_3 *  mode.dummy[3] + BETA_ExtraTime_4 * ExtraTime_4 *  mode.dummy[4] + BETA_ExtraTime_5 * ExtraTime_5 *  mode.dummy[5] + BETA_ExtraTime_6 * ExtraTime_6 *  mode.dummy[6] + BETA_ExtraTime_7 * ExtraTime_7 *  mode.dummy[7] + BETA_ExtraTime_8 * ExtraTime_8 *  mode.dummy[8] + BETA_ExtraTime_9 * ExtraTime_9 *  mode.dummy[9] + BETA_ExtraTime_10 * ExtraTime_10 *  mode.dummy[10] + BETA_ExtraTime_11 * ExtraTime_11 *  mode.dummy[11] + BETA_ExtraTime_12 * ExtraTime_12 *  mode.dummy[12] + BETA_WorkSurf_1 * WorkSurf_1 *  mode.dummy[1] + BETA_WorkSurf_2 * WorkSurf_2 *  mode.dummy[2] + BETA_WorkSurf_3 * WorkSurf_3 *  mode.dummy[3] + BETA_WorkSurf_4 * WorkSurf_4 *  mode.dummy[4] + BETA_WorkSurf_5 * WorkSurf_5 *  mode.dummy[5] + BETA_WorkSurf_6 * WorkSurf_6 *  mode.dummy[6] + BETA_WorkSurf_7 * WorkSurf_7 *  mode.dummy[7] + BETA_WorkSurf_8 * WorkSurf_8 *  mode.dummy[8] + BETA_WorkSurf_9 * WorkSurf_9 *  mode.dummy[9] + BETA_WorkSurf_10 * WorkSurf_10 *  mode.dummy[10] + BETA_WorkSurf_11 * WorkSurf_11 *  mode.dummy[11] + BETA_WorkSurf_12 * WorkSurf_12 *  mode.dummy[12]

$   


but given the constraints and complexity that I have I get the following
Error: There were problems generating a fractional factorial of choice tasks. For the modified federov algorithm, increasing the number of candidates might assist.

Any suggestion regarding this issue would be great. I had to increase the rows to 30 as there were not enough dof (which is also a problem).

Thank you in advance!
Eva

PS: At this point I am using Ngene to generate my pre-test (so that I don't do it manually), eventually I will have more appropriate priors than the ones I assumed here.
evanthiaK
 
Posts: 8
Joined: Tue Mar 26, 2019 12:46 am

Re: Unlabeled mode choice experiment with "mode" attribute

Postby Michiel Bliemer » Thu Mar 28, 2019 7:50 am

I notice that you reverted back to your original syntax, which I think is problematic because you are creating a very large number of attributes, which also requires a very large number of constraints. This makes it difficult for me to see what is going on, especially since a large number of attributes requires a huge factorial design. My syntax was much simpler and would allow you do to what you want since your alternatives are unlabelled and you do not need alternative-specific parameters except for the mode dummy. Is there a reason why you cannot specify the utility functions in the way I did? My syntax also requires a much lower dof than yours.

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

Re: Unlabeled mode choice experiment with "mode" attribute

Postby evanthiaK » Thu Mar 28, 2019 6:25 pm

Thank you for the reply Michiel! I will take a look at it again. Initially I misunderstood and thought I would need to combine your proposed syntax with the "partial choice set design", but it is not the case. In your syntax though, I would still need to interact the mode.dummy with each attribute right? Or am I missing something? I will try it now.
evanthiaK
 
Posts: 8
Joined: Tue Mar 26, 2019 12:46 am

Re: Unlabeled mode choice experiment with "mode" attribute

Postby Michiel Bliemer » Fri Mar 29, 2019 8:53 am

No in my syntax you do not need to interact with the mode dummy since your time and cost coefficients are generic (as usual in an unlabelled experiment). It is not a problem that the time and cost attributes are different. If your time and cost coefficient are different, then you would need the mode dummy interaction.

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

Re: Unlabeled mode choice experiment with "mode" attribute

Postby evanthiaK » Fri Mar 29, 2019 5:43 pm

It is my mistake, because I have in mind that I want to switch to alt. specific parameters eventually (keeping the code generic to be able to make the switch easily). But this will not work with this syntax. I am trying your suggestion now to see if I can get a first result. For alt. spec. params I am afraid I cannot avoid my complicated version. Thank you very much for your prompt replies!
evanthiaK
 
Posts: 8
Joined: Tue Mar 26, 2019 12:46 am

Re: Unlabeled mode choice experiment with "mode" attribute

Postby evanthiaK » Fri Mar 29, 2019 9:16 pm

Hello again,

1) For the "simplified" version of the syntax I get the same error as before:

Error: There were problems generating a fractional factorial of choice tasks. For the modified federov algorithm, increasing the number of candidates might assist.

Code: Select all
Design
;alts = alt1*, alt2*, alt3*, alt4*, alt5*
;rows = 16
;block = 2
;eff=(mnl,d,fixed)
;alg=mfederov

;reject:
alt1.mode = alt1.mode,
alt2.mode = alt2.mode,
alt3.mode = alt3.mode,
alt4.mode = alt4.mode,
alt5.mode = alt5.mode,
alt1.mode = alt2.mode,
alt1.mode = alt3.mode,
alt1.mode = alt4.mode,
alt1.mode = alt5.mode,
alt2.mode = alt3.mode,
alt2.mode = alt4.mode,
alt2.mode = alt5.mode,
alt3.mode = alt4.mode,
alt3.mode = alt5.mode,
alt4.mode = alt5.mode,

alt1.mode = 1 and alt1.cost = 0,
alt1.mode = 1 and alt1.cost > 2,
alt1.mode = 2 and alt1.cost <> 0,
alt1.mode = 3 and alt1.cost < 1.5,
alt1.mode = 3 and alt1.cost = 2.5,
alt1.mode = 4 and alt1.cost < 1,
alt1.mode = 4 and alt1.cost > 2.5,
alt1.mode = 5 and alt1.cost < 1,
alt1.mode = 5 and alt1.cost > 2.5,
alt1.mode = 6 and alt1.cost < 1,
alt1.mode = 6 and alt1.cost > 2.5,
alt1.mode = 7 and alt1.cost < 1,
alt1.mode = 7 and alt1.cost > 2.5,
alt1.mode = 8 and alt1.cost < 1,
alt1.mode = 8 and alt1.cost > 2.5,
alt1.mode = 9 and alt1.cost < 1,
alt1.mode = 9 and alt1.cost > 2.5,
alt1.mode = 10 and alt1.cost < 1,
alt1.mode = 10 and alt1.cost > 2.5,
alt1.mode = 11 and alt1.cost < 1,
alt1.mode = 11 and alt1.cost > 2.5,
alt1.mode = 12 and alt1.cost < 1,
alt1.mode = 12 and alt1.cost > 2.5,
alt2.mode = 1 and alt2.cost = 0,
alt2.mode = 1 and alt2.cost > 2,
alt2.mode = 2 and alt2.cost <> 0,
alt2.mode = 3 and alt2.cost < 1.5,
alt2.mode = 3 and alt2.cost = 2.5,
alt2.mode = 4 and alt2.cost < 1,
alt2.mode = 4 and alt2.cost > 2.5,
alt2.mode = 5 and alt2.cost < 1,
alt2.mode = 5 and alt2.cost > 2.5,
alt2.mode = 6 and alt2.cost < 1,
alt2.mode = 6 and alt2.cost > 2.5,
alt2.mode = 7 and alt2.cost < 1,
alt2.mode = 7 and alt2.cost > 2.5,
alt2.mode = 8 and alt2.cost < 1,
alt2.mode = 8 and alt2.cost > 2.5,
alt2.mode = 9 and alt2.cost < 1,
alt2.mode = 9 and alt2.cost > 2.5,
alt2.mode = 10 and alt2.cost < 1,
alt2.mode = 10 and alt2.cost > 2.5,
alt2.mode = 11 and alt2.cost < 1,
alt2.mode = 11 and alt2.cost > 2.5,
alt2.mode = 12 and alt2.cost < 1,
alt2.mode = 12 and alt2.cost > 2.5,
alt3.mode = 1 and alt3.cost = 0,
alt3.mode = 1 and alt3.cost > 2,
alt3.mode = 2 and alt3.cost <> 0,
alt3.mode = 3 and alt3.cost < 1.5,
alt3.mode = 3 and alt3.cost = 2.5,
alt3.mode = 4 and alt3.cost < 1,
alt3.mode = 4 and alt3.cost > 2.5,
alt3.mode = 5 and alt3.cost < 1,
alt3.mode = 5 and alt3.cost > 2.5,
alt3.mode = 6 and alt3.cost < 1,
alt3.mode = 6 and alt3.cost > 2.5,
alt3.mode = 7 and alt3.cost < 1,
alt3.mode = 7 and alt3.cost > 2.5,
alt3.mode = 8 and alt3.cost < 1,
alt3.mode = 8 and alt3.cost > 2.5,
alt3.mode = 9 and alt3.cost < 1,
alt3.mode = 9 and alt3.cost > 2.5,
alt3.mode = 10 and alt3.cost < 1,
alt3.mode = 10 and alt3.cost > 2.5,
alt3.mode = 11 and alt3.cost < 1,
alt3.mode = 11 and alt3.cost > 2.5,
alt3.mode = 12 and alt3.cost < 1,
alt3.mode = 12 and alt3.cost > 2.5,
alt4.mode = 1 and alt4.cost = 0,
alt4.mode = 1 and alt4.cost > 2,
alt4.mode = 2 and alt4.cost <> 0,
alt4.mode = 3 and alt4.cost < 1.5,
alt4.mode = 3 and alt4.cost = 2.5,
alt4.mode = 4 and alt4.cost < 1,
alt4.mode = 4 and alt4.cost > 2.5,
alt4.mode = 5 and alt4.cost < 1,
alt4.mode = 5 and alt4.cost > 2.5,
alt4.mode = 6 and alt4.cost < 1,
alt4.mode = 6 and alt4.cost > 2.5,
alt4.mode = 7 and alt4.cost < 1,
alt4.mode = 7 and alt4.cost > 2.5,
alt4.mode = 8 and alt4.cost < 1,
alt4.mode = 8 and alt4.cost > 2.5,
alt4.mode = 9 and alt4.cost < 1,
alt4.mode = 9 and alt4.cost > 2.5,
alt4.mode = 10 and alt4.cost < 1,
alt4.mode = 10 and alt4.cost > 2.5,
alt4.mode = 11 and alt4.cost < 1,
alt4.mode = 11 and alt4.cost > 2.5,
alt4.mode = 12 and alt4.cost < 1,
alt4.mode = 12 and alt4.cost > 2.5,
alt5.mode = 1 and alt5.cost = 0,
alt5.mode = 1 and alt5.cost > 2,
alt5.mode = 2 and alt5.cost <> 0,
alt5.mode = 3 and alt5.cost < 1.5,
alt5.mode = 3 and alt5.cost = 2.5,
alt5.mode = 4 and alt5.cost < 1,
alt5.mode = 4 and alt5.cost > 2.5,
alt5.mode = 5 and alt5.cost < 1,
alt5.mode = 5 and alt5.cost > 2.5,
alt5.mode = 6 and alt5.cost < 1,
alt5.mode = 6 and alt5.cost > 2.5,
alt5.mode = 7 and alt5.cost < 1,
alt5.mode = 7 and alt5.cost > 2.5,
alt5.mode = 8 and alt5.cost < 1,
alt5.mode = 8 and alt5.cost > 2.5,
alt5.mode = 9 and alt5.cost < 1,
alt5.mode = 9 and alt5.cost > 2.5,
alt5.mode = 10 and alt5.cost < 1,
alt5.mode = 10 and alt5.cost > 2.5,
alt5.mode = 11 and alt5.cost < 1,
alt5.mode = 11 and alt5.cost > 2.5,
alt5.mode = 12 and alt5.cost < 1,
alt5.mode = 12 and alt5.cost > 2.5,

alt1.mode = 1 and alt1.Res = 1,
alt1.mode = 2 and alt1.Res = 1,
alt1.mode = 5 and alt1.Res = 1,
alt1.mode = 6 and alt1.Res = 1,
alt1.mode = 8 and alt1.Res = 1,
alt1.mode = 10 and alt1.Res = 1,
alt1.mode = 11 and alt1.Res = 1,
alt1.mode = 12 and alt1.Res = 1,
alt2.mode = 1 and alt2.Res = 1,
alt2.mode = 2 and alt2.Res = 1,
alt2.mode = 5 and alt2.Res = 1,
alt2.mode = 6 and alt2.Res = 1,
alt2.mode = 8 and alt2.Res = 1,
alt2.mode = 10 and alt2.Res = 1,
alt2.mode = 11 and alt2.Res = 1,
alt2.mode = 12 and alt2.Res = 1,
alt3.mode = 1 and alt3.Res = 1,
alt3.mode = 2 and alt3.Res = 1,
alt3.mode = 5 and alt3.Res = 1,
alt3.mode = 6 and alt3.Res = 1,
alt3.mode = 8 and alt3.Res = 1,
alt3.mode = 10 and alt3.Res = 1,
alt3.mode = 11 and alt3.Res = 1,
alt3.mode = 12 and alt3.Res = 1,
alt4.mode = 1 and alt4.Res = 1,
alt4.mode = 2 and alt4.Res = 1,
alt4.mode = 5 and alt4.Res = 1,
alt4.mode = 6 and alt4.Res = 1,
alt4.mode = 8 and alt4.Res = 1,
alt4.mode = 10 and alt4.Res = 1,
alt4.mode = 11 and alt4.Res = 1,
alt4.mode = 12 and alt4.Res = 1,
alt5.mode = 1 and alt5.Res = 1,
alt5.mode = 2 and alt5.Res = 1,
alt5.mode = 5 and alt5.Res = 1,
alt5.mode = 6 and alt5.Res = 1,
alt5.mode = 8 and alt5.Res = 1,
alt5.mode = 10 and alt5.Res = 1,
alt5.mode = 11 and alt5.Res = 1,
alt5.mode = 12 and alt5.Res = 1,

alt1.mode = 1 and alt1.WaitT <> 0,
alt1.mode = 2 and alt1.WaitT <> 0,
alt1.mode = 5 and alt1.WaitT > 10,
alt1.mode = 6 and alt1.WaitT > 10,
alt1.mode = 8 and alt1.WaitT > 10,
alt1.mode = 10 and alt1.WaitT > 10,
alt1.mode = 11 and alt1.WaitT <> 0,
alt1.mode = 12 and alt1.WaitT > 10,
alt2.mode = 1 and alt2.WaitT <> 0,
alt2.mode = 2 and alt2.WaitT <> 0,
alt2.mode = 5 and alt2.WaitT > 10,
alt2.mode = 6 and alt2.WaitT > 10,
alt2.mode = 8 and alt2.WaitT > 10,
alt2.mode = 10 and alt2.WaitT > 10,
alt2.mode = 11 and alt2.WaitT <> 0,
alt2.mode = 12 and alt2.WaitT > 10,
alt3.mode = 1 and alt3.WaitT <> 0,
alt3.mode = 2 and alt3.WaitT <> 0,
alt3.mode = 5 and alt3.WaitT > 10,
alt3.mode = 6 and alt3.WaitT > 10,
alt3.mode = 8 and alt3.WaitT > 10,
alt3.mode = 10 and alt3.WaitT > 10,
alt3.mode = 11 and alt3.WaitT <> 0,
alt3.mode = 12 and alt3.WaitT > 10,
alt4.mode = 1 and alt4.WaitT <> 0,
alt4.mode = 2 and alt4.WaitT <> 0,
alt4.mode = 5 and alt4.WaitT > 10,
alt4.mode = 6 and alt4.WaitT > 10,
alt4.mode = 8 and alt4.WaitT > 10,
alt4.mode = 10 and alt4.WaitT > 10,
alt4.mode = 11 and alt4.WaitT <> 0,
alt4.mode = 12 and alt4.WaitT > 10,
alt5.mode = 1 and alt5.WaitT <> 0,
alt5.mode = 2 and alt5.WaitT <> 0,
alt5.mode = 5 and alt5.WaitT > 10,
alt5.mode = 6 and alt5.WaitT > 10,
alt5.mode = 8 and alt5.WaitT > 10,
alt5.mode = 10 and alt5.WaitT > 10,
alt5.mode = 11 and alt5.WaitT <> 0,
alt5.mode = 12 and alt5.WaitT > 10,

alt1.mode = 1 and alt1.WalkT < 5,
alt1.mode = 1 and alt1.WalkT > 10,
alt1.mode = 2 and alt1.WalkT > 5,
alt1.mode = 3 and alt1.WalkT <> 0,
alt1.mode = 4 and alt1.WalkT > 5,
alt1.mode = 5 and alt1.WalkT < 10,
alt1.mode = 6 and alt1.WalkT < 5,
alt1.mode = 6 and alt1.WalkT > 7,
alt1.mode = 7 and alt1.WalkT < 5,
alt1.mode = 7 and alt1.WalkT > 7,
alt1.mode = 8 and alt1.WalkT < 5,
alt1.mode = 8 and alt1.WalkT > 7,
alt1.mode = 9 and alt1.WalkT <> 0,
alt1.mode = 10 and alt1.WalkT < 5,
alt1.mode = 10 and alt1.WalkT > 7,
alt1.mode = 11 and alt1.WalkT > 5,
alt1.mode = 12 and alt1.WalkT < 5,
alt1.mode = 12 and alt1.WalkT > 7,
alt2.mode = 1 and alt2.WalkT < 5,
alt2.mode = 1 and alt2.WalkT > 10,
alt2.mode = 2 and alt2.WalkT > 5,
alt2.mode = 3 and alt2.WalkT <> 0,
alt2.mode = 4 and alt2.WalkT > 5,
alt2.mode = 5 and alt2.WalkT < 10,
alt2.mode = 6 and alt2.WalkT < 5,
alt2.mode = 6 and alt2.WalkT > 7,
alt2.mode = 7 and alt2.WalkT < 5,
alt2.mode = 7 and alt2.WalkT > 7,
alt2.mode = 8 and alt2.WalkT < 5,
alt2.mode = 8 and alt2.WalkT > 7,
alt2.mode = 9 and alt2.WalkT <> 0,
alt2.mode = 10 and alt2.WalkT < 5,
alt2.mode = 10 and alt2.WalkT > 7,
alt2.mode = 11 and alt2.WalkT > 5,
alt2.mode = 12 and alt2.WalkT < 5,
alt2.mode = 12 and alt2.WalkT > 7,
alt3.mode = 1 and alt3.WalkT < 5,
alt3.mode = 1 and alt3.WalkT > 10,
alt3.mode = 2 and alt3.WalkT > 5,
alt3.mode = 3 and alt3.WalkT <> 0,
alt3.mode = 4 and alt3.WalkT > 5,
alt3.mode = 5 and alt3.WalkT < 10,
alt3.mode = 6 and alt3.WalkT < 5,
alt3.mode = 6 and alt3.WalkT > 7,
alt3.mode = 7 and alt3.WalkT < 5,
alt3.mode = 7 and alt3.WalkT > 7,
alt3.mode = 8 and alt3.WalkT < 5,
alt3.mode = 8 and alt3.WalkT > 7,
alt3.mode = 9 and alt3.WalkT <> 0,
alt3.mode = 10 and alt3.WalkT < 5,
alt3.mode = 10 and alt3.WalkT > 7,
alt3.mode = 11 and alt3.WalkT > 5,
alt3.mode = 12 and alt3.WalkT < 5,
alt3.mode = 12 and alt3.WalkT > 7,
alt4.mode = 1 and alt4.WalkT < 5,
alt4.mode = 1 and alt4.WalkT > 10,
alt4.mode = 2 and alt4.WalkT > 5,
alt4.mode = 3 and alt4.WalkT <> 0,
alt4.mode = 4 and alt4.WalkT > 5,
alt4.mode = 5 and alt4.WalkT < 10,
alt4.mode = 6 and alt4.WalkT < 5,
alt4.mode = 6 and alt4.WalkT > 7,
alt4.mode = 7 and alt4.WalkT < 5,
alt4.mode = 7 and alt4.WalkT > 7,
alt4.mode = 8 and alt4.WalkT < 5,
alt4.mode = 8 and alt4.WalkT > 7,
alt4.mode = 9 and alt4.WalkT <> 0,
alt4.mode = 10 and alt4.WalkT < 5,
alt4.mode = 10 and alt4.WalkT > 7,
alt4.mode = 11 and alt4.WalkT > 5,
alt4.mode = 12 and alt4.WalkT < 5,
alt4.mode = 12 and alt4.WalkT > 7,
alt5.mode = 1 and alt5.WalkT < 5,
alt5.mode = 1 and alt5.WalkT > 10,
alt5.mode = 2 and alt5.WalkT > 5,
alt5.mode = 3 and alt5.WalkT <> 0,
alt5.mode = 4 and alt5.WalkT > 5,
alt5.mode = 5 and alt5.WalkT < 10,
alt5.mode = 6 and alt5.WalkT < 5,
alt5.mode = 6 and alt5.WalkT > 7,
alt5.mode = 7 and alt5.WalkT < 5,
alt5.mode = 7 and alt5.WalkT > 7,
alt5.mode = 8 and alt5.WalkT < 5,
alt5.mode = 8 and alt5.WalkT > 7,
alt5.mode = 9 and alt5.WalkT <> 0,
alt5.mode = 10 and alt5.WalkT < 5,
alt5.mode = 10 and alt5.WalkT > 7,
alt5.mode = 11 and alt5.WalkT > 5,
alt5.mode = 12 and alt5.WalkT < 5,
alt5.mode = 12 and alt5.WalkT > 7,

alt1.mode = 1 and alt1.TT1 < 10,
alt1.mode = 1 and alt1.TT1 = 12,
alt1.mode = 1 and alt1.TT1 > 25,
alt1.mode = 2 and alt1.TT1 < 20,
alt1.mode = 3 and alt1.TT1 < 10,
alt1.mode = 3 and alt1.TT1 = 12,
alt1.mode = 3 and alt1.TT1 > 25,
alt1.mode = 4 and alt1.TT1 < 20,
alt1.mode = 5 and alt1.TT1 < 5,
alt1.mode = 5 and alt1.TT1 > 12,
alt1.mode = 6 and alt1.TT1 < 5,
alt1.mode = 6 and alt1.TT1 > 12,
alt1.mode = 7 and alt1.TT1 > 5,
alt1.mode = 8 and alt1.TT1 < 5,
alt1.mode = 8 and alt1.TT1 > 12,
alt1.mode = 9 and alt1.TT1 > 5,
alt1.mode = 10 and alt1.TT1 < 5,
alt1.mode = 10 and alt1.TT1 > 12,
alt1.mode = 11 and alt1.TT1 > 5,
alt1.mode = 12 and alt1.TT1 < 5,
alt1.mode = 12 and alt1.TT1 > 12,
alt2.mode = 1 and alt2.TT1 < 10,
alt2.mode = 1 and alt2.TT1 = 12,
alt2.mode = 1 and alt2.TT1 > 25,
alt2.mode = 2 and alt2.TT1 < 20,
alt2.mode = 3 and alt2.TT1 < 10,
alt2.mode = 3 and alt2.TT1 = 12,
alt2.mode = 3 and alt2.TT1 > 25,
alt2.mode = 4 and alt2.TT1 < 20,
alt2.mode = 5 and alt2.TT1 < 5,
alt2.mode = 5 and alt2.TT1 > 12,
alt2.mode = 6 and alt2.TT1 < 5,
alt2.mode = 6 and alt2.TT1 > 12,
alt2.mode = 7 and alt2.TT1 > 5,
alt2.mode = 8 and alt2.TT1 < 5,
alt2.mode = 8 and alt2.TT1 > 12,
alt2.mode = 9 and alt2.TT1 > 5,
alt2.mode = 10 and alt2.TT1 < 5,
alt2.mode = 10 and alt2.TT1 > 12,
alt2.mode = 11 and alt2.TT1 > 5,
alt2.mode = 12 and alt2.TT1 < 5,
alt2.mode = 12 and alt2.TT1 > 12,
alt3.mode = 1 and alt3.TT1 < 10,
alt3.mode = 1 and alt3.TT1 = 12,
alt3.mode = 1 and alt3.TT1 > 25,
alt3.mode = 2 and alt3.TT1 < 20,
alt3.mode = 3 and alt3.TT1 < 10,
alt3.mode = 3 and alt3.TT1 = 12,
alt3.mode = 3 and alt3.TT1 > 25,
alt3.mode = 4 and alt3.TT1 < 20,
alt3.mode = 5 and alt3.TT1 < 5,
alt3.mode = 5 and alt3.TT1 > 12,
alt3.mode = 6 and alt3.TT1 < 5,
alt3.mode = 6 and alt3.TT1 > 12,
alt3.mode = 7 and alt3.TT1 > 5,
alt3.mode = 8 and alt3.TT1 < 5,
alt3.mode = 8 and alt3.TT1 > 12,
alt3.mode = 9 and alt3.TT1 > 5,
alt3.mode = 10 and alt3.TT1 < 5,
alt3.mode = 10 and alt3.TT1 > 12,
alt3.mode = 11 and alt3.TT1 > 5,
alt3.mode = 12 and alt3.TT1 < 5,
alt3.mode = 12 and alt3.TT1 > 12,
alt4.mode = 1 and alt4.TT1 < 10,
alt4.mode = 1 and alt4.TT1 = 12,
alt4.mode = 1 and alt4.TT1 > 25,
alt4.mode = 2 and alt4.TT1 < 20,
alt4.mode = 3 and alt4.TT1 < 10,
alt4.mode = 3 and alt4.TT1 = 12,
alt4.mode = 3 and alt4.TT1 > 25,
alt4.mode = 4 and alt4.TT1 < 20,
alt4.mode = 5 and alt4.TT1 < 5,
alt4.mode = 5 and alt4.TT1 > 12,
alt4.mode = 6 and alt4.TT1 < 5,
alt4.mode = 6 and alt4.TT1 > 12,
alt4.mode = 7 and alt4.TT1 > 5,
alt4.mode = 8 and alt4.TT1 < 5,
alt4.mode = 8 and alt4.TT1 > 12,
alt4.mode = 9 and alt4.TT1 > 5,
alt4.mode = 10 and alt4.TT1 < 5,
alt4.mode = 10 and alt4.TT1 > 12,
alt4.mode = 11 and alt4.TT1 > 5,
alt4.mode = 12 and alt4.TT1 < 5,
alt4.mode = 12 and alt4.TT1 > 12,
alt5.mode = 1 and alt5.TT1 < 10,
alt5.mode = 1 and alt5.TT1 = 12,
alt5.mode = 1 and alt5.TT1 > 25,
alt5.mode = 2 and alt5.TT1 < 20,
alt5.mode = 3 and alt5.TT1 < 10,
alt5.mode = 3 and alt5.TT1 = 12,
alt5.mode = 3 and alt5.TT1 > 25,
alt5.mode = 4 and alt5.TT1 < 20,
alt5.mode = 5 and alt5.TT1 < 5,
alt5.mode = 5 and alt5.TT1 > 12,
alt5.mode = 6 and alt5.TT1 < 5,
alt5.mode = 6 and alt5.TT1 > 12,
alt5.mode = 7 and alt5.TT1 > 5,
alt5.mode = 8 and alt5.TT1 < 5,
alt5.mode = 8 and alt5.TT1 > 12,
alt5.mode = 9 and alt5.TT1 > 5,
alt5.mode = 10 and alt5.TT1 < 5,
alt5.mode = 10 and alt5.TT1 > 12,
alt5.mode = 11 and alt5.TT1 > 5,
alt5.mode = 12 and alt5.TT1 < 5,
alt5.mode = 12 and alt5.TT1 > 12,

alt1.mode = 1 and alt1.TT2 <> 0,
alt1.mode = 2 and alt1.TT2 <> 0,
alt1.mode = 3 and alt1.TT2 <> 0,
alt1.mode = 4 and alt1.TT2 <> 0,
alt1.mode = 5 and alt1.TT2 <> 0,
alt1.mode = 6 and alt1.TT2 < 10,
alt1.mode = 7 and alt1.TT2 < 5,
alt1.mode = 8 and alt1.TT2 > 5,
alt1.mode = 9 and alt1.TT2 < 5,
alt1.mode = 10 and alt1.TT2 > 5,
alt1.mode = 11 and alt1.TT2 < 5,
alt1.mode = 12 and alt1.TT2 > 5,
alt2.mode = 1 and alt2.TT2 <> 0,
alt2.mode = 2 and alt2.TT2 <> 0,
alt2.mode = 3 and alt2.TT2 <> 0,
alt2.mode = 4 and alt2.TT2 <> 0,
alt2.mode = 5 and alt2.TT2 <> 0,
alt2.mode = 6 and alt2.TT2 < 10,
alt2.mode = 7 and alt2.TT2 < 5,
alt2.mode = 8 and alt2.TT2 > 5,
alt2.mode = 9 and alt2.TT2 < 5,
alt2.mode = 10 and alt2.TT2 > 5,
alt2.mode = 11 and alt2.TT2 < 5,
alt2.mode = 12 and alt2.TT2 > 5,
alt3.mode = 1 and alt3.TT2 <> 0,
alt3.mode = 2 and alt3.TT2 <> 0,
alt3.mode = 3 and alt3.TT2 <> 0,
alt3.mode = 4 and alt3.TT2 <> 0,
alt3.mode = 5 and alt3.TT2 <> 0,
alt3.mode = 6 and alt3.TT2 < 10,
alt3.mode = 7 and alt3.TT2 < 5,
alt3.mode = 8 and alt3.TT2 > 5,
alt3.mode = 9 and alt3.TT2 < 5,
alt3.mode = 10 and alt3.TT2 > 5,
alt3.mode = 11 and alt3.TT2 < 5,
alt3.mode = 12 and alt3.TT2 > 5,
alt4.mode = 1 and alt4.TT2 <> 0,
alt4.mode = 2 and alt4.TT2 <> 0,
alt4.mode = 3 and alt4.TT2 <> 0,
alt4.mode = 4 and alt4.TT2 <> 0,
alt4.mode = 5 and alt4.TT2 <> 0,
alt4.mode = 6 and alt4.TT2 < 10,
alt4.mode = 7 and alt4.TT2 < 5,
alt4.mode = 8 and alt4.TT2 > 5,
alt4.mode = 9 and alt4.TT2 < 5,
alt4.mode = 10 and alt4.TT2 > 5,
alt4.mode = 11 and alt4.TT2 < 5,
alt4.mode = 12 and alt4.TT2 > 5,
alt5.mode = 1 and alt5.TT2 <> 0,
alt5.mode = 2 and alt5.TT2 <> 0,
alt5.mode = 3 and alt5.TT2 <> 0,
alt5.mode = 4 and alt5.TT2 <> 0,
alt5.mode = 5 and alt5.TT2 <> 0,
alt5.mode = 6 and alt5.TT2 < 10,
alt5.mode = 7 and alt5.TT2 < 5,
alt5.mode = 8 and alt5.TT2 > 5,
alt5.mode = 9 and alt5.TT2 < 5,
alt5.mode = 10 and alt5.TT2 > 5,
alt5.mode = 11 and alt5.TT2 < 5,
alt5.mode = 12 and alt5.TT2 > 5,

alt1.mode = 1 and alt1.ExtraCost = 0.5,
alt1.mode = 1 and alt1.ExtraCost = 0.75,
alt1.mode = 2 and alt1.ExtraCost <> 0,
alt1.mode = 3 and alt1.ExtraCost <> 0,
alt1.mode = 4 and alt1.ExtraCost <> 0,
alt1.mode = 5 and alt1.ExtraCost <> 0,
alt1.mode = 6 and alt1.ExtraCost <> 0,
alt1.mode = 7 and alt1.ExtraCost <> 0,
alt1.mode = 8 and alt1.ExtraCost <> 0,
alt1.mode = 9 and alt1.ExtraCost = 0,
alt1.mode = 9 and alt1.ExtraCost > 0.75,
alt1.mode = 10 and alt1.ExtraCost <> 0,
alt1.mode = 11 and alt1.ExtraCost <> 0,
alt1.mode = 12 and alt1.ExtraCost <> 0,
alt2.mode = 1 and alt2.ExtraCost = 0.5,
alt2.mode = 1 and alt2.ExtraCost = 0.75,
alt2.mode = 2 and alt2.ExtraCost <> 0,
alt2.mode = 3 and alt2.ExtraCost <> 0,
alt2.mode = 4 and alt2.ExtraCost <> 0,
alt2.mode = 5 and alt2.ExtraCost <> 0,
alt2.mode = 6 and alt2.ExtraCost <> 0,
alt2.mode = 7 and alt2.ExtraCost <> 0,
alt2.mode = 8 and alt2.ExtraCost <> 0,
alt2.mode = 9 and alt2.ExtraCost = 0,
alt2.mode = 9 and alt2.ExtraCost > 0.75,
alt2.mode = 10 and alt2.ExtraCost <> 0,
alt2.mode = 11 and alt2.ExtraCost <> 0,
alt2.mode = 12 and alt2.ExtraCost <> 0,
alt3.mode = 1 and alt3.ExtraCost = 0.5,
alt3.mode = 1 and alt3.ExtraCost = 0.75,
alt3.mode = 2 and alt3.ExtraCost <> 0,
alt3.mode = 3 and alt3.ExtraCost <> 0,
alt3.mode = 4 and alt3.ExtraCost <> 0,
alt3.mode = 5 and alt3.ExtraCost <> 0,
alt3.mode = 6 and alt3.ExtraCost <> 0,
alt3.mode = 7 and alt3.ExtraCost <> 0,
alt3.mode = 8 and alt3.ExtraCost <> 0,
alt3.mode = 9 and alt3.ExtraCost = 0,
alt3.mode = 9 and alt3.ExtraCost > 0.75,
alt3.mode = 10 and alt3.ExtraCost <> 0,
alt3.mode = 11 and alt3.ExtraCost <> 0,
alt3.mode = 12 and alt3.ExtraCost <> 0,
alt4.mode = 1 and alt4.ExtraCost = 0.5,
alt4.mode = 1 and alt4.ExtraCost = 0.75,
alt4.mode = 2 and alt4.ExtraCost <> 0,
alt4.mode = 3 and alt4.ExtraCost <> 0,
alt4.mode = 4 and alt4.ExtraCost <> 0,
alt4.mode = 5 and alt4.ExtraCost <> 0,
alt4.mode = 6 and alt4.ExtraCost <> 0,
alt4.mode = 7 and alt4.ExtraCost <> 0,
alt4.mode = 8 and alt4.ExtraCost <> 0,
alt4.mode = 9 and alt4.ExtraCost = 0,
alt4.mode = 9 and alt4.ExtraCost > 0.75,
alt4.mode = 10 and alt4.ExtraCost <> 0,
alt4.mode = 11 and alt4.ExtraCost <> 0,
alt4.mode = 12 and alt4.ExtraCost <> 0,
alt5.mode = 1 and alt5.ExtraCost = 0.5,
alt5.mode = 1 and alt5.ExtraCost = 0.75,
alt5.mode = 2 and alt5.ExtraCost <> 0,
alt5.mode = 3 and alt5.ExtraCost <> 0,
alt5.mode = 4 and alt5.ExtraCost <> 0,
alt5.mode = 5 and alt5.ExtraCost <> 0,
alt5.mode = 6 and alt5.ExtraCost <> 0,
alt5.mode = 7 and alt5.ExtraCost <> 0,
alt5.mode = 8 and alt5.ExtraCost <> 0,
alt5.mode = 9 and alt5.ExtraCost = 0,
alt5.mode = 9 and alt5.ExtraCost > 0.75,
alt5.mode = 10 and alt5.ExtraCost <> 0,
alt5.mode = 11 and alt5.ExtraCost <> 0,
alt5.mode = 12 and alt5.ExtraCost <> 0,

alt1.mode = 1 and alt1.ExtraTime <> 0,
alt1.mode = 2 and alt1.ExtraTime <> 0,
alt1.mode = 3 and alt1.ExtraTime <> 0,
alt1.mode = 4 and alt1.ExtraTime <> 0,
alt1.mode = 5 and alt1.ExtraTime <> 0,
alt1.mode = 6 and alt1.ExtraTime <> 0,
alt1.mode = 12 and alt1.ExtraTime <> 0,
alt2.mode = 1 and alt2.ExtraTime <> 0,
alt2.mode = 2 and alt2.ExtraTime <> 0,
alt2.mode = 3 and alt2.ExtraTime <> 0,
alt2.mode = 4 and alt2.ExtraTime <> 0,
alt2.mode = 5 and alt2.ExtraTime <> 0,
alt2.mode = 6 and alt2.ExtraTime <> 0,
alt2.mode = 12 and alt2.ExtraTime <> 0,
alt3.mode = 1 and alt3.ExtraTime <> 0,
alt3.mode = 2 and alt3.ExtraTime <> 0,
alt3.mode = 3 and alt3.ExtraTime <> 0,
alt3.mode = 4 and alt3.ExtraTime <> 0,
alt3.mode = 5 and alt3.ExtraTime <> 0,
alt3.mode = 6 and alt3.ExtraTime <> 0,
alt3.mode = 12 and alt3.ExtraTime <> 0,
alt4.mode = 1 and alt4.ExtraTime <> 0,
alt4.mode = 2 and alt4.ExtraTime <> 0,
alt4.mode = 3 and alt4.ExtraTime <> 0,
alt4.mode = 4 and alt4.ExtraTime <> 0,
alt4.mode = 5 and alt4.ExtraTime <> 0,
alt4.mode = 6 and alt4.ExtraTime <> 0,
alt4.mode = 12 and alt4.ExtraTime <> 0,
alt5.mode = 1 and alt5.ExtraTime <> 0,
alt5.mode = 2 and alt5.ExtraTime <> 0,
alt5.mode = 3 and alt5.ExtraTime <> 0,
alt5.mode = 4 and alt5.ExtraTime <> 0,
alt5.mode = 5 and alt5.ExtraTime <> 0,
alt5.mode = 6 and alt5.ExtraTime <> 0,
alt5.mode = 12 and alt5.ExtraTime <> 0,

alt1.mode = 1 and alt1.WorkSurf = 1,
alt1.mode = 2 and alt1.WorkSurf = 1,
alt1.mode = 4 and alt1.WorkSurf = 1,
alt1.mode = 5 and alt1.WorkSurf = 1,
alt1.mode = 6 and alt1.WorkSurf = 1,
alt1.mode = 7 and alt1.WorkSurf = 1,
alt1.mode = 8 and alt1.WorkSurf = 1,
alt1.mode = 11 and alt1.WorkSurf = 1,
alt1.mode = 12 and alt1.WorkSurf = 1,
alt2.mode = 1 and alt2.WorkSurf = 1,
alt2.mode = 2 and alt2.WorkSurf = 1,
alt2.mode = 4 and alt2.WorkSurf = 1,
alt2.mode = 5 and alt2.WorkSurf = 1,
alt2.mode = 6 and alt2.WorkSurf = 1,
alt2.mode = 7 and alt2.WorkSurf = 1,
alt2.mode = 8 and alt2.WorkSurf = 1,
alt2.mode = 11 and alt2.WorkSurf = 1,
alt2.mode = 12 and alt2.WorkSurf = 1,
alt3.mode = 1 and alt3.WorkSurf = 1,
alt3.mode = 2 and alt3.WorkSurf = 1,
alt3.mode = 4 and alt3.WorkSurf = 1,
alt3.mode = 5 and alt3.WorkSurf = 1,
alt3.mode = 6 and alt3.WorkSurf = 1,
alt3.mode = 7 and alt3.WorkSurf = 1,
alt3.mode = 8 and alt3.WorkSurf = 1,
alt3.mode = 11 and alt3.WorkSurf = 1,
alt3.mode = 12 and alt3.WorkSurf = 1,
alt4.mode = 1 and alt4.WorkSurf = 1,
alt4.mode = 2 and alt4.WorkSurf = 1,
alt4.mode = 4 and alt4.WorkSurf = 1,
alt4.mode = 5 and alt4.WorkSurf = 1,
alt4.mode = 6 and alt4.WorkSurf = 1,
alt4.mode = 7 and alt4.WorkSurf = 1,
alt4.mode = 8 and alt4.WorkSurf = 1,
alt4.mode = 11 and alt4.WorkSurf = 1,
alt4.mode = 12 and alt4.WorkSurf = 1,
alt5.mode = 1 and alt5.WorkSurf = 1,
alt5.mode = 2 and alt5.WorkSurf = 1,
alt5.mode = 4 and alt5.WorkSurf = 1,
alt5.mode = 5 and alt5.WorkSurf = 1,
alt5.mode = 6 and alt5.WorkSurf = 1,
alt5.mode = 7 and alt5.WorkSurf = 1,
alt5.mode = 8 and alt5.WorkSurf = 1,
alt5.mode = 11 and alt5.WorkSurf = 1,
alt5.mode = 12 and alt5.WorkSurf = 1

;model:

U(alt1) = Beta.dummy[1.0|0.5|-0.1|1.0|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost[-1.1] * cost[0,0.5,1,1.5,2,2.5,2.75,3.5] + BETA_Res[1.1] * Res[0,1] + BETA_WaitT[-0.1] * WaitT[0,5,10,15,20] + BETA_WalkT[-0.25] * WalkT[0,2,5,7,10,12] + BETA_TT1[-0.15] * TT1[0,3,5,7,10,12,15,20,25,30,35] + BETA_TT2[-0.15] * TT2[0,3,5,7,10,12] + BETA_ExtraCost[-2] * ExtraCost[0,0.5,0.75,1,2,5] + BETA_ExtraTime[-0.2] * ExtraTime[0,5,10] + BETA_WorkSurf[1.1] * WorkSurf[0,1]  /
U(alt2) = Beta.dummy[1.0|0.5|-0.1|1.0|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost[-1.1] * cost[0,0.5,1,1.5,2,2.5,2.75,3.5] + BETA_Res[1.1] * Res[0,1] + BETA_WaitT[-0.1] * WaitT[0,5,10,15,20] + BETA_WalkT[-0.25] * WalkT[0,2,5,7,10,12] + BETA_TT1[-0.15] * TT1[0,3,5,7,10,12,15,20,25,30,35] + BETA_TT2[-0.15] * TT2[0,3,5,7,10,12] + BETA_ExtraCost[-2] * ExtraCost[0,0.5,0.75,1,2,5] + BETA_ExtraTime[-0.2] * ExtraTime[0,5,10] + BETA_WorkSurf[1.1] * WorkSurf[0,1]  /
U(alt3) = Beta.dummy[1.0|0.5|-0.1|1.0|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost[-1.1] * cost[0,0.5,1,1.5,2,2.5,2.75,3.5] + BETA_Res[1.1] * Res[0,1] + BETA_WaitT[-0.1] * WaitT[0,5,10,15,20] + BETA_WalkT[-0.25] * WalkT[0,2,5,7,10,12] + BETA_TT1[-0.15] * TT1[0,3,5,7,10,12,15,20,25,30,35] + BETA_TT2[-0.15] * TT2[0,3,5,7,10,12] + BETA_ExtraCost[-2] * ExtraCost[0,0.5,0.75,1,2,5] + BETA_ExtraTime[-0.2] * ExtraTime[0,5,10] + BETA_WorkSurf[1.1] * WorkSurf[0,1]  /
U(alt4) = Beta.dummy[1.0|0.5|-0.1|1.0|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost[-1.1] * cost[0,0.5,1,1.5,2,2.5,2.75,3.5] + BETA_Res[1.1] * Res[0,1] + BETA_WaitT[-0.1] * WaitT[0,5,10,15,20] + BETA_WalkT[-0.25] * WalkT[0,2,5,7,10,12] + BETA_TT1[-0.15] * TT1[0,3,5,7,10,12,15,20,25,30,35] + BETA_TT2[-0.15] * TT2[0,3,5,7,10,12] + BETA_ExtraCost[-2] * ExtraCost[0,0.5,0.75,1,2,5] + BETA_ExtraTime[-0.2] * ExtraTime[0,5,10] + BETA_WorkSurf[1.1] * WorkSurf[0,1]  /
U(alt5) = Beta.dummy[1.0|0.5|-0.1|1.0|0|0|0|0|0|0|0] * mode[1,2,3,4,5,6,7,8,9,10,11,12] + BETA_Cost[-1.1] * cost[0,0.5,1,1.5,2,2.5,2.75,3.5] + BETA_Res[1.1] * Res[0,1] + BETA_WaitT[-0.1] * WaitT[0,5,10,15,20] + BETA_WalkT[-0.25] * WalkT[0,2,5,7,10,12] + BETA_TT1[-0.15] * TT1[0,3,5,7,10,12,15,20,25,30,35] + BETA_TT2[-0.15] * TT2[0,3,5,7,10,12] + BETA_ExtraCost[-2] * ExtraCost[0,0.5,0.75,1,2,5] + BETA_ExtraTime[-0.2] * ExtraTime[0,5,10] + BETA_WorkSurf[1.1] * WorkSurf[0,1]

$


2) I realize that it is very complicated... but in my monstrous design from above (and assuming that I get it to work) I would still need to add several constraints of the following type:

Code: Select all
;require:
alt1.mode.dummy[1] * alt1.cost = 0.5 and alt2.mode.dummy[3] * alt2.cost = 1.5 or alt2.mode.dummy[4] * alt2.cost = 1
...etc.


Is the .mode.dummy[X] syntax vadid within the ;reject/require property?

3) Given the complexity of the above ---and that eventually I could also consider alt. spec. params--- I wonder if turning the design into a labeled one (at least for Ngene) and sampling partial choice sets would make things easier...

Eva
evanthiaK
 
Posts: 8
Joined: Tue Mar 26, 2019 12:46 am

Re: Unlabeled mode choice experiment with "mode" attribute

Postby Michiel Bliemer » Sat Mar 30, 2019 4:14 pm

The error message means that you have too many constraints and that Ngene cannot find any feasible choice tasks.
I would advise to carefully check your constraints. For example, your first constraints are problematic because you are rejecting ALL choice tasks, since alt1.mode = alt1.mode is clearly always true. I think that you mean something like:

;reject:
alt1.mode =alt2.mode,
al1.mode = alt3.mode,
alt1.mode = alt4.mode,
alt1.mode = alt5.mode,
alt2.mode = alt3.mode,
alt2.mode = alt4.mode,
alt2.mode = alt5.mode,
alt3.mode = alt4.mode,
alt3.mode = alt5.mode,
alt4.mode = alt5.mode

Perhaps you can first start with 2 alternatives and then build it up to 5, it is very to check this long list of constraints and see if there is an issue.

I assume that by rejecting alt1.mode = 2 andx alt1.cost <> 0 you mean that alt1.cost should be zero if alt1.mode = 2?

In one of my runs I received the following message: "candidates that failed are: 0% due dominance, 100% due constraints, and 0% due repeated alternatives. The candidate set size has been adjusted from 100 to 7." I asked Ngene to generate 100 choice tasks, but it could only find 7 choice tasks by randomly generating choice tasks. This means that it is very difficult for Ngene to actually find choice tasks that are feasible because of the very large number of constraints that you have. You could relax the constraints a bit by increasing the number of feasible levels for each attribute. For example, Wait only has 5 levels but for most modes you only accept a subset of levels, which makes it difficult to find choice tasks that satisfy these levels. If you would use Wait[0:20:2), which is the same as Wait[0,2,4,6,8,10,12,14,16,18,20], then Ngene will have more levels to choose from.

If you cannot get Ngene to find feasible choice tasks then the best option is to create your own candidate set in Excel. You do not need to provide the full factorial with all combinations, you can simply use a subset of say a few hundred or thousand choice tasks that satisfy your constraints. Then Ngene could use those to pick the best 16.

To answer your second question, you can only use attribute levels in the ;require command, not the dummy coding itself. I do not really understand your constraint so I cannot make a suggestion how to rewrite is.

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

Next

Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 3 guests

cron