Я хочу сделать прогноз на результат парламентских выборов. Мой результат будет%, который получает каждая сторона. Существует более двух сторон, поэтому логистическая регрессия не является жизнеспособным вариантом. Я мог бы сделать отдельный регресс для каждой партии, но в этом случае результаты были бы в некотором роде независимыми друг от друга. Это не гарантирует, что сумма результатов будет 100%.
Какой регресс (или другой метод) я должен использовать? Можно ли использовать этот метод в R или Python через определенную библиотеку?
Ответы:
Роберт прав, полиномиальная логистическая регрессия - лучший инструмент для использования. Хотя вам необходимо иметь целочисленное значение, представляющее сторону в качестве зависимой переменной, например:
1 = консервативное большинство, 2 = трудовое большинство, 3 = либеральное большинство .... (и т. Д.)
Вы можете выполнить это в R с помощью пакета nnet. Вот хорошее место, чтобы быстро разобраться, как его использовать.
источник
На чем вы хотите основать свой прогноз? Я попытался предсказать результаты многопартийных выборов для моей диссертации на основе предыдущих лет, а затем, используя результаты для некоторых избирательных участков этого года, предсказать результаты на всех других избирательных участках. Для этого линейная модель, с которой я сравнивал, оценивала количество голосов, которое каждая партия получит, регрессируя по сравнению с голосами предыдущих лет. Если у вас есть приблизительное количество голосов для всех партий, вы можете рассчитать процент от этого. См. Прогнозы из неслучайных образцов для соответствующей статьи, которая расширяет линейную модель.
источник
Это не регрессия, а проблема классификации нескольких классов. Выходными данными обычно являются вероятности всех классов для любого данного экземпляра теста (строки теста). Таким образом, в вашем случае выходные данные для любой данной строки теста из обученной модели будут иметь вид:
где prob_i обозначает вероятность i-го класса (в вашем случае i-го участника), предполагая, что в переменной ответа имеется k классов. Обратите внимание, что сумма этих k вероятностей будет равна 1. Классовым прогнозом в этом случае будет класс с максимальной вероятностью.
В R есть много классификаторов, которые выполняют многоклассовую классификацию. Вы можете использовать логистическую регрессию с поддержкой нескольких классов через пакет nnet в R и вызывая
multinom
команду.В качестве альтернативы вы также можете использовать пакет gbm в R и вызвать
gbm
команду. Чтобы создать мультиклассовый классификатор, просто используйтеdistribution="multinomial" while using the
функцию gbm`.источник