Яка ймовірність цього процесу?


10

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

Припустимо наступне:

1) Тривалість перебування розподіляється пуассоном (просто припустимо, що це зараз, можливо, це не може бути реалістичним припущенням) з параметром .λ

2) Різні страхові плани охоплюють 7, 14 та 21 день перебування. Багато пацієнтів виїдуть після 7,14 або 21 день перебування (адже їх страхування закінчується, і вони повинні піти).

Якби я отримав дані цього процесу, це могло б виглядати так:

введіть тут опис зображення

Як бачимо, на 7, 14 та 21 день відзначаються шипи. Це пацієнти, які виїжджають, коли закінчується їх страхування.

Зрозуміло, що дані можна моделювати як суміш. Мені важко записувати ймовірність цього розподілу. Це як нульовий надутий пуассон, але інфляція становить 7, 14 і 21.

Яка ймовірність цих даних? Який мислительний процес стоїть за ймовірністю?


Для початку вам потрібно буде знати ймовірність 7, 14 та 21-денного вимушеного часу виїзду.
BruceET

1
Для мене це звучить як суміш Пуассона і трьох правопорушених (на 7, 14 і 21) розподілів Пуассона. Списання їх - ще один крок.
Карстен

@BruceET Я буду робити байєсівські умовиводи щодо цієї моделі, тому я хотів би записати це в самому загальному випадку.
Деметрі Пананос

Відповіді:


9

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

Нам потрібно моделювати три речі в такому порядку: i) накопичувальна небезпека, ii) небезпека, iii) ймовірність колоди.

i) Ми зробимо частину i) кроками. Яка сукупна небезпека випадкової величини Пуассона? Для дискретного розподілу існує два способи його визначення¹, але ми будемо використовувати визначення . Отже, накопичувальна небезпека для єН(т)Н(т)=-журналS(т)ТПоi(λ)

НТ(т)=-журнал(1-Q(т,λ))=-журналП(т,λ)

де - верхня, нижня регульована гамма-функція відповідно.Q,П

Тепер ми хочемо додати "небезпеки" страхування, що закінчується. Приємна річ, що стосується накопичувальних небезпек, полягає в тому, що вони є адитивними, тому нам просто потрібно додавати "ризики" часом 7, 14, 21:

НТ'(т)=-журналП(т,λ)+а1(т>7)+б1(т>14)+c1(т>21)

Евристично, пацієнт піддається основним ризикам "Пуассона", а потім вказує на ризики 7, 14 і 21. (Оскільки це сукупний ризик, ми накопичуємо ці точні ризики, звідси і .) не знаю, що таке і , але згодом ми зв’яжемо їх із нашими ймовірностями страхування.>а,бc

Насправді, оскільки ми знаємо, що 21 - це верхня межа, і всі пацієнти видаляються після цього, ми можемо встановити на нескінченність.c

НТ'(т)=-журналП(т,λ)+а1(т>7)+б1(т>14)+1(т>21)

ii) Далі ми використовуємо накопичувальну небезпеку для отримання небезпеки, . Формула цього:год(т)

год(т)=1-досвід(Н(т)-Н(т+1))

Підключення до нашої сукупної небезпеки та спрощення:

годТ'(т)=1-П(т+1,λ)П(т,λ)досвід(-а1(т=7)-б1(т=14)-1(т=21))

iii) Нарешті, писати ймовірність журналу для моделей виживання (без цензури) дуже просто, коли ми маємо небезпеку та накопичувальну небезпеку:

лл(λ,а,б|т)=i=1N(журналгод(тi)-Н(тi))

І ось воно!

Існують зв'язки, що з'єднують наші точкові коефіцієнти небезпеки та ймовірності тривалості страхування: .а=-журнал(1-pа),б=-журнал(1-pа-pб)-журнал(1-pа),pc=1-(pа+pб)


Доказ - у пудингу. Давайте зробимо кілька моделювання та висновку, використовуючи власну семантику моделі lifeline .

from lifelines.fitters import ParametericUnivariateFitter
from autograd_gamma import gammaincln, gammainc
from autograd import numpy as np

MAX = 1e10

class InsuranceDischargeModel(ParametericUnivariateFitter):
    """
    parameters are related by
    a = -log(1 - p_a)
    b = -log(1 - p_a - p_b) - log(1 - p_a)
    p_c = 1 - (p_a + p_b)
    """
    _fitted_parameter_names = ["lbd", "a", "b"]
    _bounds = [(0, None), (0, None), (0, None)]

    def _hazard(self, params, t):
        # from (1.64c) in http://geb.uni-giessen.de/geb/volltexte/2014/10793/pdf/RinneHorst_hazardrate_2014.pdf
        return 1 - np.exp(self._cumulative_hazard(params, t) - self._cumulative_hazard(params, t+1))

    def _cumulative_hazard(self, params, t):
        lbd, a, b = params
        return -gammaincln(t, lbd) + a * (t > 7) + b * (t > 14) + MAX * (t > 21)


def gen_data():
    p_a, p_b = 0.4, 0.2
    p = [p_a, p_b, 1 - p_a - p_b]
    lambda_ = 18
    death_without_insurance = np.random.poisson(lambda_)
    insurance_covers_until = np.random.choice([7, 14, 21], p=p)
    if death_without_insurance < insurance_covers_until:
        return death_without_insurance
    else:
        return insurance_covers_until


durations = np.array([gen_data() for _ in range(40000)])
model = InsuranceDischargeModel()
model.fit(durations)
model.print_summary(5)
"""
<lifelines.InsuranceDischargeModel: fitted with 40000 observations, 0 censored>
number of subjects = 40000
  number of events = 40000
    log-likelihood = -78845.10392
        hypothesis = lbd != 1, a != 1, b != 1

---
        coef  se(coef)  lower 0.95  upper 0.95      p  -log2(p)
lbd 18.05026   0.03353    17.98455    18.11598 <5e-06       inf
a    0.50993   0.00409     0.50191     0.51794 <5e-06       inf
b    0.40777   0.00557     0.39686     0.41868 <5e-06       inf
"""

¹ розділ 1.2 тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.