Randomizing alternative within scenarios.

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Randomizing alternative within scenarios.

Postby izakro » Thu Aug 05, 2021 8:26 am

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 $
izakro
 
Posts: 28
Joined: Sun Nov 08, 2020 6:11 am

Re: Randomizing alternative within scenarios.

Postby Michiel Bliemer » Thu Aug 05, 2021 9:36 am

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


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 26 guests