2016-07-01 10 views
-1

Mit dem ranger Paket zu lesen, ich das folgende Skript ausführen:Wie die Indizes von der Vorhersage Ausgabe von predict.ranger, R

rf <- ranger(Surv(time, Y) ~ ., data = train_frame[1:50000, ], write.forest = TRUE, num.trees = 100) 

test_frame <- train_frame[50001:100000, ] 
preds <- predict(rf, test_frame) 
chfs <- preds$chf 
plot(chfs[1, ]) 

Die kumulative Hazard-Funktion Indizes hat 1-36 auf der X-Achse. Offensichtlich entspricht dies der Zeit, aber ich bin nicht sicher, wie: meine Zeit der Beobachtung variiert von einem Minimum von 0 bis zu einem Maximum von 399. Was ist die Zuordnung zwischen den ursprünglichen Daten und der vorhergesagten Ausgabe von predict.ranger, und wie kann ich Operationalisieren Sie dies, um den Grad des Risikos für ein bestimmtes Thema nach einer bestimmten Zeit zu quantifizieren?

Hier ist ein Beispiel, was meine Zeit/Ereignisdaten wie folgt aussehen:

 Y time 
    <int> <dbl> 
1  1 358 
2  0 90 
3  0 162 
4  0 35 
5  0 307 
6  0 69 
7  0 184 
8  0 24 
9  0 366 
10  0 33 

Und hier ist es, was die Franken des ersten Themas wie folgt aussehen: enter image description here Kann mir jemand helfen, die Punkte zu verbinden? Auf dem "matrix"-Objekt, das preds$chf ist, sind keine Zeilen- oder Spaltennamen vorhanden.

+0

Wie sieht 'str (preds)' aus? Wenn ich deinen Code mit dem Modell als 'rf <- ranger (Surv (Zeit, Status) ~., Daten = Veteran, write.forest = TRUE, num.trees = 100)', habe meine 'chfs' Zeilen und Spalten . Ich bin überrascht, dass du 'Wichtigkeit =' Unreinheit '' mit dem Überleben verwenden kannst. Ebenfalls, . Wie auch immer, Sie können das reproduzierbar machen? Ich bin überrascht, dass Sie 'Wichtigkeit =' Unreinheit '' mit dem Überleben verwenden können – Jota

+0

Dies war eine alte Codezeile. "Wichtigkeit =" Unreinheit "hat tatsächlich einen Fehler verursacht. Ich bin gerade nicht vor meinem Arbeitsplatz, aber 'str (preds)' ist eine benannte Liste der Klasse 'ranger.predict'. Meine CHFs und Überlebensfunktionen sind auch Matrizen. @ Mnwrights Antwort unten trifft den Nagel auf den Kopf. – Aaron

Antwort

3

Im Prädiktionsobjekt ist der Vektor unique.death.times, der die Zeitpunkte enthält, an denen die CHF- und Überlebensschätzungen berechnet werden. Die chf Matrix hat Beobachtungen in den Zeilen und diese Zeitpunkte in den Spalten, gleich für survival.

Reproduzierbare Beispiel:

library(survival) 
library(ranger) 

## Split the data 
n <- nrow(veteran) 
idx <- sample(n, 2/3*n) 
train <- veteran[idx, ] 
test <- veteran[-idx, ] 

## Grow RF and predict 
rf <- ranger(Surv(time, status) ~ ., train, write.forest = TRUE) 
preds <- predict(rf, test) 

## Example CHF plot 
plot(preds$unique.death.times, preds$chf[1, ]) 

## Example survival plot 
plot(preds$unique.death.times, preds$survival[1, ]) 

Einstellung importance = "impurity" für das Überleben Wälder sollten einen Fehler aus.

+0

genagelt, danke! und yep, 'Wichtigkeit = 'Unreinheit' 'tut tatsächlich durch einen Fehler. Das war von einem älteren Skript. – Aaron

Verwandte Themen