Функція витрат для перевірки регресійних моделей Пуассона


12

Для підрахунку даних, які я зібрав, я використовую регресію Пуассона для побудови моделей. Я роблю це за допомогою glmфункції в R, де я використовую family = "poisson". Для оцінки можливих моделей (у мене є кілька прогнозів) я використовую AIC. Все йде нормально. Тепер я хочу здійснити перехресну перевірку. Мені вже вдалося це зробити, використовуючи cv.glmфункцію з bootпакету. З документації по cv.glmя бачу , що , наприклад , для біноміальних даних , які необхідно використовувати функцію конкретних витрат , щоб отримати значущу помилку передбачення. Однак я ще не маю уявлення, для якої функції вартості підходить family = poisson, і розширений пошук в Google не дав конкретних результатів. У мене питання, чи є хтось прояснений, на яку функцію вартості підходить cv.glmу випадку грізми Poisson.


1
Функція cv.glmnetв пакеті glmnetвикористовує type.measure="deviance"для сімейства Пуассонів.
rcs

Строго, з документації видно, що для двійкових даних є сенс використовувати конкретну функцію витрат.
Короне

@corone of - це не безперервні дані, ні двійкові дані. Тому я шукав функцію витрат, відповідну даним підрахунку.
Пол Хіемстра

1
Я не думаю, що дискретність даних має велике значення тут, якщо тільки ваш підрахунок не дуже малий. Питання полягає швидше у розподілі даних. Для двійкових даних прогнозування є постійною ймовірністю між 0 і 1, але відповідь завжди 0 або 1. У їх прикладі змушують витрати бути "правильними" або "неправильними", і підраховують кількість прав і помилок. Вас особливо турбує наступність? Я додам ПС у свою відповідь на вирішення наступності
Короне

Відповіді:


12

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

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

Середня квадратна помилка (відповідей)

C=1ni(YiY^i)2

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

Середня квадратична помилка (відповідей журналу)

C=1ni(lnYilnY^i)2

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

Помилка Chi-Squared

C=1ni(YiY^i)2Y^i

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


Про дискретність

Питання наводить приклад документації, де вони мають бінарну змінну відповіді, тому використовуйте іншу функцію витрат. Питання для двійкової відповіді полягає в тому, що GLM прогнозує реальне число між 0 і 1, хоча відповідь завжди точно 0 або 1. Цілком справедливо сказати, що чим ближче це число до правильної відповіді, тим краще прогноз, але часто люди цього не хочуть. Зважаючи на те, що часто потрібно діяти або як 0 або 1, і тому буде прийнято що-небудь менше 0,5 як прогноз на 0. У цьому випадку є сенс просто порахувати кількість "неправильних" прогнозів. Аргумент тут полягає в тому, що для істинного / помилкового запитання ви можете будь-коли бути правильним чи неправильним - немає градації неправильності.

Y^


Замість того, щоб працювати зі середньою квадратичною помилкою середньоквадратичної помилки реакції, перетвореної в журналі, може бути краще для GLM використовувати середньозважену середньоквадратичну помилку, використовуючи 1 / дисперсійні ваги (задані слотом $ ваг Rm у виведенні glm, для poisson = 1 / Е (Y)). Це працює, я вважаю, для будь-якого типу GLM.
Tom Wenseleers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.