Playing with Data/SAS 2

SAS에서 ROC를 그리고 최적 Cut-off 찾는 방법

최근에 SAS를 사용하다보니, 여러가지 기록하고 싶은 것들이 많네요. SAS에서 ROC 커브를 그리고, 최적 Cut-off를 찾는 방법을 기록해두고자 합니다.이 방법은 첨부한 문서 2개를 조합하여 정리한 것입니다. 아, 최적 Cut-off의 기준은 Youden's Index를 사용하였습니다. (해당 Index는 Sensitivity + Specificity - 1 값입니다.) 먼저, ROC 커브를 그리기 위해서는 PROC LOGISTIC 를 사용하면 됩니다. Y변수로는 원하는 반응변수(0, 1를 담고 있는 변수)를 설정하고, X변수로는 다른 모델링 등을 통해 얻은 확률 값을 설정하면 됩니다. PROC LOGISTIC DATA=dataset OUTEST = outest; MODEL y_var(EVENT =..

SAS에서 원하는 문자열에 대해서 loop문 적용하기

일반 프로그래밍에서처럼 for문 사용에 익숙한 저에게 SAS에서의 for문은 다소 어렵기만 하네요. 특히 원하는 문자열에 대해서 for문을 돌면서 무언가를 하고 싶은데.. 쉽지 않더라구요. int 형의 경우에는 다소 쉬운데 말이죠. 그래서 이래저래 찾다가 다음과 같은 팁을 발견하여 기록해두고자 합니다. %LET my_list = A B C; %LET length = %sysfunc(countw(&my_list)); %DO i=1 %TO &length; %LET element = %scan(&my_list, &i); %PUT &element; %END; 위 코드를 살펴보면, 일단 my_list라는 변수를 선언하고, 해당 변수의 길이를 확인하여 loop를 돌리는 것을 알 수 있습니다.

반응형