D-efficient design for pilot phase

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

D-efficient design for pilot phase

Postby mhalsubhi » Tue Jun 06, 2023 9:48 am

Hi all,

I hope you are doing well. I am a Ph.D. student. I am currently doing a DCE as part of my Ph.D. In my DCE I have 6 attributes, each has 3 levels, and 3 alternatives (including the optout option).

Profit (0%, 3%, 6%)
Item sold (0%, 5%, 10%)
Ease of implementation (easy, natural, hard) neutral is the baseline.
Supplier satisfaction: we use star rate/5 (1 star out of 5, 3 stars out of 5, 5 stars out of 5)
Customer satisfaction: we use a star rate/5 (1 star out of 5, 3 stars out of 5, 5 stars out of 5)
Implementation Costs: $1,000, $5,000, $10,000)

All attributes are continuous except ease of implementation (categorical). My total sample size is approximately 70. I will pilot the survey with 10 participants. Since no previous was done, I assumed all priors to be near zero. I added; alg = mfederov because I would like to minimize the dominant choice tasks.


Design
;alts = A*, B*, Neither
;rows = 12
;alg = mfederov
;eff = (mnl,d)
;model:
U(A) = b1[0.0000000001] * profit[0,3,6] + b2[0.0000000001] * item[0,5,10] + b3.dummy [0.0000003|0.000000002] * ease[1,3,2] + b4. [0.0000000001] * supp[1,3,5] + b5. [0.00000001] * cust[1,3,5] + b6[-0.0000000001] * cost[1000,5000,10000] /

U(B) = b1 * profit + b2 * item + b3 * ease + b4 * supp + b5 * cust + b6 * cost /

U(neither) = b0[0.00000000001]

$



I would be very grateful if you could review my syntax.

Thank you so much in advance!
mhalsubhi
 
Posts: 5
Joined: Mon Jun 05, 2023 3:52 pm

Re: D-efficient design for pilot phase

Postby Michiel Bliemer » Wed Jun 07, 2023 11:18 am

There is no need to use the modified Federov algorithm since the default swapping algorithm also automatically avoids dominant alternatives between A and B. The swapping algorithm has as benefit that it maintains attribute level balance.

I also fixed two small errors in your script, namely I replaced "b4." and "b5." with "b4" and "b5".

Code: Select all
Design
;alts = A*, B*, Neither
;rows = 12
;eff = (mnl,d)
;model:
U(A) = b1[0.0000000001]                * profit[0,3,6]
     + b2[0.0000000001]                * item[0,5,10]
     + b3.dummy[0.0000003|0.000000002] * ease[1,3,2]
     + b4[0.0000000001]                * supp[1,3,5]
     + b5[0.00000001]                  * cust[1,3,5]
     + b6[-0.0000000001]               * cost[1000,5000,10000]
     /
U(B) = b1 * profit + b2 * item + b3 * ease + b4 * supp + b5 * cust + b6 * cost
     /
U(Neither) = b0[0.00000000001]
$


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

Re: D-efficient design for pilot phase

Postby mhalsubhi » Thu Jun 08, 2023 8:45 pm

Michiel Bliemer wrote:There is no need to use the modified Federov algorithm since the default swapping algorithm also automatically avoids dominant alternatives between A and B. The swapping algorithm has as benefit that it maintains attribute level balance.

I also fixed two small errors in your script, namely I replaced "b4." and "b5." with "b4" and "b5".

Code: Select all
Design
;alts = A*, B*, Neither
;rows = 12
;eff = (mnl,d)
;model:
U(A) = b1[0.0000000001]                * profit[0,3,6]
     + b2[0.0000000001]                * item[0,5,10]
     + b3.dummy[0.0000003|0.000000002] * ease[1,3,2]
     + b4[0.0000000001]                * supp[1,3,5]
     + b5[0.00000001]                  * cust[1,3,5]
     + b6[-0.0000000001]               * cost[1000,5000,10000]
     /
U(B) = b1 * profit + b2 * item + b3 * ease + b4 * supp + b5 * cust + b6 * cost
     /
U(Neither) = b0[0.00000000001]
$


Michiel

Thank you so much Michiel. I appreciate your support.
mhalsubhi
 
Posts: 5
Joined: Mon Jun 05, 2023 3:52 pm

Re: D-efficient design for pilot phase

Postby mhalsubhi » Wed Jun 28, 2023 12:57 am

Michiel Bliemer wrote:There is no need to use the modified Federov algorithm since the default swapping algorithm also automatically avoids dominant alternatives between A and B. The swapping algorithm has as benefit that it maintains attribute level balance.

I also fixed two small errors in your script, namely I replaced "b4." and "b5." with "b4" and "b5".

Code: Select all
Design
;alts = A*, B*, Neither
;rows = 12
;eff = (mnl,d)
;model:
U(A) = b1[0.0000000001]                * profit[0,3,6]
     + b2[0.0000000001]                * item[0,5,10]
     + b3.dummy[0.0000003|0.000000002] * ease[1,3,2]
     + b4[0.0000000001]                * supp[1,3,5]
     + b5[0.00000001]                  * cust[1,3,5]
     + b6[-0.0000000001]               * cost[1000,5000,10000]
     /
U(B) = b1 * profit + b2 * item + b3 * ease + b4 * supp + b5 * cust + b6 * cost
     /
U(Neither) = b0[0.00000000001]
$


Michiel



Hi Prof. Michiel,

Thank you so much for your support. I piloted the design with 5 participants (total sample size is 50) using MNL and I got the following coefficient priors:

