Important: Read this before posting to this forum

  1. This forum is for questions related to the use of Apollo. We will answer some general choice modelling questions too, where appropriate, and time permitting. We cannot answer questions about how to estimate choice models with other software packages.
  2. There is a very detailed manual for Apollo available at http://www.ApolloChoiceModelling.com/manual.html. This contains detailed descriptions of the various Apollo functions, and numerous examples are available at http://www.ApolloChoiceModelling.com/examples.html. In addition, help files are available for all functions, using e.g. ?apollo_mnl
  3. Before asking a question on the forum, users are kindly requested to follow these steps:
    1. Check that the same issue has not already been addressed in the forum - there is a search tool.
    2. Ensure that the correct syntax has been used. For any function, detailed instructions are available directly in Apollo, e.g. by using ?apollo_mnl for apollo_mnl
    3. Check the frequently asked questions section on the Apollo website, which discusses some common issues/failures. Please see http://www.apollochoicemodelling.com/faq.html
    4. Make sure that R is using the latest official release of Apollo.
  4. If the above steps do not resolve the issue, then users should follow these steps when posting a question:
    1. provide full details on the issue, including the entire code and output, including any error messages
    2. posts will not immediately appear on the forum, but will be checked by a moderator first. This may take a day or two at busy times. There is no need to submit the post multiple times.

MIXL model with a lot of probability mass close to zero

Ask general questions about model specification and estimation that are not Apollo specific but relevant to Apollo users.
Post Reply
cybey
Posts: 60
Joined: 26 Apr 2020, 19:38

MIXL model with a lot of probability mass close to zero

Post by cybey »

Hello everyone,

I need your advice on a MIXL model where a lot of probability mass is close to zero. My MIXL model has five attributes with multiple attribute levels each. Two attributes are continuous and negative, i.e., with increasing levels utility is supposed to decrease. However, these attributes received little attention from my respondents, so when using normal distributions, the means are small, but significantly different from zero. The same holds for the standard deviations, which are around 0.3. Now the question is what to do with these attributes? If I use – for logical reasons – a negative lognormal distribution or negative uniform distribution, then model fit is poor, as expected. Even with the Fosgerau and Mabit (2013) polynomial, parameter estimates are extreme as the optimization algorithm tries to push most of the probability mass to the right, i.e., close to zero. The only solution I can think of is to model the two attributes as fixed parameters. However, this lowers model fit significantly (LL test and Bas test). Do you have any other ideas that I haven't thought of yet?

I look forward to your answers!
stephanehess
Site Admin
Posts: 974
Joined: 24 Apr 2020, 16:29

Re: MIXL model with a lot of probability mass close to zero

Post by stephanehess »

Nico

so what is the problem with using the Normal distribution? That the sign assumption doesn't make sense?

You could try a negative loguniform, which is bounded at both ends

Stephane
--------------------------------
Stephane Hess
www.stephanehess.me.uk
cybey
Posts: 60
Joined: 26 Apr 2020, 19:38

Re: MIXL model with a lot of probability mass close to zero

Post by cybey »

Yes, I worry about the signs. It's like estimating utility for charities: Respondents don't really like giving money away, but like the feeling of doing something good. In my case, it is a study on the constraints on the use of air conditioning in office buildings and the attribute "frequency" describes the number of interventions per week. This attribute has received little attention, but - from a logical perspective - is negative.

In my initial post, I wrote "negative uniform", but actually meant "negative loguniform", i.e., I have tried this already. Sorry for that! In the following model output, I use the loguniform (LU), normal (N), and lognormal distribution with Fosgerau Mabit polynomial (FM). The estimates for the attribute "frequency", -21 and 21, respectively, look extreme to me.

MIXL_DR1_COV0_FrLU_DuFM_Te-FM_CoN_WaLU_AscN_SO5000:

Code: Select all

