Randomizing alternative within scenarios.

This forum is for posts that specifically focus on the Windows desktop version of Ngene (i.e. all version 1.x releases).

Moderators: Andrew Collins, Michiel Bliemer, johnr

Post Reply
izakro
Posts: 35
Joined: Sun Nov 08, 2020 6:11 am

Randomizing alternative within scenarios.

Post by izakro »

Dear all,
We want to examine choice between internal combustion engine and alternative fuel vehicles. We created the following labelled design with 7 utilities functions, one for each propulsion technology. Since choosing each time among 7 alternatives is difficult, we wonder whether it is possible to ask Ngene to choose randomly 4 alternatives in each scenario, such that the participant will see 4 different combinations of propulsion technologies in each menu.
Any help will be highly appreciated!
design
; alts = ICE, plugin, hybrid, PHEV, fuelCell, NCG, bioDiesel
; rows = 24
; block = 6
;eff = (mnl,d)
;cond:
if(ICE.CarCate=1, ICE.price=[65, 110, 175]),
if(ICE.CarCate=[2,3], ICE.price=[80, 165, 320]),
if(ICE.CarCate=[4,5], ICE.price=[110, 240, 360]),
if(ICE.CarCate=6, ICE.price=[240, 420, 600]),
if(ICE.CarCate=7, ICE.price=[175, 240, 420]),
if(plugin.CarCate=1, plugin.price=[65, 110, 175]),
if(plugin.CarCate=[2,3], plugin.price=[80, 165, 320]),
if(plugin.CarCate=[4,5], plugin.price=[110, 240, 360]),
if(plugin.CarCate=6, plugin.price=[240, 420, 600]),
if(plugin.CarCate=7, plugin.price=[175, 240, 420]),
if(hybrid.CarCate=1, hybrid.price=[65, 110, 175]),
if(hybrid.CarCate=[2,3], hybrid.price=[80, 165, 320]),
if(hybrid.CarCate=[4,5], hybrid.price=[110, 240, 360]),
if(hybrid.CarCate=6, hybrid.price=[240, 420, 600]),
if(hybrid.CarCate=7, hybrid.price=[175, 240, 420]),
if(PHEV.CarCate=1, PHEV.price=[65, 110, 175]),
if(PHEV.CarCate=[2,3], PHEV.price=[80, 165, 320]),
if(PHEV.CarCate=[4,5], PHEV.price=[110, 240, 360]),
if(PHEV.CarCate=6, PHEV.price=[240, 420, 600]),
if(PHEV.CarCate=7, PHEV.price=[175, 240, 420]),
if(fuelCell.CarCate=1, fuelCell.price=[65, 110, 175]),
if(fuelCell.CarCate=[2,3], fuelCell.price=[80, 165, 320]),
if(fuelCell.CarCate=[4,5], fuelCell.price=[110, 240, 360]),
if(fuelCell.CarCate=6, fuelCell.price=[240, 420, 600]),
if(fuelCell.CarCate=7, fuelCell.price=[175, 240, 420]),
if(NCG.CarCate=1, NCG.price=[65, 110, 175]),
if(NCG.CarCate=[2,3], NCG.price=[80, 165, 320]),
if(NCG.CarCate=[4,5], NCG.price=[110, 240, 360]),
if(NCG.CarCate=6, NCG.price=[240, 420, 600]),
if(NCG.CarCate=7, NCG.price=[175, 240, 420])

; model:
U(ICE) = P [-0.0001] * price [65, 80, 110, 165, 175, 240, 320, 360, 420, 600]
+ CAT.dummy [0|0|0|0|0|0] * CarCate[1,2,3,4,5,6,7]
+ SAFE.dummy [0.0001|0.0002|0.0003|0.0004] * safety[2,3,4,5,1]
+ TRIM.dummy [0.00001|0.00002] * trim[2,3,1]
+ TRNK.dummy [0.00001|0.00002] * trunk[2,3,1]
/

U(plugin) = plugin[0]
+RANGE [0.0001] * range[ 240, 270, 300] ? km per full charge
+ INFRAST.dummy [0.00001|0.00002|0.00003] * infrastructure [1,2,3,0]
+ CHRG_TIME.dummy [0.00001|0.00002] * chrging_time[2,3,1]
+ AVAIL.dummy [0.00001|0.00002] * CS_availability [2,3,1]
+ P * price
+ CAT * CarCate
+ SAFE * safety
+ TRIM * trim
+ TRNK * trunk
/

U(hybrid) = hybrid[0]
+ P * price
+ CAT * CarCate
+ SAFE * safety
+ TRIM * trim
+ TRNK * trunk
/

U(PHEV) = PHEV[0]
+ RANGE * range
+ INFRAST * infrastructure
+ CHRG_TIME * chrging_time
+ AVAIL * CS_availability
+ P * price
+ CAT * CarCate
+ SAFE * safety
+ TRIM * trim
+ TRNK * trunk
/

U(fuelCell) = fuelCell[0]
+REFILL[0.0001] * refuel_infrastructure [10, 40, 70, 100]
+ P * price
+ CAT * CarCate
+ SAFE * safety
+ TRIM * trim
+ TRNK * trunk
/

U(NCG) = NCG[0]
+ REFILL * refuel_infrastructure
+ P * price
+ CAT * CarCate
+ SAFE * safety
+ TRIM * trim
+ TRNK * trunk
/

U(bioDiesel) =bioDiesel[0]
+ REFILL * refuel_infrastructure
+ P * price
+ CAT * CarCate
+ SAFE * safety
+ TRIM * trim
+ TRNK * trunk $
Michiel Bliemer
Posts: 2057
Joined: Tue Mar 31, 2009 4:13 pm

Re: Randomizing alternative within scenarios.

Post by Michiel Bliemer »

Yes that is possible. This is what is referred to as a partial choice set design, or an availability design.
The Ngene manual discusses the generation of partial choice set designs using an external candidate set, see Section 8.11. There is another way to do this, but this relies on a method that I have not yet published but I can share the slides with you to show you how this can be done by rewriting the utility function. This method is more tricky and involves creating indicator variables in Ngene, but avoids having to generate an external candidate set. I will send you the slides in a private message.

Michiel
Post Reply