Efficient design with constraints

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Efficient design with constraints

Postby jct523 » Fri Apr 08, 2016 12:46 am

Hi Ngene members,

I'm trying to design an experiment about the economic valuation of an ex - ante implementation of a sustainable urban drainage system (SUDS). My experiment has three attributes (Reduction in the average number of fatalities because of the flash floods, and vehicular and pedestrian mobility), 6 price levels, two alternatives and the status quo, as follows:

Average number of fatalities per 10 years: [20], 10, 0
Vehicular mobility: [Null], Reduced, Normal
Pedestrian mobility: [Null], Reduced, Normal
Fee: [0], 1, 2, 8, 15, 23


If the SUDS is implemented, the number of "fatalities" should be reduced, and that means that the price that the people would pay for the system implementation should increase as well. Consequently, I must add to my design some restrictions that indicate, for example, that the attribute "Fatalities” is always decreasing, i.e., it goes from 20 to 10 and from 10 to 0; that the attributes of mobility must shift from Null to Reduced and from Reduced to Normal; and that the fees for financing the implementation are always increasing from alternative 1 to alternative 2.

With that information, I tested the following syntax,

Design
; alts = A, B, SQ

; rows = 96

; block = 2

; eff = (mnl, d)

; cond:

if (A.att1 = 10, B.att1 < A.att1),

if (A.att1 = 10 and A.att2 = 2, B.att2 < A.att2),

if (A.att1 = 10 and A.att2 = 2 and A.att3 = 5, B.att3 < A.att3),

if (A.att1 = 10 and A.att2 = 2 and A.att3 = 5 and A.att4 = [1,2,8,15,23], B.att4 > A.att4)

; model:

U(A) = A0[-0.2] + A1[0.2]*att1[0, 10] + A2*att2[1, 2] + A3[-0.3]*att3[4, 5] + A4[-0.4]*att4[1,2,8,15,23]/

U(B) = B0 + B1*att1 + B2*att2 + B3*att3 + B4*att4$

The syntax runs well. Even a 0.07 D-error is obtained. However, I'm not sure of this syntax as I had to increase the number of rows, and the number of scenarios that meets the aforementioned design requirements reaches only 10 out of 96 possible scenarios.

I’d appreciate if someone send me a feedback about my experiment to see whether I'm right or not on this design.

Juan
jct523
 
Posts: 1
Joined: Tue Apr 05, 2016 2:03 pm

Re: Efficient design with constraints

Postby Michiel Bliemer » Fri Apr 08, 2016 9:42 am

Dear Juan,

A few comments:

1. You do not specify the utility function for the status quo; you have now specified it as a no choice. The status quo still has a certain utility according to your levels. You now do not use level 20 for fatalities for example. Since fatalities, vehicular mobility, pedestrian mobility, and fee seem generic across all alternatives, you could use the syntax below. Note that I made the parameters generic except for the constants, which I believe would be best in your case, but perhaps you specifically want alternative specific parameters. In that case you can replace U(SQ) with a constant value, namely -0.2*20 = -4, i.e. U(SQ) = -4, and remove B0 in your syntax (since you can only have 2 constants).

Code: Select all
U(A) = A0[-0.2] + A1[0.2]*fatal[0,10] + A2.dummy*vehmob[1,2,0] + A3.dummy[-0.3|-0.6]*pedmob[1,2,0] + A4[-0.4]*fee[1,2,8,15,23]/
U(B) = B0 + A1*fatal + A2*vehmob + A3*pedmob + A4*fee /
U(SQ) = A1*fatalSQ[20] + A2*vehmobSQ[0] + A3*pedmobSQ[0] + A4*feeSQ[0]


2. Since you have categorical mobility variables, I suggest using dummy coding or effects coding with 0 (null) the base level. Note that if you use dummy or effects coding, the base level (0) appear in each alternative, otherwise you cannot estimate the model. If you do not want the base level to appear in A and B, then dummy or effects coding is more problematic. I do not know your experiment, but is it not sufficient that A and B are improvements over the SQ? This does not mean that each attribute needs to be strictly better than each other attribute, but rather that one or more attributes are better. In that case, using the base level in A and B seems OK.

3. It looks like your constraints are too strict. If you want fatalities in SQ to be 20, in A to be 10, and in B to be 0, then essentially you leave Ngene no choice and these levels are always fixed. You need to give Ngene some freedom to optimise the design. So I would suggest only specifying requirements like A.fatal >= B.fatal and A.vehmob >= B.vehmob. You could do this quite easily with the ;require command in Ngene. If you use ;require or ;reject, you should also use another algorithm, namely set ;alg = mfederov. This algorithm lets go of attribute level balance, but in the Ngene manual you can find ways to have some degree of attribute level balance.
Michiel Bliemer
 
Posts: 1733
Joined: Tue Mar 31, 2009 4:13 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 54 guests