Page 1 of 1

Labelled experiment

PostPosted: Sat Feb 16, 2013 9:22 pm
by mires
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

Re: Labelled experiment

PostPosted: Sun Feb 17, 2013 12:53 pm
by Michiel Bliemer
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.

Re: Labelled experiment

PostPosted: Mon Feb 18, 2013 3:05 am
by mires
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

Re: Labelled experiment

PostPosted: Mon Feb 18, 2013 4:55 pm
by Michiel Bliemer
As requested, John just posted the current and future developments on Ngene on the forum!

Re: Labelled experiment

PostPosted: Mon Feb 25, 2013 10:41 pm
by mires
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

Re: Labelled experiment

PostPosted: Thu Feb 28, 2013 6:20 pm
by Michiel Bliemer
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
$

Re: Labelled experiment

PostPosted: Sat Oct 08, 2022 4:49 am
by katherine_rahe2022
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.

Re: Labelled experiment

PostPosted: Tue Oct 11, 2022 9:49 pm
by Michiel Bliemer
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