Status quo design with many constraints

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Status quo design with many constraints

Postby peggy » Thu Jan 26, 2023 12:27 am

Dear all,

I am working on a choice experiment design including a status quo option and many constraints for realistic purposes.
The design has three scenarios A, B, and C; attributes are identical in the three scenarios, and only levels change slightly.

Scenario A:
•Attribute1 Type: Categorical (type0, type1, type2, type3)
•Attribute2 Cost: Pivoted around reference cost 700 (-40%, -20%, 0%, +20%, +40%) or (420, 560, 700, 840, 980)
•Attribute3 Time: Pivoted around reference time 90 (+0, +15, +30, +45, +60) or (90, 105, 120, 135, 150)
•Attribute4 Emissions: (0%, 10%, 35%, 60%, 80%, 100%)

Scenario B and Scenario C,
•Attribute1 Type: Categorical (type0, type1, type2) change to 3 types in total
•Attribute2 Cost: Pivoted around two different reference cost (-40%, -20%, 0%, +20%, +40%)
•Attribute3 Time: Pivoted around two different reference time (+0, +15, +30, +45, +60)
•Attribute4 emissions: (0%, 10%, 35%, 60%, 80%, 100%) no change

Several constraints are imposed:
1. Status quo: type =0, cost=700, time=90 (different reference level of time&cost for Scenario B and C)
2. Attribute Time:
•type1 time = type0 time = 90 (base level of Scenario A)
•type2 time > type3 time > type0/1 time
3. Attribute Emissions:
•Emissions for type0 is always 0 (base level), emissions for other types are compared with the base level
•Emissions for type1 vary between [10,35,60,80,100]
•Emissions for type2 & type3 is always 100

The code for Scenario A is shown below:

Code: Select all
design   ? Scenario A design
;alts = alt1*, alt2*, sq*
;rows = 36
;block= 12
;eff  = (mnl,d)
;alg = mfederov (candidates=1412)

;require:  ? fixed reference level for status quo option
sq.type=0,
sq.cost=700,
sq.time=90,
sq.emission=0  ?base level, emissions for other types are compared with the base level

? 0=type0, 1=type1, 2=type2, 3=type3

;reject:
?time for type1 is always equal to type0,which is 90
alt1.type=1 AND alt1.time = 105 OR alt1.time = 120 OR alt1.time = 135 OR alt1.time = 150,
alt2.type=1 AND alt2.time = 105 OR alt2.time = 120 OR alt2.time = 135 OR alt2.time = 150,

?time for type2 is always the highest
alt1.type=2 AND alt1.time <= alt2.time,
alt2.type=2 AND alt2.time <= alt1.time,

alt1.type=2 AND alt1.time = 90,
alt2.type=2 AND alt2.time = 90,

? time for type3 is always higher than type0
alt1.type=3 AND alt2.type=0 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=0 AND alt2.time <= alt1.time,

alt1.type=3 AND alt1.time = 90,
alt2.type=3 AND alt2.time = 90,

? time for type3 is always higher than type1
alt1.type=3 AND alt2.type=1 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=1 AND alt2.time <= alt1.time,

? emissions for type0 is the base level, so always 0
alt1.type=0 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=100,
alt2.type=0 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=100,

? emissions for type2 and type3 are always 100
alt1.type=2 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0, 
alt1.type=3 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0,
alt2.type=2 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,
alt2.type=3 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,

? emissions for type1 range from 10% to 100%
alt1.type=1 AND alt1.emission=0,   
alt2.type=1 AND alt2.emission=0,

? sq.type=0, don’t want a design that has three type0 option
alt1.type=0 AND alt2.type=0,
alt2.type=0 AND alt1.type=0



;model:
U(alt1) =      bcost[-0.000001]*cost[420,560,700,840,980]
                + btime[-0.000001]*time[90,105,120,135,150]
                + btype.dummy[0|0|0]*type[1,2,3,0]  ?0=type0 as base, 1=type1, 2=type2, 3=type3
                + bemission[0.000002]*emission[0,10,35,60,80,100]
/

