Чи є логістична регресія упередженою, коли змінна результат розбивається на 5% - 95%?


10

Я будую модель схильності, використовуючи логістичну регресію для утилітного клієнта. Мене хвилює те, що із загальної вибірки моїх «поганих» рахунків лише 5%, а решта - всі хороші. Я передбачу «поганий».

  • Чи буде результат упередженим?
  • Що є оптимальним "погана до хорошої пропорції", щоб створити хорошу модель?

Я думаю, що завжди краще мати 50% товарів і 50% пропозицій, як правило. Вихід із моделі не повинен бути упередженим у зразку.

Відповіді:


7

Я не погодився з іншими відповідями в коментарях, тому справедливо я даю своє. Нехай - відповідь (добрі / погані рахунки), а X - коваріати.YХ

Для логістичної регресії модель є такою:

log(p(Y=1|X=x)p(Y=0|X=x))=α+i=1kxiβi

Подумайте, як дані можуть збиратися:

  • Ви можете вибирати спостереження випадковим чином із якоїсь гіпотетичної "популяції"
  • Ви можете вибрати дані на основі і подивитися, які значення Y зустрічаються.XY

І для цих моделей це нормально, оскільки ви тільки моделюєте розподіл . Це можна назвати перспективним дослідженням .Y|X

Як варіант:

  • Ви можете вибрати спостереження на основі (скажімо, 100 з кожного) та побачити відносну поширеність X (тобто ви стратифікуєте на Y ). Це називається ретроспективним або контрольним випадком .YХY

(Ви також можете вибрати дані на основі та певних змінних X : це було б стратифікованим дослідженням контрольного випадку, і це набагато складніше працювати, тому я тут не буду вникати в нього).YХ

Є хороший результат епідеміології (див. Prentice and Pyke (1979) ), що для дослідження випадків контролю максимальної ймовірності оцінки можна знайти за допомогою логістичної регресії, що використовує перспективну модель ретроспективних даних.β

То як це стосується вашої проблеми?

Ну, це означає, що якщо ви зможете зібрати більше даних, ви можете просто подивитися на погані рахунки і все ще використовувати логістичну регресію для оцінки (але вам потрібно буде відкоригувати α для врахування надмірного представлення ). Скажімо, це коштувало 1 долар за кожен додатковий рахунок, тоді це може бути більш рентабельним, ніж просто перегляд усіх облікових записів.βiα

Але з іншого боку, якщо у вас вже є ВСІ можливі дані, немає сенсу стратифікувати: ви просто викинете дані (даючи гірші оцінки), а потім залишитесь із проблемою спроби оцінити .α


Це справедливо, хоча якщо у вас є достатньо даних для адекватного представлення класу меншин (що зазвичай є проблемою, коли є великий дисбаланс класів - проблема полягає в дисбалансі як такому, але у вас немає достатньої кількості вибірок з меншості клас). У цьому випадку диференційоване зважування позитивних та негативних класів на основі перехресної перевірки, коригування альфа або мультипликативного коригування (всі еквівалентні IIRC) було б гарною ідеєю для підвищення класу меншин. Розшарування даних було б дешевим і веселим еквівалентом.
Дікран Марсупіал

@Dikran: Я не бачу, як будь-яке з цих випадків не відповідає дійсності в цьому випадку: вам не потрібно представляти клас меншості, вам просто потрібно представити відносну різницю щодо більшості. Якщо у вас недостатньо даних для цього, то відкидання спостережень від більшості не допоможе.
Simon Byrne

@Simon, я погодився з вами, що стратифікація не є хорошою ідеєю, якщо ви не хочете налаштовувати альфа, перетягувати шаблони або коригувати вихід моделі. Як я вже сказав, проблема з дисбалансом класів полягає не в дисбалансі сам по собі, а в тому, що для класу меншин недостатньо даних, щоб адекватно визначити "відносну різницю до більшості". Коли це трапляється, в середньому він зміщує вихід до мажоритарного класу, і, отже, робити щось для компенсації цього зміщення є корисним. Стратифікація - це один із способів, але не майже найкращий.
Дікран Марсупіал

@Simon, BTW дякую за посилання на Prentice та Pyke, це виглядає корисно.
Дікран Марсупіал

