2016-07-01 1 views
-1

:, 나는 다음과 같은 스크립트를 실행 <a href="https://cran.r-project.org/web/packages/ranger/index.html" rel="nofollow noreferrer">ranger</a> 패키지를 사용하여 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, ]) 

누적 위험 함수는 인덱스 1가 - X 축에 (36). 분명히 이것은 시간과 관련이 있습니다. 그러나 나는 잘 모르겠습니다 : 관찰 시간 변수의 범위는 최소 0에서 최대 399입니다. 원래 데이터와 예측 된 결과 간의 매핑은 predict.ranger이고, 어떻게해야합니까? 주어진 시간이 지난 후 주어진 피험자에 대한 위험도를 정량화하기 위해 이것을 조작하시오.

여기에 내 시간/이벤트 데이터가 어떻게 생겼는지의 샘플입니다 :

 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 

그리고 여기 처음 피사체의 CHF의 모습입니다 : enter image description here 사람이 나를 점들을 연결 도와 드릴까요? 개체에 행 또는 열 이름이 없습니다 (preds$chf).

+0

'str (preds)'는 어떻게 생겼습니까? 내'chfs'는 행과 열을 가지고 있는데'rf <- ranger (Surv (time, status) ~., data = 베테랑, write.forest = TRUE, num.trees = 100) '모델로 코드를 실행할 때, . 생존과 함께'중요성 = '불순물'을 사용할 수있어서 놀랍습니다. 또한,. 어쨌든 이것을 재현 할 수 있습니까? 난 당신이 생존과 함께 '중요성 ='불순물 '을 사용할 수 있습니다 놀랍군요 – Jota

+0

이것은 오래된 코드 라인이었다. 'importance = '불순물'은 실제로 오류를 던졌습니다. 지금은 작업 공간 앞에 있지 않지만'str ​​(preds)'는'ranger.predict' 클래스의 이름있는리스트입니다. CHF와 생존 기능도 매트릭스입니다. @ mnwright의 대답은 아래의 머리에 못을 박는 다. – Aaron

답변

3

예측 개체에는 CHF 및 생존 추정치가 계산되는 시간 점을 포함하는 unique.death.times이라는 벡터가 있습니다. chf 행렬은 열과 열의 이러한 시간 지점에서 관측치를 가지며 survival과 동일합니다.

재현 예 :

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, ]) 

이 오류가 발생합니다 생존 숲에 대한 importance = "impurity" 설정.

+0

고맙다, 고마워! 긍정, 중요성 = '불순물'은 실제로 실수를 통해 일어난다. 이것은 이전 스크립트에서 나온 것입니다. – Aaron