Различия между R и Stata в обработке неопознанных категориальных переменных - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь использовать пакет mlogit в R, чтобы смоделировать основной выбор студента колледжа на выпускном экзамене, в зависимости от основного среднего балла успеваемости, дохода семьи журнала и сначала выбранной специальности.Первый выбранный мажор - это факторная переменная со всеми возможными вариантами выбора в majorcode, за исключением 6, что означает исключение из школы.Для справки вот примерные данные для трех студентов:

studentid   majorcode   choice   majorgpa   faminc   firstmajor
1001           1         0         0        9.2      5
1001           2         0         0        9.2      5
1001           3         0         1.9      9.2      5
1001           4         0         0        9.2      5
1001           5         1         3.4      9.2      5
1001           6         0         0        9.2      5
1006           1         1         2.7      10.7     1
1006           2         0         2        10.7     1
1006           3         0         2.8      10.7     1
1006           4         0         0        10.7     1
1006           5         0         3        10.7     1
1006           6         0         0        10.7     1
1019           1         0         0        9.6      5
1019           2         0         0        9.6      5
1019           3         0         0        9.6      5
1019           4         0         0        9.6      5
1019           5         1         3.2      9.6      5
1019           6         0         0        9.6      5

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

> mlogit(choice ~ majorgpa |  1 + faminc + firstmajor,
+   data=mydata,
+   reflevel=6)
Error in solve.default(H, g[!fixed]) : 
system is computationally singular: reciprocal condition number = 1.04405e-16

Я почти уверен, что эта ошибка возникает из-за того, что в моих данных нет ни одного ученика, чей выбор - майор 3, но чей первый майор был мажор 4, предотвращаяидентификация одной из моих факторных переменных.Тем не менее, asclogit в Stata может запустить модель и дать мне результаты, если я использую следующую команду:

asclogit choice majorgpa2, case(studentid) alt(majorcode) casevars(faminc i.firstmajor) base(6)

Оценки включают оценочный коэффициент для факторной переменной, которую не следует идентифицировать (4.firstmajor под majorcode = 3), хотя стандартная ошибка очень большая.Я не могу понять, как Stata мог бы найти коэффициент для этой переменной - обычно я бы предположил, что Stata отбросит переменную из-за пустой ячейки.Может ли кто-нибудь пролить свет на различия между тем, как R решает mlogit и Stata решает asclogit, или с максимальной вероятностью в целом, которые могут вызвать эту странную проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...