Labelled experiment

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Labelled experiment

Postby mires » Sat Feb 16, 2013 9:22 pm

Hi all,


I've to build a label experiment.. 9 labeled solutions (train, car, bus...) can be proposed, and some solutions has specific attributes.
I'd like to present only 3 solutions at any time in the choice task

Design
;alts = alt1, alt2, alt3, alt4
;rows = 480
;block= 40
;eff = (mnl,d)
;alg = mfederov(candidates=1500)
;reject: (some rejections)
;model:
U(alt1) = a1.dummy[0|0|0|0|0|0|0|0] * solut[1,2,3,4,5,6,7,8,9]
+ c1.dummy[0|0] * confort[1,2,3] + d1.dummy[0|0|0] * child01[1,2,3,4] + e1.dummy[0|0|0] * child02[1,2,3,4] + coef1 * delta1[0,-300,-200,-100] + coef2 * price[600,700,800,900,1000] + coef3 * delta2[0,100,200,300] /
U(alt2) = a1 * solut + c1 * confort + d1 * child01 + e1 * child02 + coef1 * delta1 + coef2 * price + coef3 * delta2 /
U(alt3) = a1 * solut + c1 * confort + d1 * child01 + e1 * child02 + coef1 * delta1 + coef2 * price + coef3 * delta2

