Hi all, long time reader first time poster here. I am using StataSE 16.1 on MacOS 11.2.3. I'm analyzing pilot data from an unlabeled discrete choice experiment, subjects had 12 choice tasks with 3 alternatives per task (called "location" in the dataset).

Example data:
Code:
* Example generated by -dataex-. To install: ssc install dataex
clear
input long randomrespondentid byte task float choice byte location long(specialty pcprec timeresult) float cost byte(timetravel timewaitapt service) float reputation long onlinesch
18119  1 1 1 2 1 48 100 20 28 3 3 0
18119  2 0 1 1 0 48 180 30  7 5 5 0
18119  3 1 1 2 1  0 180 20 28 5 3 0
18119  4 0 1 2 1 24 100 30 49 3 3 1
18119  5 0 1 3 0 24  20 20 28 5 1 1
18119  6 0 1 3 0 24 100 10 49 3 5 1
18119  7 0 1 3 0 24 180 10 28 3 3 0
18119  8 0 1 2 0 48  20 10  7 1 1 0
18119  9 0 1 1 1 48  20 10  7 1 1 1
18119 10 0 1 1 0  0 100 30 49 1 5 0
18119 11 0 1 3 1  0 180 30  7 1 1 1
18119 12 1 1 1 1  0  20 20 49 5 5 1
18119  1 0 2 1 0 24 180 30 28 5 1 0
18119  2 0 2 2 0  0 180 30 49 1 3 1
18119  3 0 2 1 0 24  20 20  7 1 5 1
18119  4 1 2 3 1 24  20 10  7 5 1 0
18119  5 1 2 3 1 48 100 10 28 3 5 0
18119  6 0 2 1 0  0  20 20 49 1 1 0
18119  7 0 2 1 1 48 100 20  7 3 3 1
18119  8 1 2 3 1 48 100 10 28 5 5 1
18119  9 1 2 2 1  0  20 30 49 3 5 0
18119 10 0 2 2 1 48 180 10  7 5 1 1
18119 11 0 2 2 0 24 100 20 49 3 3 1
18119 12 0 2 3 0  0 180 30 28 1 3 0
18119  1 0 3 3 1 24 100 20 49 1 5 1
18119  2 1 3 3 1 48  20 10 28 3 3 0
18119  3 0 3 1 0 48 100 30  7 3 1 0
18119  4 0 3 2 0 24 180 10  7 1 5 1
18119  5 0 3 1 1 24 180 10 28 1 1 0
18119  6 1 3 2 1 48 180 30  7 5 5 1
18119  7 1 3 2 1 24  20 20 28 3 1 1
18119  8 0 3 1 1  0 100 30 49 5 3 1
18119  9 0 3 1 0  0 180 10 49 5 3 1
18119 10 1 3 3 0  0  20 30 49 3 1 0
18119 11 1 3 2 0  0  20 20 28 5 5 0
18119 12 0 3 3 0 48 100 20  7 1 3 0
59355  1 1 1 2 1 48 100 20 28 3 3 0
59355  2 0 1 1 0 48 180 30  7 5 5 0
59355  3 1 1 2 1  0 180 20 28 5 3 0
59355  4 0 1 2 1 24 100 30 49 3 3 1
59355  5 0 1 3 0 24  20 20 28 5 1 1
59355  6 0 1 3 0 24 100 10 49 3 5 1
59355  7 1 1 3 0 24 180 10 28 3 3 0
59355  8 0 1 2 0 48  20 10  7 1 1 0
59355  9 0 1 1 1 48  20 10  7 1 1 1
59355 10 0 1 1 0  0 100 30 49 1 5 0
59355 11 0 1 3 1  0 180 30  7 1 1 1
59355 12 0 1 1 1  0  20 20 49 5 5 1
59355  1 0 2 1 0 24 180 30 28 5 1 0
59355  2 0 2 2 0  0 180 30 49 1 3 1
59355  3 0 2 1 0 24  20 20  7 1 5 1
59355  4 1 2 3 1 24  20 10  7 5 1 0
59355  5 1 2 3 1 48 100 10 28 3 5 0
59355  6 0 2 1 0  0  20 20 49 1 1 0
59355  7 0 2 1 1 48 100 20  7 3 3 1
59355  8 1 2 3 1 48 100 10 28 5 5 1
59355  9 1 2 2 1  0  20 30 49 3 5 0
59355 10 1 2 2 1 48 180 10  7 5 1 1
59355 11 0 2 2 0 24 100 20 49 3 3 1
59355 12 0 2 3 0  0 180 30 28 1 3 0
59355  1 0 3 3 1 24 100 20 49 1 5 1
59355  2 1 3 3 1 48  20 10 28 3 3 0
59355  3 0 3 1 0 48 100 30  7 3 1 0
59355  4 0 3 2 0 24 180 10  7 1 5 1
59355  5 0 3 1 1 24 180 10 28 1 1 0
59355  6 1 3 2 1 48 180 30  7 5 5 1
59355  7 0 3 2 1 24  20 20 28 3 1 1
59355  8 0 3 1 1  0 100 30 49 5 3 1
59355  9 0 3 1 0  0 180 10 49 5 3 1
59355 10 0 3 3 0  0  20 30 49 3 1 0
59355 11 1 3 2 0  0  20 20 28 5 5 0
59355 12 1 3 3 0 48 100 20  7 1 3 0
77845  1 0 1 1 0 48 100 10 28 5 5 0
77845  2 0 1 2 0  0 420 30  7 1 1 0
77845  3 0 1 2 0 48 740 10  7 1 3 1
77845  4 0 1 3 0  0 740 30 49 3 5 1
77845  5 1 1 3 0 24 420 10  7 5 1 1
77845  6 0 1 2 0 24 420 10 49 3 3 0
77845  7 0 1 1 1 24 740 20  7 5 1 0
77845  8 1 1 2 1  0 420 20 49 5 3 1
77845  9 0 1 1 1 48 100 20 49 3 5 0
77845 10 1 1 1 1 48 100 20 28 1 3 1
77845 11 1 1 3 1 24 740 30 28 3 5 1
77845 12 1 1 3 1  0 100 30 28 1 1 0
77845  1 1 2 3 0 48 100 10 28 3 3 0
77845  2 1 2 3 1  0 420 20 28 5 5 1
77845  3 1 2 2 1 48 740 30  7 5 3 1
77845  4 0 2 1 1 48 740 10  7 5 1 0
77845  5 0 2 2 1  0 420 30 28 1 5 0
77845  6 0 2 3 0 24 100 30 49 5 1 1
77845  7 1 2 2 0  0 100 20 49 3 1 1
77845  8 0 2 3 0 24 740 20  7 1 3 0
77845  9 0 2 1 0  0 420 10 49 3 5 0
77845 10 0 2 1 0 48 100 30  7 1 1 1
77845 11 0 2 1 1 24 740 10 28 1 5 1
77845 12 0 2 2 1 24 420 20 49 3 3 0
77845  1 0 3 2 1 24 740 30  7 1 1 1
77845  2 0 3 1 0 48 100 20  7 3 1 0
77845  3 0 3 1 0  0 420 30 49 5 1 0
77845  4 1 3 2 1 24 420 10 49 1 3 0
end
label values location location
label def location 1 "Location_A", modify
label def location 2 "Location_B", modify
label def location 3 "Location_C", modify
label values specialty specialty
label def specialty 1 "Non-Radiologist", modify
label def specialty 2 "General Radiologist", modify
label def specialty 3 "Sub-specialty Radiologist", modify
label values pcprec yn
label values onlinesch yn
label def yn 0 "No", modify
label def yn 1 "Yes", modify
label values timeresult timeresult_mri
label def timeresult_mri 0 "0 hours (same day)", modify
label def timeresult_mri 24 "24 hours (1 day)", modify
label def timeresult_mri 48 "48 hours (2 days)", modify
I have cmset the data by:
Code:
cmset randomrespondentid task location
cmchoiceset
cmtab, choice(choice)
Cmtab output shows:
Task
Location ID Freq. Percent Cum.
Location_A 19 31.67 31.67
Location_B 22 36.67 68.33
Location_C 19 31.67 100
Total 60 100
My cmclogit model was then specified by:
Code:
cmclogit choice i.specialty i.pcprec timeresult cost timetravel timewaitapt service reputation i.onlinesch
The model's output looks like this:
location
choice Coef. Std. Err. z P>z [95% Conf. Interval]
specialty
Non-Radiologist (base alternative)
General Radiologist 2.009659 0.6287307 3.2 0.001 0.7773691 3.241948
Sub-specialty Radiologist 3.006269 0.7947028 3.78 0 1.448681 4.563858
pcprec
No (base alternative)
Yes 1.928718 0.3064224 6.29 0 1.328141 2.529295
timeresult 0.03278 0.0235248 1.39 0.163 -0.0133277 0.0788878
cost -0.0047602 0.0013466 -3.53 0 -0.0073995 -0.0021209
timetravel 0.0092858 0.0312333 0.3 0.766 -0.0519303 0.0705019
timewaitapt 0.0072963 0.0253223 0.29 0.773 -0.0423345 0.0569271
service 0.4267344 0.3084378 1.38 0.167 -0.1777925 1.031261
reputation 0.4328727 0.1913986 2.26 0.024 0.0577384 0.8080071
onlinesch
No (base alternative)
Yes -0.2858188 0.9507025 -0.3 0.764 -2.149161 1.577524
Location_A (base alternative)
Location_B _cons -0.6517866 0.2554877 -2.55 0.011 -1.152533 -0.1510398
Location_C _cons -0.5013964 0.5062459 -0.99 0.322 -1.49362 0.4908274
My issue comes up when I attempt to use the margins command following this. For my continuous attributes (timeresult, cost, timetravel, timewaitapt, service, and reputation), I'm looking to generate a marginsplot showing predicted pr(choice) across the range of the attribute (so, for timeresult, the range is from 0 to 48 hours). What I'm used to with margins is in the land of logit models, where I could run
Code:
logit choice i.specialty i.pcprec timeresult cost timetravel timewaitapt service reputation i.onlinesch
margins, at(timeresult=(0(6)48)) post
and see:
Delta-method
Margin Std. Err. z P>z [95% Conf. Interval]
_at
1 0.2802559 0.0460885 6.08 0 0.1899241 0.3705877
2 0.3067719 0.0325849 9.41 0 0.2429066 0.3706372
3 0.3343434 0.0270787 12.35 0 0.2812702 0.3874166
4 0.3628394 0.0364093 9.97 0 0.2914784 0.4342004
5 0.3921178 0.0546222 7.18 0 0.2850602 0.4991754
This is clean, and shows me what I'm hoping to get out of these models, as it doesn't make sense to interpret the alternatives separately. However, when I run the margins command margins, at(timeresult=(0(6)48)) post following my cmclogit, I get estimates per alternative, with predicted probabilities for each combination:
Delta-method
Margin Std. Err. z P>z [95% Conf. Interval]
_outcome#location#_at
Location_A#Location_A#1 0.2334757 0.0531061 4.4 0 0.1293897 0.3375616
Location_A#Location_A#2 0.2741917 0.033525 8.18 0 0.2084839 0.3398995
Location_A#Location_A#3 0.3196473 0.0207342 15.42 0 0.2790089 0.3602856
Location_A#Location_A#4 0.3686992 0.0389565 9.46 0 0.2923458 0.4450526
Location_A#Location_A#5 0.4198139 0.0672812 6.24 0 0.2879453 0.5516826
Location_A#Location_B#1 0.3675455 0.0373744 9.83 0 0.2942929 0.440798
Location_A#Location_B#2 0.3445781 0.0277937 12.4 0 0.2901034 0.3990528
Location_A#Location_B#3 0.3214151 0.0238165 13.5 0 0.2747357 0.3680945
Location_A#Location_B#4 0.2986633 0.0283334 10.54 0 0.2431308 0.3541958
Location_A#Location_B#5 0.276847 0.0366028 7.56 0 0.2051069 0.3485871
Location_A#Location_C#1 0.3824771 0.0412454 9.27 0 0.3016376 0.4633166
Location_A#Location_C#2 0.3545894 0.030857 11.49 0 0.2941107 0.415068
Location_A#Location_C#3 0.3258502 0.0240125 13.57 0 0.2787865 0.3729139
Location_A#Location_C#4 0.2971504 0.0289725 10.26 0 0.2403654 0.3539354
Location_A#Location_C#5 0.2693776 0.0426984 6.31 0 0.1856903 0.3530649
Location_B#Location_A#1 0.39962 0.0272983 14.64 0 0.3461164 0.4531237
Location_B#Location_A#2 0.3832221 0.0208679 18.36 0 0.3423217 0.4241224
Location_B#Location_A#3 0.3649899 0.0168257 21.69 0 0.332012 0.3979677
Location_B#Location_A#4 0.3451074 0.0203647 16.95 0 0.3051933 0.3850214
Location_B#Location_A#5 0.3238606 0.0298334 10.86 0 0.2653882 0.382333
Location_B#Location_B#1 0.2882164 0.0524897 5.49 0 0.1853385 0.3910943
Location_B#Location_B#2 0.3245664 0.034498 9.41 0 0.2569515 0.3921812
Location_B#Location_B#3 0.3620589 0.0236814 15.29 0 0.3156442 0.4084736
Location_B#Location_B#4 0.3997573 0.0341674 11.7 0 0.3327904 0.4667241
Location_B#Location_B#5 0.4367783 0.0537569 8.13 0 0.3314167 0.54214
Location_B#Location_C#1 0.3905276 0.02624 14.88 0 0.3390981 0.4419571
Location_B#Location_C#2 0.3788056 0.0253621 14.94 0 0.3290969 0.4285143
Location_B#Location_C#3 0.3659732 0.0260908 14.03 0 0.3148363 0.4171102
Location_B#Location_C#4 0.3520453 0.029133 12.08 0 0.2949458 0.4091449
Location_B#Location_C#5 0.3370265 0.0349946 9.63 0 0.2684383 0.4056147
Location_C#Location_A#1 0.3669043 0.0420085 8.73 0 0.2845692 0.4492395
Location_C#Location_A#2 0.3425862 0.0356879 9.6 0 0.2726393 0.4125332
Location_C#Location_A#3 0.3153629 0.0335863 9.39 0 0.2495349 0.3811908
Location_C#Location_A#4 0.2861935 0.0394947 7.25 0 0.2087852 0.3636017
Location_C#Location_A#5 0.2563255 0.0503914 5.09 0 0.1575602 0.3550908
Location_C#Location_B#1 0.3442381 0.047298 7.28 0 0.2515356 0.4369406
Location_C#Location_B#2 0.3308555 0.042968 7.7 0 0.2466397 0.4150713
Location_C#Location_B#3 0.316526 0.0399577 7.92 0 0.2382104 0.3948416
Location_C#Location_B#4 0.3015795 0.039459 7.64 0 0.2242412 0.3789177
Location_C#Location_B#5 0.2863746 0.0417601 6.86 0 0.2045264 0.3682229
Location_C#Location_C#1 0.2269953 0.0627632 3.62 0 0.1039816 0.3500089
Location_C#Location_C#2 0.266605 0.0501884 5.31 0 0.1682375 0.3649725
Location_C#Location_C#3 0.3081766 0.041883 7.36 0 0.2260874 0.3902658
Location_C#Location_C#4 0.3508043 0.0465445 7.54 0 0.2595787 0.4420298
Location_C#Location_C#5 0.3935959 0.0643679 6.11 0 0.2674371 0.5197547
I've read quite a few posts on this topic, and have read through the margins manual pages, however I'm just not sure I understand what cmclogit is feeding into margins versus logit or mixlogit, and if there's a way to do what I'm looking to do. I eventually will be doing this marginal estimation using cmxtmixlogit as well, if that changes the approach I will need to take.

Thank you for any help/insight/reading you can offer!