Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пуассоновская регрессия без свободного члена
Форум врачей-аспирантов > Разделы форума > Медицинская статистика
ИНО
Пусть зависимая переменная Y - некая счетная величина, фиксируемая в разных точках вдоль градиента некой независимой переменной X. Допустим, что она распределена по Пуассону. Есть теоретически обусловленное основание считать, что в точке X=0, Y также всегда равен 0. Хочется построить регрессионную модель Y по X. Хочется, да не можется, поскольку в пуассоновской GLM используется логарифмическая функция связи, поэтому, если я задаю в формуле модели нулевой свободный член (как делал бы для решения схожей задачи в случае простой линейной регрессии), то после обратного преобразования получаю 1, что не есть хорошо. В принципе можно схитрить, моделируя не Y, а Y+1, после чего отнять от прогнозов модели 1 и таким образом подлечить прогнозы для Y. Однако это даcт несмещенный результат только для среднего, дисперсия будет переоценена, и, следовательно, доверительные интервалы шире, чем должно. Прошу помощи в решении данной проблемы, желательно в виде реализаций на R.

Интересно, что в отличие от авторов-человечков, гуглевский ИИ сразу смекнул, что мне надо и зачем:
Цитата
Zero-intercept Poisson regression is a specialized form of Poisson regression where the intercept term is constrained to be zero. This means that when all predictor variables are zero, the predicted count is also zero. It's used when there's a theoretical or empirical reason to believe that the relationship between the predictors and the outcome should pass through the origin.
When is it appropriate?
Prior Knowledge:
If you have strong prior knowledge or a theoretical model that dictates the outcome should be zero when all predictors are zero, a zero-intercept model is justified.

Но, увы, никаких конкретных реализаций это-самой Zero-intercept Poisson regression, найти мне не удалось, везде zero-inflated да zero-truncated толкают, что совсем не о том.
Игорь
Удалено автором поста.
ИНО
Расскажите, как именно она сделана. Если значение независимой переменной равно нулю, какое значение принимает зависимая переменная? Упомянутый черновик где можно лицезреть?
ИНО
Решил проблему, поменяв функцию связи с логарифма, стоявшего по умолчанию, на квадратный корень. Оказывается в glm() для family=poisson() есть три варианта для выбора: идентичность, логарифм и квадратный корень. Не густо, но хоть что-то. Модель свободного члена нормально подогнулась, теперь при Х=0 Y=0, как мне и требовалось. Но возникла другая проблема - в null.deviance теперь записано Inf. А мне он нужен для подсчета псевдо-R2. Можно вспомнить, что null.deviance - это девианс модели, не содержащей ничего, кроме свободного члена, а у нас свободного члена-то и нет, так что может показаться логичным, что без него R этот показатель не считает. Однако если подгонять через glm() простую линейную модель, с точно такой же формулой, т. е. без свободного члена, null.deviance на месте. Что за баг или фича? Как выйти из ситуации?
Игорь
Удалено автором поста.
ИНО
Your request is being denied as it appears to be coming from a location banned by our Terms of Use.
Игорь
Удалено автором поста.
ИНО
У меня он всегда недоступен без прокси.
Цитата
μj(B) = exp(XjB)

Все та же логарифмическая функция связи, что и в R по умолчанию, не дающая получить в левой части уравнения 0. Если все предикторы будут равны 0, а свободный член отсутствовать, в качестве предсказания получится 1.
Игорь
Удалено автором поста.
ИНО
В данном случае дело не в коммерции, а в (гео)политике.

