D-efficient design

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

D-efficient design

Postby wangqge » Wed Jul 27, 2022 9:45 pm

Dear Researchers,

Recently,I am designing a DCE pilot study in Ngene.
I want to use Ngene software for D-efficiency design,which generates a total of 12 choice sets,each containing 2 choice options.The purpose of DCE study was to explore physician preference for generic substitution.However,since I haven't found similar studies,the pilot study can not use priors based on the results of the earlier studies.

The study identified a total of seven attributes,four at the 3 level,two at the 2 level,and one at the 4 level.
effective rate:85%,90%,95%
serious adverse reactions:10%,17%,29%
severity of illness:mild,moderate,severe
patient opinion:oppose,support
instructions:no,one difference,two difference,3 or more difference
policy:support,no effect
cost:24,60,120

Design
;alts=choice A*,choice B*
;rows=12
;eff=(mnl,d)
;model:
U(choice A)=effect.*effect[0.85,0.9,0.95] + SAR.*SAR[0.1,0.17,0.29] + opinion.dummy*opnion[0,1] + severity.dummy[0|0]*severity[0,1,2] + label.dummy*label[0,1,2,3] + policy.dummy*policy[0,1] + cost.[0]*cost[24,60,120]/
U(choice B)=effect*effect + SAR.*SAR + opinion.dummy*opinion + severity.dummy*severity + label.dummy*label + policy.dummy*policy + cost*cost
$

I still have a few areas of confusion.
1. Is it reasonable to set 12 choice sets? What is the general basis for the setting of rows?
2. Since there is no a prior parameter to refer to ,i use 0 instead, does the syntax make sence?
wangqge
 
Posts: 8
Joined: Tue Mar 15, 2022 12:39 pm

Re: D-efficient design

Postby Michiel Bliemer » Thu Jul 28, 2022 9:20 am

A few things:

* variable names should not have spaces; spaces make the syntax unpredicable
* parameter names should not end with a period; a period is reserved for special commands like dummy
* the last level in the dummy coded attributes is the reference level

To answer your questions:

1. You are estimating 10 parameters. So having only 12 choice tasks is not much. I would recommend increasing it, perhaps 24 and block the design in 2.
2. Yes 0 is fine if you do not know the preference order of the attribute levels. If you know the preference order, please use near-zero priors to indicate the order. See some examples in the syntax below. By indicating the preference order using near-zero positive and negative priors, Ngene can avoid choice tasks with dominant alternatives in your design.

Code: Select all
Design
;alts = choiceA*, choiceB*
;rows = 24
;block = 2
;eff = (mnl,d)
;model:
U(choiceA) = effect[0.0001]                * effect[0.85,0.9,0.95] ? effective rates
           + SAR[-0.0001]                  * SAR[0.1,0.17,0.29]    ? adverse reaction rate
           + opinion.dummy[-0.001]         * opinion[1,0]          ? 0 = support (base), 1 = oppose
           + severity.dummy[-0.001|-0.002] * severity[1,2,0]       ? 0 = mild (base), 1 = moderate, 2 = severe
           + label.dummy[0|0|0]            * label[1,2,3,0]        ? 0 = none (base), 1 = one difference, 2 = two difference, 3 = 3+ difference
           + policy.dummy[0]               * policy[1,0]           ? 0 = no effect (base), 1 = support
           + cost[-0.00001]                * cost[24,60,120]           
           /
U(choiceB) = effect                        * effect
           + SAR                           * SAR
           + opinion                       * opinion
           + severity                      * severity
           + label                         * label
           + policy                        * policy
           + cost                          * cost
$


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

Re: D-efficient design

Postby wangqge » Thu Jul 28, 2022 12:19 pm

Dear Michiel,

Thank you very much for your answer,it's very beneficial for me.

I have some questions.I read the literature and learned that the D-efficient design questionnaire with Ngene needs to ensure three principles,one of which is the principle of minimum overlap.However,when I run it with above syntax,some attributes are overlapping,how should I deal with this?

Best Regards
Qiange
wangqge
 
Posts: 8
Joined: Tue Mar 15, 2022 12:39 pm

Re: D-efficient design

Postby Michiel Bliemer » Thu Jul 28, 2022 2:09 pm

You do no need minimum overlap in an efficient design, some overlap may exist and may even be useful. Maybe the source you read was Huber and Zwerina (1996)? A lot has happened since.

If you want minimum overlap, you can create an optimal orthogonal design in Ngene using ;orth = ood. This will have zero overlap, but will require 72 rows in the design. It also cannot avoid choice tasks with dominant alternatives.

Code: Select all
Design
;alts = choiceA*, choiceB*
;rows = 24
;block = 2
;orth = ood
;model:
U(choiceA) = effect[0.0001]                * effect[0.85,0.9,0.95] ? effective rates
           + SAR[-0.0001]                  * SAR[0.1,0.17,0.29]    ? adverse reaction rate
           + opinion.dummy[-0.001]         * opinion[1,0]          ? 0 = support (base), 1 = oppose
           + severity.dummy[-0.001|-0.002] * severity[1,2,0]       ? 0 = mild (base), 1 = moderate, 2 = severe
           + label.dummy[0|0|0]            * label[1,2,3,0]        ? 0 = none (base), 1 = one difference, 2 = two difference, 3 = 3+ difference
           + policy.dummy[0]               * policy[1,0]           ? 0 = no effect (base), 1 = support
           + cost[-0.00001]                * cost[24,60,120]           
           /
U(choiceB) = effect                        * effect
           + SAR                           * SAR
           + opinion                       * opinion
           + severity                      * severity
           + label                         * label
           + policy                        * policy
           + cost                          * cost
