Page 1 of 1

High or low number of choice situations using blocks?

PostPosted: Tue Apr 19, 2022 8:18 pm
by davidelg
Dear prof. Bliemer,
I am designing some experiments related to electric vehicles: I want to investigate the decision factors involved in buying a new car (called Car Ownership Experiment, COE) and the ones related to recharging an electric vehicle (Charging Infrastructure Experiment, CIE).
I made a pilot survey and I used the minimum amount of choice situation requested (15 for COE, 10 CIE).
For the definitive survey, I want to use blocks in order to reduce the choice situation presented to each respondent. The block presented to each respondent will be picked up randomly.

Do you suggest to use that minumum number (15 for COE) and divide them in blocks (3 I would say) or to increase the number of situation and create more blocks (e.g. 100 block).
It is better to get the same situation filled by many respondent or to have less answers for each choice situation, but with a large variety of attribute-level combination evaluated?

I hope my question is clear :)

I leave you the syntax for the COE, if it can be useful. Here the syntax usign the minimum amount of choice situations.

Code: Select all
Design
;alts=A*, B*, Opt-out
;rows=15
;block=3
;eff=(mnl,d)

;cond:
?                                    CONSTRAINTS ON PRICE
if(A.ENGINE<=3, A.PRICE=[1.5,2,2.5]),
if(A.ENGINE>=4, A.PRICE=[2.5,3]),
if(B.ENGINE<=3, B.PRICE=[1.5,2,2.5]),
if(B.ENGINE>=4, B.PRICE=[2.5,3]),
?                                    CONSTRAINTS ON RANGE
if(A.ENGINE<=5, A.RANGE=[5,6,8]),
if(A.ENGINE=6, A.RANGE=[2,3,4,5]),
if(B.ENGINE<=5, B.RANGE=[5,6,8]),
if(B.ENGINE=6, B.RANGE=[2,3,4,5]),
?                                    CONSTRAINTS ON DIFFUSION OF CHARGING INFRASTRUCTURES
if(A.DIFFUSION<>B.DIFFUSION, A.DIFFUSION=B.DIFFUSION or B.DIFFUSION=A.DIFFUSION ),
?                                    CONSTRAINTS ON CHARGING TIME
if(A.ENGINE=[1,2,3,4], A.CHARGING_TIME=0),
if(A.ENGINE>=5, A.CHARGING_TIME<>0),
if(B.ENGINE=[1,2,3,4], B.CHARGING_TIME=0),
if(B.ENGINE>=5, B.CHARGING_TIME<>0),
?                                    CONSTRAINTS ON PURCHASE INCENTIVES
if(A.ENGINE=1, A.PURCHASE_INC<=0),
if(A.ENGINE=[2,3], A.PURCHASE_INC=[0,1]),
if(A.ENGINE=[4,5], A.PURCHASE_INC=[0,1,2]),
if(A.ENGINE=6, A.PURCHASE_INC=[0,1,2,3]),
if(B.ENGINE=1, B.PURCHASE_INC<=0),
if(B.ENGINE=[2,3], B.PURCHASE_INC=[0,1]),
if(B.ENGINE=[4,5], B.PURCHASE_INC=[0,1,2]),
if(B.ENGINE=6, B.PURCHASE_INC=[0,1,2,3]),
?                                    CONSTRAINTS ON UTILIZATION INCENTIVES
if(A.ENGINE=[1,2,3], A.UTILIZ_INC=0),
if(A.ENGINE=4, A.UTILIZ_INC=[0,1]),
if(B.ENGINE=[1,2,3], B.UTILIZ_INC=0),
if(B.ENGINE=4, B.UTILIZ_INC=[0,1])

;model:
U(A)= asc + b_eng.dummy[0.00001|0.00001|0.00001|0.00001|0.00001] * ENGINE[2,3,4,5,6,1]
          + b_p[(n,-0.5,0.2)]                                    *PRICE[1.5,2,2.5,3]
          + b_rng[(n,0.25,0.1)]                                 *RANGE[2,3,4,5,6,8]
          + b_operCost[(n,-0.2,0.15)]                       *OPER_COST[-2.5,0,2.5]
          + b_diff[(n,0.2,0.1)]                                  *DIFFUSION[0,2,5,7.5,10]
          + b_ct[(n,0.2,0.1)]                                    *CHARGING_TIME[0,1,2,4,8]
          + b_pi[(n,0.15,0.12)]                                 *PURCHASE_INC[-1,0,1,2,3]
          + b_ui[(n,0.125,0.15)]                                *UTILIZ_INC[0,1,2]
/
U(B)= asc + b_eng     *ENGINE
          + b_p       *PRICE
          + b_rng     *RANGE
          + b_operCost*OPER_COST
          + b_diff    *DIFFUSION
          + b_ct      *CHARGING_TIME
          + b_pi      *PURCHASE_INC
          + b_ui      *UTILIZ_INC
$


Thank you,
Davide

Re: High or low number of choice situations using blocks?

PostPosted: Tue Apr 19, 2022 9:04 pm
by Michiel Bliemer
In general, more variety is good, so I would choose to increase the number of rows (and hence have a larger number of blocks).

You have attributes with 3, 4, 5, and 6 levels. If you want to have attribute level balance within your design, then a natural choice for the number of rows is 60 (which is divisible by 3, 4, 5 and 6). Then you can use either 6 or 10 blocks.

? if each respondent is given 6 choice tasks
;rows = 60
;block = 10

or

? if each respondent is given 10 choice tasks
;rows = 60
;block = 6

Note that with 60 rows Ngene will struggle with the default swapping algorithm to find designs that satisfies all your if-then constraints as well as your dominance constraints, but it should work. If you use 100 rows then Ngene is unlikely to find designs with the default swapping algorithm. In that case you need to change to the modified Federov algorithm and rewrite your if-then constraints into ;reject constraints.

Michiel

Re: High or low number of choice situations using blocks?

PostPosted: Wed Apr 20, 2022 2:32 am
by davidelg
Thank you Professor,
I have tried the syntax with 60 rows and in fact it struggle a bit to find solutions.

Anyway, I will try this way before swapping to modified Federov algorithm.

Thank you again.

Davide