Является ли MNL правильной моделью для использования, когда варианты выбора варьируются в зависимости от наблюдений?

В опросе 100 человек я прошу каждого человека выбирать между продуктом A и продуктом B. Я задаю каждому человеку этот вопрос 3 раза, но каждый раз я представляю разный набор продуктов. Скажем, впервые человеку 1 предлагается выбрать между "Телефон 1" и "Телефон 2", учитывая определенные атрибуты каждого телефона. Во второй раз снова выбирается "Телефон 1" против "Телефон 2", но для каждого телефона используется другой набор атрибутов.

Человеку предоставляется три атрибута, связанные с двумя альтернативами телефона, каждый раз, когда задают вопрос. Таким образом, каждый раз между телефоном 1 и телефоном 2 отображаются атрибуты телефона, такие как стоимость, память и пиксели камеры, чтобы пользователь мог выбрать, какой набор атрибутов является наиболее привлекательным: телефон 1 или телефон 2.

В целом, 3*100 = 300 ответов; 3 ответа на человека. Каждый раз, когда стоимость атрибутов, количество пикселей памяти и камеры отображаются, и пользователь просит выбрать набор функций, который он предпочитает.

Моя цель - проанализировать, как пользователи оценивают характеристики телефона по сравнению со стоимостью телефона.

В этом случае я могу использовать MNL - хотя каждый раз, когда я задавал человеку вопрос, я представлял только два варианта? Насколько я понимаю, MNL предъявляют иск, когда (а) существует несколько вариантов выбора и (б) варианты выбора не меняются в зависимости от наблюдения, т.е. каждому человеку предлагается выбирать между несколькими продуктами, например, A, B, C и A, B, С не меняются по наблюдениям. В сценарии, описанном выше, два варианта варьировались в зависимости от того, как одному и тому же человеку был задан вопрос? Если не MNL, то лучше ли мне создавать бинарную модель логита, учитывая, что пользователю нужно было выбирать между двумя вариантами, когда вопрос задавался (хотя ему задавали вопрос три раза)? Если я могу использовать бинарный логит, должен ли я быть обеспокоен тем, что выбор продуктов меняется в зависимости от наблюдений? или я должен позволить атрибутам, определенным в каждой из строк, учесть различия в выборе продукта по наблюдениям.

Я настроил данные следующим образом (думая, что я могу сделать MNL, но, может быть, я должен настроить их по-другому и использовать другой подход к моделированию?):

1 ответ

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

Первый момент: я наткнулся на 3 модели, как следует из полезного видео на YouTube:

  • MNL относится к модели полиномиального логита. MNL используется с альтернативно-инвариантными регрессорами (например, заработная плата участника опроса или его / ее пол…).
  • Модель условного логита используется с альтернативно-инвариантными (пол, зарплата, уровень образования…) и альтернативно-вариантными регрессорами (стоимость продукта, память, пиксель камеры…)
  • Модель смешанного логита, которая использует случайные параметры. Он также используется с альтернативно-инвариантными (пол, зарплата, уровень образования...) и альтернативно-вариантными регрессорами (стоимость продукта, память, пиксель камеры...)

Примечание относительно альтернативно-инвариантных и альтернативно-вариантных регрессоров: Пол человека, участвующего в опросе, НЕ будет варьироваться в зависимости от продукта А или продукта Р, поэтому он является альтернативно-инвариантным регрессором. В то время как цена продукта может варьироваться между продуктом A и продуктом B, это называется альтернативно-вариантным регрессором.

Исходя из вышеизложенного, я предполагаю, что вам нужно использовать условную модель логита или модель смешанного логита.

Для меня я не мог найти специальную функцию в R для модели условного логита или смешанной модели логита. Используется та же функция mlogit, обратитесь к приведенным ниже примерам за помощью пакета mlogit:

  • чистая "полиномиальная модель"

сводка (млогит (режим ~ 0 | доход, данные = рыба))

  • чисто "условная" модель

сводка (млогит (режим ~ цена + вылов, данные = рыба))

  • "смешанная" модель

m<- mlogit (режим ~ цена + вылов | доход, данные = рыба), сводка (m)

  • та же модель с чартером в качестве базового уровня

m <- mlogit (режим ~ цена + вылов | доход, данные = рыба, отражение = "чартер")

Из приведенных выше примеров, я думаю (но НЕ уверен), что в Руководстве по пакету mlogit они ссылаются на смешанный логит, когда вы используете альтернативно-инвариантный и альтернативно-вариантный регрессоры. Пока условная модель, когда есть только альтернативно-вариантные регрессоры. С другой стороны, полиномиальная модель, когда у вас есть только полиномиальные альтернативно-инвариантные регрессоры.

Второй момент: существует нечто, называемое "панельные данные", когда вы просите одного и того же человека выбрать один продукт для каждого набора. Тот же человек здесь означает, что в вашей модели вы принимаете во внимание пол, зарплату, уровень образования... что они останутся неизменными для одного и того же человека. Проверьте это: https://en.wikipedia.org/wiki/Panel_data

Чтобы использовать методы панели, пожалуйста, обратитесь к справке в пакете mlogit в R. Я цитирую следующее:

"Панель имеет значение только в том случае, если rpar не равен NULL и если данные представляют собой повторные наблюдения одной и той же единицы; если TRUE, модель смешанного логита оценивается с использованием панельных методов "

Таким образом, в моем понимании, если вы хотите использовать методы панели, вы должны использовать случайные отрисовки, потому что панель будет истинна, а rpar не будет NULL.

Более того, например, об использовании данных панели, пожалуйста, обратитесь к приведенному ниже примеру из "Оценки полиномиальных моделей логита в R: пакеты Mlogit" Ив Круассана

данные ("Поезд", пакет = "млогит")

Tr <- mlogit.data (Train, shape = "wide", меняющийся = 4:11, choice = "choice", sep = "_", противоположный = c ("цена", "время", "изменение", " комфорт "), alt.levels = c (" A "," B "), id.var =" id ")

Train.ml <- млогит (выбор ~ цена + время + изменение + комфорт, Тр)

Train.mxlc <- mlogit (выбор ~ цена + время + изменение + комфорт, Tr, панель = TRUE, rpar = c (время = "cn", change = "n", comfort = "ln"), корреляция = TRUE, R = 100, Halton = NA)

Train.mxlu <- обновление (Train.mxlc, корреляция = FALSE)

Я надеюсь, что это полезно для вас.

Другие вопросы по тегам