Effect coding or dummy coding of optout

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Effect coding or dummy coding of optout

Postby kristianroed » Mon Dec 06, 2021 10:12 pm

Hi all
As first-time users of this forum, my colleagues and I are hoping that you can offer us some guidance on our choice experiment aimed at understanding professional investor decision-making.

In short, we have used Ngene to generate a design that builds on six attributes with two levels each. We have generated a design where respondents choose between two choice options and a third optout with a total of 12 choice sets, but have run into issues coding the data. Specifically, we are unsure on whether we should effect code or dummy code the data. More specifically we are unsure of how to code optout. Effect coding does not work because collinarity, but conceptually we are having a difficult time accepting that the reference category ”0” is both low level of the attribute (e.g. low risk) and optout. Perhaps someone can provide us with some guidance.

Also if we try to run the model without the optout, simply deleting the observations where respondents choose optout we are not able to run the model. It is not that we want to publish this we simply want to understand why this happens. Is it to do the Ngene design or something else?

Finally, we have observed that we likely have too few rows (choice sets). Would you recommend increasing the number choice-sets and if so by how much.

Thanks in advance for any insights or help
Cheers
Kristian
kristianroed
 
Posts: 2
Joined: Mon Dec 06, 2021 8:17 pm

Re: Effect coding or dummy coding of optout

Postby Michiel Bliemer » Tue Dec 07, 2021 8:17 am

Dummy and effects coding are substitutes, it should not matter which one you use.

You first have to determine whether the third alternative is actually an opt-out alternative or a status quo alternative. An opt-out alternative has no attribute levels and its utility is either zero or a constant is included in the utility function. A status quo alternative has attribute levels that describe its characteristics and one would include these attributes in the utility function.

You should also make sure that all parameters are identifiable in the model. For example, if the third alternative is a status quo alternative and it has unique levels for a dummy or effects coded attribute, then it is not possible to also estimate a constant for the status quo alternative. This has been discussed several times on this forum and is a tricky situation. The D-error of the design would be infinite or very large, indicating that the model cannot be estimated. If you used an orthogonal design, then Ngene would not report a D-error. Could you perhaps share the syntax that you used to generate the design in Ngene?

The number of rows in your design needs to be at minimum (number of parameters) / (number of alternatives - 1), but I always recommend multiplying this minimum number of choice tasks by 2 or 3 to have enough variation in the data.

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

Re: Effect coding or dummy coding of optout

Postby kristianroed » Thu Dec 09, 2021 1:32 am

Dear Michiel
Thank you very much for your very fast response.

Our opt-out alternative is a ‘no choice’ alternative (utility of zero, no attributes attached to it; so not a status quo alternative). Our attributes are binary (0=low level; 1=high level).

If my follow-up. Is it correct that we coded the no-choice alternative (alternative 3) with ‘0’ on all attributes (while ‘0’ indicates the low level for alternatives 1 and 2)? We are unsure, since the value of ‘0’ means different things conceptually, depending on whether we are looking at alternatives 1 and 2 (the two projects respondents can choose between), or at the no-choice alternative.

Also, we are wondering whether we should proceed with binary attributes or rather specify e.g. that specific attribute (in our case ‘revenue growth’) as a continuous variable with 3 or 4 levels. And then estimate a constant term for the ‘no-choice’ option (where ‘no choice’ would take on the value of ‘0’ % revenue growth)?

The syntax for our current design is:
Design
;alts = alt1*, alt2*, alt3
;rows = 12
;block=4
;eff=(mnl,d)
;alg=mfederov(candidates=3000000)
;model:
U(alt1) = env_perf_par[.5] * env_perf[0,1] + soc_perf_par[.5] * soc_perf[0,1] + inv_goal_par[-.5] * inv_goal[0,1] + social_proof_par[.5] * social_proof[0,1] + rev_growth_par[.5] * rev_growth[0,1] + risk_par[-.5] * risk[0,1] /
U(alt2) = env_perf_par * env_perf + soc_perf_par * soc_perf + inv_goal_par * inv_goal + social_proof_par * social_proof + rev_growth_par * rev_growth + risk_par * risk
$

All the best
Kristian
kristianroed
 
Posts: 2
Joined: Mon Dec 06, 2021 8:17 pm

Re: Effect coding or dummy coding of optout

Postby Michiel Bliemer » Thu Dec 09, 2021 11:01 am

An opt-out alternative will always have U(alt3) = 0 or U(alt3) = b0, so it is either zero or a constant. In your case, you have set it to zero, but it means that you MUST add a constant to both alt1 and alt2 (the same constant). Utilities are all relative, and the constant will actually describe the behaviour towards the opt-out and is therefore important to include. Since utilities are relative and only total utilities matter for choice probabilities, you should not worry about the base level of dummy coding being equal to zero. This holds for all attributes that their base levels are zero, but for estimating the model that does not matter.

I would not use dummy or effects coding for numerical / quantitative attributes, this makes WTP computations difficult and you also cannot interpolate or extrapolate for forecasting. So I generally include them as continuous variables with a linear effect or impose a nonlinear transoformation like a logarithm. For example, instead of b1 * x1[1,2,3] you can use b1 * x1[0,0.69,1.10] if you want to use a logarithmic transform of levels 1,2,3, noting that these levels need to correspond with the actual attribute levels (so they could be 5,10,15 for example). If you are not interested in nonlinear effects, you would just use b1 * x1[1,2,3].

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: No registered users and 9 guests

cron