U(alt2) =      bcost*cost
                + btime*time
                + btype*type
                + bemission*emission
/

U(sq) =         bcost*cost
                + btime*time
                + btype*type
                + bemission*emission
$


My questions are:

1. The primary outcome I wanted to get from this choice experiment are: WTP for categorical attribute "type"; the value of time; and interactions with socio-demographic variables. The best D-error I can get for Scenario A so far is 0.002304, for Scenario B is 0.000668, and for Scenario C is 0.00059.

For all three scenarios, I set 36 rows and 12 blocks, meaning each respondent will have 9 choice tasks in total and 3 choice tasks per scenario. Do you think it is possible to get the reasonable outcome I would like to get given the current design?

2. The attribute “emissions” are fixed for sq & type0 =0%, are fixed for type2&3, which is always 100%; so the levels [10,35,60,80,100] are only varying for type 1.

Looking at the 36 choice tasks I got for Scenario A, there are not too many variations in “emissions” for type 1, level 35 and 60 never appear. Do you think there is any way I can improve to allow more variations?

3. Also, regarding the attribute “emissions”. Currently, it’s a continuous variable and has a generic parameter. I was thinking to change it to a dummy-coded categorical variable, such that I can get parameters for different levels of emissions.

However, this couldn't be achieved in Ngene. I tried
Code: Select all
+ bemission.dummy[0|0|0|0|0]*emission[1,2,3,4,5,0]  ?0=0, 1=10%, 2=35%, 3=60%, 4=80% , 5=100%
, I got undefined D-error. I suppose this is because too many parameters to estimate with many constraints, Ngene cannot find any feasible design. Do you think it is still possible to have a dummy-coded categorical variable for the “emissions” attribute?

I would greatly appreciate your help.

Many thanks,
Peggy
peggy
 
Posts: 7
Joined: Mon Jan 23, 2023 10:56 pm

Re: Status quo design with many constraints

Postby Michiel Bliemer » Fri Jan 27, 2023 11:43 am

1. I do not see a reason why it would not work.

2. Ngene searches for the most efficient design and a design without using middle levels 35 and 60 is more efficient for estimating the linear effect for emissions. To ensure that all levels appear within the design, we recommend in the manual to add specific constraints on the number of times each level should appear. In the script below I require each emissions level to appear at least 3 times across the 36 rows, and each cost and time level to appear at least 4 times.

3. You seem to have added a lot of constraints on type and emissions that make some of these levels perfectly confounded when you dummy code the data. An undefined D-error means that the model cannot be estimated because one or more parameters are not identifiable, likely due to some of your constraints. So you may be stuck with estimating a linear effect only.

Code: Select all
design   ? Scenario A design
;alts = alt1*, alt2*, sq*
;rows = 36
;block= 12
;eff  = (mnl,d)
;alg = mfederov (candidates=1412)

;require:  ? fixed reference level for status quo option
sq.type=0

? 0=type0, 1=type1, 2=type2, 3=type3

;reject:
?time for type1 is always equal to type0,which is 90
alt1.type=1 AND alt1.time = 105 OR alt1.time = 120 OR alt1.time = 135 OR alt1.time = 150,
alt2.type=1 AND alt2.time = 105 OR alt2.time = 120 OR alt2.time = 135 OR alt2.time = 150,

?time for type2 is always the highest
alt1.type=2 AND alt1.time <= alt2.time,
alt2.type=2 AND alt2.time <= alt1.time,

alt1.type=2 AND alt1.time = 90,
alt2.type=2 AND alt2.time = 90,

? time for type3 is always higher than type0
alt1.type=3 AND alt2.type=0 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=0 AND alt2.time <= alt1.time,

alt1.type=3 AND alt1.time = 90,
alt2.type=3 AND alt2.time = 90,

? time for type3 is always higher than type1
alt1.type=3 AND alt2.type=1 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=1 AND alt2.time <= alt1.time,

? emissions for type0 is the base level, so always 0
alt1.type=0 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=100,
alt2.type=0 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=100,

? emissions for type2 and type3 are always 100
alt1.type=2 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0,
alt1.type=3 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0,
alt2.type=2 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,
alt2.type=3 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,