LL(start)                                   : -7828.77
LL (whole model) at equal shares, LL(0)     : -10428.04
LL (whole model) at observed shares, LL(C)  : -9391.55
LL(final, whole model)                      : -7794.79
Rho-squared vs equal shares                  :  0.2525 
Adj.Rho-squared vs equal shares              :  0.2505 
Rho-squared vs observed shares               :  0.17 
Adj.Rho-squared vs observed shares           :  0.1678 
AIC                                         :  15631.59 
BIC                                         :  15771.64 

LL(0,CBC_forced)                 : -6393.92
LL(final,CBC_forced)             : -5352.62
LL(0,CBC_free)                   : -4034.12
LL(final,CBC_free)               : -2507.11

Estimated parameters                        :  21
Time taken (hh:mm:ss)                       :  02:34:1.12 
     pre-estimation                         :  00:34:35.13 
     estimation                             :  00:40:32.37 
     post-estimation                        :  01:18:53.61 
Iterations                                  :  52  
Min abs eigenvalue of Hessian               :  0.029912 

Unconstrained optimisation.

These outputs have had the scaling used in estimation applied to them.
Estimates:
                                            Estimate        s.e.   t.rat.(0)  p(1-sided)    Rob.s.e. Rob.t.rat.(0)  p(1-sided)
b_asc_1                                     -0.07349     0.04290      -1.713    0.043359     0.04458        -1.649    0.049619
b_asc_2                                      0.17611     0.04137       4.257   1.037e-05     0.04271         4.124   1.866e-05
b_asc_3                                      0.00000          NA          NA          NA          NA            NA          NA
a_log_b_Frequency                          -21.15092     3.20875      -6.592   2.175e-11     3.00762        -7.032   1.015e-12
b_log_b_Frequency                           21.99426     3.36132       6.543   3.008e-11     3.10275         7.089   6.772e-13
mu_log_b_Duration                           -4.29644     1.71428      -2.506    0.006101     2.41577        -1.778    0.037661
sigma_log_b_Duration                        12.91142     4.08474       3.161  7.8643e-04     4.80259         2.688    0.003589
sigma_log_b_Duration_2                      -9.51790     4.50098      -2.115    0.017231     7.55741        -1.259    0.103941
b_Temperature_diff_none                      0.00000          NA          NA          NA          NA            NA          NA
mu_log_b_Temperature_diff_positive2         -3.49722     0.10761     -32.499    0.000000     0.13271       -26.352    0.000000
sigma_log_b_Temperature_diff_positive2       1.67842     0.14736      11.390    0.000000     0.14852        11.301    0.000000
sigma_log_b_Temperature_diff_positive2_2    -0.11356     0.06529      -1.739    0.040980     0.05243        -2.166    0.015150
b_Compensation_Company                       0.00000          NA          NA          NA          NA            NA          NA
mu_b_Compensation_IceDrink                   0.20163     0.05733       3.517  2.1823e-04     0.06185         3.260  5.5675e-04
sigma_b_Compensation_IceDrink                0.95196     0.06428      14.811    0.000000     0.07519        12.660    0.000000
mu_b_Compensation_Donation                  -0.07774     0.06544      -1.188    0.117408     0.07032        -1.106    0.134457
sigma_b_Compensation_Donation                1.17018     0.07002      16.713    0.000000     0.08205        14.261    0.000000
b_Warning_None                               0.00000          NA          NA          NA          NA            NA          NA
a_log_b_Warning_15min                       -4.36120     1.69492      -2.573    0.005040     1.93664        -2.252    0.012163
b_log_b_Warning_15min                        4.27976     2.05336       2.084    0.018568     2.36098         1.813    0.034939
a_log_b_Warning_DayBefore                   -6.57994     1.58157      -4.160   1.589e-05     1.86745        -3.523  2.1296e-04
b_log_b_Warning_DayBefore                    7.40831     1.69746       4.364   6.375e-06     2.02343         3.661  1.2549e-04
mu_CBC                                       1.00000          NA          NA          NA          NA            NA          NA
mu_DR                                        0.27856     0.10382       2.683    0.003646     0.13396         2.079    0.018790
b_DR_asc_0                                   0.00000          NA          NA          NA          NA            NA          NA
mu_b_DR_asc_1                                2.45467     0.14691      16.708    0.000000     0.16807        14.605    0.000000
sigma_b_DR_asc_1                             2.09642     0.13885      15.099    0.000000     0.18353        11.423    0.000000

