Як оцінити прогностичну силу набору категоричних предикторів бінарного результату? Розрахуйте ймовірності чи логістичну регресію?


10

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

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


Якщо у вас є більше ніж один передбачувач, це може бути складно зробити без якоїсь регресійної моделі. Що ви мали на увазі? Просто велика -вимірна таблиця суміжності ( k - кількість предикторів)? kk
Макрос

Чи згруповані категорії предикторів у більше одного фактора, і якщо так, вони перекреслені чи вкладені? Також вас цікавить лише складання описового твердження? Якщо ваші дані складні, модель LR може бути зручнішою, і якщо ви хочете зробити висновки, LR є вкрай бажаним, я думаю.
gung - Відновіть Моніку

@Macro - Так, я думав, що це, по суті, велика таблиця, в одному стовпчику відображатиметься # вибіркових точок, що відповідають сценарію, а інший стовпець із часткою 1. У мене є п'ять категоричних прогнозів, у кожного з 10-30 можливих значень, тому я знаю, що список сценаріїв був би високим. Я думав прописати цикл на R, який проходить через кожний і виводить значні результати (висока частка 1-х плюс велика кількість вибіркових очок у сценарії).
Рейчел

@gung - фактори лише частково перекреслені. Жоден із факторів не вважатиметься вкладеним. Мені цікаво знайти комбінації факторів (наприклад, штат, замовник, працівник), які, ймовірно, мають велику ймовірність того, що змінна відповіді буде рівна 1.
Рейчел

1
@EmreA - На жаль, категоричні змінні не є повністю незалежними. Деякі комбінації будуть більш імовірними, ніж інші ...
Рейчел

Відповіді:


11

Логістична регресія, аж до числової неточності, буде відповідати точно так само, як табльовані відсотки. Отже, якщо ваші незалежні змінні є факторними об'єктами factor1тощо, а залежні результати (0 і 1) є x, то ви можете отримати ефекти з виразом типу

aggregate(x, list(factor1, <etc>), FUN=mean)

Порівняйте це з

glm(x ~ factor1 * <etc>, family=binomial(link="logit"))

Як приклад, давайте генеруємо кілька випадкових даних:

set.seed(17)
n <- 1000
x <- sample(c(0,1), n, replace=TRUE)
factor1 <- as.factor(floor(2*runif(n)))
factor2 <- as.factor(floor(3*runif(n)))
factor3 <- as.factor(floor(4*runif(n)))

Підсумок виходить за допомогою

aggregate.results <- aggregate(x, list(factor1, factor2, factor3), FUN=mean)
aggregate.results

Його вихід включає

   Group.1 Group.2 Group.3         x
1        0       0       0 0.5128205
2        1       0       0 0.4210526
3        0       1       0 0.5454545
4        1       1       0 0.6071429
5        0       2       0 0.4736842
6        1       2       0 0.5000000
...
24       1       2       3 0.5227273

Для подальшої довідки оцінка факторів на рівнях (1,2,0) у рядку 6 результату становить 0,5.

Логістична регресія дає свої коефіцієнти таким чином:

model <- glm(x ~ factor1 * factor2 * factor3, family=binomial(link="logit"))
b <- model$coefficients

Для їх використання нам потрібна логістична функція:

logistic <- function(x) 1 / (1 + exp(-x))

Для отримання, наприклад, оцінки факторів на рівнях (1,2,0), обчислити

logistic (b["(Intercept)"] + b["factor11"] + b["factor22"] + b["factor11:factor22"])

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

(Intercept) 
        0.5

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


Ця ж інформація у ще одній формі відображається у висновкуtable . Наприклад, (тривалий) вихід

table(x, factor1, factor2, factor3)

включає цю панель:

, , factor2 = 2, factor3 = 0

   factor1
x    0  1
  0 20 21
  1 18 21

factor121/(21+21)=0.5x1aggregateglm


Нарешті, комбінація факторів, що дають найбільшу частку в наборі даних , зручно отримувати з результатів aggregate:

> aggregate.results[which.max(aggregate.results$x),]
  Group.1 Group.2 Group.3         x
4       1       1       0 0.6071429

1
Це багато інформації, і мені знадобиться певний час, щоб переварити, але я радий почути табличні відсотки, і логістичні регреси дадуть мені ті ж результати. Я запустив функцію сукупності на двох прогнозах, і вона закінчилася негайно ... результати логістичного пристосування працювали протягом декількох хвилин і ще не закінчились. Я продовжую виправляти речі, але, можливо, в кінцевому підсумку просто використовую табличні відсотки. Дякую!
Рейчел

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

