Спасибо за разъяснения. Похоже, что это связано с проблемой начального значения. Вы можете указать вектор начальных значений следующим образом:
# Fill in with the correct values.
param_start <- c()
# And then add it to your model call with the start option
LC3.constraint <- gmnl(ConceptChoice + MedProvider + Facility + Discount + Wait + Payment| 0 | 0 | 0 |
Age40above + EmployPart + EmployOther + TravelDiff + PerceptionHigh + GPCompetenceLow,
data = Scenario, model = "lc", Q = 2, panel = T,
method = "bfgs", constraints = list(ineqA = A, ineqB = B),
start = param_start)
Это позволит вам указать набор начальных значений, который удовлетворяет вашим ограничениям, и должен гарантировать, что оценка не провалится при начальных значениях.
А теперь небольшой совет. Вы пытаетесь оценить ненаблюдаемую неоднородность в своей выборке, оценивая вероятность того, что выбор пациента может быть описан тем или иным классом. С максимальной вероятностью модель будет выбирать параметры, которые максимизируют вероятность данных. Введение таких ограничений, основанных на вашей интуиции как исследователя, приведет к неэффективной оценке и может даже привести к проблемам с идентификацией. Почему бы не позволить данным сказать вам, если люди восприняли скидку таким образом? Если он не отображается в ваших данных, даже когда вы увеличиваете количество классов, возможно, люди не думают об этом так?