One scenario at a time

This forum is for posts covering broader stated choice experimental design issues.

Moderators: Andrew Collins, Michiel Bliemer, johnr

One scenario at a time

Postby Edel » Thu Apr 06, 2023 4:02 pm

Hi,

I was wondering about presenting one scenario of a DCE choice at a time.

For example, rather than having 2 scenarios side by side with 2 treatment alternatives, each element of the scenario is presented one at a time with the 2 treatment alternatives.
Edel
 
Posts: 15
Joined: Wed Nov 23, 2022 11:18 am

Re: One scenario at a time

Postby Michiel Bliemer » Fri Apr 07, 2023 10:30 am

I do not understand what you mean with "2 scenarios side by side with 2 treatment alternatives" and "each element of the scenario".

A scenario describes a choice context. There is only one scenario per choice task. Each choice task has a set of alternatives, and each alternative is described by a profile consisting of attribute level combinations.

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

Re: One scenario at a time

Postby Edel » Tue Apr 11, 2023 4:09 pm

Hi Michiel,

My question requires some context.
I understand using choice experiments to determine the value participants place on certain elements of a choice, and for that reason, there needs to be at least 2 choices.
To explain my question a bit better, I will tell you about my project. I would like to understand the value doctors place on factors in a choice when prescribing blood pressure-lowering medicines.

In my scenario, I was planning on describing the age and blood pressure level of a hypothetical patient, and then doctors would be asked which medication regimen they would prescribe based on several (6) factors.

The challenge is that to create a realistic scenario, I should include future outcomes (for example, risk of serious cardiovascular event) but also some details on the current or past history of the hypothetical patient.

So if I present 2 scenarios side by side I am asking clinicians;

For patient X who is 80 years old with BP of 150/87 would you prescribe to this BP target 140/90 or this BP target 120/80 considering these factors;
risk of cardiovascular event is 15% in choice A with BP target of 140/90 and 5% in choice B with BP target 120/80.

That bit is straightforward.

But what if I wanted to include things like the person’s social history, for example, whether the hypothetical patient lives alone or lives with others.

I am now asking the doctors to consider a scenario when they are prescribing a BP lowering regimen to patient X who is 80 years old with BP of 150/87, with choice A where the patient lives alone but in the adjoining choice B they have to imagine that same patient lives with others. I tested this with clinicians and they found it difficult.

I wondered if I could use the choice methodology but only present one scenario at a time, each with 2 choices.

It would be something like,
Scenario 1. patient X who is 80 years old with BP of 150/87,
Their risk of Cardiovascular event is 5%
They live alone
Would you prescribe to A) BP target 140/90 or B) BP target 120/80

Scenario 2. patient X who is 80 years old with BP of 150/87,
Their risk of serious cardiovascular event is 15%
They live alone
Would you prescribe to A) BP target 140/90 or B) BP target 120/80

Scenario 3. patient X who is 80 years old with BP of 150/87,
Their risk of serious cardiovascular event is 15%
They live with others
Would you prescribe to A) BP target 140/90 or B) BP target 120/80


etc

Thank you for your time.

PS I look forward to attending the DCE course at USyd this year, I am keeping an eye out for it.
Edel
 
Posts: 15
Joined: Wed Nov 23, 2022 11:18 am

Re: One scenario at a time

Postby Michiel Bliemer » Tue Apr 11, 2023 6:16 pm

The background of the patient should all be part of the scenario, they cannot be attributes of the alternatives. So the scenarios that you describe make sense. Note that you can vary all variables in the scenario, so age, BP, risk percentage, and living situation can all be varied. But also the attributes in the alternatives can be varied. See for example the two choice tasks below, where I have varied all scenario variables and all attribute levels. It is up to you what you want to vary in each choice task, but if you want to estimate the impact of the scenario or attributes on choice, then there needs to be some variation across choice tasks.

Choice task 1.
Patient X who is 80 years old with BP of 150/87,
Their risk of Cardiovascular event is 5%
They live alone

Would you prescribe to
A) BP target 140/90
B) BP target 120/80


Choice task 2.
Patient X who is 70 years old with BP of 140/95,
Their risk of Cardiovascular event is 15%
They live with others

Would you prescribe to
A) BP target 130/90
B) BP target 125/85


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

Re: One scenario at a time

Postby Edel » Tue Apr 18, 2023 3:41 pm

HI Michiel,

Thank you. Your solution looks great.
That would work for my question. I am trying to figure out how to format it in Ngene but am having problems. I added the background to the scenario, but I am not sure how to present the alternatives to design a choice like you have described.

Here is my syntax. (Apologies for posting an Ngene question in general forum, I thought it would be useful to give my question some context).

