Додавання ваг до логістичної регресії для незбалансованих даних


21

Я хочу моделювати логістичну регресію з незбалансованими даними (9: 1). Я хотів спробувати параметр ваг у glmфункції у R, але я не на 100% впевнений, що це робить.

Скажімо, моя вихідна змінна c(0,0,0,0,0,0,0,0,0,1). тепер я хочу надати «1» вагу в 10 разів більше. тому я навожу аргумент ваг weights=c(1,1,1,1,1,1,1,1,1,1,1,10).

Коли я це зроблю, це буде враховано при розрахунку максимальної ймовірності. Чи правий я? неправильна класифікація "1" - це лише в 10 разів гірше, ніж помилкова класифікація "0".

Відповіді:


11

Ching, Вам не доведеться робити набір даних збалансованим за показниками «1» та «0». Все, що вам потрібно, - це достатня кількість 1 для максимальної ймовірності сходитися. Дивлячись на розподіл 1 (100 000) у вашому наборі даних, у вас не повинно виникнути проблем. Тут можна зробити простий експеримент

  1. Проби 10% від 1-х та 10% від 0-х і використовуйте вагу 10 для обох
  2. Вибірка 100% 1-х та 10% -них 0 та використання ваги 10 для 0-х

В обох випадках ви отримаєте однакові оцінки. І знову ідея зважування пов'язана з відбором проб. Якщо ви використовуєте весь набір даних, не слід їх зважувати. Якби я був ти, я б просто використав 10%, якщо 0 та 10% 0.

В R ви б використали glm. Ось зразок коду:

glm(y ~ x1 + x2, weights = wt, data =data, family = binomial("logit"))

У вашому наборі даних повинна бути змінна wtдля ваг.

Якщо ви використовуєте 10% як 0, так і 1, ваша wtзмінна матиме значення 10.

Якщо ви використовуєте 10% 0 і 100% 1-х: wtзмінна матиме значення 10 для спостережень з y = 0 і 1 для спостережень з y = 1


12

Зважування - це процедура, яка зважує дані для компенсації відмінностей у вибірці та чисельності (King 2001). Наприклад, у рідкісних подіях (таких як шахрайство з кредитним ризиком, смерть у медичній літературі) ми схильні вибирати всі «1» (рідкісні події) та частку 0 (не події). У таких випадках доводиться відповідно зважувати спостереження.

Приклад: Скажімо, у 500 000 транзакцій населення відбувається 50 шахрайських операцій. У цьому випадку ви б

  1. Вибірка всіх 50 операцій з шахрайством (100% шахрайства)
  2. 10% хороших транзакцій (10% від 500 000 - 50 000 хороших транзакцій)

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

Довідка: Логістична регресія у даних про рідкісні події (King 2001)


привіт субра !!! велике дякую за підхід Кінга !! я не чув про це! у моєму випадку у мене 1 мільйон транзакцій! (900 000 - це "0", а 100 000 - "1"). тож я повинен вибирати 10% моїх "0"? то у мене майже збалансований набір даних. то мені доведеться зважити "0" в десять разів більше, ніж "1", правильно? а функція в R glm () в пакеті MASS точно відповідає цьому? якщо я зважую свої спостереження, я підрахую максимально зважену ймовірність? Дякую тобі! дуже ціную вашу відповідь та допомогу
чинг

я дійсно багато думаю про цю проблему. Що робити, якщо я скажу: тепер використовуйте всі мої дані для побудови моделі logit (з незбалансованими даними 9: 1). а потім я зважую "1" десять разів, навіть у реальності я не маю більше даних, і це НЕ 10% моїх даних. це просто так, я дію так, як у мене є ..... тому тепер, коли R розраховує модель, він думає, що я використовую лише 10% мого "1" і враховує це при розрахунку ймовірності. це має сенс?
чинг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.