## Ngene_questions

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

### Ngene_questions

Dear Sir,

I Know that intoducing conditions in the design will not attempt the balanced out-put but I have to putt some restrictions in order to avoid the unfeasible cards. But at the same time, by introducing conditions, we favor correlations between attributes.

In some cards and according to the restrictions related to the price, I found in some cases, Price (F=0) with just an amelioration in one level. In another term, I wonder if these conditions already violate the intent of this design.

Let me explain :

0 Is fixed as the level of status quo (low level).

I have these attributes :

A = water quality / Low – medium – high / (0,1,2)
B = Biodiversity / low medium high / (0,1,2)
C = Recreational facilities / low medium high / (0,1,2)
D = Gas emissions / low medium high / (0,1,2)
E = Health Safety (%) / 0, 25, 50
F = Price (TD) / 0 30 60 90 120 150

I introduced Near-zero priors in order to prepare a bayesian efficient design.

design
alts = alt1*, alt2*, none*
;rows = 12
;block = 2
;eff = (mnl,d)
;con
;cond:

if(alt1.A + alt1.B + alt1.D + alt1.C = 1, alt1.F =0),
if(alt2.A + alt2.B + alt2.D + alt2.C = 1, alt2.F =0),
if(alt1.F =0, alt1.A + alt1.B + alt1.C + alt1.D = 1),
if(alt2.F =0, alt2.A + alt2.B + alt2.D + alt2.C = 1),

if(alt1.F = 0, alt1.E = 0),
if(alt2.F = 0, alt2.E = 0),
if(alt1.E = 0, alt1.F = 0),
if(alt2.E = 0, alt2.F = 0),

if(alt1.A =0, alt1.B < 2),
if(alt2.A =0, alt2.B < 2),
if(alt1.B =0, alt1.A <2),
if(alt2.B= 0, alt2.A <2),

if(alt1.F >= 60, alt1.A + alt1.B + alt1.D >= 4),
if(alt2.F >= 60, alt2.A + alt2.B + alt2.D >= 4),

if(alt1.F > 90, alt1.E = 50),
if(alt2.F > 90, alt2.E = 50),
if(alt1.E = 50, alt1.F > 90),
if(alt2.E = 50, alt2.F > 90),

if(alt1.A + alt1.B + alt1.D >=6, alt1.F >= 120),
if(alt2.A + alt2.B + alt2.D >=6, alt2.F >= 120),
if(alt1.F >= 120, alt1.A + alt1.B + alt1.C + alt1.D >=6),
if(alt2.F >= 120, alt2.A + alt2.B + alt2.C + alt2.D >=6)

;model :
U(alt1)= b1.effects[0.01|0.02]*A[1,2,0]+b2.effects[0.01|0.02]*B[1,2,0]+b3.effects[0.01|0.02]*C[1,2,0]+b4.effects[0.01|0.02]*D[1,2,0]+b5[0.01]*E[0,25,50]+b6[-0.01]*F[0,30,60,90,120,150]/
U(alt2)= b1.effects[0.01|0.02]*A[1,2,0]+b2.effects[0.01|0.02]*B[1,2,0]+b3.effects[0.01|0.02]*C[1,2,0]+b4.effects[0.01|0.02]*D[1,2,0]+b5[0.01]*E[0,25,50]+b6[-0.01]*F[0,30,60,90,120,150]/
U (none)= asc[(u,-0.70,-0.10)]\$

I don't know if I have to remove some conditions in order to let levels vary freely ? I want just to know somehow to find logic choice sets without including all these conditions. I know that conditions have to be included to avoid having dominant/dominated alternatives or unreasonable combinations of attribute levels but at the same time, too much of them will affect the distribution of levels (almost unbalanced).

Greetings,
Sameh

Posts: 10
Joined: Wed Nov 03, 2021 6:26 pm
Location: Spain

### Re: Ngene_questions

User-specified constraints should only be used to make the alternatives more realistic. It is not necessary to impose dominance constraints manually since the * after each alternative already invokes dominance checks in Ngene. So if constraints are not necessary, then best to leave them out and let the attribute levels vary more freely.

