Використання зміщення у біноміальній моделі для обліку збільшення кількості пацієнтів


18

Два пов'язаних з мене питання. У мене є кадр даних, який містить кількість пацієнтів в одному стовпчику (діапазон 10 - 17 пацієнтів) та 0 та 1, які показують, чи трапився інцидент того дня. Я використовую біноміальну модель, щоб регресувати ймовірність інциденту на кількості пацієнтів. Однак я хотів би пристосуватися до того, що, коли буде більше пацієнтів, неминуче буде більше випадків, оскільки загальна кількість часу перебування пацієнтів у палаті на цей день більша.

Тому я використовую зміщену біноміальну модель на зразок цієї (R-код):

glm(Incident~Numbers, offset=Numbers, family=binomial, data=threatdata)

Мої запитання:

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

  2. Чи правильно вказано зміщення? Я знаю, що в пуассонових моделях це буде читати

    offset=log(Numbers)
    

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


2
Чи не те, що ви хочете скорегувати, саме те, що ви хочете виміряти - тобто як збільшується ймовірність "інциденту" з кількістю пацієнтів?
B_Miner

1
Мені потрібно повторити точку B_Miner. Думаю, ви заплуталися, коли / чому компенсація використовується в цій ситуації. Ваша модель, не компенсуючи компенсацію, дасть вам встановлені значення для ймовірності інциденту як функції для # пацієнтів. Якщо вас цікавить інша функціональна форма, то розгляньте перетворення (наприклад, журнал чи експонентація #) на основі того, що є науково цікавим.
AdamO

Чи можете ви уточнити щось про інциденти? Чи пов’язаний інцидент із пацієнтом чи щось у відділенні в цілому? Якщо це стосується пацієнтів, чи можливий інцидент> 1, якщо пацієнтів немає, чи не можна мати інцидент?
вчора

1
Мабуть, моя відповідь "не містить достатньо деталей". Я надав теоретичну розробку, код, який можна виконати, і відповіді на обидва ваші запитання, тож, можливо, ви можете уточнити, що ще потрібно?
кон'югатпріор

1
Вибачте, попередньо з'єднавшись, ваша відповідь чудова. Реч "недостатньо детально" - це тег, доданий до виграшу (тобто був там перед публікацією). Я прийму, коли виграш закінчується на випадок, якщо хтось спричинить ще кращу відповідь, але це малоймовірно, і ваше дуже допоможе, дякую.
Кріс Білі

Відповіді:


17

Якщо вас цікавить ймовірність інциденту через N днів пацієнтів, які перебувають на палаті, вам потрібна така модель:

mod1 <- glm(incident ~ 1, offset=patients.on.ward, family=binomial)

компенсація являє собою випробування, incidentабо 0, або 1, і ймовірність інциденту є постійною (відсутність неоднорідності в тенденції до породження інцидентів), і пацієнти не взаємодіють, щоб викликати інциденти (немає зараження). Крім того, якщо шанс на інцидент невеликий, який саме для вас (або ви обмежили кількість інцидентів, не згадуючи про це нам), ви можете віддати перевагу рецептурі Пуассона

log.patients.on.ward <- log(patients.on.ward)
mod2 <- glm(incident ~ 1, offset=log.patients.on.ward, family=poisson)

де застосовуються ті самі припущення. Зсув реєструється, оскільки кількість пацієнтів, які перебувають на палаті, має пропорційний / мультиплікативний ефект.

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

mod3 <- glm(incident ~ 1 + log.patients.on.ward, family=poisson)

Якщо коефіцієнт на log.patients.on.wardзначення суттєво відрізняється від 1, де він був зафіксований mod2, то справді щось може бути не так у ваших припущеннях про гетерогенність та відсутність зараження. І хоча ви, звичайно, не можете відрізнити ці дві (ані одну від інших відсутніх змінних), тепер у вас є оцінка того, наскільки збільшення кількості пацієнтів, які перебувають на палаті, збільшує частоту / ймовірність інцидентів вище та вище, ніж ви очікувати від випадковості. У просторі параметрів це 1-coef(mod3)[2]інтервал, похідний від confint.

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

Питання

  1. Чи нормально мати залежні змінні у своєму компенсації? Мені це здається дуже поганою ідеєю, але я не бачу, що ти повинен.

  2. Зсув в регресійних моделях Пуассона exposureсправді є log(exposure). Можливо, заплутане використання offsetв біноміальних регресійних моделях R є в основному способом визначення кількості випробувань. Його завжди можна замінити залежною змінною, визначеною як cbind(incidents, patients.on.ward-incidents)і не зміщеною. Подумайте про це так: у моделі Пуассона він входить з правого боку позаду функції зв’язку журналу, а в моделі Біноміалу - з лівої сторони перед функцією зв'язку logit.


18

Зсуви в регресіях Пуассона

Давайте для початку розглянемо, чому ми використовуємо зсув в регресії Пуассона. Часто ми хочемо завдяки цьому контролювати вплив. Нехай - базовий показник на одиницю опромінення таλ - час експозиції в тих же одиницях. Очікувана кількість заходів складе λ × t .тλ×т