1
@Dikran: Це може бути упереджено для інших моделей, але НЕ для логістичного регресу, в цьому і полягає вся суть.
Саймон Бірн

3

Асимптотично співвідношення позитивної та негативної структури по суті не має значення. Проблема виникає головним чином, коли у вас є занадто мало вибірок класу меншин, щоб адекватно описати його статистичний розподіл. Збільшення набору даних, як правило, вирішує проблему (де це можливо).

Якщо це неможливо, найкраще зробити це повторну вибірку даних, щоб отримати збалансований набір даних, а потім застосувати мультиплікативне коригування до виходу класифікатора, щоб компенсувати різницю між набором тренувань та відносними робочими частотами класу. Хоча ви можете обчислити (асимптотично) оптимальний коефіцієнт коригування, на практиці найкраще налаштувати коригування за допомогою перехресної перевірки (оскільки ми маємо справу з обмеженим практичним випадком, а не асимптотичним).

У такій ситуації я часто використовую комітет моделей, де кожен навчається за всіма схемами меншин та іншим випадковим зразком більшості моделей того ж розміру, що й моделі меншин. Це захищає від невдачі у виборі єдиного підмножини більшості моделей.


2
Але чи це стосується логістичного регресу? Нам не потрібно описувати статистичний розподіл будь-якого класу, лише відносні коефіцієнти шансів (див. Мій коментар до @Henry).
Саймон Бірн

Можливо, в універсальному прикладі, але якщо у вас є кілька пояснювальних змінних, вам потрібна інформація про розподіл шаблонів, щоб правильно орієнтувати "дискримінанта".
Дікран Марсупіал

Чи не було б краще застосувати мультипликативне регулювання у просторі шаблонів журналу до того, як буде застосована логістична функція?
rm999

IIRC, безсимптомно оптимальне регулювання полягає у множенні на співвідношення робочих та заданих частот класу, це базується на правилі Байєса, тому воно застосовується до ймовірностей, а не до коефіцієнта коефіцієнтів журналу. Однак, оскільки ми просто намагаємося виправити математично непереборну дефектність в оцінці, це, мабуть, не має великого значення, як проводиться коригування, це насправді просто "фактор витіснення".
Дікран Марсупіал

@Dikran: Я не розумію, що ви маєте на увазі правильно орієнтуватися на "дискримінанта". Навіть у багатоваріантному випадку логістична регресія все ще просто обчислює відносні коефіцієнти шансів.
Саймон Бірн

1

Теоретично ви зможете краще розрізнити, якщо пропорції "хорошого" та "поганого" приблизно будуть однаковими за розмірами. Можливо, ви зможете рухатися до цього шляхом стратифікованого відбору проб, перенапруження поганих випадків, а потім повторної ваги, щоб пізніше повернутися до справжніх розмірів.

Це несе певні ризики. Зокрема, ваша модель, ймовірно, позначає осіб як "потенційно поганих" - імовірно, тих, хто може не сплачувати свої комунальні платежі при належному терміні. Важливо, щоб вплив помилок при цьому робився належним чином розпізнаний: зокрема, скільки «хороших клієнтів» модель буде позначена «потенційно поганими», і ви менше шансів отримати неправильну вагу, якщо ви не спотворили свою модель шляхом стратифікованого відбору проб.


Насправді, я не думаю, що це справедливо для логістичної регресії: параметр коефіцієнта коефіцієнта (який виконує дискримінацію) інваріантний для розшарування змінної відповіді. Ось чому його можна використовувати для досліджень, що стосуються контрольних випадків.
Саймон Бірн

@Simon: Я не погоджуюся з вашим коментарем щодо співвідношення шансів, але я бачив, як люди не змогли сприйняти це правильно до наслідків для населення після стратифікованого відбору проб, коли вони це робили в інших випадках. Наприклад, якщо ви виявите, що люди, для яких фактор А справжній, мають вдвічі більше шансів бути «поганими», ніж люди без фактора А, це не повинно змінюватися при стратифікованій вибірці, але якщо ви хочете знати, яка частка населення буде якщо ви орієнтуєтесь на тих, хто має фактор А, вам потрібно ретельно зважити інформацію зі своїх зразків.
Генрі

