Логістична регресія, зважена на випадок


9

Я переглядаю кілька питань логістичної регресії. ("регулярні" та "умовні").

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

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

Дякую!


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

@Frank Ви робите гарний момент. Зрештою, метою цього проекту є передбачити результат подальших подій. (Отже, я думаю, це можна вважати смаком машинного навчання з навчальними даними.) Деякі результати є "важливішими", ніж інші, тому я шукав спосіб їх відповідного зважування. Пропозиція Ніка щодо функції ймовірності має сенс і має бути досить тривіальною для реалізації в коді.
Ной

1
Здається, що вам потрібна саме імовірнісна модель, не потребуючи ваг.
Френк Харрелл

1
Правильно; підключіть функцію витрат і використовуйте передбачувану ймовірність, і у вас є оптимальне рішення.
Френк Харрелл

1
У добре відкаліброваній моделі ймовірностей немає "помилок", є лише випадковість, яку неможливо передбачити. Оптимальні рішення - це функція передбачуваної ймовірності та функції витрат на прийняття різних рішень для дії.
Френк Харрелл

Відповіді:


3

glmмістить параметр weightsсаме для цієї мети. Ви надаєте йому вектор чисел у будь-якому масштабі, який містить ту саму кількість ваг, що і спостереження.

Я лише зараз розумію, що ти можеш не говорити R. Якщо ні, то, можливо, захочете.


Я дуже добре знайомий з R, однак я хотів би зрозуміти математику за функцією ймовірності. Я можу кодувати це на C ++ або іншій мові. (Просто довіряти "blackbox" функції glm не завжди є найкращим рішенням)
Ной

Ага. Добре вам. Ну, наскільки я знаю, ваги просто використовуються для помноження вірогідності спостереження за спостереженням. Тож якщо ви написали не зважену версію, додавання ваг має бути доповненням. Зауважте також, що ви завжди можете переглянути вихідний код для glm(можливо) пошуку реалізації C.
Нік Саббе

2
@Nick, я теж був помилковим, що це функція аргументу ваг у glm - це не так. Насправді він використовується, коли біноміальні результати неоднорідні в тому сенсі, що вони засновані на різній кількості випробувань. Наприклад, якщо перше спостереження було двочленним (3,.5), а другий був двочленним (7,.5), їх ваги були б 3,7. Знову ж таки, аргумент ваг у glm () НЕ є вибірковою вагою. Для цього в R вам потрібно буде розширити набір даних відповідно до ваг і пристосувати модель до розширеного набору даних (SE, можливо, в цьому випадку помиляються).
Макрос

3
Ось обговорення аргументу "ваг" на дошці повідомлень: r.789695.n4.nabble.com/Weights-in-binomial-glm-td1991249.html
Макрос

@Macro: thx! Дуже акуратно. Одна з речей, яка могла б вдарити мені в зуби, якби я використовував її перед вашим коментарем :-)
Нік Саббе

1

Якщо у вас є доступ до SAS, це дуже легко здійснити за допомогою PROC GENMOD. Поки кожне спостереження має вагову змінну, використання вагового твердження дозволить виконувати аналіз, який ви шукаєте. Я в основному використовував його, використовуючи ваги зворотної ймовірності лікування, але я не бачу жодної причини, чому ви не могли б призначити ваги вашим даним, щоб підкреслити певні типи випадків, якщо ви впевнені, що ваш N залишається постійним. Ви також хочете, щоб включити якусь змінну ідентифікатора, оскільки технічно переважені випадки - це повторні спостереження. Приклад коду з ідентифікаційним спостереженням 'id' та ваговою змінною 'wt':

proc genmod data=work.dataset descending;
    class id;
    model exposure = outcome covariate / dist=bin link=logit;
    weight wt;
    repeated subject=id/type=ind;
run;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.