#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"))
Теперь это работает! Еще раз большое спасибо за ваше предложение!