Работает ли mlogit R с набором уникальных альтернатив разного размера?

Клиенты сталкиваются с серией вариантов выбора уникальных альтернатив. Например:

Покупатель 1 выбирает между альтернативами A1, A2, A3, A4; Клиент 1 выбирает между вариантами B1, B2; Покупатель 2 выбирает между альтернативами C1, C2, C3; Клиент 2 выбирает между альтернативами D1, D2, D3 и т. д.

Может ли любой пакет R справиться с этим?

Например.csv

CHOICE,CUSTOMER,CHID,ALT,DIST,INCOME
1,1,1,1,100,70
0,1,1,2,372,70
0,1,1,3,417,70
0,1,1,4,180,70
1,1,2,1,68,70
0,1,2,2,354,70
0,2,3,1,68,100
0,2,3,2,354,100
1,2,3,3,399,100
1,2,4,1,180,100
0,2,4,2,100,100
0,2,4,3,80,100

mlogit не удалось

> library(mlogit)
> ExData <- read.csv("C:/Users/John/Desktop/R/example.csv")
> MLData <- mlogit.data(ExData, shape="long", choice="CHOICE", chid.var="CHID", id.var="CUSTOMER", alt.var="ALT")
> res <- mlogit(CHOICE~DIST|INCOME, data=MLData, shape="long", alt.var="ALT")
Error in `row.names<-.data.frame`(`*tmp*`, value = paste(chid, alt, sep = ".")) : 
duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': ‘2.1’, ‘2.2’, ‘3.3’

в то время как, например, 1.csv, где количество альтернатив постоянно

CHOICE,CUSTOMER,CHID,ALT,DIST,INCOME
1,1,1,1,100,70
0,1,1,2,372,70
0,1,1,3,417,70
0,1,2,1,180,70
1,1,2,2,68,70
0,1,2,3,354,70
0,2,3,1,68,100
0,2,3,2,354,100
1,2,3,3,399,100
1,2,4,1,180,100
0,2,4,2,100,100
0,2,4,3,80,100

всё хорошо.


person 8k14    schedule 05.07.2017    source источник
comment
Эта основная направленность вашего вопроса не подходит для SO, который является форумом для целенаправленных вопросов по проблемам программирования. Пожалуйста, рассмотрите возможность удаления этого вопроса и публикации измененной версии на CrossValidated, которая больше подходит для вопросов по статистической методологии. Я совершенно уверен, что ваши данные не могут быть смоделированы полиномиальным логитом, независимо от задействованного программного обеспечения. Преобразуя в бинарный результат, мы получаем, что клиенты делают выбор в пользу покупки отдельного элемента из меню без пересечения в наборе выбора.   -  person lmo    schedule 05.07.2017
comment
Спасибо @lmo. Я надеюсь, что полиномиальный логит не справится с моими данными. Как минимум в в этом документе упоминаются различные наборы вариантов   -  person 8k14    schedule 05.07.2017
comment
на основе предложения Rich-Scriven, здесь, похоже, это работает. mlogit(CHOICE~DIST|INCOME, data=MLData, shape="long", alt.levels=unique(exData$ALT)). Не уверен, в чем разница.   -  person lmo    schedule 05.07.2017
comment
@lmo, большое спасибо. Теперь это работает. Однако я начинаю сомневаться в том, что спецификация моей модели верна...   -  person 8k14    schedule 05.07.2017
comment
Ага. Я не слишком знаком с этой моделью и только начал читать о ней. По крайней мере, для пакета mnlogit кажется, что каждая ситуация выбора должна представлять один и тот же набор вариантов выбора в каждом экземпляре. Использование здесь alt.levels может привести к необходимости сбалансированной панели.   -  person lmo    schedule 05.07.2017
comment
@lmo, поскольку альтернативы не классифицированы, я начинаю сомневаться, что полиномиальный логит применим в моем случае ...   -  person 8k14    schedule 06.07.2017
comment
Взгляните на мой первоначальный комментарий. Я бы посоветовал вам опубликовать вопрос о статистическом моделировании в резюме. Подробно опишите свои данные — размер выборки, выборочный набор и т. д. — а затем упомяните, что вы исследуете использование полиномиального логита, но обеспокоены некоторыми проблемами (объясните проблемы), а затем спросите, может ли другая модель быть более подходящей. .   -  person lmo    schedule 06.07.2017
comment
@lmo, я пытался один раз, но не получил ответа. В любом случае спасибо, попробую еще раз.   -  person 8k14    schedule 06.07.2017