Логистическая регрессия: максимизация истинных положительных результатов - ложных положительных результатов

9

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

  1. Подходит стандартная модель логистической регрессии
  2. Используя порог прогноза как 0,5, определите все положительные прогнозы
  3. Назначьте вес 1 для положительно предсказанных наблюдений, 0 для всех остальных
  4. Подходящая модель взвешенной логистической регрессии

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

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

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

Прямо сейчас я выполняю следующие шаги:

  1. Разделение данных на обучение / тестирование
  2. Подберите модель на тренировках, сделайте прогнозы в тестовом наборе и вычислите разницу между истинными / ложными срабатываниями
  3. Подгоните модель к полному, сделайте прогнозы в тестовом наборе и вычислите разницу между истинными / ложными срабатываниями

Разница между истинными / ложными срабатываниями на шаге 3 меньше, чем на шаге 2, несмотря на то, что обучающий набор является подмножеством полного набора. Поскольку меня не волнует, имеет ли модель в # 3 больше истинных негативов и меньше ложных негативов, могу ли я что-либо сделать без изменения самой функции правдоподобия?

tmakino
источник
Прежде чем спросить, какие недостатки у этого подхода, возможно, вам следует написать, почему, по вашему мнению, этот подход должен работать. Почему вы думаете, что шаги 2-4 улучшают результат?
user31264
Кроме того, я прав, что в конце вы отбрасываете модель с шага 1 и используете только модель с шага 4?
user31264
Да, я планировал использовать модель, оснащенную всем набором данных, но это не имеет смысла, потому что она недостаточно эффективна для модели, снабженной тренировочным набором.
tmakino
2
У меня нет источника по этому вопросу прямо сейчас ... но знаете ли вы, что вы можете оптимизировать модель логистической регрессии, чтобы максимизировать площадь под кривой (рабочая характеристика приемника) (или AUC)? Не нужно изобретать велосипед.
AdamO
2
Здесь я не совсем понимаю, почему вы ничего не включили в прогнозируемую будущую цену в своей модели и не включили величину прибыли / убытка в оптимизацию. Конечно, решение «купить», которое приводит к потере 99%, намного хуже, чем решение «купить», которое приводит к потере 1%, даже если оба являются ложными срабатываниями.
вероятностная

Ответы:

24

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

Сначала немного обозначений. Зависимая переменная будет : Y iYя

