Я хочу оценить вложенную логит-модель с помощью языка R. В качестве стандартных пакетов для таких задач я использую «млогит». Теперь я хотел бы оценить модель с более чем одним этапом. Проблема заключается в следующем:
- Стадия: Люди решают, хотят они мигрировать в США или нет.
- Этап: все люди, решившие мигрировать, должны решить, в какой регион США они хотят переехать (США разделены на 6 регионов).
- Стадия: внутри региона они решают, в каком районе они хотят жить; городской или сельский
Я уже преобразовал свои данные с помощью 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") вырождено.
Если бы кто-то мог мне помочь, это было бы здорово.
С наилучшими пожеланиями,
Крис
usa_canada_uk
, возможно, используяdput()
, чтобы ваша проблема была полностью воспроизведена? - person davechilders   schedule 05.07.2015saveRDS()
, вы можете сохранить свои данные в виде файла rds и разместить его на веб-странице. - person davechilders   schedule 05.07.2015