Labelled design - How to proceed?

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Re: Labelled design - How to proceed?

Postby MACA » Wed Jan 24, 2018 2:17 am

Dear Professor and NGENE users:
Thank you so much again for your enlightening answer. Nonetheless, I did not grasp exactly what you mean regarding different scenarios. In this regard, maybe I was not explicit enough, so I am going to set an example. Imagine that we are looking for uncovering the impact of using an incentive (real money) vs usual approach (without money) on people preferences regarding an agri-food product. In this case, I would theoretically need two designs for comparing the effect of the economic incentive in the preferences (a test would be required to assess the role played by the scale factor…) and WTP (the potential confounding effect of scale factor cancels out…) by comparing both samples.
On the other hand, if I am not mistaken, what you suggest is to use a variable which neither is an attribute (which varies across choice tasks and alternatives) nor a sociodemographic characteristic (always constant) so it would be a scenario variable (which varies across choice tasks but not across alternatives). So, I have three questions:
1) As an NLOGIT user I would like to know how to model this kind o scenario variables. From my point of view, they can be treated as ordinary invariant sociodemographic variables entering into the utility functions through interactions with the attributes, but I guess that in this way we would not be taking advantage of the feature related to the fact that the scenario variable varies across choice tasks.
2) In my case where I would like to assess the impact of an economic incentive on preferences, I would need to follow the strategy of two samples and two experimental designs? Or how would you proceed for getting the experimental design/s?
3) Imagine a case where the choice experiment is made by respondents and then we asked again respondents to repeat the choice experiment but in this case choosing as they think the society as a whole would choose. How would you proceed to get the experimental design for this framework?

Thank you so much in advance
Really glad of learning from this forum
Best
MAC
MACA
 
Posts: 13
Joined: Wed Feb 15, 2017 11:47 pm

Re: Labelled design - How to proceed?

Postby Michiel Bliemer » Wed Jan 24, 2018 11:42 am

You can distinguish these three variables:

Attribute: varies within and across alternatives
Scenario: fixed across alternatives, varies across choice tasks
Socio-demographic: fixed across all alternatives and choice tasks

In your context, you could create the following choice tasks:

Which of the following products would you choose?

Product A: price = $10, brand = X
Product B: price = $20, brand = Y

Which of the following products would you choose, noting that you will have to pay for the product out of your endowment and consume the product?

Product A: price = $10, brand = X
Product B: price = $20, brand = Y

In model estimation, you can pool this data and estimate a single model, namely (using Ngene syntax, but you can convert yourself to Nlogit format):

U(A) = b1*price[10,15,20] + b2.dummy*brand[0,1,2] + b3*price*incentive[0,1] + b4*brand*incentive[0,1]

b3 will them describe how price sensitivity b1 varies if an incentive is present, and b4 will describe how brand sensitivity b2 varies with an incentive.

It is important to ask the SAME respondent both questions with and without an incentive, so you should not estimate two separate models but rather a single joint model. You could vary the scenario in each choice task, but that may not be the best strategy. Perhaps better is to ask a first group of respondents to first answer questions without and incentive, and then later with an incentive, while you swap this order for a second group of respondents. If the number of choice tasks in the design is large, you can simply give each respondent a subset of these choice tasks (the same across both scenarios). You may want to leave some time in between both scenarios (perhaps ask them the same question one week apart or so). In order to create the design.

There are so many ways you could do this experiment that you first have to decide what your experiment will look like, and then I can further assist with syntax in Ngene. You may want to create a homogeneous design that is efficient for estimating two different models (with and without incentives), which will guarantee that the choice tasks are efficient under both scenarios. Alternatively, you can go for a single design in which you vary the choice scenario in each choice task. All the above are not related to Ngene but are experiment design questions that you would need to decide on first.

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

Re: Labelled design - How to proceed?

Postby MACA » Mon Jan 29, 2018 10:24 am

