Constrained design error

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Constrained design error

Postby jane5555 » Thu Sep 15, 2022 6:42 am

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
$
jane5555
 
Posts: 7
Joined: Tue Sep 13, 2022 8:41 am

Re: Constrained design error

Postby Michiel Bliemer » Thu Sep 15, 2022 10:17 am

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
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Constrained design error

Postby jane5555 » Tue Sep 20, 2022 5:08 am

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.
jane5555
 
Posts: 7
Joined: Tue Sep 13, 2022 8:41 am

Re: Constrained design error

Postby Michiel Bliemer » Tue Sep 20, 2022 7:36 am

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
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Constrained design error

Postby jane5555 » Sun Sep 25, 2022 6:28 pm

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
$
jane5555
 
Posts: 7
Joined: Tue Sep 13, 2022 8:41 am

Re: Constrained design error

Postby Michiel Bliemer » Mon Sep 26, 2022 1:00 am

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
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Constrained design error

Postby jane5555 » Mon Oct 03, 2022 12:54 am

Thank you.
jane5555
 
Posts: 7
Joined: Tue Sep 13, 2022 8:41 am


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 12 guests