In SVM-Klassifizierungsanalysen (linearer Kernel) eines Datensatzes der Genexpression (~ 400 Variablen / Gene) für jeweils ~ 25 Fälle und Kontrollen stelle ich fest, dass die auf Genexpression basierenden Klassifikatoren sehr gute Leistungsmerkmale aufweisen. Die Fälle und Kontrollen unterscheiden sich nicht signifikant für eine Reihe von kategorialen und kontinuierlichen klinischen / demografischen Variablen (gemäß den genauen oder t-Tests von Fisher), aber sie unterscheiden sich signifikant für das Alter.
Gibt es eine Möglichkeit zu zeigen, dass die Ergebnisse der Klassifizierungsanalyse vom Alter beeinflusst werden oder nicht?
Ich denke darüber nach, die Genexpressionsdaten auf Hauptkomponenten zu reduzieren und eine Spearman-Korrelationsanalyse der Komponenten gegen das Alter durchzuführen.
Ist das ein vernünftiger Ansatz? Alternativ kann ich die Korrelation zwischen dem Alter und den in der SVM-Analyse erhaltenen Wahrscheinlichkeitswerten für die Klassenzugehörigkeit überprüfen.
Vielen Dank.
quelle
Antworten:
Für diese Daten gibt es mindestens zwei Möglichkeiten. Eine Möglichkeit besteht darin, dass Ihre Microarrays keinerlei Krankheitsmarker enthalten. Sie enthalten jedoch Informationen zum Alter, und da in Ihrem Fall die Kranken- und Kontrollpopulationen unterschiedlich alt sind, entsteht die Illusion einer guten Klassifizierungsleistung. Eine andere Möglichkeit besteht darin, dass die Microarrays Krankheitsmarker enthalten, und darüber hinaus konzentriert sich SVM genau auf diese Marker.
Es scheint, dass die Hauptkomponenten der Daten bei beiden Möglichkeiten mit dem Alter korrelieren können. Im ersten Fall liegt es daran, dass das Alter das ist, was die Daten ausdrücken. Im zweiten Fall liegt es daran, dass die Daten die Krankheit ausdrücken und diese Krankheit selbst mit dem Alter korreliert (für Ihren Datensatz). Ich glaube nicht, dass es eine einfache Möglichkeit gibt, den Korrelationswert zu betrachten und daraus zu schließen, um welchen Fall es sich handelt.
Ich könnte mir verschiedene Möglichkeiten vorstellen, um den Effekt unterschiedlich zu bewerten. Eine Möglichkeit besteht darin, Ihr Trainingsset in gleichaltrige Gruppen aufzuteilen. In diesem Fall hat die normale Klasse für "junge" Altersgruppen mehr Trainingsbeispiele als die Krankheitsklasse und umgekehrt für die älteren Altersgruppen. Solange es jedoch genügend Beispiele gibt, sollte dies kein Problem sein. Eine andere Möglichkeit besteht darin, dasselbe mit den Testsätzen zu tun, dh festzustellen, ob der Klassifikator bei älteren Patienten häufiger „krank“ sagt. Beide Optionen können schwierig sein, da Sie nicht so viele Beispiele haben.
Eine weitere Möglichkeit besteht darin, zwei Klassifikatoren zu trainieren. Im ersten Fall ist das Alter das einzige Merkmal. Es scheint, dass dies eine AUC von 0,82 hat. Im zweiten Fall werden das Alter und die Microarray-Daten angezeigt. (Es scheint, dass Sie derzeit einen anderen Klassifikator trainieren, der nur die Microarray-Daten verwendet, und Sie erhalten AUC 0,95. Das explizite Hinzufügen der Altersfunktion verbessert wahrscheinlich die Leistung, sodass die AUC sogar noch höher ist.) Wenn der zweite Klassifikator eine bessere Leistung als erzielt Erstens weist dies darauf hin, dass das Alter nicht das einzige ist, was für diese Daten von Interesse ist. Basierend auf Ihrem Kommentar beträgt die Verbesserung der AUC 0,13 oder mehr, was fair erscheint.
quelle