All solutions don't have the delta(s) attributes. I'm considering the 0 level for specific attributes and treat it as unavailable option
reject:
if alt1.solut =1 and alt1.delta2 = 0; (delta2 is specific to solution1)
if alt1.solut =2 and alt1.delta2 > 0; (delta2 should'nt appear for solution 2)

Is there a better way to handle such issue?

Thanks in advance for your comments
Naji
mires
 
Posts: 15
Joined: Thu Jun 09, 2011 7:31 am

Re: Labelled experiment

Postby Michiel Bliemer » Sun Feb 17, 2013 12:53 pm

Hi Naji,

This is a tricky one. You are on the right way I think.
Basically, you are converting a labelled experiment into an unlabelled experiment by putting the label into an attribute (solut), and estimating alternative-specific constants. The remainder of the utility function is generic.

This would work well, and you can put constraints on attribute levels as you propose (certain values of solut may require or reject certain values of delta). What could be problematic is to say that certain attributes do not appear for certain values of solut. Setting an attribute to zero is not the same as removing the attribute, as the parameter for this attribute still exists, even if the attribute is set to zero. This could impact the standard error of this parameter. There is currently no other way to do this in Ngene. We are working on showing only a subset of alternatives in Ngene, which allows labelled alternatives with different utility functions, but that functionality is not available yet. At this moment, what you have proposed is the best way of doing it (putting the label as an attribute in the alternatives), but requires the utility functions to be all the same just like an unlabelled alternative.
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Labelled experiment

Postby mires » Mon Feb 18, 2013 3:05 am

Hi Michiel


Thanks a lot for your answer and pointing to the std error of the parameters, I think I'll run an intermediate estimation, pulling back the intermediate values as initial parameters ( a two steps serial DoE), I hope that would reduce the std error.
It's great to hear about next NGENE developments (availability, and subsets of alternatives) Is it possible to have short informations about Ngene next features on the website?

Very best regards
Naji
mires
 
Posts: 15
Joined: Thu Jun 09, 2011 7:31 am

Re: Labelled experiment

Postby Michiel Bliemer » Mon Feb 18, 2013 4:55 pm

As requested, John just posted the current and future developments on Ngene on the forum!
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Labelled experiment

Postby mires » Mon Feb 25, 2013 10:41 pm

Getting back to my problem

I've 9 solutions where I'd like to analyze choices among those. There is 8 attributes et some are specific to some solutions.
I can't ask the decisionners to choose among 9.. I want to make a subset of 4 solutions proposed.. Idealy each solution should appear only once for each choice situation...

It looks like ... :

Design
;alts = alt1, alt2, alt3, alt4, alt5, alt6, alt7, alt8, alt9, none
;rows = 12
;eff = (mnl,d)
;alg = mfederov
;reject:
alt2.attr3 > 2,
alt3.attr3 > 2,
alt8.attr2 > 1,
alt8.attr3 > 2,
alt8.attr6 > 1,
alt9.attr1 > 2,
alt9.attr5 > 2
;model:
U(alt1) = a1 * attr1[1,2,3,4,5] + a2 * attr2[0,1,2,3] + a3 * attr3[0,1,2,3,4] + a4 * attr4[0,1,2,3,4]
+ a5 * attr5[0,1,2,3] + a6 * attr6[0,1,2,3] + a7 * attr7[1,1.15,1.20,1.30,1.4,1.5] + a8 * attr8[1,2,3,4,5,6] /
U(alt2) = a1 * attr1 + a2 * attr2 + a3 * attr3 + a4 * attr4 + a5 * attr5 + a6 * attr6 + a7 * attr7 + a8 * attr8 /
U(alt3) = a1 * attr1 + a2 * attr2 + a3 * attr3 + a4 * attr4 + a5 * attr5 + a6 * attr6 + a7 * attr7 + a8 * attr8 /
U(alt4) = a1 * attr1 + a2 * attr2 + a3 * attr3 + a4 * attr4 + a5 * attr5 + a6 * attr6 + a7 * attr7 + a8 * attr8 /
U(alt5) = a1 * attr1 + a2 * attr2 + a5 * attr5 + a6 * attr6 + a7 * attr7 + a8 * attr8 /
U(alt6) = a1 * attr1 + a6 * attr6 + a7 * attr7 + a8 * attr8 /
U(alt7) = a1 * attr1 + a2 * attr2 + a3 * attr3 + a4 * attr4 + a5 * attr5 + a6 * attr6 + a7 * attr7 + a8 * attr8 /
U(alt8) = a1 * attr1 + a2 * attr2 + a3 * attr3 + a4 * attr4 + a5 * attr5 + a6 * attr6 + a7 * attr7 + a8 * attr8 /
U(alt9) = a1 * attr1 + a5 * attr5 + a7 * attr7 + a8 * attr8 $

But I dont knwo how to deal with nber of rows and shall introduce an availability attribute [0,1] for each solutions and ask NGene to reject all rows where
alt1.avail + .... + alt9.avail <> 4,

Working on this for days and did'nt find a solution

Thanks for your comments and help
Naji
mires
 
Posts: 15
Joined: Thu Jun 09, 2011 7:31 am

Re: Labelled experiment

Postby Michiel Bliemer » Thu Feb 28, 2013 6:20 pm

The following design basically converts 6 labelled alternatives into an unlabelled design with 4 alternatives and an attribute called 'label'. This is one way of doing it, there are probably more ways.

Design
;alts = alt1, alt2, alt3, alt4
;rows = 12
;eff = (mnl,d)
;alg = mfederov
;require:
alt1.label < alt2.label and alt2.label < alt3.label and alt3.label < alt4.label
;model:
U(alt1) = a1.dummy[0|0|0|0|0] * label[1,2,3,4,5,6] + a2 * x1[1,2,3,4] + a2 * x2[1,2,3,4] /
U(alt2) = a1 * label + a2 * x1 + a2 * x2 /
U(alt3) = a1 * label + a2 * x1 + a2 * x2 /
U(alt4) = a1 * label + a2 * x1 + a2 * x2
$
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Labelled experiment

Postby katherine_rahe2022 » Sat Oct 08, 2022 4:49 am

Hi Michiel,
I have a question similar to the one posted on this thread year ago. I am new to Ngene and would like to know if there is an option to do this on Ngene already or if the best option is still to convert a labeled experiment into an unlabeled one, the best way of doing it.

Thank you!
Kathy

Michiel Bliemer wrote:Hi Naji,

This is a tricky one. You are on the right way I think.
Basically, you are converting a labelled experiment into an unlabelled experiment by putting the label into an attribute (solut), and estimating alternative-specific constants. The remainder of the utility function is generic.

This would work well, and you can put constraints on attribute levels as you propose (certain values of solut may require or reject certain values of delta). What could be problematic is to say that certain attributes do not appear for certain values of solut. Setting an attribute to zero is not the same as removing the attribute, as the parameter for this attribute still exists, even if the attribute is set to zero. This could impact the standard error of this parameter. There is currently no other way to do this in Ngene. We are working on showing only a subset of alternatives in Ngene, which allows labelled alternatives with different utility functions, but that functionality is not available yet. At this moment, what you have proposed is the best way of doing it (putting the label as an attribute in the alternatives), but requires the utility functions to be all the same just like an unlabelled alternative.
katherine_rahe2022
 
Posts: 1
Joined: Fri Oct 07, 2022 12:41 am

Re: Labelled experiment

Postby Michiel Bliemer » Tue Oct 11, 2022 9:49 pm

This is called a partial choice set design, see Section 8.11 of the Ngene manual. In the manual is described how you could create an external candidate set (in Excel) where you can trick alternatives that are not available to have a utility of minus infinity, i.e., having a choice probability of 0.

You can also create partial choice set designs by alternating the utility function and using constraints as I suggested earlier. This more tricky and I can refer to a presentation I have given at a conference:

Bliemer, M.C.J., J.M. Rose, and M. Beck (2018) Generating partial choice set designs for stated choice experiments. Presented at the Annual Meeting of the International Association on Travel Behaviour Research, Santa Barbara CA, USA.

I am happy to send you the slides if you send me a private message with your email address.

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


Return to Choice experiments - Ngene

Who is online

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

cron