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


11

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

Яку регресію (або інший метод) я повинен використовувати? Чи можливо використовувати цей метод в R або Python через певну бібліотеку?


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

Відповіді:


5

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

1 = Консервативна більшість, 2 = Трудова більшість, 3 = Ліберальна більшість .... (і так далі)

Ви можете виконати це в R за допомогою пакету nnet. Ось хороше місце, щоб швидко пройти, як ним користуватися.


3

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


2

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

prob_1, prob_2, prob_3,..., prob_k

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

У R є багато класифікаторів, які роблять багатокласну класифікацію. Ви можете використовувати логістичну регресію при підтримці багатокласової підтримки через пакет nnet в R та виклик multinomкоманди.

В якості альтернативи ви також можете використовувати пакет gbm в R та викликати gbmкоманду. Для створення багатокласного класифікатора просто використовуйте distribution="multinomial" while using theфункцію gbm`.

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