? emissions for type1 range from 10% to 100%
alt1.type=1 AND alt1.emission=0,   
alt2.type=1 AND alt2.emission=0,

? sq.type=0, don’t want a design that has three type0 option
alt1.type=0 AND alt2.type=0,
alt2.type=0 AND alt1.type=0



;model:
U(alt1) =      bcost[-0.000001]*cost[420,560,700,840,980](4-36,4-36,4-36,4-36,4-36)
                + btime[-0.000001]*time[90,105,120,135,150](4-36,4-36,4-36,4-36,4-36)
                + btype.dummy[0|0|0]*type[1,2,3,0]  ?0=type0 as base, 1=type1, 2=type2, 3=type3
                + bemission[0.000002]*emission[0,10,35,60,80,100](3-36,3-36,3-36,3-36,3-36,3-36)
/

U(alt2) =      bcost*cost
                + btime*time
                + btype*type
                + bemission*emission
/

U(sq) =         bcost*cost_sq[700]
                + btime*time_sq[90]
                + btype*type
                + bemission*emission_sq[0]
$
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Status quo design with many constraints

Postby peggy » Mon Jan 30, 2023 6:42 am

Dear Prof.Bliemer,

Many thanks for your reply.

Another question on Bayesian efficient design.

I did a pilot study on this topic using a labelled design where the attribute "type" was designed as alternatives. "Time" was not included in the attribute. Levels for "cost" and "emissions" were slightly different in the pilot study.

I am wondering if I can still use the parameters and s.e. for cost and emissions estimated from the pilot study to generate a Bayesian efficient design for the current unlabelled design.

I've tried to use prior I got from the pilot study to generate a Bayesian efficient design, and the best D-error I got is 0.0033. While D-Effficient design using near 0 (just indications of sign) gives me a D-error of 0.0027. There is not too much difference. Would you recommend using Bayesian efficient design in this case?

Thanks,
Peggy
peggy
 
Posts: 7
Joined: Mon Jan 23, 2023 10:56 pm

Re: Status quo design with many constraints

Postby Michiel Bliemer » Mon Jan 30, 2023 8:36 am

Let me first clarify that D-errors are NOT comparable across different models or different priors. D-errors can only be compared across different designs for exactly the same model with exactly the same priors.

Taking priors from a model that has not the same attributes and different levels will likely have differences in scale, so you may be able to use the priors but you may need to scale them up or down based on expert judgment or market shares.

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

Re: Status quo design with many constraints

Postby peggy » Tue Jan 31, 2023 9:15 am

Dear Michiel,

Thank you for your prompt response and help, I appreciate it!

Peggy
peggy
 
Posts: 7
Joined: Mon Jan 23, 2023 10:56 pm

Re: Status quo design with many constraints

Postby peggy » Sat Mar 11, 2023 8:50 am

Dear Michiel,

I have used the design discussed above and did a pilot study with 150 participants in order to get priors for Bayesian efficient design.
In the survey, I have two contexts of choice experiments, say context 1 and context 2, the two contexts both used the status quo design discussed above. The design, attributes and levels are exactly the same except for there is a 60% increase in the cost attribute for each scenario in context 2 design.

Respondents are assigned to do choice experiments of context 1 or 2 based on their answers to previous questions before participating in the choice experiment.

Looking at the data collected from the pilot study, 48 individuals did context 1 choice experiments and 102 individuals did context 2 choice experiments.

Questions about priors:
Because the two contexts of designs were generated in Ngene separately (cost attribute levels are different), is it better to use the estimates from two models to generate Bayesian efficient designs for these two contexts? Or I can use the estimates from one model using pooled data (150 individuals)?

I think it's better to use the estimates from the two models. But given my expected final sample size is 1000, that means 100 for the pilot survey. Can I just use the estimates from 48 individuals for context 1 for Bayesian efficient design? or I should collect more data for context 1?

My pilot estimates of pooled data (150 individuals):