Dear Professor Bliemer and Ngene users:
Thank you again for your instructive answer as usual. As my first step is related to launching the face to face version of the choice experiment where I will not be able to test any treatment I will put off the questions about the on-line design until I have decided exactly the treatments to be introduced.
Regarding, the design for the face to face choice experiment I have realized that it is not optimal for the consumers in terms of realism. So, to make the choice cards closer to the real market setting I need to introduce restrictions into the design. This is the code:
;alts=A, B, C
;rows=36
;con
;bseed = 12345
;block = 6,minsum,noimprov(20 secs)
;bdraws = gauss(3)
;eff = (mnl,d,mean)
;store = all
;model:
U(A) = b1[0.50]
+b2.dummy[(u,-0.3,-0.05)]*X2[1,0]
+b3.dummy[(u,0.10,0.40)|(u,0.10,0.25)]*X3[2,1,0]
+b4.dummy[(u,0.05,0.25)]*X4[1,0]
+b5[(u,-0.30,-0.05)]*X5[0,1,2,3]
/
U(B) = b6[0.50]
+b7.dummy[(u,0.05,0.25)]*X7[1,0]
+b8.dummy[(u,0.10,0.35)]*X8[1,0]
+b9.dummy[(u,0.05,0.175)]*X9[1,0]
+b10[(u,-0.35,-0.20)]*X10[0,1,2,3]
+b11[0.02]*X7*X8
+b12[0.01]*X7*X9
+b13[0.01]*X8*X9$
What I would need is that into each block composed of six choice task the levels [2,1,0] of the +b3.dummy[(u,0.10,0.40)|(u,0.10,0.25)]*X3[2,1,0] prior would appear proportionally. That is, the levels 0, 1 and 2 should appear twice each in the first block and the same for the rest of the blocks. I am struggling to specify this correctly, so I was wondering if you could help me out with this specific question?
Thank you so much in advance
Have a nice day
MACA
MACA
 
Posts: 13
Joined: Wed Feb 15, 2017 11:47 pm

Re: Labelled design - How to proceed?

Postby Michiel Bliemer » Mon Jan 29, 2018 1:50 pm

Blocking can only be perfectly done when using orthogonal designs. For non-orthogonal designs, Ngene tries to do the blocking as good as possible, but will typically not be perfect and in some cases will be far from attribute level balance within each block.

Therefore, if attribute level balance is important within each block, you need to add orthogonality to your design. This is easy and ensures that blocking is done internally and guarantees attribute level balance within each block. You can use the following code (I added ;orth = sim and simplified block = 6):

design
;alts=A, B, C
;rows=36
;con
;orth = sim
;block = 6
;bdraws = gauss(3)
;eff = (mnl,d,mean)
;store = all
;model:
U(A) = b1[0.50]
+b2.dummy[(u,-0.3,-0.05)]*X2[1,0]
+b3.dummy[(u,0.10,0.40)|(u,0.10,0.25)]*X3[2,1,0]
+b4.dummy[(u,0.05,0.25)]*X4[1,0]
+b5[(u,-0.30,-0.05)]*X5[0,1,2,3]
/
U(B) = b6[0.50]
+b7.dummy[(u,0.05,0.25)]*X7[1,0]
+b8.dummy[(u,0.10,0.35)]*X8[1,0]
+b9.dummy[(u,0.05,0.175)]*X9[1,0]
+b10[(u,-0.35,-0.20)]*X10[0,1,2,3]
+b11[0.02]*X7*X8
+b12[0.01]*X7*X9
+b13[0.01]*X8*X9
$
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Labelled design - How to proceed?

Postby MACA » Wed Feb 07, 2018 2:04 am

Dear Professor Bliemer and Ngene users:
Thank you again for your solution.
1) From you answer I infer that although I only need attribute level balance for the “b3” parameter within each block and not for the rest of parameters, that cannot be specified and there must be attribute level balance for the whole set of parameters. On the other hand, I am not going to have the chance (due to budget contains and logistic issues) of estimating the priors from the pilot sample so I will have to take the risk of being mistaken about the selected priors based on my own knowledge (and intuition). Could you offer me some advice for modifying the syntax taking into account that risk?