вибачте, це було не з тим, з чим я не погодився. Це був перший біт: наслідок інваріантності полягає в тому, що коли ти маєш дані, немає сенсу стратифікувати, ти просто викидаєш дані. (історія різна, якщо мова йде про витрати на збір даних, отже, існування досліджень, що стосуються випадків).
Саймон Бірн

@Simon: Коли ви говорите "дослідження з контрольного випадку", ви маєте на увазі, що ви спочатку плануєте взяти зразок "поганих" справ та зразок "хороших" випадків? З більшою часткою «поганих» випадків, ніж невелика частка населення? Якщо так, то саме я мав на меті у своїй відповіді "стратифіковану вибірку, пересимплінг поганих випадків".
Генрі

Так, саме це я і мав на увазі. Питання, здавалося, вказувало, що вони вже мають дані, отже, не було б сенсу стратифікувати.
Саймон Бірн

0

уipipi

уiБернуллі(pi)
pi=logit-1(а+б1х1+...+бнхн)
logit-1=досвід(Х)1+досвід(х)

Чи має значення це у вас низька частка збоїв (поганих рахунків)? Не дуже, доки ваші вибіркові дані збалансовані, як дехто вже вказував. Однак якщо ваші дані не збалансовані, то отримання більшої кількості даних може бути майже марним, якщо є якісь ефекти відбору, які ви не враховуєте. У цьому випадку вам слід використовувати відповідність, але відсутність балансу може виявити відповідність досить марною. Інша стратегія намагається знайти природний експеримент, тому ви можете використовувати інструментальний дизайн змінної або регресії нерозбірливості.

І останнє, але не в останню чергу, якщо ви маєте збалансований зразок або немає ухилу відбору, вас може турбувати факт, що поганий рахунок є рідкісним. Я не думаю, що 5% є рідкістю, але про всяк випадок, погляньте на статтю Гері Кінга про те, як проводити логістику рідкісних подій. У пакеті Zelig, в R, можна запустити логістику рідкісних подій.


0

Добре, тому я працюю у виявленні шахрайства, тому така проблема для мене не нова. Я думаю, що у спільноті машинного навчання досить багато сказати про незбалансовані дані (як і в класах - неврівноважені). Отже, є кілька мертвих легких стратегій, про які я думаю, вже згадувалося, і пара акуратних ідей, і якийсь шлях до цього. Я навіть не збираюся робити вигляд, що знаю, що це означає для асимптотики вашої проблеми, але це, як видається, завжди дає мені розумні результати в логістичній регресії. Десь там може бути папір, не впевнений.

Ось ваші варіанти, як я бачу:

  1. Прообразити клас меншості. Це означає вибірку класу меншин із заміною, поки у вас не буде такої ж кількості спостережень, що і у мажоритарного класу. Існують химерні способи зробити це, щоб ви робили такі речі, як тремтіння значень спостереження, щоб у вас були значення, близькі до оригіналу, але не були ідеальними копіями тощо.
  2. Невиразний, саме тут ви берете піддіаметр класу більшості. Знову ж таки химерні способи зробити це, щоб ви видаляли зразки більшості, які є найближчими до зразків меншин, використовуючи алгоритми найближчих сусідів тощо.
  3. Зважуйте заняття. Для логістичної регресії це те, що я роблю. По суті, ви змінюєте функцію збитків, щоб накладати покарання на дискрифіковану справу меншості набагато сильніше, ніж класифікований мажоритарний клас. Але потім ви знову технічно не робите максимальної ймовірності.
  4. Моделюйте дані. Багато чітких ідей, з якими я тут грав. Ви можете використовувати SMOTE для генерування даних, генеративної змагальної мережі, автокодерів, використовуючи генеративну частину, оцінювачі щільності ядра для малювання нових зразків.

У будь-якому випадку, я використовував усі ці методи, але я вважаю, що найпростішим є все-таки просто перевантажити проблему для логістичної регресії. Одне, що ви можете зробити, щоб перевірити модель, але це взяти:

-Intercept/beta

Це має бути межа прийняття рішення (50% ймовірність потрапляння в будь-який клас) для заданої змінної цетерису . Якщо це не має сенсу, наприклад, межа рішення - це від'ємне число змінної, яка є суто позитивною, то ви маєте зміщення у своїй логістичній регресії, яку потрібно виправити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.