Не слушайте подсказок "чего-то", а читайте определения. Zero-truncated Poisson - это распределение Пуассона, усеченное в нуле, т. е. на одну позицию слева. Применяется в случаях, если наблюдаемая величина в принципе не может принимать нулевых значений. Например, количество прыщей на теле при первом осмотре пациента, обратившегося к врачу по поводу наличия прыщей. Вообще не имеет отношения к сабжу.
Игорь
Удалено автором поста.
ИНО
Не тот случай. По запросу "Zero-truncated Poisson regression" очень легко найти информацию поданную живыми людьми с примерами. Достаточно вбить в Гугле это словосочетание.
Игорь
Удалено автором поста.
ИНО
Постойте, Вы же сами предложили:
Цитата(Игорь @ 12.08.2025 - 11:47) *
Что-то мне представляется, что zero-truncated Poisson regression как раз о случае, когда должен получиться нуль (встречался пример типа если человек в супермаркете ничего не выбрал, то он выходит не через кассу, значит на кассе - нуль). Но в моих программах её нет, как и опубликованных готовых для расчета формул. Нужно самому их вывести. Будет время, может быть, займусь.

Ни что из процитированного не соответствует истине, и это легко круглится.
comisora
Цитата(ИНО @ 10.08.2025 - 23:22) *
Пусть зависимая переменная Y - некая счетная величина, фиксируемая в разных точках вдоль градиента некой независимой переменной X. Допустим, что она распределена по Пуассону. Есть теоретически обусловленное основание считать, что в точке X=0, Y также всегда равен 0. Хочется построить регрессионную модель Y по X.


Честно, не встречал такую задачу. Тем не менее, я бы попробовал в glm использовать следующий аргумент family = poisson(link = 'identity'). Есть еще вариант - попробовать через offset, но насколько это реализуемо - не представляю.
ИНО
Цитата(comisora @ 16.08.2025 - 16:40) *
Честно, не встречал такую задачу. Тем не менее, я бы попробовал в glm использовать следующий аргумент family = poisson(link = 'identity')

Если такую регрессию экстраполировать в область отрицательных значений предиктора, то она даст отрицательный параметр Пуассона, что есть нонсенс. Хотя, наверное, бывают предикторы, для которых отрицательные значения в принципе невообразимы, например рост или вес. Однако в моем случае это время, и вполне можно представить момент до начал эксперимента. Поэтому желательно, чтобы регрессионная кривая встречалась с нулем вообще без наклона, что может подразумевать ее переход в горизонтальную прямую в области отрицательных значений предиктора. link = 'sqrt' помог достичь такой видимости. Но я понимаю, что это лишь иллюзия, поскольку на самом деле в области отрицательных значений предиктора будет лежать нисходящая ветвь параболы, то есть значение отклика будет расти с убыванием значений предиктора, что тоже нонсенс. В общем остается констатировать что нет однозначно подходящей функции связи для таких моделей, по крайней мере в glm().

А сейчас я уперся в аналогичную проблему, но уже логистической регрессией. И тут вообще нет даже близко подходящей функции связи, чтобы равнялась нулю при нулевом значении линейного предиктора. Как правильно использовать oaaset() так и не разобрался. Нужно, чтобы не просто кривая проходила через ноль (она и так почти проходит, поскольку сигмоид крутой получился, на глаз не отличишь), но и чтобы доверительный интервал сходился в ноль.
comisora
2ИНО

Может скините игрушечный набор данных, скажем, на десять наблюдений? Я ничего не обещаю, но попробую найти время пошерстить литературу (типа gamlss) по Вашему вопросу.
ИНО
Зачем игрушечный, вот реальный из научной работы.

x y
32 1
32 1
33 0
33 0
34 1
34 0
35 1
35 1
36 1
36 1
37 1
37 1
38 1
38 1
39 1
39 1
43 1
43 1

И даже уже есть иллюстрация логистической регрессии y по x. На форму и цвет маркеров внимания не обращайте, это не имеет отношение к модели по которой построен сигмоид. Также на картинке нет ДИ, но он просто ужасен - в начальной точке простирается от 0 до 1. А хочется чтобы сходился в ноль (или, по крайней мере в очень малую величину практически неотличимую от нуля, раз уж логистическая модель строго в ноль не может, равно как и альтернативные пробит, клоглог, и что там еще...) . Потому что есть теоретические (за рамками статистики) основания считать, что при x=0 вероятность события нулевая.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2026 IPS, Inc.