2) Regarding the introduction of the ;orth command into a syntax for an efficient design I got a bit confused because both approaches were not simultaneously compatible in my mind. That is, for me, if you introduce ;orth command then your design turns automatically into a non-efficient design. Nonetheless, I guess that what we have at stake is an hybridisation or something like that (any explanation would be very welcome).

Best regards
P.S: Thank you so much again and congratulations for launching the new NGENE version.
MACA
MACA
 
Posts: 13
Joined: Wed Feb 15, 2017 11:47 pm

Re: Labelled design - How to proceed?

Postby Michiel Bliemer » Wed Feb 07, 2018 9:35 am

1) You are already using random (Bayesian) priors that indicate uncertainty and risk of misspecification. You can widen the distribution if you like to account for more risk. No other changes are required in your syntax.

2) Yes it is a common belief that you can only do either an orthogonal design or an efficient design. Note that orthogonality is a condition similar to attribute level balance (actually, attribute level balance is defined as orthogonality strength 1, while what typically is considered to be orthogonal is orthogonality strength 2). What an efficient orthogonal design does is create many orthogonal arrays (by looking up multiple designs in our orthogonal database and relabel attribute levels) and pick the most efficient one. So it optimises on D-efficiency while it applies the CONSTRAINT of orthogonality. Orthogonality is merely a constraint like attribute level balance, dominance checks, and other constraints imposed by ;reject, ;require, or ;cond, and can all be combined with maximising efficiency.

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

Re: Labelled design - How to proceed?

Postby MACA » Thu Aug 02, 2018 11:38 pm

Dear Ngene users and Professor Bliemer,
I am getting the following warning:
"Warning: 177147 Gauss draws were created. The search may be very slow, and if this number is very high, the results may be unpredictable. You may wish to reduce the abscissa(s), or the number of Bayesian priors."
With this code:
design
;alts=A, B, C
;rows=36
;con
;orth = sim
;block = 6
;bdraws = gauss(3)
;eff = (mnl,d,mean)
;store = all
;model:
U(A) = b1[0.8]
+b2.dummy[(u,-0.10,0.05)]*X2[1,0] ?-0.025-Def
+b3.dummy[(u,0.10,0.25)|(u,0.05,0.15)]*X3[2,1,0] ?0.175-SUAVE;0.10-INTENSO
+b4.dummy[(u,0.05,0.15)]*X4[1,0] ?0.10-Vitamina E
+b5[(u,-0.25,-0.05)]*X5[0,1,2,3] ?-0.225-Precio
/
U(B) = b6[1.50]
+b7.dummy[(u,0.05,0.15)]*X7[1,0] ?0.10-Def
+b8.dummy[(u,0.05,0.35)|(u,-0.25,-0.15)]*X8[2,1,0] ?0.20-Frutado/-0.20-Frutado+Picante
+b9.dummy[(u,0.05,0.25)|(u,0.05,0.10)]*X9[2,1,0] ?0.15-Antioxidantes/0.075Poly
+b10[(u,-0.40,-0.10)]*X10[0,1,2,3]$

The part of the warning which makes me be very worried about is: "the results may be unpredictable".
Should I be worried about? What can I do to work it out?
Kind regards
MAC
MACA
 
Posts: 13
Joined: Wed Feb 15, 2017 11:47 pm

Re: Labelled design - How to proceed?

Postby Michiel Bliemer » Fri Aug 03, 2018 11:49 am

I can understand that the statement "the results may be unpredictable" looks ominous.
I just discussed with our software engineer and the reason why this statement is there was to indicate that the optimisation will be very slow and hence it will take a very long time for Ngene to find an optimal/efficient design (it will take 177147 times as long compared to using fixed priors). But all computations done by Ngene are exact and the Bayesian D-errors that are calculated are accurate. So we agreed to take this statement out of the warnings in the next version since it is somewhat misleading.

