Логистическая регрессия без перехвата дает соответствующее предупреждающее сообщение - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь запустить логистическую регрессию без перехвата.Сначала я попробовал функцию glm, но получил следующую ошибку:

    Warning message:        
    glm.fit: fitted probabilities numerically 0 or 1 occurred       

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

Когда я использую эту функцию, включая перехват, я не получаю сообщение об ошибке, как указано выше. Однако, когда я исключаю перехват, добавляя -1 в конце своей функции, я все равно получаюта же самая ошибка выше со следующим выводом:

    > regress=bayesglm(y~x1*x2+x3+x4-1, data = DATA, family=binomial(link="logit"))     
    > summary(regress)      

    Call:       
    bayesglm(formula = y ~ x1 * x2 + x3 + x4 - 1, family = binomial(link = "logit"),        
        data = DATA, maxit = 10000)     

    Deviance Residuals:         
         Min        1Q    Median        3Q       Max        
    -1.01451  -0.43143  -0.22778  -0.05431   2.89066        

    Coefficients:       
             Estimate Std. Error z value Pr(>|z|)           
    x1      -20.45537    9.70594  -2.108  0.03507 *         
    x2       -7.04844    2.87415  -2.452  0.01419 *         
    x1:x2     0.13409   17.57010   0.008  0.99391           
    x3       -0.17779    0.06377  -2.788  0.00531 **        
    x4       -0.02593    0.05313  -0.488  0.62548           
    ---     
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1      

    (Dispersion parameter for binomial family taken to be 1)        

        Null deviance: 494.91  on 357  degrees of freedom       
    Residual deviance: 124.93  on 352  degrees of freedom       
      (165 observations deleted due to missingness)     
    AIC: 134.93     

    Number of Fisher Scoring iterations: 123        

и получите ту же ошибку, что и ниже:

    Warning message:        
    glm.fit: fitted probabilities numerically 0 or 1 occurred       

, которую я не получу, если не добавлю -1 чтобы удалить перехват.

Поэтому у меня есть два вопроса:

1.Могу ли я игнорировать это предупреждение?

2.В противном случае, я могу знать, как я могу решить проблему согласно этому предупреждению?

Ответы [ 2 ]

0 голосов
/ 31 января 2019

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

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

Однако неуместно удалять перехват в модели логистической регрессии.См. эту страницу и подробное обсуждение в комментариях о повторной публикации этого вопроса на Перекрестная проверка , в частности https://stats.stackexchange.com/questions/11109/how-to-deal-with-perfect-separation-in-logistic-regression, которая включает в себя множество предложений.

0 голосов
/ 31 января 2019

Я постараюсь дать ответ на вопрос.

Что означает предупреждение? Предупреждение выдается, когда численная точность может быть под вопросом для определенных наблюдений.Точнее, это дается в случае, когда подобранная модель возвращает вероятность 1 - эпсилон или эквивалентно 0 + эпсилон.Стандартно эта граница составляет 1-10 ^ -8 и 10 ^ -8 соответственно (как указано в glm.control) для стандартной функции glm.fit.

Когда это может произойти? По моему опыту, случай, когда это происходит чаще всего, - это случай, когда включаются факторы (или фиктивные переменные), для которых только один результат наблюдается в одной категории.Чаще всего это происходит, когда взаимодействия включены в факторы многих уровней и ограничены данными для анализа.Аналогично, если имеется много переменных по сравнению с количеством наблюдений (считая используемые переменные, преобразования взаимодействий и т. Д. В качестве отдельных переменных, поэтому общее число будет суммой всех этих), будет возможно подобное изображение.В вашем случае, если у вас есть факторы, удаление перехвата добавит 1 уровень к каждому фактору, что может снизить точность около вероятности края 0 и 1. Короче говоря, если для какой-то части наших данных у нас нет (или малонеуверенность, тогда это предупреждение даст нам указание.

Могу ли я игнорировать это иначе, как я могу это исправить? Это зависит от имеющейся проблемы и масштаба проблемы,Некоторые источники, такие как Джон Фокс , вероятно, сочтут эти наблюдения возможными выбросами, и с хорошими аргументами предлагают удалить их после использования мер влияния (доступных в пакете car для базового glm) или выполнения некоторых тестов выбросов (также доступно в пакете car для базового glm), если это вариант в вашей области работы.Если это показывает, что они не влияют на подгонку, вы не удалите их, поскольку для этого не будет статистического аргумента.

Если удаление выброса не является вариантом в вашей области работы, то уменьшенная модель(в общем случае меньше переменных) может помочь, если это является причиной, или если число факторов является причиной, уровни слияния внутри факторов могут дать некоторые лучшие результаты.

В других источниках могут быть и другие предложения, но Джон Фокс является заслуживающим доверия источником по теме для этих типов моделей.Возникает вопрос: «Правильно ли указана моя модель?», «Насколько сильно это влияет на мою модель?»и «Сколько вам разрешено делать в своей работе?», следуя общей теории и руководящим принципам в статистике.Вероятности, близкие к 0 и 1, с меньшей вероятностью будут точными и более вероятными из-за числового впечатления, но если это не те случаи, которые вы, вероятно, можете предсказать, и нет существенного влияния на оставшуюся часть модели, этоне обязательно является проблемой и может игнорироваться.

...