Page 1 of 1

Experimental design_Ngene

PostPosted: Thu Nov 09, 2023 2:07 am
by Sameh
Dear Michiel,

I got this error message: " Error: The modified Federov candidate set size of 2000 could not be achieved. The percentages of candidates that failed are: 95.75% due to dominance, 0% due to constraints, and 4.25% due to repeated alternatives. The candidate set size has been adjusted from 2000 to 1194 " when running the following script which has led to an undefined MNL D error:

design
alts = alt1*, alt2*, sq*
;rows = 18
;block = 2,minsum
;eff = (mnl,d)

;alg = mfederov

;require:
sq.WATER = 0,
sq.IRRIG = 0,
sq.EROSION = 0

;reject:

alt1.WATER <> 0 and alt1.IRRIG = 0,
alt2.WATER <> 0 and alt2.IRRIG = 0,
alt1.IRRIG <> 0 and alt1.WATER = 0,
alt2.IRRIG <> 0 and alt2.WATER = 0,


alt1.WATER + alt1.IRRIG + alt1.EROSION > 3 and alt1.PRICE = 30,
alt2.WATER + alt2.IRRIG + alt2.EROSION > 3 and alt2.PRICE = 30,
alt1.Price = 30 and alt1.WATER + alt1.IRRIG + alt1.EROSION < 3,
alt2.Price = 30 and alt2.WATER + alt2.IRRIG + alt2.EROSION < 3

;model :
U(alt1) = b1.dummy[0.001|0.002] * WATER[1,2,0]
+ b2.dummy[0.001|0.002] * IRRIG[1,2,0]
+ b3.dummy[0.001|0.002] * EROSION[1,2,0]
+ b4[-0.0001] * PRICE[30, 60, 90, 120](2-8,2-8,2-8,2-8)/


U(alt2) = b1 * WATER
+ b2 * IRRIG
+ b3 * EROSION
+ b4 * PRICE /

U(sq) = b_sq[0]
+ b1 * WATER
+ b2 * IRRIG
+ b3 * EROSION
+ b4 * PRICE_sq[0]


$

1/ Firstly, I put these constraints as follows : (3-7,3-7,3-7,3-7) because we have 18 rows and 4 levels of price, so to relax it, I think that it will be good to put 3-7 (number of times that a considered price level has to appear), I don't know if you share with me the same thing or not?

2/ Secondly, as I understand from the error message, the prob is mainly related to dominance, so have you some suggestions to deal with this, please? I already have an undefined MNL D error (it could be related to constraints?)

Greetings,

Re: Experimental design_Ngene

PostPosted: Fri Nov 10, 2023 4:39 pm
by Michiel Bliemer
The error merely indicates that Ngene could not find 2000 choice tasks (the default) that satisfies all your constraints, and it states that it adjusted the candidate set to 1194. This is fine. You can avoid this error message by using:

;alg = mfederov(candidates=1194)

The real issue is the Undefined D-error. The reason for this is that your constraints create perfectly correlated data and hence the model cannot be estimated because one or more parameters are not identifiable. If you open the design with the undefined D-error and you inspect the covariance matrix, you can see that the problem is because the b1 and b2 dummies cannot be estimated. If you would for example remove the first constraint, e.g. by putting a question mark in front of it,

?alt1.WATER <> 0 and alt1.IRRIG = 0,

then Ngene can generate a design without any problem. So the issue lies in your constraints. If you check the design, you can see that WATER=0 always appears with IRRIG=0 in the design due to the constraints you imposed. Hence, level 0 for water and level 0 for irrig are perfectly correlated.

You will need to think about how to define your utility functions and constraints such that your parameters are identifiable. You may need to create a separate variable for the combination WATER=0 & IRRIG=0, and then a separate variables for WATER=[1,2] and IRRIG=[1,2], but this all depends on the meaning of your variables and the objective of your study.

Michiel