Estimate Std.err. t-ratio(0)
asc_position 1.038518701 0.232911703 4.458851523
b_cost -0.001176994 0.000157979 -7.450306486
b_time -0.015564924 0.003737078 -4.164998296
type1 -0.641338745 0.290312434 -2.209132889
type3 -0.125951891 0.276336229 -0.455792176
type2 0.074087916 0.262124349 0.282644158
type0 0 NA NA
b_emissions 0.007260532 0.002072468 3.503325821


Estimates of context 1(48 individuals):

Estimate Std.err. t-ratio(0)
asc_position 0.469650837 0.373433012 1.257657524
b_cost -0.002795887 0.000539754 -5.179930809
b_time -0.009981585 0.00698678 -1.428638756
type1 -0.212094912 0.494067363 -0.429283389
type3 0.23131071 0.418885551 0.552205034
type2 0.610871899 0.431095686 1.417021601
type0 0 NA NA
b_emissions 0.004665842 0.004098884 1.138320142



Estimates of context 2(102 individuals):

Estimate Std.err. t-ratio(0)
asc_position 0.787614822 0.282486743 2.788147913
b_cost -0.001151607 0.000164383 -7.005616017
b_time -0.013975678 0.004357174 -3.207509895
type1 -0.157599971 0.343762687 -0.458455723
type3 0.083514678 0.351103556 0.237863378
type2 0.218101134 0.322772257 0.675712145
type0 0 NA NA
b_emissions 0.008712764 0.002434876 3.578319699


Questions about left-to-right effect constant:

Because this status quo design is an unlabelled design and the sq option is always on the right (the third option). I did find left-to-right bias appears: the constants are significant (as you can see from the above estimates).

I’ve read in the forum about considering this effect, but still a bit confused. In the design stage, should I add this constant in the Bayesian efficient design (without randomising the order of alternatives, because it is a bit difficult to implement on the survey platform) ?

For example, using the pooled data estimates (150 individuals), the Bayesian design would look like the below, is it correct?

Code: Select all
design   ? Context 1 Scenario A design
;alts = alt1*, alt2*, sq*
;rows = 36
;block= 12
;eff= (mnl,d,mean)
;alg = mfederov (candidates=1412)

;require:  ? fixed reference level for status quo option
sq.type=0,
sq.cost=700,
sq.time=90,
sq.emission=0  ?base level,emissions for other types are compared with the base level

? 0=type0, 1=type1, 2=type2, 3=type3

;reject:
?time for type1 is always equal to type0,which is 90
alt1.type=1 AND alt1.time = 105 OR alt1.time = 120 OR alt1.time = 135 OR alt1.time = 150,
alt2.type=1 AND alt2.time = 105 OR alt2.time = 120 OR alt2.time = 135 OR alt2.time = 150,

?time for type2 is always the highest
alt1.type=2 AND alt1.time <= alt2.time,
alt2.type=2 AND alt2.time <= alt1.time,

alt1.type=2 AND alt1.time = 90,
alt2.type=2 AND alt2.time = 90,

? time for type3 is always higher than type0
alt1.type=3 AND alt2.type=0 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=0 AND alt2.time <= alt1.time,

alt1.type=3 AND alt1.time = 90,
alt2.type=3 AND alt2.time = 90,

? time for type3 is always higher than type1
alt1.type=3 AND alt2.type=1 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=1 AND alt2.time <= alt1.time,

? emissions for type0 is the base level, so always 0
alt1.type=0 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=100,
alt2.type=0 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=100,

? emissions for type2 and type3 are always 100
alt1.type=2 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0, 
alt1.type=3 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0,
alt2.type=2 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,
alt2.type=3 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,

? emissions for type1 range from 10% to 100%
alt1.type=1 AND alt1.emission=0,   
alt2.type=1 AND alt2.emission=0,

? sq.type=0, don’t want a design that has three type0 option
alt1.type=0 AND alt2.type=0,
alt2.type=0 AND alt1.type=0