Yязнак равно{1покупка я было выгодно0покупка я было невыгодно

Независимые переменные (вещи, которые вы используете, чтобы попытаться предсказать, стоит ли вам покупать) будут (вектор). Параметр, который вы пытаетесь оценить, будет β (вектор). Вы прогнозируете покупку, когда X i β > 0 . Для наблюдения i вы прогнозируете покупку, когда X i β > 0 или когда функция индикатора 1 X i β > 0 = 1 .ИксяβИксяβ>0яИксяβ>01Иксяβ>0знак равно1

Истинный положительный результат наблюдается при наблюдении когда оба Y i = 1 и 1 X i β > 0 = 1 . Ложноположительный результат наблюдения i возникает, когда Y i = 0 и 1 X i β > 0 = 1 . Вы хотите найти β, который максимизирует истинные позитивы минус ложные позитивы, или: m a x βяYязнак равно11Иксяβ>0знак равно1яYязнак равно01Иксяβ>0знак равно1β

мaИксβΣязнак равно1NYя1Иксяβ>0-Σязнак равно1N(1-Yя)1Иксяβ>0

Это не особенно знакомая целевая функция для оценки модели дискретного отклика, но потерпите меня, пока я занимаюсь небольшой алгеброй целевой функции:

Σязнак равно1NYя1Иксяβ>0-Σязнак равно1N(1-Yя)1Иксяβ>0знак равноΣязнак равно1NYя1Иксяβ>0-Σязнак равно1N1Иксяβ>0+Σязнак равно1NYя1Иксяβ>0знак равноΣязнак равно1NYя1Иксяβ>0-Σязнак равно1N1Иксяβ>0+Σязнак равно1NYя1Иксяβ>0+Σязнак равно1N1-Σязнак равно1N1+Σязнак равно1NYя-Σязнак равно1NYязнак равноΣязнак равно1NYя1Иксяβ>0+Σязнак равно1N(1-Yя)(1-1Иксяβ>0)-Σязнак равно1N1+Σязнак равно1NYя

β

мaИксβΣязнак равно1NYя1Иксяβ>0+Σязнак равно1N(1-Yя)(1-1Иксяβ>0)

Теперь у этого оценщика есть имя! Он называется оценщиком максимальной оценки. Это очень интуитивно понятный способ оценки параметра модели дискретного отклика. Параметр выбирается таким образом, чтобы максимально увеличить количество правильных прогнозов. Первый член - это число истинных позитивов, а второй - количество истинных негативов.

βββNNконвергенция. (Kim and Pollard, 1990, Ann of Stat) Наконец, вы не можете использовать начальную загрузку, чтобы сделать на ней вывод. (Abrevaya & Huang, 2005, Econometrica) Тем не менее, есть некоторые статьи, использующие эту оценку - есть забавная статья о прогнозировании результатов в баскетбольном турнире NCAA от Caudill, Международный журнал прогнозирования, апрель 2003 г., т. 19, вып. 2, с. 313-17.

N

Билл
источник
βTИкс>0п>0,5п<=0,5βTИкс
tmakino
(продолжение), определив его в функции стоимости (и установив порог прогнозирования на уровне 0,5), пропустив промежуточный шаг, который я предпринял. Однако, AUC уже существует в пакете регрессии, который я использую (glmnet), в то время как оценщик максимального балла не делает. Как вы думаете, мой подход разумен, учитывая мою цель?
tmakino
1
пИксяβ>0β
15

Есть несколько вещей, которые не так с этим подходом, в том числе:

  • В поисках отсечки для постоянной вероятности
  • Используя произвольное ограничение 0,5
  • Предполагая, что стоимость «ложного срабатывания» и «ложного отрицания» одинакова для всех субъектов
  • Использование весов, которые не являются дробными
  • Используя веса, которые оценены
  • Переопределение оценки максимального правдоподобия
  • Не использовать оптимальную байесовскую теорию принятия решений, которая требует, чтобы оптимальные решения основывались на полной информации (а не на том, превышает ли что-то что-то еще) и функциях полезности / потерь / затрат
Фрэнк Харрелл
источник
1
Спасибо, есть ли способ достичь этого, придерживаясь логистической регрессии (т.е. не касаясь функции правдоподобия)?
tmakino
Это зависит от того, что это. Какова конечная цель и как будет использоваться модель?
Фрэнк Харрелл
Я отредактировал свой вопрос, чтобы подробно описать, чего я пытаюсь достичь.
tmakino
1
Если я что-то не упустил, то, что вы добавили, не подразумевало бы использование точки среза. Обратите внимание, что прогнозируемая вероятность обеспечивает собственную частоту ошибок.
Фрэнк Харрелл
8

Лучший подход к достижению того, что вы пытаетесь описать, - это, вероятно, прямая оптимизация параметров логистической регрессии с помощью функции потерь AUC. Учебник "Статистические методы в диагностической медицине" Чжоу описывает этот метод.

AUC (область под кривой рабочих характеристик приемника - или ROC) грубо интерпретируется как вероятность того, что случайный "случай" имеет более высокое значение маркера, чем "контроль". Это мера дискриминации модели или ее способность правильно классифицировать результат. ROC - это кривая в единичной плоскости, которая показывает чувствительность в сравнении с 1 - специфичность для всех возможных значений маркеров (подходящих результатов) в регрессионной модели.

Используя традиционную формулировку модели логистической регрессии,

Логит Пр(Yзнак равно1|Икс)знак равноα+βИкс

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

Adamo
источник
1
Я бы подумал, что AUC здесь не самый лучший, потому что есть небольшие потери для ложного отрицания, но большие потери для ложного срабатывания.
вероятностная
Что ж, реальная проблема заключается в том, что ОП имеет непрерывный результат (ROI) и дихотомизирует его как убыток / прибыль. Но расщепление волос в сторону, с регрессией ROC в общих «дурацких» областях отсечки маркеров, действительно имеет значение для AUC. Вы можете использовать частичный AUC, если вы заранее указали, что считается значимым, а не глупыми значениями маркера, и частичная регрессия AUC имеет все те же возможности производительности (и проблемы).
AdamO