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

14

Я использую Spotfire (S ++) для статистического анализа в моем проекте, и мне приходится выполнять многочленную логистическую регрессию для большого набора данных. Я знаю, что лучшим алгоритмом был бы mlogit, но, к сожалению, он не доступен в s ++. Тем не менее, у меня есть возможность использовать алгоритм GLM для этой регрессии. Я хочу уточнить две вещи здесь:

1. Правильно ли я понимаю, что glm также может быть использован для запуска полиномиальной логистической регрессии?

  1. Если ответ на предыдущий вопрос положительный, то какие параметры следует использовать в glm algo?

Благодарность,

Raghvendra
источник

Ответы:

9

Да, с Poisson GLM (логарифмическая линейная модель) вы можете использовать многочленные модели. Следовательно, полиномиальные логистические или логарифмические модели Пуассона эквивалентны.

Вы должны увидеть случайные числа как пуассоновские случайные величины со средним значением µ_ {ij} и указать следующую логарифмическую модельμ i jyijμij

log(μij)=o+pi+cj+xiβj

Чтобы получить полиномиальную модель логита, параметры:

Параметр для каждого полиномиального наблюдения, например, для отдельных лиц или групп. Это обеспечивает точное воспроизведение многочленных знаменателей и фактически устанавливает эквивалентность пуассоновской и многочленной модели. Они фиксированы в полиномиальной вероятности, но случайны в пуассоновской вероятности.pi

Параметр для каждой категории ответов. Таким образом, счетчики могут быть разными для каждой категории ответов, а поля могут быть неоднородными.cj

Что вас действительно интересует, так это условия взаимодействия которые представляют влияние на лог-шансы ответа .x i jxiβjxij

Лог-шансы могут быть просто вычислены как . Вероятность того, что наблюдение i попадет в категорию ответов j относительно категории ответов является логической вероятностью .klog(μij/μik)=(cjck)+xi(βjβk)k

Затем параметры в модели полиномиального логита (обозначенные латинскими буквами) могут быть получены как различия между параметрами в соответствующей логарифмической модели, то есть и .b j = β j - β kaj=αjαkbj=βjβk

Момо
источник
Спасибо, Момо. Это действительно полезно. Мое программное обеспечение дает мне возможность выбрать Family как «possion» и Link как «log» при запуске алгоритма GLM. Так что я думаю, что это именно то, что требуется здесь.
Рагхвендра
7

Да, вы можете, и на самом деле это именно то, что делает пакет R GLMNET для полиномиальной логистической регрессии. Запись функции правдоподобия в виде:

LogL=icniclog(pic)

Где обозначает наблюдения, а обозначает полиномиальные категории, - это наблюдаемый счет для наблюдения в категории . Наблюдения определяются их уникальными ковариатными комбинациями - или, в качестве альтернативы, мы можем разрешить дубликаты и установить каждое чтобы у нас были категориальные «двоичные» данные (.... не знаю, что такое множественное число двоичных файлов). ...). Для логистической регрессии вероятности определяются как:c n i c i c n i c = 1icnicicnic=1

pic=exp(xiTβc)cexp(xiTβc)

Это менее чем полная ранговая параметризация и может быть полезна, если вы используете наказуемое правдоподобие (например, GLMNET). В принципе, мы можем использовать IRLS / Newton Rhapson в полной бета-матрице , однако в итоге вы получите недиагональные весовые матрицы. В качестве альтернативы мы можем оптимизировать «стиль Гиббса», исправляя все категории бета-версий, кроме одной, а затем оптимизируя только эту категорию. Затем перейдите к следующей категории и так далее. Вы можете видеть это, потому что вероятности имеют вид(β1,,βC)

pic=B

pic=exp(xiTβc)exp(xiTβc)+A where Aβc=0
pic=Bexp(xiTβc)+A where Bβc=0

Что квадратичное расширение для будет иметь ту же форму, что и для логистической регрессии, но с весами IRLS, рассчитанными по-другому - хотя у нас все еще есть в обычном обновлении беты.βcWii,c=nicpic(1pic)(XTWX)1XTWY

probabilityislogic
источник
Я пытаюсь реализовать полиномиальную логистическую регрессию, используя вариант IRLS QR Newton. Код работает для других моделей GLM, но не смог заставить работать mlogit. Будет ли якобианом функции softmax, которая позволила бы мне вычислять число Холецкого только один раз за итерацию, а не раз, чтобы вычислить для каждого набора весов для результата? Wk
Хосе Баян Сантьяго Кальдерон
Учитывая, что он не будет диагональным, он не будет хорошо масштабироваться при большом количестве наблюдений, не так ли? Если использовать «стиль Гиббса», будет ли вычитание параметров базовой категории из матрицы до или после прогнозирования? β
Хосе Баян Сантьяго Кальдерон
Когда вы говорите о «холеский один раз» против «холеский k раз», вы должны заметить, что матрицы имеют разное измерение - если в есть столбцов, то «один раз» предназначен для размера матрицы, а «k раз» предназначен для матрица размеромpXpkp
вероятностная