Многоступенчатый вложенный Logit R

Я хочу оценить вложенную логит-модель с помощью языка R. В качестве стандартных пакетов для таких задач я использую «млогит». Теперь я хотел бы оценить модель с более чем одним этапом. Проблема заключается в следующем:

  1. Стадия: Люди решают, хотят они мигрировать в США или нет.
  2. Этап: все люди, решившие мигрировать, должны решить, в какой регион США они хотят переехать (США разделены на 6 регионов).
  3. Стадия: внутри региона они решают, в каком районе они хотят жить; городской или сельский

Я уже преобразовал свои данные с помощью mlogit.data().

data <- mlogit.data(data = usa_canada_uk, choice = "migrant"))

Вот как выглядят «данные»:

                sex   marst numperhh_cat age_cat   famsize                               nchlt5 labour_code sample                               nchlt10
3888.no  female married          1-5     16+         1          no chiled aged 5 or younger not working   8262          no chiled aged 10 or younger
12874.no female married          1-5     16+ 2 or more at least one child aged 5 or younger   ancillary   8262 at least one child aged 10 or younger
13084.no female married          1-5     16+ 2 or more at least one child aged 5 or younger   ancillary   8262 at least one child aged 10 or younger
9359.yes female married          1-5     16+         1          no chiled aged 5 or younger     service   8262          no chiled aged 10 or younger
7569.no  female married          1-5     16+         1          no chiled aged 5 or younger     service   8262          no chiled aged 10 or younger
5778.no  female married          1-5     16+         1          no chiled aged 5 or younger not working   8262          no chiled aged 10 or younger
         perwt        labforce age migrant country_of_birth       region citypop urban work.prob.home work.prob.abroad migration.prob stay.prob  chid
3888.no      1     in labforce  26    TRUE   United Kingdom home_country      NA urban             NA               NA             NA        NA  3888
12874.no     1     in labforce  47    TRUE   United Kingdom home_country      NA rural             NA               NA             NA        NA 12874
13084.no     1     in labforce  22    TRUE   United Kingdom home_country      NA urban             NA               NA             NA        NA 13084
9359.yes     1     in labforce  28   FALSE   United Kingdom home_country      NA urban             NA               NA             NA        NA  9359
7569.no      1     in labforce  32    TRUE   United Kingdom home_country      NA urban             NA               NA             NA        NA  7569
5778.no      1 not in labforce  38    TRUE   United Kingdom home_country      NA rural             NA               NA             NA        NA  5778
         alt
3888.no   no
12874.no  no
13084.no  no
9359.yes yes
7569.no   no
5778.no   no

Вот моя идея, как я хочу ее закодировать, но она не работает:

mlog <- mlogit(migrant ~ 1  | age + numperhh_cat + sex + famsize + work.prob.home,
             nests = list(home = c("home_country"),
                         foreign = c(region_1 = c("rural", "urban"),
                                     region_2 = c("rural", "urban"),
                                     region_3 = c("rural", "urban"),
                                     region_4 = c("rural", "urban"),
                                     region_5 = c("rural", "urban"),
                                     region_6 = c("rural", "urban"))
                                     ),
           reflevel = "yes",
           weights = perwt,
           data = data)

Как видите, одно гнездо на первом этапе (решение не мигрировать = "home_country") вырождено.

Если бы кто-то мог мне помочь, это было бы здорово.

С наилучшими пожеланиями,

Крис


person Chris A.    schedule 05.07.2015    source источник
comment
Можете ли вы предоставить полный набор данных usa_canada_uk, возможно, используя dput(), чтобы ваша проблема была полностью воспроизведена?   -  person davechilders    schedule 05.07.2015
comment
Проблема в том, что данные в исходном виде содержат более 4 млн строк. И это только небольшая выдержка. Полный файл в 25 раз больше --› Server. Я дам ему попробовать....   -  person Chris A.    schedule 05.07.2015
comment
Я только что создал файл с помощью dput ... Я думаю, что это слишком много, чтобы публиковать его здесь. Есть ли другие варианты, с помощью которых я могу воспроизвести мою проблему?   -  person Chris A.    schedule 05.07.2015
comment
Используя saveRDS(), вы можете сохранить свои данные в виде файла rds и разместить его на веб-странице.   -  person davechilders    schedule 05.07.2015
comment
Если вы собираетесь поместить его в Dropbox, я думаю, было бы проще просто сохранить файл данных как rds.   -  person davechilders    schedule 05.07.2015
comment
Готово: dl.dropboxusercontent.com/u/66405775/usa_canda_uk.rds   -  person Chris A.    schedule 05.07.2015
comment
Привет, Крис, ты смог решить эту проблему? Я также пытаюсь построить многоступенчатую вложенную логит-модель с использованием пакета mlogit. Я новичок в этом пакете, и я только начал изучать. Может ли кто-нибудь объяснить, как модель будет определяться с помощью функции mlogit, а также как данные должны быть отформатированы для модели?   -  person Terminator17    schedule 02.04.2019
comment
@ Terminator17: Извините, мне так и не удалось реализовать многоуровневую вложенную модель mlogit.   -  person Chris A.    schedule 05.04.2019
comment
Большое спасибо за ответ @chris-a. Я постараюсь сообщить вам, если я смогу это реализовать. или сделать какой-либо прогресс. Так можно принести пользу другим.   -  person Terminator17    schedule 05.04.2019