2014-03-06 5 views
0

SAS에서 데이터 세트를 가지고 있는데, y와 yhat라는 두 개의 열이있는 데이터로 점수가 매겨집니다. y는 이진수 (0,1)이고, yhat은 점수 값이며, model은 로지스틱 회귀입니다. 나는이 SAS 모델을 위해 r에서 roc를 만들고 R의 다른 모델과 비교하기를 원한다. 나는 이것을 수행하는 방법에 대한 단서가 없다. 어떤 제안? 감사.SAS에서 예측 한 값을 사용하여 R에 ROC를 만드는 방법은 무엇입니까?

SAS에서 예측 한 값을 사용하여 R에 ROC를 만드는 방법은 무엇입니까?

답변

1

는이 같은 ROCR 패키지를 사용할 수 있습니다

## computing a simple ROC curve (x-axis: fpr, y-axis: tpr) 
library(ROCR) 
pred <- prediction(SASdataset$predictions, SASdataset$labels) 
perf <- performance(pred, "tpr", "fpr") 
plot(perf) 
1

당신은 ROC 곡선 작동 방법을 알고 매우 간단합니다. 모델에서 예측 한 값을 사용하여 아래에서 사용하는 0 또는 1의 이분법 적 결과로 사람들을 분류 할 수 있기를 원합니다.

예측값을 0.5로 할 경우,이 임계 값을 초과하는 사람은 양성/1/병에 걸린 사람/등으로 간주되며 그 이하는 0/영향을받지 않는 것으로 말합니다.

대단한데, 개선 될 수 있습니까? 따라서 여기에서 우리가 여러 가지 단서를 거치면 사람들을 우리의 이분법 적 결과로 분류하는 것이 가장 정확할 것입니다. 즉, 우리가 알고있는 실제 분류와 예측 된 값을 비교하는 것입니다.

# some data 
dat <- data.frame(pred = rep(0:1, each = 50), 
        predict = c(runif(50), runif(50, .5, 1.5))) 

# a matrix of the cutoffs, specificity, and sensitivity 
p1 <- matrix(0, nrow = 19, ncol = 3) 
i <- 1 

# for each cutoff value, create a 2x2 table and calculate your sens/spec 
for (p in seq(min(dat$predict), .95, 0.05)) { 
    t1 <- table(dat$predict > p, dat$pred) 
    p1[i, ] <- c(p, (t1[2, 2])/sum(t1[ , 2]), (t1[1, 1])/sum(t1[ , 1])) 
    i <- i + 1 
} 

# and plot 
plot(1 - p1[ , 3], p1[ , 2], type = 'l', 
    xlab = '1 - spec', ylab = 'sens', 
    main = 'ROC', cex.main = .8) 

ROCR 내가 사용했던 하나입니다, 거기에 몇 가지 패키지가 있지만이 프로그램에 나에게 몇 분 정도 소요 이해하기 매우 간단하고, 기본 R.에

enter image description here

+0

ROC 곡선으로 시각화하는 기본 사항으로 돌아 가기위한 +1. –

관련 문제