High or low number of choice situations using blocks?

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

High or low number of choice situations using blocks?

Postby davidelg » Tue Apr 19, 2022 8:18 pm

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
;alts=A*, B*, Opt-out

?                                    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 CHARGING TIME
if(A.ENGINE=[1,2,3,4], A.CHARGING_TIME=0),
if(B.ENGINE=[1,2,3,4], B.CHARGING_TIME=0),
?                                    CONSTRAINTS ON PURCHASE INCENTIVES
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=[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])

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,
Posts: 2
Joined: Fri Sep 24, 2021 1:37 am

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

Postby Michiel Bliemer » Tue Apr 19, 2022 9:04 pm

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


? 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 Bliemer
Posts: 1805
Joined: Tue Mar 31, 2009 4:13 pm

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

Postby davidelg » Wed Apr 20, 2022 2:32 am

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.

Posts: 2
Joined: Fri Sep 24, 2021 1:37 am

Return to Choice experiments - Ngene

Who is online

Users browsing this forum: Google [Bot] and 3 guests