"Логістична регресія, аж до чисельної неточності, буде відповідати точно так само, як табльовані відсотки": Чи не вона підсумовує відсоткові відсотки для кожної конфігурації предикторів? У цьому випадку логістична регресія не може кодувати всі можливі відносини.
Ніл Г

@Neil Впевнений, що він може кодувати всі "відносини" (комбінації факторів): використовувати всі можливі взаємодії. Для прикладу дивіться код R. Коли факторів багато, на практиці буде багато порожніх комбінацій, але гідне програмне забезпечення не матиме проблем із цим. Ще краще програмне забезпечення оброблятиме комбінації без змін відповідей.
whuber

@Andy Мені подобається ваша відповідь про графіку - нам потрібно знайти спосіб створити нитку там, де це точно правильна відповідь! Можливо, ваша думка про включення оцінок помилок до мозаїчних сюжетів стане способом наближення до неї: як би ви представляли логістичні оцінки, фактичні дані та / або помилку одночасно в них?
whuber

6

Для швидкого огляду на частку бінарних відповідей у ​​межах кожної категорії та / або умовного для декількох категорій графічні графіки можуть бути корисними. Зокрема, для одночасного візуалізації пропорцій, обумовлених багатьма категоричними незалежними змінними, я б запропонував Mosaic Plots .

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

Сюжет мозаїки Титаніка
(джерело: theusrus.de )

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

Мозаїка умовна на третю змінну
(джерело: theusrus.de )

Дивовижно, скільки інформації відображається, це пропорції в чотирьох вимірах (Клас, Дорослий / Дитина, Стать та Пропорція виживаючих)!

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


+1, це пункт, який я намагався зробити у своєму коментарі вище щодо того, чи була мета простого опису чи умовиводу. Nb, що справа чіткіша і краще зроблені ж / цифри!
gung - Відновіть Моніку

@gung спасибі, що означає Nb? Я завжди краще кажу і з цифрами!
Енді Ш

2
Ніщо, що стосується статистики, "nb" означає nota bene , що, в свою чергу, є латиною "примітка добре" (буквально), або "зауважте, що" / "повідомлення" (більш розмовно).
gung - Відновіть Моніку

3

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

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


2

205

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

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

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


1

Слід переглянути алгоритми вибору функцій. Тим, що підходить для вашого випадку (двійкова класифікація, категоріальні змінні), є метод "мінімальної максимальної релевантності" (mRMR). Ви можете швидко спробувати його в Інтернеті за адресою http://penglab.janelia.org/proj/mRMR/


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

Або "клас" повинен бути вихідною змінною, в даному випадку 0 або 1? Якщо так, чи важливо перетворити категоричні змінні в манекенні змінні, щоб показати показники для кожної?
Рейчел

У вас може бути стільки прогнозів, скільки ви хочете. У першому рядку вашого файла даних повинні бути назви функцій, а в першому стовпці повинні бути класи (змінна відповідь) для зразків. Отже, приклад: response,predictor1,predictor2,predictor3 <line break here> 1,5,4,3 <line break here> 0,5,3,-1 <line break here> 1,1,2,3
emrea

1

Я працюю в галузі кредитного скорингу, де те, що тут подається як дивний випадок, є нормою.

Ми використовуємо логістичну регресію та перетворюємо як категоричні, так і безперервні змінні у ваги доказів (WOE), які потім використовуються в якості прогнозів регресії. Багато часу витрачається на групування категоричних змінних та дискретизацію (бінінг / класифікацію) безперервних змінних.

Вага доказів - це простий розрахунок. Це журнал шансів класу, за вирахуванням журналу шансів для населення:
WOE = ln (хороший (клас) / поганий (клас)) - ln (хороший (ВСІ) / поганий (ВСІ)) стандартна методологія трансформації майже для всіх моделей оцінювання кредитів, побудованих за допомогою логістичної регресії. Ви можете використовувати однакові номери в кусковому підході.

Краса полягає в тому, що ви завжди будете знати, чи мають значення коефіцієнти, присвоєні кожній ВЕО. Негативні коефіцієнти суперечать зразкам у даних і, як правило, є результатом мультиколінеарності; а коефіцієнти понад 1,0 вказують на надмірну компенсацію. Більшість коефіцієнтів вийде десь між нулем і одиницею.


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