Note that you specified the status quo alternative (which has attributes with fixed levels) as an opt-out alternative (which does not have any attributes). In the script below I give an example of what the status quo alternative could look like. For categorical variables the require command is needed to fix attribute levels and this command only works in conjunction with the modified Fedorov algorithm. This algorithm does not work together with cond constraints, so I rewrote your first constraints as reject constraints, you can do the others in the same way.

Code: Select all
`designalts = alt1*, alt2*, sq*;rows = 18;block = 3;eff = (mnl,d);alg = mfederov;require:sq.WATER = 0,sq.BIO = 0,sq.RECR = 0,sq.GAS = 0;reject:alt1.WATER + alt1.BIO + alt1.RECR + alt1.GAS = 1 and alt1.PRICE > 0,alt2.WATER + alt2.BIO + alt2.RECR + alt2.GAS = 1 and alt2.PRICE > 0,alt1.PRICE = 0 and alt1.WATER + alt1.BIO + alt1.RECR + alt1.GAS <> 1,alt2.PRICE = 0 and alt2.WATER + alt2.BIO + alt2.RECR + alt2.GAS <> 1,alt1.PRICE = 0 and alt1.HEALTH > 0,alt2.PRICE = 0 and alt2.HEALTH > 0,alt1.HEALTH = 0 and alt1.PRICE > 0,alt2.HEALTH = 0 and alt2.PRICE > 0? ... more constraints;model :U(alt1) = b1.effects[0.01|0.02] * WATER[1,2,0]                 ? water quality, 0 = low (base), 1 = medium, 2 = high        + b2.effects[0.01|0.02] * BIO[1,2,0]                   ? biodiversity,  0 = low (base), 1 = medium, 2 = high        + b3.effects[0.01|0.02] * RECR[1,2,0]                  ? recreational facilities, 0 = low, 1 = medium, 2 = high        + b4.effects[0.01|0.02] * GAS[1,2,0]                   ? gas emissions, 0 = low (base), 1 = medium, 2 = high        + b5[0.001]             * HEALTH[0,25,50](0-18,6-12,6-12)                       ? health safety (percentage)        + b6[-0.001]            * PRICE[0,30,60,90,120,150](0-18,2-6,2-6,2-6,2-6,2-6)   ? price (TD)        /U(alt2) = b1                    * WATER        + b2                    * BIO        + b3                    * RECR        + b4                    * GAS        + b5                    * HEALTH        + b6                    * PRICE        /U(sq)   = b_sq[0]        + b1                    * WATER        + b2                    * BIO        + b3                    * RECR        + b4                    * GAS        + b5                    * HEALTH_sq[0]        + b6                    * PRICE_sq[0]\$`

Michiel
Michiel Bliemer

Posts: 1588
Joined: Tue Mar 31, 2009 4:13 pm

### Re: Ngene_questions

Dear Sir,

Thanks for these brief explanations.