Design
;alts=intensive, standard
;rows=72
;eff= (mnl,d.
;alg = mfederov
;require:
standard.cvev >= intensive.cvev
;model:


U(intensive) =
age[-0.00001] * AGE [65, 80]+
soc.dummy[0.00001] *SOC[1,0]+
cvev[-0.00001] *CVEV[5,10,15]+
fall[-0.0001] *FALL[6,8,12]+
dh.dummy[0.0001]* DH[1,0]+
nudg.dummy[0.0001]* NUDG[1,0] /


U(standard) = reg[0] +
age * AGE+
soc * SOC +
cvev * CVEV+
fall * FALL+
dh* DH+
nudg* NUDG


$
Edel
 
Posts: 15
Joined: Wed Nov 23, 2022 11:18 am

Re: One scenario at a time

Postby Michiel Bliemer » Tue Apr 18, 2023 4:20 pm

A scenario variable can be added to utility functions just like an attribute variable, but it needs to be added in a special way.

If the alternatives are unlabelled, you need to interact the scenario variables (like age) with other attributes. So you could add beta * AGE * X, where X is an attribute. In this case, the coefficient of X becomes age-dependent.

if the alternatives are labelled, you can also interact the scenario variables, but you can also add them as a main effect in all-but-one alternatives. For example, you add AGE into the intensive alternative but not in the standard alternative. If coefficient age is negative, then it would mean that older people have less preference for the intensive alternative.

In the choice task in the survey, you simply describe all scenario variables at the top.

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

Re: One scenario at a time

Postby Edel » Wed Apr 19, 2023 3:47 pm

Hi Michiel,

Thanks again for all your help.
I tried to follow your advice. My alternatives are labelled.
I added age, condition and social hx as scenario variables and following the instructions in section 8.5 I added code to force the scenario variables to be the same for both alternatives.

I added interactions following section 7.2.9.
The risk of CV events and age interact to decrease the likelihood of choosing the intensive regimen.
The risk of falls and age interact to decrease the likelihood of choosing the intensive regimen.
The risk of CV events and blood pressure interact to increase the likelihood of choosing the intensive regimen.
The risk of falls and social history interact to increase the likelihood of choosing the intensive regimen.

1. This is my syntax. Unfortunately, it is returning an error.
Error: An interaction term is associated with a dummy or effects coded parameter. Interactions of dummy or effects coded attributes are not currently supported. 'nudg* nudgage[-0.00001] * ag[age]'

Could you help identify the reason for this error?

2. I have 3 scenario variables, interactions and constraints on how the attributes cvev and fall are presented in each alternative. Do you have any opinion on the quality of this overall design?

Design
;alts=intensive, standard
;rows=12
;eff= (mnl,d)
;alg = mfederov
;require:
standard.cvev >= intensive.cvev
;model:


U(intensive) =
cvev[-0.00001] *CVEV[5, 10, 15]+
fall[-0.0001] *FALL[6,8,12]+
dh.dummy[0.0001]* DH[1,0]+
nudg.dummy[0.0001]* NUDG[1,0]+
age[-0.00001] * AG[6,80]+
cond[-0.0001]* CON[145,155]+
soc[0.00001] *SO[1,0]+
i1[-0.00001]*CVEV * FALL *age[80]+
i2[-0.00001]*FALL*AGE[80]+
i3[0.00001]*CVEV*COND[155]+
i4[0.0001]*FALL*SOC[0]+
/


U(standard) = reg[0] +
cvev * CVEV+
fall * FALL+
dh* DH+
nudg* NUDG
age * AGE[age]+
cond* COND[cond]+
soc* SOC[soc]

$
Edel
 
Posts: 15
Joined: Wed Nov 23, 2022 11:18 am

Re: One scenario at a time

Postby Michiel Bliemer » Wed Apr 19, 2023 5:50 pm

The syntax has quite a few issues, for example there is a + at thje end of U(intensive) and a + is missing after NUDG in alt2.

Also, you cannot add a scenario as a main effect in both alternatives (see my previous message), you can only add in one alternative. You can add interaction effects in both alternatives if you like. Note that for labelled alternatives you can have alternative-specific coefficients, see script below. I do not know what AGE[80] means, perhaps you mean age.dummy[80] or you mean simply AGE.

It is recommended to increase the number of rows given that you have quite a few parameters. You can block the design, see script below.

Note that the script below is just an example to show you how to write syntax, but since I do not really know what you are trying to do you should of course rewrite the script to suite your purpose.

Code: Select all
Design
;alts=intensive, standard
;rows=24
;block=2
;eff= (mnl,d)
;alg = mfederov
;require:
standard.cvev >= intensive.cvev
;model:


U(intensive) = cvev[-0.00001]      * CVEV[5, 10, 15]
             + fall[-0.0001]       * FALL[6,8,12]
             + dh.dummy[0.0001]    * DH[1,0]
             + nudg.dummy[0.0001]  * NUDG[1,0]
             + age.dummy[-0.00001] * AGE[80,6]
             + cond.dummy[-0.0001] * CON[155,145]
             + soc.dummy[0.00001]  * SOC[1,0]
             + i1[-0.00001]        * CVEV * FALL * AGE.dummy[80]
             + i2[-0.00001]        * FALL * AGE.dummy[80]
             + i3[0.00001]         * CVEV * CON.dummy[155]
             + i4[-0.0001]         * FALL * SOC.dummy[1]
             /
U(standard)  = reg[0]
             + cvev2[-0.00001]     * CVEV
             + fall2[-0.00001]     * FALL
             + dh2.dummy[0.0001]   * DH
             + nudg2.dummy[0.0001] * NUDG
$


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

Re: One scenario at a time

Postby Edel » Thu Apr 20, 2023 8:38 pm

Hi Michiel,
I think I have it now, I would appreciate your review.
I am trying to quantify the weight of attributes that influence a choice to prescribe BP medicines to an intensive target of <120mmHg or a standard target of 120-140mmHg.

My (2) labelled alternatives are; intensive, standard
I have 4 attributes;
Risk of serious CV event (3 levels)
Risk of fall (3 levels)
Digital health support (2 levels, dummy coded)
Peer support (2 levels, dummy coded)

I have 4 scenario variables
Age (3 levels)
baseline BP (2 levels, dummy coded)
Social hx (2 levels, dummy coded)
multimorbidity (3 levels)

6 interactions
i1 older people with higher CV risk will result in less preference for the intensive alternative
i2 older people with higher fall risk will result in less preference for the intensive alternative)
i3 people with baseline BP of 155 and higher CV risk will result in less preference for the intensive alternative
i4 people with higher fall risk, living alone will result in less preference for the intensive alternative
i5 people with higher CV risk and co-morbidities will result in less preference for the intensive alternative
i6 people with higher fall risk and co-morbidities will result in less preference for the intensive alternative


