Wie man die Punktzahl berechnet und das Ergebnis nach N Tagen vorhersagt
Angenommen, ich habe einen medizinischen Datensatz / EHR-Datensatz, der retrospektiv und in Längsrichtung angelegt ist. Das heißt, eine Person hat mehrere Messungen zu mehreren Zeitpunkten (in der Vergangenheit). Ich habe hier gepostet, konnte aber keine Antwort bekommen. Also, poste es hier
Dieser Datensatz enthält Informationen zur Diagnose des Patienten, zur Sterblichkeitsflagge, zu Labors, Aufnahmen und zum Konsum von Medikamenten usw.
Wenn ich nun Prädiktoren herausfinden möchte, die die Mortalität beeinflussen können, kann ich die logistische Regression verwenden (ob der Patient sterben wird oder nicht).
Mein Ziel ist es jedoch herauszufinden, welche Prädiktoren mir helfen können, vorherzusagen, ob eine Person in den nächsten 30 Tagen oder in den nächsten 240 Tagen sterben wird. Wie kann ich dies mithilfe von ML / Datenanalysetechniken tun?
Darüber hinaus möchte ich auch eine Punktzahl berechnen, die die Wahrscheinlichkeit angibt, dass diese Person in den nächsten 30 Tagen sterben wird. Wie kann ich die Punktzahlen berechnen? Irgendwelche Tutorials Links, wie diese Punktzahl abgeleitet wird?, Bitte?
Können Sie mir bitte die verschiedenen Analysetechniken mitteilen, mit denen ich dieses Problem angehen kann, und die verschiedenen Ansätze zur Berechnung der Punktzahl?
Ich würde gerne lesen und versuchen, solche Probleme zu lösen
Antworten
Dies könnte als "einfaches" binäres Klassifizierungsproblem angesehen werden. Ich meine, die Art des Problems ist "einfach", die Aufgabe selbst ist es sicherlich nicht ... Und ich werde nicht einmal die ernsten ethischen Probleme bezüglich seiner möglichen Anwendungen erwähnen!
Zunächst müssen Sie natürlich einen Eintrag in Ihren Daten für den Tod eines Patienten haben. Es ist mir nicht ganz klar, ob Sie diese Informationen haben? Es ist wichtig, dass jedes Mal, wenn ein Patient gestorben ist, dies in den Daten angegeben wird, da Sie sonst die beiden Klassen nicht unterscheiden können.
Das Design könnte also so aussehen:
- Eine Instanz repräsentiert jeweils eine einzelne Krankengeschichte $t$und es wird entweder als lebendig oder tot bei bezeichnet $t+N$ Tage.
- Dies erfordert ein Refactoring der Daten. Angenommen, die Daten erstrecken sich über einen Zeitraum von 0 bis$T$können Sie mehrere Zeitpunkte nehmen $t$ mit $t<T-N$ (zum Beispiel jeden Monat von 0 bis $T-N$). Beachten Sie, dass ich theoretisch andere Zeiten denke$t$ für den gleichen Patienten kann in den Daten verwendet werden, solange alle Instanzen konsistent die gleiche Dauer darstellen und ihre Merkmale und Bezeichnungen entsprechend berechnet werden.
- Das Entwerfen der Features ist sicherlich der schwierige Teil: Natürlich müssen die Features Werte für alle Instanzen haben, sodass Sie sich nicht auf bestimmte Tests verlassen können, die nur bei einigen Patienten durchgeführt wurden (gut, Sie können, aber es gibt eine Tendenz für diese Features ).
- Um ehrlich zu sein, bezweifle ich, dass dieser Teil zuverlässig durchgeführt werden kann: Entweder bestehen die Merkmale aus homogenen Standardindikatoren, aber dann sind diese Indikatoren wahrscheinlich schlechte Prädiktoren für den Tod im Allgemeinen; oder sie enthalten spezielle Diagnosetests für einige Patienten, aber dann sind sie nicht patientenübergreifend homogen, sodass das Modell voreingenommen sein und wahrscheinlich überanpassen wird.
Im Idealfall würde ich empfehlen, zwischen Trainings- und Testdaten aufzuteilen, bevor die Daten überhaupt auf diese Weise aufbereitet werden. In der Regel wird ein Zeitraum für Trainingsdaten und ein anderer für Testdaten ausgewählt.
Sobald die Daten vorbereitet sind, kann theoretisch jede binäre Klassifizierungsmethode angewendet werden. Natürlich kann ein probabilistischer Klassifikator verwendet werden, um eine Wahrscheinlichkeit vorherzusagen, aber dies kann irreführend sein. Seien Sie also sehr vorsichtig: Die Wahrscheinlichkeit selbst ist eine Vorhersage , sie kann nicht als die wahre Wahrscheinlichkeit interpretiert werden, dass der Patient stirbt oder nicht. Zum Beispiel ist bekannt, dass Naive Bayes empirisch immer extreme Wahrscheinlichkeiten angibt, dh nahe 0 oder nahe 1, und ziemlich oft ist es in seiner Vorhersage völlig falsch. Dies bedeutet, dass die vorhergesagte Wahrscheinlichkeit im Allgemeinen nur eine Vermutung ist und nicht zur Darstellung des Vertrauens verwendet werden kann.
[bearbeiten: Beispiel]
Nehmen wir an, wir haben:
- Daten für die Jahre 2000 bis 2005
- N = 1, dh wir untersuchen, ob ein Patient im nächsten Jahr stirbt.
- Ein einziger Indikator, zum Beispiel der Cholesterinspiegel. Natürlich hätten Sie in Wirklichkeit viele andere Funktionen.
- für jedes Mal $t$ In den Merkmalen stellen wir den "Testwert" für die letzten 2 Jahre bis zum laufenden Jahr dar $t$. Dies bedeutet, dass wir iterieren können$t$ von 2002 (2000 + 2) bis 2004 (2005-N)
Stellen wir uns die folgenden Daten vor (zur Vereinfachung gehe ich davon aus, dass die Zeiteinheit das Jahr ist):
patientId birthYear year indicator
1 1987 2000 26
1 1987 2001 34
1 1987 2002 18
1 1987 2003 43
1 1987 2004 31
1 1987 2005 36
2 1953 2000 47
2 1953 2001 67
2 1953 2002 56
2 1953 2003 69
2 1953 2004 - DEATH
3 1969 2000 37
3 1969 2001 31
3 1969 2002 25
3 1969 2003 27
3 1969 2004 15
3 1969 2005 - DEATH
4 1936 2000 41
4 1936 2001 39
4 1936 2002 43
4 1936 2003 43
4 1936 2004 40
4 1936 2005 38
Das würde sich in folgendes verwandeln:
patientId yearT age indicatorT-2 indicatorT-1 indicatorT-0 label
1 2002 15 26 34 18 0
1 2003 16 34 18 43 0
1 2004 17 18 43 31 0
2 2002 49 47 67 56 0
2 2003 50 67 56 69 1
3 2002 33 37 31 25 0
3 2003 34 31 25 27 0
3 2004 35 25 27 15 1
4 2002 66 41 39 43 0
4 2003 67 39 43 43 0
4 2004 68 43 43 40 0
Beachten Sie, dass ich die ersten beiden Spalten nur geschrieben habe, um zu zeigen, wie die Daten berechnet werden. Diese beiden sind nicht Teil der Features.
Um die Fragen zu klären, die der Benutzer als Antwort auf die richtige Lösung von Erwan gestellt hat, schlägt die Lösung vor, in der Zeit zurück zu gehen, um die Daten über eine Reihe von Zeitstempeln hinweg vorzubereiten.
Es wird mehrere Zeitpunkte geben, an denen die Eingabe alle verschiedenen Merkmale der Gesundheit, der Medikamente, der Berichte usw. des Patienten enthält. Sie müssen sehen, wie sie am besten in Repräsentationsvektoren konvertiert werden können. Die Bezeichnungen wären binär und geben an, ob der Patient nach t + N Tagen lebte. Dabei kann N 30,60,240 usw. betragen. 'T' selbst kann Woche für Woche oder Monat für Monat genommen werden.
Sobald die Daten auf diese Weise vorbereitet wurden, werden sie zu einer binären Klassifizierungsübung.
Die einzige zusätzliche Überlegung, die hinzugefügt werden kann, ist, dass es hier Elemente von RNN geben könnte. Die Trainingsdaten sind nicht unabhängig voneinander und können über mehrere Zeitstempel wiederkehrende Daten desselben Patienten enthalten. Möglicherweise besteht die Möglichkeit, diese Informationen zu erfassen, um die Situation besser zu modellieren.