I understand all the modifications you made below, just wondering what may differ in the instruction when adding (0-18,2-6,2-6,2-6,2-6 ,2-6) and depending on what we add it. If we remove it from the instructions, which can happen (I'm looking for attribute levels here).

Greetings,
Sameh

Posts: 10
Joined: Wed Nov 03, 2021 6:26 pm
Location: Spain

### Re: Ngene_questions

What may happen if you remove those constraints on the number of times each attribute level needs to occur is that it will mainly use the extreme levels for health and price as this is most efficient from a D-efficiency point of view. If you want to also use the middle wise for attribute level balance reasons, it is wise to include those constraints. For effects-coded attributes this is typically not necessary since all levels will be used (as otherwise the level-specific coefficients cannot be estimated and hence the D-error would be very large).

Michiel
Michiel Bliemer

Posts: 1588
Joined: Tue Mar 31, 2009 4:13 pm

### Re: Ngene_questions

Well understood. I will try to conduct a pilote survey by the end of this month following Ngene results obtained (I will definitely ask a few questions).

Thank you for all your information and explanations. It was an honor!

Greetings !
Sameh
Sameh

Posts: 10
Joined: Wed Nov 03, 2021 6:26 pm
Location: Spain

### Re: Ngene_questions

Dear Sir,

I wonder if alg and eval cannot be specified in the same script ? I'm trying to reevaluate an existing design and an error message is indicating that it cannot be estimated when both are included in the script. Otherwise, should I remove the alg ? and if I will remove it the reject command will not be considered ?

Greetings,
Sameh

Posts: 10
Joined: Wed Nov 03, 2021 6:26 pm
Location: Spain

### Re: Ngene_questions

Correct, eval (or alg = eval) and alg = swap or alg = mfdederov cannot be used in the same script because it does not make sense.
Eval does not generate a design and therefore does not need an algorithm and does not need constraints. So please remove any other algorithm from the script. I think it automatically ignores any constraints, assuming that the attribute levels in your design satisfy the constraints.

Michiel
Michiel Bliemer

Posts: 1588
Joined: Tue Mar 31, 2009 4:13 pm

### Re: Ngene_questions

Dear Sir,

I wonder if we specify this instruction : U(sq) = b_sq[0] + b1 * WATER + b2 * BIO+ b3 * RECR + b4 * GAS + b5 * HEALTH_sq[0] + b6 * PRICE_sq[0] , to the script can modify something in terms of the distribution of levels or in terms probabilities. I know that if we will not specify the sq option, this might be unlikely if we are expecting respondents to prefer the other alternatives, assuming that its utility is equal to zero. I mean : normally, if I will remove this instruction, the sq will not be specified automatically by Ngene and it will take the lowest level " 0 " , in terms of attributes. (I entered into discussion today with a person and he asked me about the effect of specifying the Sq instruction in the script when it will receive the same levels in all cases " low").

So, would you like please to tell me what is the added value of this instruction. As I see in the Ngene results obtained, the probabilities are very balanced (i.e., difficult choices = maximum trade-offs), so is this the point ? to better balance the probabilities ? or it's a question of instruction' definition in the script : opt-out vs Sq ?

Greetings,
Sameh

Posts: 10
Joined: Wed Nov 03, 2021 6:26 pm
Location: Spain

### Re: Ngene_questions

In your case, the utility of the SQ alternative is 0 since you are setting all attribute levels to zero. Note that this is coincidence and in general the SQ alternative does not need to have zero utility. Setting it to zero, like an opt-out alternative, will in your case result in the same choice probabilities and same efficiency, so you may indeed wonder what the difference is.

The difference is that specifying this alternative including all attributes allows Ngene to check for dominant alternatives INCLUDING the SQ alternative. If you simply set the utility to 0 without specifying the alternatives, then Ngene will only check for dominance between alt1 and alt2 but will NOT be able to check for dominance between alt1 and sq and alt2 and sq. So if you do not specify the SQ alternative, you will need to remove the asterisk, i.e., ;alts = alt1*, alt2*, sq, which is typically not desirable as it may lead to unwanted dominant SQ alternatives.

Michiel
Michiel Bliemer

Posts: 1588
Joined: Tue Mar 31, 2009 4:13 pm

### Re: Ngene_questions

Dear Sir,

I come back to you after conducting a pilot survey with 30 persons. As I know one of the reasons for conducting a pilot survey especially when scripting a bayesian efficient design with Near Zero priors is to obtain a clear vision about these priors. First results generated by SPSS showed that some of the attributes are seemed to be significant but it's not the case for the rest, signs also are as expected .

Exple (case of biodiversity) BIODIV 1 _ HIGH LEVEL / BIODIV2_LOW LEVEL

B E.S Wald ddl Sig.
BIODIV1 0,6 0,203 8,708 1 0,003
BIODIV2 0,446 0,167 7,129 1 0,008

I wonder if I can modify the last design by entering just the significant ones into the script and leaving others as Near zero priors or Zero ? Here, I think that I should worry about the D-error that I guess that its value will be so high, and I have to be worried about the manner of how Ngene will read these inputs. I'm thinking about the trade.off between attributes/levels and the concept of maximum trade off. I don't know if it will concentrate just on the significant levels when distributing the price or not.

I have just modified the script and as I see the D-error is for about 4. Have you any suggestions please ?

Another question please : Ngene license can be installed on MACBOOK AIR ? Is it compatible ?

Greetings,
Sameh
Sameh

Posts: 10
Joined: Wed Nov 03, 2021 6:26 pm
Location: Spain

Next