다음 스크립트를 사용하면 참조선과 두 개의 ROC 곡선을 새 그래프에 넣는 그래프를 만들 수 있습니다.
ROC 곡선의 값은 분석 창에서 얻은 ROC 곡선 그래프를 마우스 오른쪽 버튼으로 클릭하고 "사용자 정의"를 선택한 다음 스크립트 창에서 해당 라인의 스크립트를 가져옵니다. 이를 복사하여 현재 있는 라인을 대체하여 아래 스크립트에 붙여넣을 수 있습니다. 추가하려는 모든 ROC 곡선에 대해 이를 반복합니다.
도움이 되길 바랍니다.

New Window( "ROC Curve",
Graph Box(
FrameSize( 600, 600 ),
X Scale( 0, 1 ),
Y Scale( 0, 1 ),
//add axis titles
xName( "1-Specificity" ),
yName( "Sensitivity" ),
//add reference line
Line Style( 0 );
Y Function( XTemp , XTemp );
//add first line
Line Style( 1 );
Text Size( 12 );
Text({0.45, 0.2}, "......... Group, BMI; AUC = 0.88");
pen size(2);
Line(
[0, 0, 0, 0, 0, 0, 0, 0.153846153846154, 0.230769230769231, 0.230769230769231,
0.307692307692308, 0.384615384615385, 0.384615384615385, 0.461538461538462,
0.461538461538462, 0.538461538461539, 0.615384615384615, 0.692307692307692,
0.769230769230769, 0.846153846153846, 0.923076923076923, 1, 1],
[0, 0.111111111111111, 0.222222222222222, 0.333333333333333, 0.444444444444444,
0.555555555555556, 0.666666666666667, 0.666666666666667, 0.666666666666667,
0.777777777777778, 0.777777777777778, 0.777777777777778, 0.888888888888889,
0.888888888888889, 1, 1, 1, 1, 1, 1, 1, 1, 1]
);
//add second line
Line Style( 4 );
Text Size( 12 );
Text( {0.45, 0.1}, "_.._.._.._ Group, BMI, Endo; AUC = 0.96" );
Line(
[0, 0, 0, 0, 0, 0, 0, 0.0833333333333333, 0.0833333333333333, 0.166666666666667,
0.25, 0.25, 0.333333333333333, 0.416666666666667, 0.5, 0.583333333333333,
0.666666666666667, 0.75, 0.833333333333333, 1, 1],
[0, 0.222222222222222, 0.333333333333333, 0.444444444444444, 0.555555555555556,
0.666666666666667, 0.777777777777778, 0.777777777777778, 0.888888888888889,
0.888888888888889, 0.888888888888889, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
);
);
);한 가지 방법은 ROC 플롯을 만들기로 선택한 후에 존재하는 ROC 테이블을 활용하는 것입니다. 기본적으로 각 테스트에 대해 ROC 테이블을 데이터 테이블로 만들고, 소스 테이블을 식별하는 새 열을 만드는 옵션을 사용하여 연결한 다음, 소스 테이블별로 그룹화된 플롯과 그룹별 오버레이를 켜서 오버레이 플롯을 사용합니다. 대화형으로 이 작업을 수행하거나 대화형으로 수행한 후 스크립트를 저장하여 조각조각 모은 다음 예제와 같은 것을 사용하여 수행할 수 있습니다.
dt = open("$SAMPLE_DATA/Fitness.jmp");
fm = dt << 적합 모델(
Y( :성별),
효과( :옥시 ),
성격(명목 로지스틱),
모델 실행(
긍정적인
레벨( "M" ),
우도비 검정(1),
월드
테스트( 0 ),
큰 괴조
곡선( 1 ),
물류
줄거리(1),
보고서 보내기(
발송( {"수신기 운영
특성"}, "ROC 테이블", OutlineBox, Close( 0 ) )
)
)
);
fmReport = Report(fm);
fmReport["ROC Table"][Table Box( 1 )] << 데이터로 만들기
테이블;
데이터 테이블(1) << set name("Oxy");
fm = dt << 적합 모델(
Y( :성별),
효과( :런타임),
성격(명목 로지스틱),
모델 실행(
긍정적인
레벨( "M" ),
우도비 검정(1),
월드
테스트( 0 ),
큰 괴조
곡선( 1 ),
물류
줄거리(1),
보고서 보내기(
발송( {"수신기 운영
특성"}, "ROC 테이블", OutlineBox, Close( 0 ) )
)
)
);
fmReport = Report(fm);
fmReport["ROC Table"][Table Box( 1 )] << 데이터로 만들기
테이블;
데이터 테이블(1) << set name("런타임");
사슬 같이 잇다(
데이터 테이블( "런타임"),
데이터 테이블( "Oxy" ),
출력 테이블( "둘 다"),
소스 열 생성
);
오버레이 플롯(
X( :Name( "1-특이성" ) ),
Y( :감도),
그룹화( :소스 테이블 ),
오버레이 그룹,
단계(1),
포인트 표시( 0 ),
보고서 보내기(
보내다(
{},
"106",
스케일박스( 2 ),
{Format( "최상", 10), 주요 그리드 표시(
1)}
),
보내다(
{}, "101", ScaleBox( 2 ), {주요 격자 표시( 1 )} )
)
);
style="margin-bottom: 0.0001pt; line-height: normal;">
style="font-size: 10pt; font-family: "Courier New"; color: navy;">
style="font-size: 10pt; font-family: "Courier New"; color: black;">