First of all thanks for this great package and the very detailed user manual. This manual helped me a lot, but I still have some questions that I now ask here.
Here is what I want to do: I have choice data with one observation per individual from an experiment with two conditions (each subject is in only one of the two conditions). The choice was between 12 alternatives with different attributes (the payoff of the alternative as well as the norm and guilt associated with choosing this alternative). I want to test whether our manipulation lead to significantly different preference weights between the two conditions. Thus were it not for the two conditions, I would have a conditional logit model. But now I want to interact the choice specific attributes with the (individual specific) condition variable.
I have accomplished to run a model with only the interaction, but not the condition main effect. However I read that this should not be done and thus I now try to include the condition main effect. I tried to include the condition main effect by adopting example 3. That is I let the alternative specific constants interact with the condition variable (coded as 1 and 0). Thus the difference between the alternative specific constant with and without the condition interaction would be the group main effect. Do I see this correct? This is how I specified the model:
Code: Select all
# Utility functions
V[['v0']]<- asc_value_0 + asc_0_shift_private * condition + payoff * possible_payoff_0 + norm * personal_norm_0 + guilt * guilt_0 + condition_guilt * condition * guilt_0 + condition_norms * condition * personal_norm_0
V[['v1']]<- asc_value_1 + asc_1_shift_private * condition + payoff * possible_payoff_1 + norm * personal_norm_1 + guilt * guilt_1 + condition_guilt * condition * guilt_1 + condition_norms * condition * personal_norm_1
V[['v2']]<- asc_value_2 + asc_2_shift_private * condition + payoff * possible_payoff_2 + norm * personal_norm_2 + guilt * guilt_2 + condition_guilt * condition * guilt_2 + condition_norms * condition * personal_norm_2
V[['v3']]<- asc_value_3 + asc_3_shift_private * condition + payoff * possible_payoff_3 + norm * personal_norm_3 + guilt * guilt_3 + condition_guilt * condition * guilt_3 + condition_norms * condition * personal_norm_3
V[['v4']]<- asc_value_4 + asc_4_shift_private * condition + payoff * possible_payoff_4 + norm * personal_norm_4 + guilt * guilt_4 + condition_guilt * condition * guilt_4 + condition_norms * condition * personal_norm_4
V[['v5']]<- asc_value_5 + asc_5_shift_private * condition + payoff * possible_payoff_5 + norm * personal_norm_5 + guilt * guilt_5 + condition_guilt * condition * guilt_5 + condition_norms * condition * personal_norm_5
V[['v6']]<- asc_value_6 + asc_6_shift_private * condition + payoff * possible_payoff_6 + norm * personal_norm_6 + guilt * guilt_6 + condition_guilt * condition * guilt_6 + condition_norms * condition * personal_norm_6
V[['v7']]<- asc_value_7 + asc_7_shift_private * condition + payoff * possible_payoff_7 + norm * personal_norm_7 + guilt * guilt_7 + condition_guilt * condition * guilt_7 + condition_norms * condition * personal_norm_7
V[['v8']]<- asc_value_8 + asc_8_shift_private * condition + payoff * possible_payoff_8 + norm * personal_norm_8 + guilt * guilt_8 + condition_guilt * condition * guilt_8 + condition_norms * condition * personal_norm_8
V[['v9']]<- asc_value_9 + asc_9_shift_private * condition + payoff * possible_payoff_9 + norm * personal_norm_9 + guilt * guilt_9 + condition_guilt * condition * guilt_9 + condition_norms * condition * personal_norm_9
V[['v10']] <- asc_value_10 + asc_10_shift_private * condition + payoff * possible_payoff_10 + norm * personal_norm_10 + guilt * guilt_10 + condition_guilt * condition * guilt_10 + condition_norms * condition * personal_norm_10
V[['vexit']] <- asc_value_exit + asc_exit_shift_private * condition + payoff * pexit + norm * personal_norm_exit + guilt * guilt_exit + condition_guilt * condition * guilt_exit + condition_norms * condition * personal_norm_exit
Code: Select all
Model run using Apollo for R, version 0.1.0
www.ApolloChoiceModelling.com
Model name : beispiel
Model description : blabla
Model run at : 2020-05-13 13:26:56
Estimation method : bfgs
Model diagnosis : successful convergence
Number of individuals : 281
Number of observations : 281
Number of cores used : 1
Number of inter-person draws : 100 (halton)
WARNING: Inter-person draws were used
without a panel data structure.
LL(start) : -698.2588
LL(0) : -698.2588
LL(final) : -336.9148
Rho-square (0) : 0.5175
Adj.Rho-square (0) : 0.4717
AIC : 737.83
BIC : 854.26
Estimated parameters : 32
Time taken (hh:mm:ss) : 00:14:8.61
Iterations : 51
Min abs eigenvalue of hessian : 0
Estimates:
Estimate Std.err. t.ratio(0) Rob.std.err. Rob.t.ratio(0)
mu_log_payoff -0.5118 0.0620 -8.26 0.0580 -8.83
sigma_log_v_payoff_inter -0.0009 0.0596 -0.02 0.0016 -0.57
mu_log_guilt -0.0528 0.1159 -0.46 0.1023 -0.52
sigma_log_v_guilt_inter 0.0024 0.0900 0.03 0.0039 0.61
mu_log_norm 0.9489 0.2913 3.26 0.2872 3.30
sigma_log_v_norm_inter 0.9129 0.3582 2.55 0.3685 2.48
condition_guilt -0.1584 0.1473 -1.08 0.1309 -1.21
condition_norms -0.2479 0.3822 -0.65 0.3748 -0.66
asc_value_0 11.4341 1685.4522 0.01 0.6595 17.34
asc_value_1 8.3262 1685.4524 0.00 1.0631 7.83
asc_value_2 8.7828 1685.4523 0.01 0.9045 9.71
asc_value_3 6.3819 1685.4526 0.00 1.3624 4.68
asc_value_4 7.2394 1685.4524 0.00 1.0454 6.92
asc_value_5 7.7598 1685.4524 0.00 1.0498 7.39
asc_value_6 -10.9021 1043.2783 -0.01 1.1359 -9.60
asc_value_7 -12.1538 3500.2843 0.00 1.0978 -11.07
asc_value_8 -12.9747 4028.5519 0.00 1.1152 -11.63
asc_value_9 -13.6013 4233.2051 0.00 1.1592 -11.73
asc_value_10 -10.9540 2359.7707 0.00 1.7876 -6.13
asc_value_exit 10.6619 1685.4524 0.01 0.9996 10.67
asc_0_shift_private -1.9864 2410.8225 0.00 1.6954 -1.17
asc_1_shift_private -1.8551 2410.8227 0.00 1.8820 -0.99
asc_2_shift_private -2.3897 2410.8226 0.00 1.8459 -1.29
asc_3_shift_private -0.9485 2410.8228 0.00 2.1320 -0.44
asc_4_shift_private -2.4024 2410.8227 0.00 1.9391 -1.24
asc_5_shift_private -3.6892 2410.8226 0.00 1.9274 -1.91
asc_6_shift_private 12.9082 NaN NaN 0.7332 17.60
asc_7_shift_private -1.6972 4206.9374 0.00 1.7801 -0.95
asc_8_shift_private -2.5073 5177.9694 0.00 1.7553 -1.43
asc_9_shift_private -3.1862 6154.4091 0.00 1.8266 -1.74
asc_10_shift_private 10.8388 3106.9923 0.00 2.5987 4.17
asc_exit_shift_private -3.0851 2410.8226 0.00 1.9488 -1.58
Overview of choices for model component "MNL"
v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 vexit
Times available 281.00 281.00 281.00 281.00 281.00 281.00 281.00 281 281 281 281.00 281.00
Times chosen 67.00 7.00 15.00 8.00 13.00 35.00 2.00 0 0 0 2.00 132.00
Percentage chosen overall 23.84 2.49 5.34 2.85 4.63 12.46 0.71 0 0 0 0.71 46.98
Percentage chosen when available 23.84 2.49 5.34 2.85 4.63 12.46 0.71 0 0 0 0.71 46.98
WARNING: some alternatives are never chosen in your data!
WARNING: Availability not provided to 'apollo_mnl' (or some elements are NA).
Full availability assumed.
And then my last question: the paper I build on did not use ASCs in their conditional logit model. To compare my results with theirs, I would like to also not include ASCs. I could do that by fitting a model for each condition and then compare the utility weights between models with a z-test. Is this a sensible thing to do to avoid including ASCs?
Thanks in advance for any answers!
Best,
Dominik

