2016-06-06 4 views
0

Я использую MASS::polr для запуска порядковых логистических регрессий, но я получаю много ошибок, которые я надеюсь, что люди могут просветить меня.Понимание ошибок из порядковой логистической регрессии

Во-первых, если я запускаю это функция не может найти исходные значения:

MASS::polr(as.ordered(cyl)~mpg+gear,mtcars) 

Так что, если я указываю начальные значения, я получаю сообщение об ошибке от optim о том, «не-конечное значение поставляется Optim»:

MASS::polr(as.ordered(cyl)~mpg+gear,mtcars,start=c(1,1,1,1)) 

После прочтения некоторых вопросов R-справки и предыдущих вопросов о переполнении стека, ответ обычно заключается в том, что что-то не так с данными, то есть переменная ответа имеет категорию с относительно небольшим значением, но в этом случае я видеть неправильный с mtcars.

Любое руководство по диагностике и решению проблем в данных, которые будут влиять на MASS::polr, будет оценено по достоинству.

Привет

ответ

1

происходит на охоте мусорщика через ?polr, начальные значения должны быть указаны «в формате c(coefficients, zeta)». Глядя ниже, мы видим, что zeta - это «перехваты для границ класса».. В разделе Подробности, мы можем видеть, что значения дзета должны быть заказаны:

zeta_0 = -Inf < zeta_1 < ... < zeta_K = Inf

([так], как это предположительно должно быть < Inf в конце.) Так вам нужно, чтобы второе значение zeta было больше первого. Это работает, например:

MASS::polr(as.ordered(cyl) ~ mpg + gear, mtcars, start = c(1, 1, 1, 2)) 
Смежные вопросы