Wie hoch ist die Wahrscheinlichkeit für diesen Prozess?

10

Ein Patient wird ins Krankenhaus eingeliefert. Ihre Aufenthaltsdauer hängt von zwei Dingen ab: der Schwere ihrer Verletzung und der Höhe ihrer Versicherungsbereitschaft, um sie im Krankenhaus zu halten. Einige Patienten werden vorzeitig abreisen, wenn ihre Versicherung beschließt, die Zahlung für ihren Aufenthalt einzustellen.

Nehmen Sie Folgendes an:

1) Die Verweildauer ist poisson-verteilt (nehmen Sie dies vorerst an, es kann eine realistische Annahme sein oder nicht) mit dem Parameter .λ

2) Verschiedene Versicherungspläne decken Aufenthalte von 7, 14 und 21 Tagen ab. Viele Patienten werden nach 7,14 oder 21 Tagen abreisen (weil ihre Versicherung ausläuft und sie gehen müssen).

Wenn ich Daten aus diesem Prozess erhalten würde, könnte dies wie folgt aussehen:

Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen können, gibt es Spitzen an der 7-, 14- und 21-Tage-Marke. Dies sind Patienten, die nach Beendigung ihrer Versicherung abreisen.

Die Daten können eindeutig als Mischung modelliert werden. Es fällt mir schwer, die Wahrscheinlichkeit für diese Verteilung aufzuschreiben. Es ist wie ein null aufgeblasener Poisson, aber die Inflation liegt bei 7, 14 und 21.

Wie hoch ist die Wahrscheinlichkeit für diese Daten? Was ist der Denkprozess hinter der Wahrscheinlichkeit?

Demetri Pananos
quelle
Zu Beginn müssen Sie die Wahrscheinlichkeiten der erzwungenen Abgangszeiten von 7, 14 und 21 Tagen kennen.
BruceET
1
Für mich klingt dies wie eine Mischung aus einem Poisson und drei rechtsabgeschnittenen (bei 7, 14 und 21) Poisson-Verteilungen. Das Aufschreiben ist ein weiterer Schritt.
Carsten
@BruceET Ich werde eine Bayes'sche Inferenz für dieses Modell durchführen, daher möchte ich es im allgemeinsten Fall aufschreiben.
Demetri Pananos

Antworten:

9

In diesem Fall glaube ich, dass ein Weg zu einer Lösung besteht, wenn wir unseren Hut für die Überlebensanalyse aufsetzen. Beachten Sie, dass wir, obwohl dieses Modell keine zensierten Probanden hat (im traditionellen Sinne), dennoch eine Überlebensanalyse verwenden und über die Gefahren von Probanden sprechen können.

Wir müssen drei Dinge in dieser Reihenfolge modellieren: i) die kumulative Gefahr, ii) die Gefahr, iii) die logarithmische Wahrscheinlichkeit.

i) Wir machen Teil i) in Schritten. Was ist die kumulative Gefahr einer Poisson-Zufallsvariablen? Für eine diskrete Verteilung gibt es zwei Möglichkeiten, sie zu definieren¹, aber wir werden die Definition . Die kumulative Gefahr für ist alsoH(t)H(t)=logS(t)TPoi(λ)

HT(t)=log(1Q(t,λ))=logP(t,λ)

wobei die obere bzw. untere regulierte Gammafunktion ist.Q,P

Jetzt wollen wir die "Gefahren" der ablaufenden Versicherung hinzufügen. Das Schöne an kumulativen Gefahren ist, dass sie additiv sind, also müssen wir einfach zu den Zeiten 7, 14, 21 "Risiken" hinzufügen:

HT(t)=logP(t,λ)+a1(t>7)+b1(t>14)+c1(t>21)

Heuristisch gesehen unterliegt ein Patient einem Poisson-Hintergrundrisiko und dann punktuellen Risiken bei 7, 14 und 21. (Da dies eine kumulative Gefahr darstellt, akkumulieren wir diese punktuellen Risiken, daher das .) Wir Ich weiß nicht, was und sind, aber wir werden sie später mit unseren Wahrscheinlichkeiten für das Auslaufen der Versicherung verbinden.>a,bc

Da wir wissen, dass 21 die Obergrenze ist und alle Patienten danach entfernt werden, können wir auf unendlich setzen.c

HT(t)=logP(t,λ)+a1(t>7)+b1(t>14)+1(t>21)

ii) Als nächstes verwenden wir die kumulative Gefahr, um die Gefahr . Die Formel dafür lautet:h(t)

h(t)=1exp(H(t)H(t+1))

Unsere kumulative Gefahr einstecken und vereinfachen:

hT(t)=1P(t+1,λ)P(t,λ)exp(a1(t=7)b1(t=14)1(t=21))

iii) Schließlich ist das Schreiben der Protokollwahrscheinlichkeit für Überlebensmodelle (ohne Zensur) sehr einfach, sobald wir die Gefahr und die kumulative Gefahr haben:

ll(λ,a,b|t)=i=1N(logh(ti)H(ti))

Und da ist es!

Es gibt die Beziehungen, die unsere punktuellen Gefährdungskoeffizienten und die Wahrscheinlichkeiten der Versicherungslängen verbinden: .a=log(1pa),b=log(1papb)log(1pa),pc=1(pa+pb)


Der Beweis ist im Pudding. Lassen Sie uns einige Simulationen und Schlussfolgerungen unter Verwendung der benutzerdefinierten Modellsemantik von Lebenslinien durchführen .

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
"""


¹ siehe Abschnitt 1.2 hier

Cam.Davidson.Pilon
quelle