Предупреждение в пакете Matchit («Glm.fit: подогнанные вероятности численно 0 или 1») Как с этим бороться? - PullRequest
1 голос
/ 10 января 2020

Я запускаю код с около 200 000 наблюдений, где обработано 10.000, а остальные я пытаюсь сопоставить с помощью пакета MatchIt.

Из-за одной из этих переменных появляется предупреждающее сообщение, и я не знаю, должен ли я просто игнорировать его или нет. Сообщение: Glm.fit: подогнанные вероятности численно 0 или 1 произошло

Код, который я запускаю, похож на приведенный ниже:

m.out <- matchit(var ~ VAR1 + VAR2 + VAR3 + VAR4 + VAR5, data = mydata, method = "nearest", exact = c("VAR1", "VAR3", "VAR5"))

Для иллюстрации предположим, что переменная с проблемой - "VAR5". Эта переменная является символьной переменной с около 200 различными текстами. Итак, у меня вопрос, является ли это предупреждение реальной проблемой или просто потому, что в этой переменной слишком много параметров для размера моих данных, и из-за этого невозможно найти прогноз лечения / контроля? В любом случае, что я могу сделать, чтобы этого предупреждения не было?

Best,

1 Ответ

2 голосов
/ 13 января 2020

MatchIt по умолчанию использует регрессию logisti c с помощью функции glm для оценки показателей склонности. Это предупреждение означает, что регрессионная модель логистики c была перегружена, а некоторые переменные прекрасно предсказывают состояние лечения. Это может указывать на нарушение позитивности (т. Е. Ваши две группы принципиально отличаются друг от друга), но, как вы упомянули, это может быть связано с тем, что относительно незначительная особенность имеет много категорий, и некоторые из них полностью совпадают с лечением. Есть несколько способов справиться с этой проблемой; один из них - сбросить VAR5, но вы также можете попытаться оценить свои собственные оценки склонности за пределами MatchIt, используя метод, который не страдает от этой проблемы, и затем поставить эти оценки склонности на matchit() через distance Аргумент.

На ум приходят два метода. Первый - использовать brglm2, пакет, который реализует альтернативный метод подбора регрессионных моделей логистики c, так что подогнанные вероятности никогда не равны 0 или 1. Этот метод прост в реализации, так как он просто использует небольшое изменение glm функция.

Вторым является использование метода машинного обучения, который выполняет регуляризацию (т. Е. Выбор переменных), так что включаются только переменные и уровни факторов, важных для анализа. Вы можете использовать glmnet для выполнения лассо или эластии c net logisti c регрессии, вы можете использовать gbm или twang для выполнения обобщенного ускоренного моделирования, или вы можете использовать SuperLearner для объединения нескольких машин методы обучения и принимать лучшие прогнозы от них. Затем вы можете указать прогнозные значения для matchit().

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