very large D error in an efficient design

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

very large D error in an efficient design

Postby Anat Tchetchik » Mon Dec 11, 2017 8:46 am

Dear all,
I ran a generic design for the pilot stage (in order to obtain more accurate priors)
As I have good guesses about the signs of 5 out of 6 attributes, I do not expect dominant alt. hence I did not use the * option.
I have 3 ordinal categorical vars. (greening, facilities, cleanair) one categorical non-ordinal: agri_crop (the crops that consists the agri. landscape) and 2 continuous vars. (cost and agri_cover).
I also used "Designs within designs": the att. agri_crop remains fixed.
I have added to the optout alt. the fixed att. agri_crop (as can be seen in the code below), the MNL D-Error came out enormous.
Evaluation Time MNL D-Error 1 00:40:52, 11-Dec-17 22347229433.3303

When I use other "normal" attributes in the optout alt. the D-error becomes sufficiently small... I guess that this is the results of having 0 as a prior for that specific att. is there a way to resolve that?
Code: Select all
Design
;alts = alt1,alt2,optout
;rows=36
;block=6
;eff=(mnl,d)
;model:
U(alt1)=c1+b1[0.00001]*greening[1,2,3]+b2.dummy[0|0|0]*agri_crop[1,2,3,4]+b6[0]*agri_cover[40,60,80]+b3[0.0001]*facilities[1,2,3]+b4[0.00001]*cleanair[1,2,3]+b5[-0.00001]*cost[0,70,90]/
U(alt2)=c2+b1*greening+b2.dummy[0|0|0]*agri_crop[agri_crop]+b6*agri_cover+b3*facilities+b4*cleanair+b5*cost/
U(optout)= b2.dummy[0|0|0]*agri_crop[agri_crop]$

Anat Tchetchik
 
Posts: 61
Joined: Fri Sep 16, 2011 3:58 am
Location: ISRAEL

Re: very large D error in an efficient design

Postby johnr » Tue Dec 12, 2017 4:53 pm

Hi Manes