$


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

Re: D-efficient design

Postby wangqge » Thu Jul 28, 2022 5:23 pm

Dear Michiel,

Thanks!

Yes,I read overlap from this literature:Constructing Experimental Designs for Discrete-Choice Experiments:Report of the ISPOR Conjoint Analysis Experimental Design Good Research Practices Task Force.
I also read this from Parental Vaccine Preferences for Their Children in China: A Discrete Choice Experiment, there is no duplication in the level of the questionnaire set in the article.
Since I still have questions about Ngene,I would like to know if I need to set a minimum overlap for my questionnaire,and if there is no minimum overlap involved,will it affect the questionnaire results?

Best Regards
Qiange
wangqge
 
Posts: 8
Joined: Tue Mar 15, 2022 12:39 pm

Re: D-efficient design

Postby Michiel Bliemer » Thu Jul 28, 2022 7:33 pm

Any overlap in attribute levels will not influence your estimation results.

It does not matter whether you use random attribute levels, orthogonal attribute levels, attributes with overlap or without overlap, designs with attribute level balance or without balance, they all should result in the same parameter estimates as long as your sample size is large enough.

You capture more information if there is no overlap across the attribute levels, and hence the design will be more efficient statistically. But choice tasks without overlap are also more difficult for respondents since they are asked to make trade-offs on all attributes simultaneously. This is why people often even specifically include overlap into the design such that choice tasks become a bit easier (see for example partial profile designs). The more difficult the choice tasks, the more error variance in your data. Also if there is a dominant attribute, then overlap is desirable in that attribute.

So whatever you do, you will be fine.

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

Re: D-efficient design

Postby wangqge » Thu Jul 28, 2022 10:46 pm

Dear

Thanks for your patient answers!

Your previous answer mentioned using ;orth=ood to set duplicates,but the software manual shows that it is the optimal design,how should the overlap be designed in the efficient design?(How the researcher in Ref. used Ngene for D-efficient design while maintaining minimal overlap?)

Also,if 72 selection sets are generated,is it possible to use syntax to distribute them equally among different panels in Ngene?

Best
Qiange
wangqge
 
Posts: 8
Joined: Tue Mar 15, 2022 12:39 pm

Re: D-efficient design

Postby Michiel Bliemer » Fri Jul 29, 2022 11:04 am

An optimal orthogonal design is a D-efficient design with minimum overlap, so ;orth = ood would create this. Note that it assumes zero priors an orthonormal polynomial coding of all attributes, please refer to the work of Street and Burgess who proposed this strategy. To generate a D-efficient design with non-zero priors and without dominant alternatives, it is not possible to guarantee that there is zero overlap. If you would like to know what the authors did, please contact the authors of the article as I do not know.

You can block 72 rows into smaller parts, if that is what you mean? You can add ;block = ... to do this, e.g., by adding block = 6.

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

Re: D-efficient design

Postby wangqge » Fri Jul 29, 2022 1:15 pm

Dear Michiel,

Thank you very much!
I still have doubts.

Code: Select all
Design
;alts = choiceA*, choiceB*
;rows = 24
;block = 2
;eff = (mnl,d)
;model:
U(choiceA) = effect[0.0001]                * effect[0.85,0.9,0.95] ? effective rates
           + SAR[-0.0001]                  * SAR[0.1,0.17,0.29]    ? adverse reaction rate
           + opinion.dummy[-0.001]         * opinion[1,0]          ? 0 = support (base), 1 = oppose
           + severity.dummy[-0.001|-0.002] * severity[1,2,0]       ? 0 = mild (base), 1 = moderate, 2 = severe
           + label.dummy[0|0|0]            * label[1,2,3,0]        ? 0 = none (base), 1 = one difference, 2 = two difference, 3 = 3+ difference
           + policy.dummy[0]               * policy[1,0]           ? 0 = no effect (base), 1 = support
           + cost[-0.00001]                * cost[24,60,120]           
           /
U(choiceB) = effect                        * effect
           + SAR                           * SAR
           + opinion                       * opinion
           + severity                      * severity
           + label                         * label
           + policy                        * policy
           + cost                          * cost
$


The questionnaire designed according to the above syntax exists that the intermediate levels of attributes 1,2 and 7 are always the same (e.g.,90% and 90%,17% and 17%, 60 and 60) and the first and third attributes are always paired(e.g.,85% and 95%,10% and 29%, 24 and 120). What is the reason for this?

Best Regards
Qiange
wangqge
 
Posts: 8
Joined: Tue Mar 15, 2022 12:39 pm

Re: D-efficient design

Postby Michiel Bliemer » Sat Jul 30, 2022 5:28 pm

That is because they are numerical attributes and more efficiency is obtained by asking the respondent to make larger trade-offs. A trade-off between 95% and 85% is larger than between 90% and 85%, so you will get smaller standard errors if you mainly put 95-85% as trade-offs in your design. Since you are using the default swapping algorithm, Ngene will impose attribute level balance, which means that is still needs to use 90% somewhere. Therefore it uses it together with 90% in several choice tasks, such that it can ask larger trade-offs with 95-85% in other choice tasks.

Note that if you switch to the modified Federov algorithm, Ngene will mostly use 95-85% and will not use 90% much at all, because using the middle level is always inefficient. Only when you want to estimate nonlinearities you will need the middle level. If you would dummy code the variable, it will use all combinations of the levels. If you would like to see all combinations of levels appearing in your design, you can use an orthogonal design.

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 6 guests

cron