Ошибка «Нет Индивидуального Индекса» Смешанная Модель Mlogit R

#r #mixed-models #mlogit

Вопрос:

Я оцениваю смешанную модель по данным эксперимента с дискретным выбором с альтернативой отказа (альтернатива C). Я определяю индивидуума, но все равно получаю сообщение об ошибке «нет индивидуального индекса», и модель не оценивается.

Скриншот моих данных:

введите описание изображения здесь

Каждый респондент (индивид) получает 6 заданий на выбор, в которых он должен сделать выбор между тремя альтернативами (A, B или C).

Мой код выглядит следующим образом:

 library("mlogit")
private_car$choice <- as.logical(private_car$choice)
private_car$optout <- ifelse(private_car$card_number == "3", "1", "-1")
V2G_data <- mlogit.data(private_car, choice="choice", shape = "long", id.var = "individual", alt.var = "card_number", id = "individual")

V2G_mixed_model <- mlogit(formula = choice ~ price   autonomy   charge   g_autonomy   saving   premie   optout | -1 | 0 ,
                    data = V2G_data,
                    rpar = c(autonomy = 'n', charge = 'n', g_autonomy  = 'n'),
                    R = 100,
                    halton = NA,
                    print.level = 0,
                    panel = TRUE)
 

Кто-нибудь может сказать мне, где все идет не так?

Комментарии:

1. Трудно устранять неполадки без reprex, но похоже, что каждый человек выполняет несколько задач по выбору, как указано в card столбце. Возможно, из-за этого отдельный индекс, используемый dfidx, выходит из строя. Может быть, попробовать добавить chid.var = "card" в mlogit.data() функцию?

2. Большое спасибо за ваш ответ. Но когда я добавляю chid.var = «карта» в функцию mlogit.data (), я получаю новое сообщение об ошибке, в котором говорится: Ошибка в dfidx::dfidx(данные = данные, dfa$idx, drop.index = dfa$drop.index,: два индекса не определяют уникальные наблюдения

Ответ №1:

Я думаю, что нашел ответ, благодаря вашей помощи. Мне пришлось создать идентификационный индекс. Код для млогита.формула данных должна быть:

 V2G_mixed_model <- mlogit.data(private_car, choice = "choice", shape = "long", alt.var = "card_number", idx = c("individual", "card"))
 

Теперь это работает! Еще раз большое спасибо за ваше предложение!