У моделі GLM ми моделюємо очікуване значення, використовуючи функцію зв'язку , тобтог

g(λti)=log(λti)=β0+β1x1,i+

де - тривалість експозиції для окремих i та xtii - значення коварианта для індивідуального i . Еліпсис просто вказує на додаткові умови регресії, які ми, можливо, хочемо додати.xii

Ми можемо спростити спрощення наведеного виразу

log(λ)=log(ti)+β0+β1x1,i+

є просто «зсув» додається до регресії Пуассонаяк це не є продуктом якийнебудь з параметрів моделіякі ми будемо оцінюють.log(ti)

Біноміальна регресія

У двочленній регресії, яка зазвичай використовує посилання logit, тобто:

g(pi)=logit(pi)=log(pi1pi)=β0+β1x1,i+

Ви можете бачити, що буде складно отримати модель яка призведе до постійного зміщення.pi

Наприклад, якщо - ймовірність того, що одна єpi пацієнт в день є випадок. Це буде функцією окремих пацієнтів, наявних у цей день. Як заявив jboman, легше отримати комплімент без випадків, ніж безпосередньо визначити ймовірність принаймні одного інциденту. i

pi,jjiij=1Ni(1pi,j)Nii

pi=1j=1Ni(1pi,j).

pi=1(q)Ni,
q=1pp

pig(pi)log((q)N1)

Як результат, ми не можемо використовувати компенсацію в цьому випадку.

p


2
+1, ласкаво просимо на сайт, @Rider_X. Я сподіваюся, що ми можемо очікувати більше таких відповідей у ​​майбутньому.
gung - Відновіть Моніку

1
@gung - Дякую! Я не чув багато назад про те, що вважав корисною відповіддю, тому я не був багато назад. Мені доведеться це змінити. З повагою
Rider_X

2
+1 Я дуже ціную відповіді, які пояснюють теорію та міркування, а не (або додатково до них) показують, який код та команди використовувати.
whuber

9

Ця відповідь складається з двох частин, перша - пряма відповідь на питання, а друга - коментар до запропонованої вами моделі.

Перша частина стосується використання Numbersяк зміщення разом із розміщенням його на rhs рівняння. Ефектом цього буде просто відняти 1 від розрахункового коефіцієнта Numbers, тим самим відміняючи ефект від заліку, і в іншому випадку результати не зміняться. Наступний приклад із видаленням декількох рядків нерелевантного виводу демонструє це:

library(MASS)
Numbers <- rpois(100,12)
p <- 1 / (1 + exp(0.25*Numbers))
y <- rbinom(100, Numbers, p)
Incident <- pmin(y, 1) 

> summary(glm(Incident~Numbers, family="binomial"))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.3121  -1.0246  -0.8731   1.2512   1.7465  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept)  0.99299    0.80624   1.232   0.2181  
Numbers     -0.11364    0.06585  -1.726   0.0844 . <= COEFFICIENT WITH NO OFFSET TERM
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 135.37  on 99  degrees of freedom
Residual deviance: 132.24  on 98  degrees of freedom
AIC: 136.24

> summary(glm(Incident~Numbers, offset=Numbers, family="binomial"))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.3121  -1.0246  -0.8731   1.2512   1.7465  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  0.99299    0.80624   1.232    0.218    
Numbers     -1.11364    0.06585 -16.911   <2e-16 *** <= COEFFICIENT WITH OFFSET TERM
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 342.48  on 99  degrees of freedom
Residual deviance: 132.24  on 98  degrees of freedom
AIC: 136.24

Зауважте, як все однаково, за винятком коефіцієнта Чисел та нульового відхилення (і t-статистики, тому що він все ще тестує проти 0 замість -1.)

t1(1pt)NtNttpttlog(1(1pt)Nt)/Ntlog(1pt)tNtNt в знаменнику замість чисельника все одно залишає вас із тим незграбним експоненціалом всередині журналу.

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

У будь-якому випадку, враховуючи це та обмежений діапазон кількості пацієнтів, яких ви спостерігаєте, а не використовувати модель, лінійну за шкалою logit, може бути краще бути непараметричною щодо співвідношення та групування кількості пацієнтів на трьох або чотири групи, наприклад, 10-11, 12-13, 14-15 і 16-17, будують фіксовані змінні для цих груп, а потім виконують логістичну регресію з манекенними змінними праворуч. Це дозволить краще зафіксувати нелінійні зв’язки, такі як "система перевантажена близько 16 пацієнтів, і випадки починають значно посилюватися". Якщо у вас значно ширший діапазон пацієнтів, я б запропонував узагальнену модель добавок, наприклад, 'gam' з пакету 'mgcv'.


0

Здається, найпростіше вказати посилання на журнал і зберегти зміщення, як для моделі Пуассона.


2
Я впевнений, що ти маєш рацію, але для моєї користі, як це Пуассон? Здається, що ОП має набір даних із двійковим результатом. Це буде glm (Incident ~ Numbers, offset = log (Numbers), family = poisson, data = пагроза даних) ??
B_Miner
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.