;model:
U(alt1) =       b0[(n,1.038519,0.232912)]   
                + bcost[(n,-0.001177,0.00015798)]*cost[420,560,700,840,980]
                + btime[(n,-0.015565,0.003737)]*time[90,105,120,135,150]
                + btype.dummy[(n,-0.641339,0.290312)|(n,0.074088,0.262124)|(n,-0.125952,0.276336)]*type[1,2,3,0]  ?0=type0 as base, 1=type1, 2=type2, 3=type3
                + bemission[(n,0.007261,0.002072)]*emission[0,10,35,60,80,100]
/

U(alt2) =       b0
                + bcost*cost
                + btime*time
                + btype*type
                + bemission*emission
/

U(sq) =           bcost*cost
                + btime*time
                + btype*type
                + bemission*emission
$


Thanks so much for your time, your response will be highly appreciated!

Peggy
peggy
 
Posts: 7
Joined: Mon Jan 23, 2023 10:56 pm

Re: Status quo design with many constraints

Postby Michiel Bliemer » Sat Mar 11, 2023 3:44 pm

Hi Peggy,

I would probably use separate priors for each design.

Note that your constant is not merely a left-to-right constant but also expresses deviating from the status quo. So in this case I would probably keep b0 in the model when generating the efficient design. When accounting for left-to-right bias in estimation, you would add a constant to alt1 and a different constant to alt2. You would preferably randomise the place there the sq alternative is shown, namely on the left or on the right. You could create two formats for each design and randomly assign the format where it is shown on the left or on the right. Then in model estimation you can add a 'position' dummy to account for the left-to-right bias. If you do not randomise, then you cannot disentangle the "deviation from sq" effect and the "left-to-right bias" effect.

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

Re: Status quo design with many constraints

Postby peggy » Sun Mar 12, 2023 7:15 am

Hi Michiel,

I really appreciate your swift reply.

Just to confirm with you:

1. I will use separate priors for the design of two contexts. But given I've only got the sample size of 48 for Context 1, the estimates and standard errors for dummy coded variable 'type' are very large compared to the results from context 2 and pooled data (please see the estimates in the previous post). Would you suggest using ;eff = (mnl,d,median) instead of ;eff = (mnl,d,mean) to avoid outliers in the draws?

2. I will keep the constants in 2 designs, using the estimates and standard errors of constants as Bayesian priors.

3. In terms of the signs of pilot data estimates, 'type 1' estimates in both 2 context designs are very suspicious as the signs for 'type' are all expected positive. In this case, would you suggest using (n,0.00001, standard error), for type 1? for type 2 and 3, I will keep using their estimates & standard error.

Thanks very much for your time!

Peggy
peggy
 
Posts: 7
Joined: Mon Jan 23, 2023 10:56 pm

Re: Status quo design with many constraints

Postby Michiel Bliemer » Sun Mar 12, 2023 8:43 am

1. Yes median may be a good option. I also suggest not using just the default 200 Halton draws but using more Sobol draws, e.g. ;bdraws = sobol(500).

3. I would indeed recommend using means that indicate the expected preference order, so your suggestion makes sense.

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

Re: Status quo design with many constraints

Postby peggy » Thu Mar 16, 2023 8:48 am

Hi Michiel,

As discussed previously, I have two designs (two contexts), each with three scenarios A, B, and C. So I generated 6 Bayesian efficient designs, but I spotted something very suspicious, in each design, there are many cases (e.g.,10 out of 36 choice tasks) where one of the alternatives has the exact same attribute values as status quo, an example is shown below:
    sq.type: 0; sq.emission_sq: 0; sq.cost_sq: 700; sq.time_sq:90
    option1.type: 0; option1.emission: 0; option1.cost: 700; option1.time:90
    option2.type:2; option2.emission:100; option2.fare:560; option2.time:135

