Wie man die Punktzahl berechnet und das Ergebnis nach N Tagen vorhersagt

Nov 20 2020

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

2 Erwan Nov 21 2020 at 07:43

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.

2 Allohvk Nov 21 2020 at 14:30

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.