In comparison, the specification with fixed parameter for "frequency".
MIXL_DR1_COV0_FrF_DuFM_Te-FM_CoN_WaLU_AscN_SO5000:

Code: Select all

LL(start)                                   : -7867.93
LL (whole model) at equal shares, LL(0)     : -10428.04
LL (whole model) at observed shares, LL(C)  : -9391.55
LL(final, whole model)                      : -7852.54
Rho-squared vs equal shares                  :  0.247 
Adj.Rho-squared vs equal shares              :  0.2451 
Rho-squared vs observed shares               :  0.1639 
Adj.Rho-squared vs observed shares           :  0.1617 
AIC                                         :  15745.08 
BIC                                         :  15878.46 

LL(0,CBC_forced)                 : -6393.92
LL(final,CBC_forced)             : -5420.67
LL(0,CBC_free)                   : -4034.12
LL(final,CBC_free)               : -2498.05

Estimated parameters                        :  20
Time taken (hh:mm:ss)                       :  01:59:32.59 
     pre-estimation                         :  00:28:43.21 
     estimation                             :  00:25:51.01 
     post-estimation                        :  01:04:58.37 
Iterations                                  :  36  
Min abs eigenvalue of Hessian               :  0.084726 

Unconstrained optimisation.

These outputs have had the scaling used in estimation applied to them.
Estimates:
                                            Estimate        s.e.   t.rat.(0)  p(1-sided)    Rob.s.e. Rob.t.rat.(0)  p(1-sided)
b_asc_1                                    -0.069809    0.041594     -1.6783     0.04664     0.04337       -1.6097    0.053728
b_asc_2                                     0.168466    0.040127      4.1983   1.345e-05     0.04154        4.0550   2.506e-05
b_asc_3                                     0.000000          NA          NA          NA          NA            NA          NA
b_Frequency                                -0.003157    0.009910     -0.3185     0.37505     0.01442       -0.2190    0.413341
mu_log_b_Duration                          -4.134263    0.798328     -5.1787   1.117e-07     0.74732       -5.5321   1.582e-08
sigma_log_b_Duration                        4.985392    1.156320      4.3114   8.110e-06     0.85329        5.8426   2.570e-09
sigma_log_b_Duration_2                     -1.460447    0.430520     -3.3923  3.4656e-04     0.24930       -5.8583   2.338e-09
b_Temperature_diff_none                     0.000000          NA          NA          NA          NA            NA          NA
mu_log_b_Temperature_diff_positive2        -3.543474    0.104374    -33.9499     0.00000     0.11136      -31.8190    0.000000
sigma_log_b_Temperature_diff_positive2      1.718042    0.150937     11.3825     0.00000     0.14612       11.7574    0.000000
sigma_log_b_Temperature_diff_positive2_2   -0.149205    0.065183     -2.2890     0.01104     0.05355       -2.7862    0.002666
b_Compensation_Company                      0.000000          NA          NA          NA          NA            NA          NA
mu_b_Compensation_IceDrink                  0.202920    0.054381      3.7314   9.520e-05     0.05789        3.5053  2.2801e-04
sigma_b_Compensation_IceDrink               0.902159    0.060871     14.8207     0.00000     0.06980       12.9249    0.000000
mu_b_Compensation_Donation                 -0.076841    0.062043     -1.2385     0.10776     0.06501       -1.1819    0.118615
sigma_b_Compensation_Donation               1.101990    0.065951     16.7091     0.00000     0.07664       14.3784    0.000000
b_Warning_None                              0.000000          NA          NA          NA          NA            NA          NA
a_log_b_Warning_15min                      -4.324619    2.092560     -2.0667     0.01938     2.19477       -1.9704    0.024395
b_log_b_Warning_15min                       4.066310    2.602010      1.5628     0.05905     2.73815        1.4851    0.068765
a_log_b_Warning_DayBefore                  -8.374590    2.112105     -3.9650   3.669e-05     2.74217       -3.0540    0.001129
b_log_b_Warning_DayBefore                   9.332367    2.224634      4.1950   1.364e-05     2.92708        3.1883  7.1559e-04
mu_CBC                                      1.000000          NA          NA          NA          NA            NA          NA
mu_DR                                       0.390066    0.108511      3.5947  1.6238e-04     0.13161        2.9638    0.001519
b_DR_asc_0                                  0.000000          NA          NA          NA          NA            NA          NA
mu_b_DR_asc_1                               2.762752    0.161837     17.0712     0.00000     0.18675       14.7936    0.000000
sigma_b_DR_asc_1                            2.123661    0.131491     16.1506     0.00000     0.15678       13.5456    0.000000
The fit statistics (LL, AIC, BIC, ...) point the model using a negative log-uniform distribution, but still ...

