Establishing priors

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Re: Establishing priors

Postby Michiel Bliemer » Wed Nov 18, 2020 11:44 pm

Stata should work I think, SPSS is not designed for estimating choice models. It is best to use dedicated choice model estimation software, Apollo and Biogeme are free.

You estimated two alternative-specific constants, but you also define generic alternatives. By estimating two constants you essentially correct for left-to-right bias, but after correcting for that both constants need to be the same, so I would choose app_asc = 1.1. I do find the standard error of 0.14 suspiciously low. Further, using these constants still results in high probabilities for the optout alternatives. Do respondents in your pilot survey indeed select the optout in about 70% of the time? If not, please check the coding of the levels in your data and check your estimations, I cannot really help there.

With this many Bayesian priors, it is no longer computationally feasible to do 3 draws for any abscissa, so I think the best you can do is to use 2 draws for each coefficient.

I added ;con because I think you may want to optimise also for estimating the constant.

I reverted back to the modified Federov algorithm because now it is difficult to find designs without any dominant alternative. I set the candidate set to 2000, but this could lead to a very long computation time (you may need to run it for days), so you could decide to set it to 1000.

You would need to run this syntax for a long time (at least a day on a fast computer).

Code: Select all
Design
;alts = app1*, app2*, neither
;rows = 48
;block = 4
;eff = (mnl,d,mean)
;alg = mfederov(candidates = 2000)
;con
;bdraws = gauss(2)
;model:
U(app1) = app_asc[(n,1.1,0.14)]
        + cost[(n,-0.446,0.03)] * COST[0,2.99,5.99,8.99](10-14,10-14,10-14,10-14)
        + developer.dummy[(n,0.172,0.229)|(n,-0.544,0.228)] * DEVELOPER[1,2,0]
          ? 0 = NHS digital; 1 Mhealth Essentials =; 2 = does not show;         
        + ratings.dummy[(n,-0.948,0.27)|(n,-0.213,0.249)|(n,-0.638,0.256)] * RATINGS[1,2,3,0]
          ? 0 = 4.8 stars, 1 = 3.2 stars, 2 = 4 stars, 3 = does not show         
        + description.dummy[(n,-0.081,0.244)|(n,-0.538,0.244)] * DESCRIPTION[1,2,0]
          ? 0 = short, 1 = long, 2 = brief         
        + images.dummy[(n,-0.436,0.232)|(n,-0.107,0.224)] * IMAGES[1,2,0]
          ? 0 = logo and screenshot, 1 = screenshot, 2 = logo
        /
U(app2) = app_asc
        + cost * COST
        + developer * DEVELOPER
        + ratings * RATINGS
        + description * DESCRIPTION
        + images * IMAGES

$


Michiel
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Establishing priors

Postby arista » Wed Dec 02, 2020 5:08 am

Hi,

thanks again. I took some time and learn to use Apollo. Based on the results I have updated the syntax. Could you have a final look at it, please?
Apollo results:

Estimates:
Estimate s.e. t.rat.(0) Rob.s.e. Rob.t.rat.(0)
asc_app1 1.73396 0.28513 6.0813 0.34055 5.0916
asc_app2 1.60174 0.28983 5.5265 0.34581 4.6318
asc_neither 0.00000 NA NA NA NA
b_cost -0.29684 0.02475 -11.9953 0.04171 -7.1172
b_dev_noshow 0.00000 NA NA NA NA
b_dev_mhealth 0.21474 0.19597 1.0957 0.21893 0.9808
b_dev_NHS 0.35725 0.18238 1.9589 0.19590 1.8236
b_rat_noshow 0.00000 NA NA NA NA
b_rat_3.2stars -0.36955 0.24058 -1.5361 0.24707 -1.4957
b_rat_4stars 0.82139 0.22264 3.6894 0.25869 3.1752
b_rat_4.8stars 0.84799 0.22558 3.7592 0.28212 3.0058
b_dscr_brief 0.00000 NA NA NA NA
b_dscr_long 0.30393 0.17891 1.6988 0.19481 1.5601
b_dscr_short -0.11137 0.19149 -0.5816 0.17919 -0.6215
b_img_logo 0.00000 NA NA NA NA
b_img_scrshot -0.19648 0.17758 -1.1064 0.18403 -1.0676
b_img_both -0.03459 0.29142 -0.1187 0.24945 -0.1387

Code: Select all
Design
;alts = app1*, app2*, neither
;rows = 48
;block = 4
;eff = (mnl,d,mean)
;alg = mfederov(candidates = 2000)
;con
;bdraws = gauss(2)
;model:
U(app1) = app_asc[(n,1.73,0.28)]
        + cost[(n,-0.297,0.02)] * COST[0,2.99,5.99,8.99](10-14,10-14,10-14,10-14)
        + developer.dummy[(n,0.214,0.196)|(n,0.357,0.182)] * DEVELOPER[1,2,0]
          ? 0 = does not show; 1 Mhealth Essentials =; 2 = NHS digital;         
        + ratings.dummy[(n,-0.369,0.24)|(n,0.821,0.223)|(n, 0.848,0.226)] * RATINGS[1,2,3,0]
          ? 0 = does not show, 1 = 3.2 stars, 2 = 4 stars, 3 = 4.8 stars       
        + description.dummy[(n,0.303,0.179)|(n,-0.111,0.191)] * DESCRIPTION[1,2,0]
          ? 0 = brief, 1 = long, 2 = short       
        + images.dummy[(n,-0.196,0.178)|(n,-0.035,0.291)] * IMAGES[1,2,0]
          ? 0 = logo, 1 = screenshot, 2 = logo and screenshot
        /
U(app2) = app_asc
        + cost * COST
        + developer * DEVELOPER
        + ratings * RATINGS
        + description * DESCRIPTION
        + images * IMAGES

$
arista
 
Posts: 7
Joined: Wed Sep 30, 2020 1:58 am

Re: Establishing priors

Postby Michiel Bliemer » Wed Dec 02, 2020 7:55 am

That looks good I think.
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Previous

Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 12 guests