Strategy A: Profit (-0.0554615); items sold (0.0538509); ease of implementation (dummy variable) (16.54089,16.7, 16.5); supplier satisfaction (0.0337245); customer satisfaction (0.0379749); cost (-0.0002)

Strategy B: Profit (0.0967922); items sold (-0.0755306); ease of implementation (dummy variable) (17.56589, 16.95, 17.21); supplier satisfaction (-0.0902171); customer satisfaction (-0.0525636); cost (0.0000472)

The coefficient priors for dummy variable (ease of implementation) looks unrealistic therefore i did not use it in the syntax. Instead I set priors near Zero.


I updated my syntax using the pilot phase priors.

Design
;alts = A*, B*, Neither
;rows = 12
;eff = (mnl,d)
;cond:
if(A.item=0, A.profit=0), if(B.item=0, B.profit=0)
;model:
U(A) = b1[-0.0554615] * profit[0,3,6]
+ b2[0.0538509] * item[0,3,6]
+ b3.dummy[-0.0000003|-0.000000002] * ease[1,3,2]
+ b4[0.0337245] * supp[1,3,5]
+ b5[0.0379749] * cust[1,3,5]
+ b6[-0.00002] * cost[1000,4000,7000,10000]
/
U(B) = b1[0.0967922] * profit + b2[-0.0755306] * item + b3[-0.0000003|-0.000000002] * ease + b4[0.0902171] * supp + b5[-0.0525636] * cust + b6[0.0000472] * cost
/
U(Neither) = b0[0.00000000001]
$


I would be very grateful if you could review the syntax

Many thanks in advance.
Moosa
mhalsubhi
 
Posts: 5
Joined: Mon Jun 05, 2023 3:52 pm

Re: D-efficient design for pilot phase

Postby Michiel Bliemer » Thu Jun 29, 2023 9:39 am

Your priors are different across alternatives A and B, that does not make sense unless these are labelled alternatives, but you specified them as generic by stating ;alts = A*, B*. If parameters have the same name, e.g. b1, then they need to have the same value. You will see that your script generates warning messages when you run it. If they are different, you need to give them a different name, e.g. b7, b8, etc. But note that this would increase the number of parameters and 12 rows would likely not be enough.

Also, you can consider using bayesian priors.

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

Re: D-efficient design for pilot phase

Postby mhalsubhi » Thu Jun 29, 2023 10:57 am

Thank you so much Prof. Michiel,

I adjust the syntax using the same prior for both alternative:
Design
;alts = A*, B*, Neither
;rows = 12
;eff = (mnl,d)
;cond:
if(A.item=0, A.profit=0), if(B.item=0, B.profit=0)
;model:
U(A) = b1[-0.0554615] * profit[0,3,6]
+ b2[0.0538509] * item[0,3,6]
+ b3.dummy[-0.0000003|-0.000000002] * ease[1,3,2]
+ b4[0.0337245] * supp[1,3,5]
+ b5[0.0379749] * cust[1,3,5]
+ b6[-0.00002] * cost[1000,4000,7000,10000]
/
U(B) = b1 * profit + b2 * item + b3 * ease + b4 * supp + b5 * cust + b6 * cost
/
U(Neither) = b0[0.00000000001]
$

Is this correct?


In the second scenario, I created 2 blocks design as follow;
Design
;alts = A*, B*, Neither
;rows = 24
;block=2
;eff = (mnl,d)
;cond:
if(A.item=0, A.profit=0), if(B.item=0, B.profit=0)
;model:
U(A) = b1[-0.0554615] * profit[0,3,6]
+ b2[0.0538509] * item[0,3,6]
+ b3.dummy[-0.0000003|-0.000000002] * ease[1,3,2]
+ b4[0.0337245] * supp[1,3,5]
+ b5[0.0379749] * cust[1,3,5]
+ b6[-0.00002] * cost[1000,4000,7000,10000]
/
U(B) = b7[0.0967922] * profit + b8[-0.0755306] * item + b9[-0.0000003|-0.000000002] * ease + b10[0.0902171] * supp + b11[-0.0525636] * cust + b12[0.0000472] * cost
/
U(Neither) = b0[0.00000000001]
$

Which Scenario is more applicable?

Thank you so much in advance
Cheers,
Moosa
mhalsubhi
 
Posts: 5
Joined: Mon Jun 05, 2023 3:52 pm

Re: D-efficient design for pilot phase

Postby Michiel Bliemer » Thu Jun 29, 2023 11:01 am

Your first script is correct if your alternatives are unlabelled, the second script is correct of your alternatives are labelled.

Examples of unlabelled alternatives of the same type (generic):
- Policy A, Policy B
- Treatment 1, Treatment 2

Examples of labelled alternatives of different types:
- Car, Bus, Train
- Surgery, Chemotherapy

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

Re: D-efficient design for pilot phase

Postby mhalsubhi » Thu Jun 29, 2023 11:09 am

Michiel Bliemer wrote:Your first script is correct if your alternatives are unlabelled, the second script is correct of your alternatives are labelled.

Examples of unlabelled alternatives of the same type (generic):
- Policy A, Policy B
- Treatment 1, Treatment 2

Examples of labelled alternatives of different types:
- Car, Bus, Train
- Survey, Chemotherapy

Michiel


Thank you so much Prof. Michiel. I appreciate your support. I think I will be using first script.

Wish you a good day

Kind regards,
Moosa
mhalsubhi
 
Posts: 5
Joined: Mon Jun 05, 2023 3:52 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 32 guests