Constrained design error
Posted:
Thu Sep 15, 2022 6:42 am
by jane5555
I'm trying to create an efficient design for unlabeled alternatives but I'm getting an error that states that the design is constrained. How can I resolve this?
Design
; alts = optionA* , optionB* , optionC* , optionD*
; rows = 16
; block = 4
; eff = (mnl,s)
; con
; model:
U( optionA ) = ascA[0] + btraveltime[-1.4] * tt[1.14,2.15,14.7,26] +
bfare [-3.02] * fare[1800,1900,860,690] +
bdelay [-0.69] * delay [0,3,7,14] +
bdirect.dummy [-0.85] * direct[0,1] + bwifi.dummy[0.009] *
wifi[0,1] /
U( optionB ) = btraveltime * tt + bfare * fare +
bdelay * delay + bdirect.dummy * direct + bwifi.dummy * wifi /
U( optionC ) = btraveltime * tt + bfare * fare +
bdelay * delay + bdirect.dummy * direct + bwifi.dummy * wifi /
U( optionD ) = btraveltime * tt + bfare * fare +
bdelay * delay + bdirect.dummy * direct + bwifi.dummy * wifi
$
Re: Constrained design error
Posted:
Thu Sep 15, 2022 10:17 am
by Michiel Bliemer
There are a few issues:
1. There exist only very few choice tasks without any dominant alternatives because you have a relatively small number of attributes and a large number of alternatives. In that case, it is best to use the modified Federov algorithm. When using this algorithm, it is a good idea to impose some attribute level balance constraints for numerical variables as done in the syntax below.
2. Your priors are far too large, there is a mismatch between the prior and the unit of your numerical attributes. Please use reasonable prior values, preferably from a pilot study, and use exactly the same numerical values in the design as you use in model estimation.
3. Note that the LAST level of dummy coded variables is the reference level, i.e., 1 is the reference. I think you may mean bwifi.dummy[0.009] * wifi[1,0], where 0 = no wifi and 1 = wifi with a positive utility.
- Code: Select all
Design
;alts = optionA* , optionB* , optionC* , optionD*
;rows = 16
;block = 4
;eff = (mnl,s)
;alg = mfederov
;con
;model:
U( optionA ) = ascA[0]
+ btraveltime[-0.014] * tt[1.14,2.15,14.7,26](2-6,2-6,2-6,2-6)
+ bfare [-0.00302] * fare[1800,1900,860,690](2-6,2-6,2-6,2-6)
+ bdelay [-0.0069] * delay[0,3,7,14](2-6,2-6,2-6,2-6)
+ bdirect.dummy[-0.85] * direct[0,1]
+ bwifi.dummy[0.009] * wifi[0,1]
/
U( optionB ) = btraveltime * tt
+ bfare * fare
+ bdelay * delay
+ bdirect.dummy * direct
+ bwifi.dummy * wifi
/
U( optionC ) = btraveltime * tt
+ bfare * fare
+ bdelay * delay
+ bdirect.dummy * direct
+ bwifi.dummy * wifi
/
U( optionD ) = btraveltime * tt
+ bfare * fare
+ bdelay * delay
+ bdirect.dummy * direct
+ bwifi.dummy * wifi
$
Michiel
Re: Constrained design error
Posted:
Tue Sep 20, 2022 5:08 am
by jane5555
Thank you. I've run your syntax and so far the design shows a large s-estimate of 11928. I'm aiming for an s-estimate of 300 maximum.
The estimated t-ratios are well below 1.96 except for fare. How do I resolve this.
Re: Constrained design error
Posted:
Tue Sep 20, 2022 7:36 am
by Michiel Bliemer
Note that all sample size estimates need to be multiplied by 4 since you block the design by four and only give 4 choice tasks to each respondent.
T-ratios need to be above 1.96 (note that Ngene only reports the t-ratio for a single respondent so you can ignore them in the output, you should just look at the Sp estimates), so estimating bfare is not an issue at all. The only issue seems to be estimating the dummy variable for wifi, which is because your prior indicates that wifi is not relevant to decision makers given its very small prior and hence it can only be estimated at very large sample sizes. This is not an issue, it may be reality that wifi does not matter much to people.
Michiel
Re: Constrained design error
Posted:
Sun Sep 25, 2022 6:28 pm
by jane5555
Thank you.
I have run the below efficient design and I have the following questions.
1) The design does not converge or take long to converge however, I do get a design at around evaluation 5354. Can I proceed with this design or must I use one that has converged?
2) I'd like to keep the design to 12 scenarios per respondent, does assigning 1 block as seen below achieve this?
3) What does it mean if I assign 4 blocks with 12 rows?
Design
;alts = optionA* , optionB* , optionC* , optionD*
;rows = 12
;block = 1
;eff = (mnl,s)
;alg = mfederov
;con
;model:
U( optionA ) = ascA[0]
+ btraveltime[-0.038] * tt[1,2,15,26](2-6,2-6,2-6,2-6)
+ bfare [-0.0032] * fare[1865,1900,860,690](2-6,2-6,2-6,2-6)
+ bdelay [-0.0198] * delay[0,3,7,14](2-6,2-6,2-6,2-6)
+ bsafety[0.0795] * safety[0,3,5,8](2-6,2-6,2-6,2-6)
+ bsecurity[0.195] * security[0,3,5,9](2-6,2-6,2-6,2-6)
+ bdirect.dummy[0.155] * direct[0,1]
+ bwifi.dummy[0.089] * wifi[0,1]
/
U( optionB ) = btraveltime * tt
+ bfare * fare
+ bdelay * delay
+ bsafety * safety
+ bsecurity * security
+ bdirect.dummy * direct
+ bwifi.dummy * wifi
/
U( optionC ) = btraveltime * tt
+ bfare * fare
+ bdelay * delay
+ bsafety * safety
+ bsecurity * security
+ bdirect.dummy * direct
+ bwifi.dummy * wifi
/
U( optionD ) = btraveltime * tt
+ bfare * fare
+ bdelay * delay
+ bsafety * safety
+ bsecurity * security
+ bdirect.dummy * direct
+ bwifi.dummy * wifi
$
Re: Constrained design error
Posted:
Mon Sep 26, 2022 1:00 am
by Michiel Bliemer
Ngene does not need to "converge", Ngene simply keeps looking for better designs. Given that there exist many billions of possible designs, Ngene will just keep searching until you as a user stop the process. If no better design is find after some time, you can stop the process. I refer to the Ngene manual.
If you want 12 choice tasks per respondent, you can use one of the following:
;rows = 12
or
;rows = 24
;block = 2
or
;rows = 36
;block = 3
Etc.
If you prefer more variety in your data set, then using a larger number of rows is better.
Blocking simply splits the design with the desired number of rows into equal blocks.
Michiel