Finally, here is the model output when a negative lognormal distribution with FM transformation is used.
MIXL_DR1_COV0_FrFM_DuFM_Te-FM_CoN_WaLU_AscN:

Code: Select all

LL(start)                                   : -7867.7
LL (whole model) at equal shares, LL(0)     : -10428.04
LL (whole model) at observed shares, LL(C)  : -9391.55
LL(final, whole model)                      : -7844.84
Rho-squared vs equal shares                  :  0.2477 
Adj.Rho-squared vs equal shares              :  0.2456 
Rho-squared vs observed shares               :  0.1647 
Adj.Rho-squared vs observed shares           :  0.1623 
AIC                                         :  15733.68 
BIC                                         :  15880.4 

LL(0,CBC_forced)                 : -6393.92
LL(final,CBC_forced)             : -5393.28
LL(0,CBC_free)                   : -4034.12
LL(final,CBC_free)               : -2517.54

Estimated parameters                        :  22
Time taken (hh:mm:ss)                       :  01:34:59.84 
     pre-estimation                         :  00:21:31.34 
     estimation                             :  00:21:20.06 
     post-estimation                        :  00:52:8.45 
Iterations                                  :  49  
Min abs eigenvalue of Hessian               :  0.000144 

Unconstrained optimisation.

These outputs have had the scaling used in estimation applied to them.
Estimates:
                                            Estimate        s.e.   t.rat.(0)  p(1-sided)    Rob.s.e. Rob.t.rat.(0)  p(1-sided)
