Dieser Artikel wurde maschinell übersetzt.
C#
Verwendung von Überlebensanalysen
Überleben Analyse (SA) ist eine Disziplin der Statistiken, die Schätzung der Zeit zu Veranstaltungen im Mittelpunkt. Sie gelten in der Regel überleben Analysemethoden für klinischen Studien um zu bestimmen, die Wirksamkeit bestimmter Medikamente (Zeit, um geduldig Tod), Zuverlässigkeit von Software-Systemen (Zeit bis zum Versagen) und Kredit-Analysen (Uhrzeit Kreditausfall).
Pharmazeutische klinische Studien mit zwei Gruppen von Patienten sind ein hervorragendes Beispiel dafür, wie dies funktionieren kann. Die Kontrollgruppe Mitglieder verwaltet ein Placebo. Die Test-Gruppe-Mitglieder erhalten das experimentelle Medikament, das für die Krankheit. Überleben Analyse-Methoden werden angewendet, um festzustellen, ob ein statistisch signifikanter Unterschied im Patienten überleben zwischen den beiden Gruppen. Die "time to" Veranstaltung ist in diesem Fall die Zeit vom Beginn der Studie bis Patienten sterben.
Um Sie freizulegen, Verwendung von SA, werde ich die grundlegenden Konzepte zusammen mit eine C#-Implementierung eine häufig verwendete Schätzmethode, genannt den Kaplan-Meier-Estimator behandeln. Ich verwende ein Real-World-Beispiel der Einschätzung der Wahrscheinlichkeit des Überlebens von mobilen Anwendungen.
Stellen Sie sich vor, eine Software-Entwicklungsgesellschaft produziert zwei separate mobile Anwendungen, die unter dem Titel X und Y. Jeder wird von getrennten Teams entwickelt. Die Firma ist gespannt, wie robust die mobilen Anwendungen sind zu lernen und um festzustellen, ob eine Anwendung deutlich weniger robust ist und mehr Aufwand erfordert um seine Zuverlässigkeit zu verbessern.
Zu einem bestimmten Zeitpunkt kann viele Instanzen von X und Y lebendig und aktiv auf Kunden mobilen Geräten. Somit ist eine mobile Anwendung abstürzen, was am interessantesten ist. Längere Fristen an das Ereignis werden in diesem Fall zeigen, die Anwendung ist robuster bzw. hat bessere Überlebensfähigkeit.
In der Demo-Programm, werde ich zuerst die Überlebensdaten für mobile Anwendungen, X und Y anzeigen (siehe Abbildung 1). Die Daten zeigen, dass beide Anwendungen mit IDs reicht von null bis neun von 10 verschiedenen Benutzern ausgeführt wurden. In meinem Beispiel kann eine Anwendung entweder Absturz (beschrieben durch Ereignis = app Crash im Screenshot) oder erhalten vom Benutzer geschlossen (beschrieben durch Ereignis = app aus). Der Tag, an dem das Ereignis eintritt, wird auch aufgezeichnet.
Abbildung 1 die Survival-Analyse-Demo anzeigen Lebenszyklus von Mobile Apps
Grundkonzepte der SA
Das grundlegende Konzept in SA ist die Überlebensfunktion. Dieses wird häufig von S(t) bezeichnet. Wenn X eine Zufallsvariable (eine Variable ist, deren Werte Ergebnisse, die auf der Grundlage von Chance sind), darstellt die Ereigniszeit, dann S(t) = Pr (X > t). Mit anderen Worten, ist S(t) die Wahrscheinlichkeit für das Überleben nach der Zeit t. S(0) wird definiert, um 1 zu sein. Die Überlebensfunktion bezieht sich auf die Lebensdauer-Verteilungsfunktion. Dies ist in der Regel gekennzeichnet durch F(t) und ist definiert als F(t) = Pr (X<= t), das heißt, die Wahrscheinlichkeit, die das Ereignis aufgetreten ist, bis zum Zeitpunkt t. Daher F(t) = 1 – S(t). Der Veranstaltung Dichte Funktion f(t) ist dann definiert dF (t) / dt — die erste Ableitung des F(t), wenn F(t) differenzierbar ist. F(t) kann daher als die Rate des Ereignisses (pro Zeiteinheit) betrachtet werden.
Die Hazardfunktion, ein anderes Grundkonzept, ist gleich f(t)/S(t) und die Ereignisrate zum Zeitpunkt t für Personen, die zum Zeitpunkt t noch am Leben sind.
Sie können angeben Überlebensfunktionen parametrisch, eine Explicit-Funktion oder eine Familie von Funktionen. Sie können auch sie nicht parametrisch aus vorhandenen Daten ableiten ohne eine Form von parametrisierten geschlossen. Eine Semi-parametrische Spezifikation, die eine Mischung zwischen parametrische und nicht-parametrische Spezifikation ist, ist auch möglich. Die Exponentialverteilung ist eine einfache und beliebte parametrisierten Funktion Überlebensfunktionen aufgrund seiner ansprechenden mathematischen Eigenschaften zu beschreiben.
Z. B. S(t) = exp(-0.05t) ist ein Überlebensfunktion aus einer Paramterized-Exponentialverteilung Datenpunkte in Abbildung 2. Die Überlebensfunktionen des Vordrucks S(t) = exp(-at) (wo eine ist, Steuern die Hazardrate Parameter beschreiben die Verteilung). Die Lebensdauer, die Verteilungsfunktion durch F(t) gegeben ist = 1 – S(t) = 1 – exp(-at). Abbildung 2 hilft uns Verhalten Überlebensfunktionen im Laufe der Zeit zu visualisieren.
Abbildung 2 Überlebensfunktionen im Laufe der Zeit Verhalten
Arbeiten mit einem bestimmten parametrisches Modell, können ist-Daten Sie zur Schätzung der Modellparameter. Im Falle der Exponentialverteilung, ist der Parameter ein. Eine Möglichkeit, dies zu tun ist, maximale Wahrscheinlichkeit Schätzung (MLE) Methoden zu verwenden, aber das ist ein anderes Thema ganz.
Ich werde mich konzentrieren auf die Implementierung nichtparametrische Schätzung für die Überlebensfunktion. Das heißt, wird nicht ich vordefinierte Modell für die Überlebensfunktion und schätzen die Modellparameter. Stattdessen werde ich die Überlebensfunktion direkt von beobachteten Daten abgeleitet werden. Bevor ich beschreiben, wie man das macht, habe ich ein weiteres wichtiges Konzept der SA genannt Zensur zu erklären.
Zensur tritt auf, wenn einige Beobachtungen im Dataset unvollständig sind. Irgendwann haben Sie Überblick über die Artikel beobachteten verloren. In meinem Beispiel würde dies bedeuten, dass eine mobile Anwendung seiner Ausführung endete ohne Absturz (schwerwiegender Ausnahme). Die Anwendung wurde erfolgreich vom Benutzer geschlossen. Zwar kann aus anderen Gründen eine Anwendung ohne Absturz beendet, werden vermutlich eine Anwendung abstürzt oder vom Benutzer geschlossen wird.
Es gibt zwei wesentliche Arten für Zensur — rechts zensierte und linke Zensur. Ganzer Zensur tritt auf, wenn die Startzeit ist bekannt, aber die Ereigniszeit fehlt. Linke Zensur tritt auf, wenn Ereigniszeit vorhanden ist, aber die Startzeit fehlt. Ganzer Zensur ist Auftritt in meinem Beispiel.
Mit Hilfe des Kaplan-Meier-Estimators die Überlebensfunktion schätzen
Die Kaplan-Meier (KM)-Schätzer ist ein nicht-parametrische Algorithmus, der die Überlebensfunktion schätzt. Ableitung des KM-Estimators beinhaltet die Verwendung von erweiterte Mathematik, einschließlich der Martingal-Theorie und zählen Prozesse, und sprengt den Rahmen dieses Artikels. Implementierung des KM-Estimators hingegen ist unkompliziert und basiert auf zählt.
Betrachten Sie computing KM-Schätzer für das Überleben der mobilen Anwendung X. Der KM-Estimator muss zu verfolgen drei verschiedenen Punkten:
- Wie viele Instanzen der mobilen Anwendung X sind noch unternehmungslustig. Dies wird mithilfe der Variable Risiko in meiner Implementierung dargestellt.
- Die Anzahl der Instanzen, die zum Absturz werden. Dies wird in der abgestürzten Variablen verfolgt.
- Die Anzahl der Instanzen, die Ausführung ordnungsgemäß abgeschlossen. Diese werden gezählt, mit der Variablen zensiert.
Die folgenden Codezeilen (für mobilen Einsatz X) verwenden die CrashMetaData-Klasse zum Codieren der Überlebensdaten vertreten Abbildung 3:
var appX = new CrashMetaData[] {new CrashMetaData{UserID = 0,
CrashTime = 1, Crashed = false},
new CrashMetaData{UserID = 1,
CrashTime = 5, Crashed = true},
new CrashMetaData{UserID = 2,
CrashTime = 5, Crashed = false},
new CrashMetaData{UserID = 3,
CrashTime = 8, Crashed = false},
new CrashMetaData{UserID = 4,
CrashTime = 10, Crashed = false},
new CrashMetaData{UserID = 5,
CrashTime = 12, Crashed = true},
new CrashMetaData{UserID = 6,
CrashTime = 15, Crashed = false},
new CrashMetaData{UserID = 7,
CrashTime = 18, Crashed = true},
new CrashMetaData{UserID = 8,
CrashTime = 21, Crashed = false},
new CrashMetaData{UserID = 9,
CrashTime = 22, Crashed = true}};
Abbildung 3-Überlebensdaten mobilen Anwendung X
UserID | Tage | Abgestürzt | Zensiert |
0 | 1 | X | |
1 | 5 | X | |
2 | 5 | X | |
3 | 8 | X | |
4 | 10 | X | |
5 | 12 | X | |
6 | 15 | X | |
7 | 18 | X | |
8 | 21 | X | |
9 | 22 | X |
Die Überlebensdaten enthält Ereigniszeit in Tagen (durch CrashTime kodiert) und Informationen, ob das Ereignis bezieht sich auf eine Anwendung Absturz oder Zensur. Wenn Crashed gleich True ist, ist die Anwendung abgestürzt. Andernfalls die Anwendung ordnungsgemäß geschlossen (das heißt, wurde zensiert). Darüber hinaus verfolgt eine Benutzer-ID-Feld die Instanz der Anwendung.
Die KM-Schätzer wird in der EstimateKaplanMeier-Methode implementiert. Diese Partitionen die Daten zu verschiedenen überschneidungsfreien Zeitintervalle basierend auf Zeiträume zu Veranstaltungen (in meinem Beispiel ist dies ein Absturz des Programms). Es gibt Aufzeichnungen über den Grafen in jedem Intervall.
Es ist wichtig zu beachten, die Anzahl der wie viele Anwendungen sind immer noch oben und Ausführung erfolgt direkt vor dem Ereignis (Dies ist aufgrund der mathematischen Formulierung des Zählens Prozesse). So waren im ersten Intervall in meinem Beispiel umfasst 0 bis 5 Tage, 9, 10 Instanzen oben und läuft nur vor Tag 5 (eine Instanz fertig laufen zur Zeit 1). Im Intervall bis zu und einschließlich Tag 5 hatte ich einen Absturz (definiert das Intervall) und 2 Instanzen finishing (an den Tagen 1 und 5). Siehe Abbildung 4.
Abbildung 4 Tag Abständen erstellt von der KM-Estimator
Die KM-Schätzung für die Überlebensfunktion ist dann das Produkt über alle verschiedenen Abständen von der überleben, abgeleitet von den Grafen in den Partitionen:
1 – (stürzte im Intervall) / (bei Risiko kurz vor dem Ende des Intervalls)
Die EstimateKapalanMeier-Methode gibt ein Objekt der Klasse SurvivalCurve. Dies entspricht die geschätzten Überlebensfunktion. Die Ausgabe ist eine Sprungfunktion. Jeder Schritt ist der Wert der Überlebensfunktion in einer entsprechenden Intervall (als geschätzt vom KM Estimator). Abbildung 5 gehören die Survival Analysis-Demo-Programm-Ausgabe für das SurvivalCurve Objekt (für beide Anwendungen, X und Y).
Abbildung 5 Survival Analysis-Demo-Ausgabe für KM-Schätzungen für X- und Y-Anwendungen
Abbildung 6 umfasst ein Grundstück von der Überlebensfunktion Schritt für mobile Anwendung X geschätzt. Im Plot kennzeichnen kurze vertikale Linien in jedem Schritt mehrere Vorkommen des Absturzes während des Intervalls der Schritt entspricht.
Abbildung 6 KM Schätzung der Überlebensfunktion für mobilen Einsatz X
Die Schätzung können Sie ableiten, die mediane Überlebenszeit oder die Zeit bis die Hälfte der Instanz lebendig werden. Dies sollte zu einem bestimmten Zeitpunkt in der Zeit zwischen 12 Tagen auftreten (wo ist die Schätzung des Überlebens-Wahrscheinlichkeit 0.711 > 0,5) und 18 (wo die Überlebens-Wahrscheinlichkeit ist 0.474 < 0,5). Es gibt ein paar Ansätze in der SA-Literatur, die beschreiben, wie genau diese Menge zu berechnen weil es in der Regel zwischen zwei Schritten fällt.
Ich werde die mediane Überlebenszeit als die minimale Überlebenszeit definieren, für die die Überlebensfunktion weniger als 0,5 ist, ist was für mobile Anwendung X eine mediane Überlebenszeit von 18 Tagen führt. Die Interpretation dieser Menge ist, die tagsüber 18, die Hälfte der mobilen Instanzen von X-Absturz und halbe Aufenthalt auf und laufen. Diese Implementierung berechnet die mediane Überlebenszeit in der Methode GetMedianSurvivalTime.
Eine andere Frage, die Sie beantworten können, anhand der KM-Schätzungen ist ob es ein Unterschied in die Überlebensfähigkeit von zwei (oder mehr) verschiedene Anwendungen. Eine Möglichkeit, sich dieser Frage zu nähern ist die KM-Schätzungen für jede Anwendung visuell dargestellt. Diese Art der Handlung wird beschrieben Abbildung 7, und vergleicht die geschätzten Überlebensfunktionen Anwendungen X und Y.
Abbildung 7 KM Schätzungen für Mobile Anwendungen, X und Y
Die grüne Kurve stellt Überlebensfunktion Anwendung X und die blaue Kurve dar Überlebensfunktion Anwendung Y.
Vom Grundstück können Sie sehen, dass die Überlebensfunktion Anwendung X die Überlebensfunktion Anwendung Y tops. Daher können Sie ableiten, Anwendung X hat bessere Überlebensfähigkeit als Anwendung Y und ist somit robuster.
Während Visualisierung Überlebensfunktionen helfen kann, bei der Bestimmung der Überlebensfähigkeit Unterschiede, sind teilweise nicht so eindeutig. Glücklicherweise gibt es ein statistischer Ansatz für solche Unterschiede in eine formelle und strenge Art, genannt, das Log-Rank-Test testen. Dies ist ein Algorithmus, der testet, ob es ein signifikanten Unterschied zwischen zwei (oder mehr) überleben-Distributionen nicht-parametrische gewissermaßen. Die SA-Literatur beinhaltet eine ausführliche Diskussion über diese und die meisten SA statistische Bibliotheken umfassen Log-Rank-Test-Implementierungen.
Es sei darauf hingewiesen, es gibt einen anderen beliebten Algorithmus um die Überlebensfunktion in einen nicht-parametrische Weg den Nelson-Aalen (NA)-Estimator genannt zu schätzen. Die NA schätzt die kumulative Hazardfunktion von Überlebensdaten. Sie können dann die Überlebensfunktion ableiten, von dieser Schätzung mit einer mathematischen Formel, die er auf die kumulierte Hazardfunktion verbindet. Weitere Informationen über diese Schätzer finden Sie in der SA-Literatur.
Zusammenfassung
Ich habe grundlegende Konzepte und die Terminologie von der statistischen Abteilung der überleben Analyse eingeführt. Ich zeigte, wie den nicht-parametrische Kaplan-Meier-Estimator implementieren und wendete sie auf ein Beispiel vergleicht die Robustheit von mobilen Anwendungen. Dieser Schätzer kann helfen, festzustellen, ob es ein Unterschied in der Überlebensfähigkeit der beiden Anwendungen. Ich erwähnte auch einen strengen statistischen Test checken für Unterschiede, den Log-Rank-Test genannt. Eine andere Menge, die ich unter Zugrundelegung des KM-Estimators abgeleitet ist der Median der Überlebenszeit, die Überlebensfähigkeit Unterschiede zwischen Anwendungen X und Y noch unterstreicht.
Schließlich habe ich den Nelson-Aalen-Estimator als alternative nicht-parametrische Methode zur Schätzung der Überlebensfunktion erwähnt. Es nicht direkt die Überlebensfunktion wie KM-Schätzer schätzen, sondern vielmehr schätzt die kumulative Hazardfunktion. Sie können dann die Überlebensfunktion von der kumulierte Hazardfunktion ableiten.
Dies kratzt nur an der Oberfläche im reichen Bereich der SA. Die Anwendungen umfassen Bereiche aus Medizin, Technik und deren Methoden und Algorithmen in viele statistische Pakete implementiert werden. Mit der Verbreitung von mobilen Anwendungen und Software als Service-Enterprise-Bereitstellungen erwarten ich SA-Methoden eine Rolle bei der Überwachung und Verbesserung der Qualität von solchen Einsätzen spielen können.
Zvi Topol arbeitet als leitende Wissenschaftlerin im marketing Analytics in New York City. Er entwirft und gilt nicht-linearen groß angelegte Optimierungsalgorithmen und statistische Methoden zur Verbesserung der marketing-Planung für große Fortune 500-Unternehmen.
Unser Dank gilt dem folgenden technischen Experten für die Durchsicht dieses Artikels: Dr. James McCaffrey (Microsoft Research)