Page 1 of 1

Nested attributes in Ngene + constraints on interactions

PostPosted: Thu Sep 04, 2014 6:26 pm
by Arnaud Blaser
Dear Ngene forum users,
I have a few question regarding a rather cumbersome design we are trying to implement. Let me first briefly describe the attributes at work here;

Ren = dummy [0,1] for presence of renewable energy, no prior assumed (not a very important attribute to understand the problem at hand)

Eff = Energy savings, in % of baseline heating costs [0.1, 0.1, …, 0.7], prior assumed positive

Var = uncertainty in the energy savings (not a very important attribute to understand the problem at hand).

Cost = cost of implementing the measure, in % of Energy savings

The very tricky thing we are trying to do here is to have an attribute defined as a % of another attribute, itself a % of a baseline amount. We are in fact trying to define the yearly energy savings as a % of baseline heating costs and, in order to ensure all alternatives give a positive net saving, yearly implementation costs as a % of these energy savings. To give a concrete example if the baseline heating cost is 2000, eff=0.7 and cost=0.9 then the cost displayed to respondents would be 2000*0.7*0.9 (which is the savings from consuming 70% less energy (2000*0.7) multiply by 0.9).

Our first strategy was to generate a design based on Ren, Eff, Var and Cost. However this strategy might be seen as doubtful, since ultimately we are not displaying respondents Ren, Eff, Var and Cost but rather Ren, Eff, Var and Eff*Cost.

We then thought that one solution could be to directly include this interaction term in the design (see code below).

Code: Select all
Design
;alts = alt1*, alt2*, alt3*
;rows = 24
;block = 6
;alg = mfederov(candidates = 1000)
;eff = (mnl,d)

;reject:

alt1.eff=0.10 and alt1.var=0.15,
alt1.eff=0.10 and alt1.var=0.20,
alt2.eff=0.10 and alt2.var=0.15,
alt2.eff=0.10 and alt2.var=0.20,
alt3.eff=0.10 and alt3.var=0.15,
alt3.eff=0.10 and alt3.var=0.20,
alt1.eff=0.70 and alt1.var=0.15,
alt1.eff=0.70 and alt1.var=0.20,
alt2.eff=0.70 and alt2.var=0.15,
alt2.eff=0.70 and alt2.var=0.20,
alt3.eff=0.70 and alt3.var=0.15,
alt3.eff=0.70 and alt3.var=0.20


;model:
U(alt1) = bren.dummy * ren[0,1](10-14,10-14) + beff[u,0.01,0.1] * eff[0.10,0.20,0.30,0.40,0.50,0.60,0.70](3-4,3-4,3-4,3-4,3-4,3-4,3-4) + bvar[u,-0.1,-0.01] * var[0.05,0.10,0.15,0.20](5-7,5-7,5-7,5-7) + bcost[u,0.01,0.1] * cost[0.70,0.75,0.80,0.85,0.90,0.95](3-6,3-6,3-6,3-6,3-6,3-6) + brealcost[u,-1,-0.1] * eff * cost /
U(alt2) = bren * ren + beff * eff + bvar * var + bcost * cost + brealcost * eff * cost  /
U(alt3) = bren * ren + beff * eff + bvar * var + bcost * cost + brealcost * eff * cost  $


This design runs, and provide (for instance)
alt1.ren = 0
alt1.eff = 0.7
alt1.var = 0.2
alt1.eff*alt1.cost = 0.665

Which, assuming respondent’ baseline heating is 2000 USD, translate into the following choice card:

Renewable: No
Energy savings: 1400 USD (-70% energy usage)
Uncertainty: +-20% [Min Energy savings: 50% Max Energy savings: 90%]
Yearly cost: 1330 USD
Net yearly savings: 70 USD[Min net savings: -330 USD Max net savings: 470 USD]
Loss possible: Yes

Note that “net yearly savings” and “loss possible” are not attribute per se, they are information already contained into Energy savings, Uncertainty and yearly cost. However we display it to help respondents visualise the situation.

Questions:
- Has anyone hear of such imbricated (one attribute being a % of another one, itself being a % change from an exogenous respondent-specific baseline) attributes in Ngene before? Is this potentially meaningful of is there a fatal flaw in that?

- The above design runs, but provide rather terrible efficiency estimate (D-error around 5, s estimate in the thousands…). How reliable are these figures in such an unusual case (where we are ultimately using the attributes Ren, Eff, Var and Eff*Cost only)?

- Last but not least, we would like to specify an additional constraint that an alternative cannot have both a smaller or equal Var and a smaller or equal Eff*Cost than another alternative. However, specifying the following command fails;

Code: Select all
:reject;
alt1.var<=alt2.var and alt1.eff*alt1.cost<= alt2.eff*alt2.cost


Ngene does not seem to understand interaction terms in any of the reject, require or cond command. Is there a way around this?

Re: Nested attributes in Ngene + constraints on interactions

PostPosted: Wed Sep 10, 2014 8:48 am
by Michiel Bliemer
I will have to think about this one... There are usually several ways to 'trick' Ngene in doing certain things, but it requires creativity.