b_asc_1                                     -0.07685     0.04263    -1.80259    0.035726     0.04468      -1.72005    0.042711
b_asc_2                                      0.17342     0.04116     4.21318   1.259e-05     0.04302       4.03158   2.770e-05
b_asc_3                                      0.00000          NA          NA          NA          NA            NA          NA
mu_log_b_Frequency                          -2.12768     1.12127    -1.89756    0.028877     1.57460      -1.35125    0.088307
sigma_log_b_Frequency                       36.53776    19.28552     1.89457    0.029075    28.59078       1.27796    0.100632
sigma_log_b_Frequency_2                   -154.91069    81.06397    -1.91097    0.028004   121.41091      -1.27592    0.100992
mu_log_b_Duration                           -0.01217     0.18042    -0.06744    0.473116     0.18044      -0.06743    0.473119
sigma_log_b_Duration                         3.37988     1.76227     1.91790    0.027562     1.51573       2.22987    0.012878
sigma_log_b_Duration_2                     -17.87219     5.23923    -3.41123  3.2336e-04     5.91139      -3.02335    0.001250
b_Temperature_diff_none                      0.00000          NA          NA          NA          NA            NA          NA
mu_log_b_Temperature_diff_positive2         -2.00073     0.10224   -19.56941    0.000000     0.08679     -23.05319    0.000000
sigma_log_b_Temperature_diff_positive2       3.28113     0.47254     6.94361   1.911e-12     0.60670       5.40816   3.184e-08
sigma_log_b_Temperature_diff_positive2_2    -5.11704     0.61798    -8.28025   1.110e-16     0.85247      -6.00260   9.709e-10
b_Compensation_Company                       0.00000          NA          NA          NA          NA            NA          NA
mu_b_Compensation_IceDrink                   0.21249     0.05734     3.70587  1.0533e-04     0.06239       3.40554  3.3017e-04
sigma_b_Compensation_IceDrink                0.95062     0.06374    14.91400    0.000000     0.07501      12.67332    0.000000
mu_b_Compensation_Donation                  -0.08103     0.06472    -1.25211    0.105265     0.06886      -1.17668    0.119661
sigma_b_Compensation_Donation                1.13807     0.06707    16.96931    0.000000     0.07810      14.57282    0.000000
b_Warning_None                               0.00000          NA          NA          NA          NA            NA          NA
a_log_b_Warning_15min                       -5.48921     2.01942    -2.71822    0.003282     2.03938      -2.69160    0.003555
b_log_b_Warning_15min                        5.60613     2.27559     2.46359    0.006878     2.27029       2.46934    0.006768
a_log_b_Warning_DayBefore                   -6.62931     1.60935    -4.11924   1.901e-05     1.93530      -3.42547  3.0686e-04
b_log_b_Warning_DayBefore                    7.47500     1.71876     4.34907   6.836e-06     2.07593       3.60079  1.5862e-04
mu_CBC                                       1.00000          NA          NA          NA          NA            NA          NA
mu_DR                                        0.23463     0.09799     2.39438    0.008324     0.12797       1.83354    0.033361
b_DR_asc_0                                   0.00000          NA          NA          NA          NA            NA          NA
mu_b_DR_asc_1                                2.70318     0.15480    17.46232    0.000000     0.18169      14.87813    0.000000
sigma_b_DR_asc_1                             2.21618     0.14400    15.39001    0.000000     0.17781      12.46377    0.000000
stephanehess
Site Admin
Posts: 974
Joined: 24 Apr 2020, 16:29

Re: MIXL model with a lot of probability mass close to zero

Post by stephanehess »

Nico

the large negative (-21) estimate on the bound of the log of beta makes sense, as this pushes the upper bound close to zero. Then the large positive value on the shift simply gets the log of beta just into the positive domain, which after the negative exponential gives an upper bound of around 2.3

but you clearly have a big mass near zero

You can look at the distribution using apollo_unconditionals

Stephane
--------------------------------
Stephane Hess
www.stephanehess.me.uk
cybey
Posts: 60
Joined: 26 Apr 2020, 19:38

Re: MIXL model with a lot of probability mass close to zero

Post by cybey »

May I ask what you would do? Go for the loguniform distribution, as in this case, all parameters are random? Or would you model the "frequency" attribute as a fixed parameter to get around the problem with a sizable probability mass around zero?
stephanehess
Site Admin
Posts: 974
Joined: 24 Apr 2020, 16:29

Re: MIXL model with a lot of probability mass close to zero

Post by stephanehess »

I would let the data speak. So if the log-uniform fits better, I would use it
--------------------------------
Stephane Hess
www.stephanehess.me.uk
byter
Posts: 1
Joined: 07 Apr 2023, 04:54

Re: MIXL model with a lot of probability mass close to zero

Post by byter »

Hi,

I do worry about the symptoms. Similar to measuring utility for charities, respondents said they enjoyed the sensation of helping others even when they didn't particularly enjoy contributing money to charity. In my example, the attribute "frequency" refers to the number of interventions made each week in a study on the restrictions placed on the usage of air conditioning in office buildings. Also if we work online we earn money very well.
stephanehess
Site Admin
Posts: 974
Joined: 24 Apr 2020, 16:29

Re: MIXL model with a lot of probability mass close to zero

Post by stephanehess »

sorry, not quite sure I see the link between this and my earlier response
--------------------------------
Stephane Hess
www.stephanehess.me.uk
Post Reply