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

11

Я хочу сделать прогноз на результат парламентских выборов. Мой результат будет%, который получает каждая сторона. Существует более двух сторон, поэтому логистическая регрессия не является жизнеспособным вариантом. Я мог бы сделать отдельный регресс для каждой партии, но в этом случае результаты были бы в некотором роде независимыми друг от друга. Это не гарантирует, что сумма результатов будет 100%.

Какой регресс (или другой метод) я должен использовать? Можно ли использовать этот метод в R или Python через определенную библиотеку?

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

Ответы:

5

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

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

Вы можете выполнить это в R с помощью пакета nnet. Вот хорошее место, чтобы быстро разобраться, как его использовать.

Глен Мутри
источник
3

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

Bas
источник
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`.

Nitesh
источник