This kind of choice task doesn't make sense to me, I didn't have this issue when I generated the efficient design for the pilot study. Did I miss something in generating Bayesian efficient design? I was trying to manually replace these choice tasks with attribute values that make sense, but there are just too many of these cases in 6 designs :(

Please see my code for one of the designs below:
Code: Select all
design   ? Context 1 Scenario A design
;alts = sq*, alt1*, alt2*,
;rows = 36
;block= 12
;eff = (mnl,d,median) ? for context 2 I used ;eff = (mnl,d,mean) as 102 data collected
;bdraws = sobol(500)
;alg = mfederov (candidates=1412)

;require:  ? fixed reference level for status quo option
sq.type=0

? 0=type0, 1=type1, 2=type2, 3=type3

;reject:
?time for type1 is always equal to type0,which is 90
alt1.type=1 AND alt1.time = 105 OR alt1.time = 120 OR alt1.time = 135 OR alt1.time = 150,
alt2.type=1 AND alt2.time = 105 OR alt2.time = 120 OR alt2.time = 135 OR alt2.time = 150,

?time for type2 is always the highest
alt1.type=2 AND alt1.time <= alt2.time,
alt2.type=2 AND alt2.time <= alt1.time,

alt1.type=2 AND alt1.time = 90,
alt2.type=2 AND alt2.time = 90,

? time for type3 is always higher than type0
alt1.type=3 AND alt2.type=0 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=0 AND alt2.time <= alt1.time,

alt1.type=3 AND alt1.time = 90,
alt2.type=3 AND alt2.time = 90,

? time for type3 is always higher than type1
alt1.type=3 AND alt2.type=1 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=1 AND alt2.time <= alt1.time,

? emissions for type0 is the base level, so always 0
alt1.type=0 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=100,
alt2.type=0 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=100,

? emissions for type2 and type3 are always 100
alt1.type=2 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0, 
alt1.type=3 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0,
alt2.type=2 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,
alt2.type=3 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,

? emissions for type1 range from 10% to 100%
alt1.type=1 AND alt1.emission=0,   
alt2.type=1 AND alt2.emission=0,

? sq.type=0, don’t want a design that has three type0 option
alt1.type=0 AND alt2.type=0,
alt2.type=0 AND alt1.type=0



;model:
U(alt1) =       b0[(n,0.469650837,0.373433012)]
                + btype.dummy[(n,0.24,0.494067)|(n,0.610872,0.431096)|(n,0.231311,0.418886)]*type[1,2,3,0] ?the expected preference order: type2>type1>type3>type0; 0=type0, 1=type1, 2=type2, 3=type3
                + bemission[(n,0.004666,0.004099)]*emission[0,10,35,60,80,100] (3-36,3-36,3-36,3-36,3-36,3-36)
                + bcost[(n,-0.0028,0.00054)]*cost[420,560,700,840,980](4-36,4-36,4-36,4-36,4-36)
                + btime[(n,-0.00998,0.006987)]*time[90,105,120,135,150](4-36,4-36,4-36,4-36,4-36)

/

U(alt2) =       b0
                + btype*type
                + bemission*emission
                + bcost*cost
                + btime*time

/

U(sq) =           btype*type
                + bemission*emission_sq[0]
                + bcost*cost_sq[700]
                + btime*time_sq[90]
$

Using this code and after running several hours, I chose the 147393 evaluation, the outputs are shown below:
[list=]
Bayesian
Fixed Mean Std dev. Median Minimum Maximum
D error 0.003775 0.004085 0.000322 0.004044 0.003459 0.0061
A error 0.870028 0.946324 0.126469 0.906961 0.781471 1.615864
B estimate 73.623922 64.858736 11.811617 66.572134 22.108487 87.80791
S estimate 149.390043 225593.631381 3443261.492763 475.912248 12.639784 74978984.114953

Prior btype(d0) btype(d1) btype(d2) bemission bfare btime
Fixed prior value 0.24 0.610872 0.231311 0.004666 -0.0028 -0.00998
Sp estimates 69.780276 21.545489 149.390043 26.363782 0.927467 7.853609
Sp t-ratios 0.234633 0.422258 0.16036 0.381726 2.035199 0.699393
Sb mean estimates 8157.635713 151564.192716 39519.245263 22627.003214 1.138267 4540.988954
Sb mean t-ratios 0.417117 0.421982 0.254307 0.411265 1.922823 0.697038
[/list]


I really appreciate your help.

Peggy
peggy
 
Posts: 7
Joined: Mon Jan 23, 2023 10:56 pm

Next

Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 4 guests