Логистический регрессионный анализ остатков

12

Этот вопрос довольно общий и многословный, но, пожалуйста, потерпите меня.

В моем приложении у меня есть много наборов данных, каждый из которых состоит из ~ 20 000 точек данных с ~ 50 объектами и одной зависимой двоичной переменной. Я пытаюсь смоделировать наборы данных с помощью регуляризованной логистической регрессии (пакет R glmnet )

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

Вот пример остаточного участка:

На приведенном выше графике характеристика имеет диапазон [0,1] (с высокой концентрацией в 1). Как вы можете видеть, когда значение свойства низкое, модель, кажется, смещена в сторону переоценки вероятности выхода 1. Например, в самом левом ведре модель переоценивает вероятность примерно на 9%.

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

xx

или

xfa(x)={a if x<a x else

Как я могу это сделать? Я ищу общую методологию, чтобы человек мог быстро прокрутить все ~ 50 графиков и внести изменения, сделать это для всех наборов данных и часто повторять, чтобы поддерживать модели в актуальном состоянии по мере развития данных с течением времени.

Как общий вопрос, это даже правильный подход? Поиски в Google по запросу «Остаточный анализ логистической регрессии» не дают много результатов с хорошим практическим советом. Кажется, они зациклены на ответе на вопрос: «Эта модель хорошо подходит?» и предложить различные тесты, такие как Hosmer-Lemeshow, чтобы ответить. Но мне все равно, хороша ли моя модель, я хочу знать, как сделать ее лучше!

dshin
источник

Ответы:

4

Вы не можете реально оценить смещение таким образом в логистической регрессии. Предполагается, что логистическая регрессия будет беспристрастной только для логарифмических шансов или логитных баллов, log (p / (1-p)). Пропорции будут искажены и, следовательно, выглядят смещенными. Вам необходимо отобразить остатки в единицах коэффициентов бревна.

Джон
источник
Как я могу объединить нечетные нечетные остатки внутри корзины? Среднее арифметическое? Это немного тревожит меня. Интуитивно понятно, что если остаточный анализ не показывает смещения, тогда я ожидаю, что когда модель прогнозирует Pr [y = 1] <0,2, тогда y должно быть равно 1 с вероятностью менее 0,2. Но ваш ответ, кажется, предполагает, что это не так. Я правильно понимаю?
dshin
это, вероятно, лучше оставить как комментарий.
вероятностная
Нет, Дэвид, это не подразумевает ничего, кроме вероятности 0,2, возможно, мои правки делают это более ясным.
Джон
Извините, я все еще немного растерялся. Мое интуитивное понимание беспристрастной модели состоит в том, что если модель прогнозирует p = 0,2 для каждого из большого числа точек данных, то 20% этих точек данных должны иметь y = 1. Это понимание правильно? Если так, то, похоже, моя методология построения графиков должна правильно отображать смещение. Если нет ... тогда я не очень доволен этой концепцией "предвзятости"! Если несмещенное чтение модели 0,2 ничего не говорит мне о вероятности того, что у = 1, что хорошего в беспристрастности?
dshin
Да, 20% должны иметь y = 1. Но он не будет мертвым, он будет отключен на некоторое количество. В вероятностном пространстве, в каком направлении, как вы думаете, оно будет отклоняться и на сколько? Если оно беспристрастно, оно будет равно где-то в .2: 1 или 0: .2. Однако, как вы можете видеть по размеру этих пространств, они будут иметь тенденцию быть дальше в большей области только потому, что могут. В логите пространстве расстояние должно быть равно + или -.
Джон
2

вряд ли существует какое-либо общее программное обеспечение для этого. скорее всего потому, что нет общей теории для исправления проблем в регрессии. следовательно, это скорее ответ типа «что я бы сделал», чем теоретически обоснованная процедура.

график, который вы создаете, - это, в основном, визуальный тест HL с 100 ячейками, но с использованием одного предиктора вместо предсказанной вероятности выполнения разбивки. это означает, что ваша процедура может наследовать некоторые свойства теста HL.

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

я думаю, что один из способов - сначала сократить количество участков, которые вам нужно исследовать. Один из способов сделать это - подогнать каждую переменную как кубический сплайн, а затем исследовать графики, которые имеют ненулевые нелинейные оценки. учитывая количество точек данных, это также простое автоматическое исправление нелинейностей. это расширит вашу модель с 50 до 200 + 50k, где k - количество узлов. Вы можете думать об этом как о применении «статистического расширения ряда Тейлора» «истинного» преобразования.

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

Части вашего вопроса больше похожи на написание интерактивной программы, которая больше относится к стековому потоку, чем здесь. это также может быть полезно для поиска исследовательских инструментов анализа данных, так как они, скорее всего, будут иметь функции, которые вы можете «убрать».

probabilityislogic
источник
Спасибо за этот ответ. Я посмотрю на идею кубического сплайна. Я использовал этот подход «взглянуть на графики и отрегулировать особенности» в условиях линейной регрессии, где казалось более очевидным, как добиться лучшего соответствия. Например, если вы видите хоккейную клюшку, очевидно, что применение коррекции f_a (x) приводит к лучшей подгонке. Часто знания из проблемной области совпадают с этим решением: например, если вы прогнозируете счастье от дохода, имеет смысл ограничить доход, если только вы не считаете, что миллиардеры в 1000 раз счастливее миллионеров.
dshin
Но когда я переключился на настройку логистической регрессии, я понял, что не совсем уверен, как передать свою методологию. Отсюда и это представление.
dshin