2016-04-19 10 views
0

Ich bin dabei, einige Daten für eine Überlebensanalyse zu reinigen, und ich versuche, es so zu machen, dass eine Person nur einen einzigen, anhaltenden Übergang von Symptom vorhanden (ss = 1) hat Symptom remittiert (ss = 0). Eine Person muss eine vollständige anhaltende Remission haben, damit es als eine Remission gilt. Abgesehen von statistischen Problemen/Problemen frage ich mich, wie ich die unten aufgeführten Probleme angehen kann.Daten Reinigung für Survival Analysis

Ich habe versucht, das Problem in kleinere, überschaubarere Operationen und Objekte auseinander zu brechen, aber die Lösungen, die ich komme, zwingen mich bedingte Formatierung basierend auf Zeilen direkt über und unter dem fehlenden Wert zu verwenden und Ehrlich gesagt, bin ich etwas verloren, wie das geht. Ich würde gerne ein wenig Anleitung, wenn Sie denken, dass Sie wissen, eine gute Technik, die ich verwenden kann, experimentieren mit, oder wenn Sie wissen, gute Suchbegriffe, die ich verwenden kann, wenn Sie eine Lösung suchen.

Die Details sind unten:

#Fake dataset creation 
id <- c(1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4) 
time <-c(0,1,2,3,4,5,6,0,1,2,3,4,5,6,0,1,2,3,4,5,6,0,1,2,3,4,5,6) 
ss <- c(1,1,1,1,NA,0,0,1,1,0,NA,0,0,0,1,1,1,1,1,1,NA,1,1,0,NA,NA,0,0) 
mydat <- data.frame(id, time, ss) 

* fett gedruckt und unterstrichen Zeichen repräsentieren Änderungen aus dem Datensatz über

Das Ziel hier ist es, einen Weg zu finden, die NA-Werte für ID # 1 (Variable erhalten ss) wie folgt aussehen: 1,1,1,1, , 0,0

ID # 2 (Variable ss) wie folgt aussehen: 1,1,0, , 0,0,0

ID # 3 (Variable ss) wie folgt aussehen: 1,1,1,1,1,1, NA (keine Änderung, da die Zeile mit NA gelöscht wird schließlich)

ID # 4 (Variable ss) wie folgt aussehen: 1,1, , , , 0,0 (dies mehrere Änderungen erfordern und Ich erwarte, dass es am schwierigsten zu bewältigen ist).

+0

Gibt es eine operationale Definition von _sustained_ in Bezug auf Zeit und nicht später Beweise Rezidiv? Werden wir die Zeit unter Beobachtung des Falles ausschließen, deren Remission länger als diese Zeit von der Risikogruppe entfernt ist? –

+0

Sustained in diesem Fall bedeutet, dass eine Person angeblich symptomfrei war (ss = 0) bis zum letzten Zeitpunkt. Fehlende Daten, natürlich, wirft einen Schraubenschlüssel in die Zahnräder, aber das beiseite für den Moment, ich bin daran interessiert, Code zu entwickeln, um die oben skizzierte Aufgabe zu erfüllen. –

+0

Ich gehe davon aus, dass dies in der Analyse von behandelten Krebs mit wahrscheinlich tödlichen (oder teuren) Ergebnis für das Wiederauftreten ist. Ich würde den Ausdruck "nachhaltig" fallen lassen, da "Überleben" so mit der Beobachtungszeit verwechselt wird und die Zeit bei t = 1 auf derselben Grundlage wie die Zeit bei t = 10 betrachtet wird. Beziehe dich stattdessen auf das rezidivfreie Überleben. Es ist bereits eine ausreichend verwirrende Statistik, da ein Ereignis von grundlegender Bedeutung (Tod aus anderen Gründen) als Zensurprozess neu gefasst wurde. –

Antwort

0

Ich glaube nicht wirklich, dass Sie alle "Edge Case" berücksichtigt haben. Was tun mit zwei NA's in einer Reihe am Ende einer Periode oder 4 oder 5 NAs hintereinander. Dies werden Sie die gewünschte Lösung in Ihrem kleinen Testfall jedoch mit dem na.locf -function:

require(zoo) 
fillNA <- function(vec) { if (is.na(tail(vec, 1))){ vec } else { vec <- na.locf(vec) } 
         } 

> mydat$locf <- with(mydat, ave(ss, id, FUN=fillNA)) 
> mydat 
    id time ss locf 
1 1 0 1 1 
2 1 1 1 1 
3 1 2 1 1 
4 1 3 1 1 
5 1 4 NA 1 
6 1 5 0 0 
7 1 6 0 0 
8 2 0 1 1 
9 2 1 1 1 
10 2 2 0 0 
11 2 3 NA 0 
12 2 4 0 0 
13 2 5 0 0 
14 2 6 0 0 
15 3 0 1 1 
16 3 1 1 1 
17 3 2 1 1 
18 3 3 1 1 
19 3 4 1 1 
20 3 5 1 1 
21 3 6 NA NA 
22 4 0 1 1 
23 4 1 1 1 
24 4 2 0 0 
25 4 3 NA 0 
26 4 4 NA 0 
27 4 5 0 0 
28 4 6 0 0 
+0

Vielen Dank für Ihre Antwort. Es löst genau das Problem, mit dem ich zu kämpfen hatte. –

+0

Sie waren in der Vergangenheit unglaublich hilfreich und so fragte ich mich, ob Sie vielleicht etwas über die folgende (leicht) modifizierte Frage haben: http://stackoverflow.com/questions/41251553/data-cleaning-for-survival- Analyse-mit-Teilnehmer-eigenen-Daten-zu-impute-val –