Ich habe versucht, einfache Überlebensmodell from here (the first one in introduction) Form PyMC 2 PyMC 3 zu portieren. Allerdings fand ich keine Entsprechung zu "beobachteten" Dekorator und mein Versuch, eine neue Verteilung schreiben fehlgeschlagen. Kann jemand ein Beispiel geben, wie ist das in PyMC 3 gemacht?Überlebensanalyse in PyMC 3
5
A
Antwort
4
Dies ist eine schwierige Port und erfordert drei neue Konzepte:
- Verwendung des
theano
Tensor - Verwendung des
DensityDist
- eine
dict
alsobserved
Dieser Code Passing stellt das entsprechende Modell als PyMC2-Version zur Verfügung, die Sie oben verlinkt haben:
import pymc3 as pm
from pymc.examples import melanoma_data as data
import theano.tensor as t
times = data.t # not to be confused with the theano tensor t!
failure = (data.censored==0).astype(int)
with pm.Model() as model:
beta0 = pm.Normal('beta0', mu=0.0, tau=0.0001)
beta1 = pm.Normal('beta1', mu=0.0, tau=0.0001)
lam = t.exp(beta0 + beta1*data.treat)
def survival_like(failure, value):
return t.sum(failure * t.log(lam) - lam * value)
survive = pm.DensityDist('survive', survival_like,
observed={'failure': failure, 'value': times})
with model:
start = pm.find_MAP()
step = pm.NUTS(scaling=start)
trace = pm.sample(10000, step=step, start=start)
pm.traceplot(trace);
Ausgabe wie folgt:
Verwandte Themen
- 1. Wie modelliere ich eine Mischung aus 3 Normalen in PyMC?
- 2. Formating Leben Tabellen in Überlebensanalyse verwenden
- 3. Parallelisierung von PyMC
- 4. Anaconda Pymc Installieren
- 5. Berechnen AIC in Überlebensanalyse (Survfit/Coxph)
- 6. Definieren einer benutzerdefinierten PyMC-Distribution
- 7. Lösen inverser Probleme mit PyMC
- 8. Wie beschleunigt man PyMC Markov Modell?
- 9. PyMC: Unter Ausnutzung der spärlichen Modellstruktur in Adaptive Metropolis MCMC
- 10. Wie kann ich ein diskretes Markov-Modell mit Pymc erstellen?
- 11. Wie stellt Pymc die vorherige Verteilung und Wahrscheinlichkeitsfunktion dar?
- 12. pymc: Inferring Parameter basierend auf Funktionen von Observablen
- 13. Holen Sie sich die Handlung unter Berücksichtigung der Zensur für Überlebensanalyse
- 14. MongoDB in Kohana 3
- 15. Fehlerbehandlung in Swift 3
- 16. Radiobox in MVC 3
- 17. Kontaktformular in Rails 3
- 18. Core.php in CakePHP 3
- 19. NSNotifications in Swift 3
- 20. DISPATCH_QUEUE_T in Swift 3
- 21. Infinity in ActionScript 3
- 22. Time_tag in Schienen 3
- 23. Routing in MVC 3
- 24. Fremdschlüssel in Rails 3
- 25. Seitennummerierung in Codeigniter 3
- 26. Entsprechung in ActionScript 3
- 27. Observe_field in Schienen 3
- 28. Python in OpenOffice 3
- 29. Formularüberprüfungsfehler in Rails 3
- 30. insert_id in Kohana 3
Wenn 'beobachtet passing = {...}', wie sind die Argumente 'survival_like' geben? Müssen die Argumente in alphabetischer Reihenfolge sein? Vielen Dank! –
Ich glaube nicht, dass es wichtig ist. Aber Sie könnten einen einfachen Test zur Bestätigung durchführen. – inversion
Danke! Ich konnte in die PyMC-Codebasis eintauchen, um zu sehen, dass "logp" mit "** data" aufgerufen wird, so dass die Werte aus dem dict unabhängig von der Reihenfolge an das richtige Argument übergeben werden. https://github.com/pymc-devs/pymc3/blob/master/pymc3/model.py#L535 –