If you could bring the number of draws down by making some priors non-Bayesian, or by choosing less abscissas (i.e. ;bdraws = gauss(2) or ;bdraws = gaus(2,3,3,2,2,...etc) where you select 3 for the most unreliable priors and 2 for the more reliable priors) then Ngene will be able to find an efficient design much more easily.

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

Effects coding for choice experiment and syntax

Postby Pramisha » Wed Apr 21, 2021 1:43 pm

Dear Professor Bliemer, Collins and NGene users,
I am starting a research project and using NGene for my research for the first time, so I would like to know if my syntax is correct or not.
I am using following attributes and attribute levels:

Attributes and Attribute Levels:
1. Tillage Practice (No-till. Conservation Tillage, Conventional Tillage)
2. Cover Crops (No, Yes)
3. Carbon Payment ($/acre) (0,5,10)
4. Certification (None, Private firm, Third party, USDA)
5. Contract Duration (None, 10 years minimum contract)
6. Source of Carbon Payment (None, Carbon Commodity Market, USDA)

Here, I intend to generate:
-Three alternatives; Opt.A, Opt. B and Conventional Tillage
-36 choice sets in 6 blocks
-D-efficient MNL model. We can use this model for Random Parameter Logit (RPL) analysis too.
-Use of mfederov algorithm
-Choose to restrict the candidate set to 2000 choice sets. without restriction, the candidate set may be quite large which would make the mfederov algorithm quite slow.
-By default, Ngene will take 200 Halton draws but with 7 Bayesian priors, this isnot enough. therefore, bdraws= gauss (3) is used which does 3^7= 2178 draws.
-For the prior values, I used mean and standard deviation of attributes looking into previous studies and closer to them, if the values aren't available.
-Using a design with 36 rows, I was able to estimate all possible interaction effects after data collection.

I am using tillage (with conservation tillage and no-till) and contract (none and 10 years minimum contract) as effects coded variables, conventional tillage as constant and others as dummy variables.

But I want to make sure that if my effect coding is correct or not. Any guidance would be highly valuable.

Syntax

Design
;alts= optA*, optB*,Conventional Tillage
;rows=36
;eff=(mnl,d, mean)
;block=6
;alg= mfederov
;bdraws=gauss(3)
;model:
U(optA) = b1 [(n, 0.16377, 0.01022)] * Carbon Payment[0, 5, 10](8-16,8-16,8-16)
+ b2.effects[(n, 0.26093, 0.05064)]*Tillage[1,0]
+ b3.dummy[(n, 0.26093, 0.05064)]* Cover Crops[1, 0]
+ b4.dummy[(n,-0.20278, 0.04824)|(n,-2.0, 0.09)|(n,-1.04265, 0.06913)]* Certification[3, 2,1, 0]
+ b5.effects[(n, -0.86152, 0.05450)]*Contract[1,0]
+ b6.dummy[(n,-0.20278, 0.04824) | [(n,-1.04265, 0.06913)]* Source[2,1, 0] /
U(optB) = b1 * Carbon Payment
+ b2 * Tillage
+ b3 * Cover Crops
+ b4 * Certification
+ b5 * Contract
+ b6 * Source /
U(Conventional Tillage) = b0 [(n, 0.77716, 0.18272))]
$
Pramisha
 
Posts: 11
Joined: Mon Apr 19, 2021 7:21 am

Re: Labelled design - How to proceed?

Postby Michiel Bliemer » Wed Apr 21, 2021 1:52 pm

This syntax looks good, well done for being the first time!

Dummy and effects coding are specified in the same way, only their interpretation (and their priors) are different. So in the syntax I do not see any problems in the way you have specified your effects coded attributes. Note that you can always rewrite effects coding into dummy coding and vice versa, so in principle you could estimate all coefficients using dummy coding.

Michiel

PS: Note that you have posted your question in someone else's post, next time please create your own post instead of replying to someone else's post.
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

PreviousNext

Return to Choice experiments - Ngene

Who is online

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

cron