It is not clear what you are trying to do with the command [agri_crop]. This will pick up the level obtained in the first utility function (i.e., agri_crop[1,2,3,4]) and use the same value where you use this command. Given that you have used this in both alt2 and the optout (i.e., b2.dummy[0|0|0]*agri_crop[agri_crop] appears in alt2 and alt3, the level will be the same for all utility functions. That is, if it picks level 2 in alt1, the program will pick level 2 for alt2 and the optout alternatives. As there is no variation, you will not be able to invert the Hessian and your AVC matrix will be singular. This is why you are getting such a large D-error. I'm actually surprised you get a D-error at all.

John
johnr
 
Posts: 168
Joined: Fri Mar 13, 2009 7:15 am

Re: very large D error in an efficient design

Postby Anat Tchetchik » Wed Dec 13, 2017 1:31 am

Hi John,

The [agri_crop] att. refer to the agricultural landscape that visitors to the "Biosphere reserve" will be exposed to. The agricultural area is located at the coastal zone and can consist of either green houses, (category 1) field crops (category 2) orchards (3) or a combination of field crops and orchards (4). The att. [agri_cover] tells how much of the coastal area will be covered with this specific crop (or combination). I chose to fixate the [agri_crop] in each menu and change only the coverage of it, in order not to put to much cognitive burden on the respondents (Each respondent will receive 6 menus so hopefully, he/she will will be confronted with each of four [agri_crop] categories). Note that when I put signs for the priors of [agri_crop] (and even add the [agri_cover] att. to the optout alt.), the D-error becomes sufficiently small. Note that the way the optout is represented represent realistic scenarios,
This is not optimal, as I have low certainty about the signs of the [agri_crop], but if this is the only way around than it is fine.
Code: Select all
Design
;alts = alt1,alt2,optout
;rows=36
;block=6
;eff=(mnl,d)
;model:
U(alt1)=c1+b1[0.00001]*greening[1,2,3]+b2.dummy[-0.0001|-0.0001|-0.00001]*agri_crop[1,2,3,4]+b6[0]*agri_cover[40,60,80]+b3[0.0001]*facilities[1,2,3]+b4[0.00001]*cleanair[1,2,3]+b5[-0.00001]*cost[0,70,90]/
U(alt2)=c2+b1*greening+b2.dummy[0|0|0]*agri_crop[agri_crop]+b6*agri_cover+b3*facilities+b4*cleanair+b5*cost/
U(optout)= b2.dummy[-0.0001|-0.0001|-0.00001]*agri_crop[1,2,3,4]+b6[0]*agri_cover[40,60,80]$

Thank you!
Anat
Anat Tchetchik
 
Posts: 61
Joined: Fri Sep 16, 2011 3:58 am
Location: ISRAEL

Re: very large D error in an efficient design

Postby Anat Tchetchik » Wed Dec 13, 2017 2:46 am

Hi John,

I had a mistake in the last design I sent.. The [agri_crop] att. was "free" for the optout alt. that is why the design worked so well.
When I fixed this att. for all alts. I get again a huge D-error (regardless of assigning priors with signs), so I guess I will have to manually adjust the optout's [agri_crop] category to the one of the two other alts.
Thanks again,
Anat
Anat Tchetchik
 
Posts: 61
Joined: Fri Sep 16, 2011 3:58 am
Location: ISRAEL

Re: very large D error in an efficient design

Postby johnr » Tue Dec 19, 2017 12:26 pm

Hi Anat

Can you post your new syntax. When I run what I think you did, I get a D-error of around 0.02, which means I'm doing something different to you.

John
johnr
 
Posts: 168
Joined: Fri Mar 13, 2009 7:15 am

Re: very large D error in an efficient design

Postby Anat Tchetchik » Wed Dec 20, 2017 10:00 am

Hi John,

As it appears that I cannot fixate the attribute [agri_crop] for all three alternatives (alt1 alt2 and the optout), I just gave up stating this att. in the optout alternative
eventually I ended up with the following design:
Code: Select all
Design
;alts = alt1,alt2,optout
;rows=36
;block=6
;eff=(mnl,d)
;model:
U(alt1)=c1+b1[0.00001]*greening[1,2,3]+b2.dummy[-0.0001|-0.0001|-0.00001]*agri_crop[1,2,3,4]+b6[0]*agri_cover[20,40,60]+b4[0.00001]*cleanair[1,2,3]+b5[-0.00001]*cost[100,150,200]/
U(alt2)=c2+b1*greening+b2.dummy[-0.0001|-0.0001|-0.00001]*agri_crop[agri_crop]+b6*agri_cover+b4*cleanair+b5*cost/
U(optout)= b6[0]*agri_cover$


My intention is to add manually to the optout options in experiment the same type of [agri_crop] that will appear in alt1 and alt2.
I hope this is not a huge mistake.
I cannot put asterisks (i.e. alt1*, alt2*) since the value of b6 [agri_cover] depends on the category of [agri_crop].
Level 1 of [agri_crop] indicates green houses, 2- plantations, 3 field crops and 4 a mixture of plantations and field crops. I expect b6 (which represent the area's percentage covered with the specific agri. crop) to be negative for green houses, moderately positive for plantations and filed crops and highly positive for the combination option. The levels of the [agri_crop] attribute are mutually exclusive so I'm not sure how to model this dependency.
I entered the value zero for b6, but I guess its a bad choice.
I hope I manged to make myself clear.
Thanks!
Anat
Anat Tchetchik
 
Posts: 61
Joined: Fri Sep 16, 2011 3:58 am
Location: ISRAEL

Re: very large D error in an efficient design

Postby Michiel Bliemer » Thu Dec 28, 2017 8:27 am

As John said, it is not possible (to add the same attribute level in all three alternatives since the parameters would no longer be identifiable. While you could add it manually, software will not be able to estimate your model. This is not an Ngene issue but a model specification issue.

You need to either (i) leave this attribute out in one of the alternative, or (ii) add this attribute only as an interaction term.
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: very large D error in an efficient design

Postby Anat Tchetchik » Fri Dec 29, 2017 6:10 am

Thank you Michiel, one last clarification. If each respondent answers 4 menus (panel data), in each menu the att. [agri_crop] is fixed at a different level, so there is variation within respondents, wouldn't it be possible to estimate in RPL the coefficient for [agri_crop]?
Anat Tchetchik
 
Posts: 61
Joined: Fri Sep 16, 2011 3:58 am
Location: ISRAEL

Re: very large D error in an efficient design

Postby johnr » Fri Dec 29, 2017 7:02 am

Hi Manes

No. The model is what we call homogeneous of degree zero, meaning that you need differences between the utility functions within observations. Consider the following

Respondent 1

U1 = Beta_price * 50 + Beta_time * 40 + Beta_quality * 5
U2 = Beta_price * 50 + Beta_time * 30 + Beta_Quality * 10

Respondent chooses alternative 1

Respondent 2

U1 = Beta_price * 30 + Beta_time * 40 + Beta_quality * 5
U2 = Beta_price * 30 + Beta_time * 30 + Beta_Quality * 10

Respondent chooses alternative 2

You cannot say that price was responsible for the different choices observed as it is constant across all utility functions. You can only infer the impact of time and quality on the choices.

john
johnr
 
Posts: 168
Joined: Fri Mar 13, 2009 7:15 am

Re: very large D error in an efficient design

Postby Anat Tchetchik » Fri Dec 29, 2017 9:11 am

Thank you John.. I was not aware of the requirement for variation "within respondents".
I guess I will adopt Michiel's advice and add this attribute as an interaction term. Never used interactions terms, time to move on :).
Thanks,
Anat

BTW, I have tried to replace my "ngene name" to my first +surname (it is now my surname), didn't find how to do it.
Anat Tchetchik
 
Posts: 61
Joined: Fri Sep 16, 2011 3:58 am
Location: ISRAEL


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: Shama and 7 guests

cron