Design
;alts=intensive, standard
;rows=48 ?increased as you suggested
;block=4 ?each participant will be presented with 12 choice tasks
;eff= (mnl,d)
;alg = mfederov
;require:
standard.cvev >= intensive.cvev,
intensive.fall >=standard.fall
;model:


U(intensive) =
cvev[-0.00001] *CVEV[5, 10, 15]+
fall[-0.0001] *FALL[6,8,12]+
dh.dummy[0.0001] * DH[1,0]+
nudg.dummy[0.0001] * NUDG[1,0]+
multi[-0.0001]*MULT[0,1,3]+
age[-0.00001] * AGE[65,75,80]+
cond.dummy[-0.0001] * COND[155,145]+
soc.dummy[0.00001] * SOC[1,0]+
i1[-0.00001]*CVEV *AGE+
i2[-0.00001]*FALL*AGE+
i3[-0.00001]*CVEV*COND.dummy[155]+
i4[-0.0001]*FALL*SOC.dummy[0] +
i5[-0.00001]*CVEV*MULT+
i6[-0.0001]*FALL*MULT
/


U(standard) = reg[0] +
cvev * CVEV+
fall * FALL+
dh.dummy* DH+
nudg.dummy* NUDG
$
Edel
 
Posts: 15
Joined: Wed Nov 23, 2022 11:18 am

Re: One scenario at a time

Postby Michiel Bliemer » Fri Apr 21, 2023 4:43 pm

I have not looked at the interpretation of the utility functions, but the syntax is fine now.

Since the modified Federov algorithm cannot guarantee attribute level balance, and will often go to the end points (lowest/highest levels), it is often recommended to apply some attribute level constraints for the numerical attributes by adding something like (10-48,10-48,1-48) to the attributes to ensure that each attribute level appears at least 10 times across the 48 rows. For example, see script below. It may take a bit time for Ngene to find a design that satisfies all constraints and you may need to relax the constraints if Ngene struggles. Categorical attributes generally do not need such attribute level constraints since dummy coding the variables automatically guarantees that there will be reasonable attribute level balance as otherwise the design will become inefficient.

Code: Select all
Design
;alts=intensive, standard
;rows=48 ?increased as you suggested
;block=4 ?each participant will be presented with 12 choice tasks
;eff= (mnl,d)
;alg = mfederov
;require:
standard.cvev >= intensive.cvev,
intensive.fall >=standard.fall
;model:


U(intensive) =
cvev[-0.00001] *CVEV[5, 10, 15](10-48,10-48,10-48)+
fall[-0.0001] *FALL[6,8,12](10-48,10-48,10-48)+
dh.dummy[0.0001] * DH[1,0]+
nudg.dummy[0.0001] * NUDG[1,0]+
multi[-0.0001]*MULT[0,1,3](10-48,10-48,10-48)+
age[-0.00001] * AGE[65,75,80](10-48,10-48,10-48)+
cond.dummy[-0.0001] * COND[155,145]+
soc.dummy[0.00001] * SOC[1,0]+
i1[-0.00001]*CVEV *AGE+
i2[-0.00001]*FALL*AGE+
i3[-0.00001]*CVEV*COND.dummy[155]+
i4[-0.0001]*FALL*SOC.dummy[0] +
i5[-0.00001]*CVEV*MULT+
i6[-0.0001]*FALL*MULT
/


U(standard) = reg[0] +
cvev * CVEV+
fall * FALL+
dh.dummy* DH+
nudg.dummy* NUDG
$


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


Return to Choice experiments - general

Who is online

Users browsing this forum: No registered users and 5 guests