您可以使用以下腳本建立一個圖表,該腳本將參考線和兩條 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 = 報告( fm );
fmReport["ROC Table"][Table Box( 1 )] << 寫入數據
桌子;
資料表(1) << 設定名稱("Oxy");
fm = dt << 擬合模型(
Y(:性別),
效果(:運行時),
個性(名義邏輯),
運行模型(
積極的
級別(“M”),
似然比檢定( 1 ),
瓦爾德
測試( 0 ),
鵬
曲線( 1 ),
物流
情節(1),
發送至報告(
調度({“接收器操作
特徵"}, "ROC 表", OutlineBox, Close( 0 ) )
)
)
);
fmReport = 報告( fm );
fmReport["ROC Table"][Table Box( 1 )] << 寫入數據
桌子;
資料表(1) << 設定名稱("運行時");
連接(
資料表(「運行時」),
數據表(“氧”),
輸出表(“兩者”),
建立來源列
);
疊加圖(
X( :Name( "1-特異性" ) ),
Y(:靈敏度),
分組(:來源表),
疊加組,
步驟(1),
顯示積分( 0 ),
發送至報告(
派遣(
{},
“106”,
比例框( 2 ),
{格式(“最佳”,10),顯示主要網格(
1)}
),
派遣(
{}, "101", ScaleBox( 2 ), {顯示主要網格( 1 )} )
)
);
style="margin-bottom: 0.0001pt; line-height: 正常;">
style="font-size: 10pt; font-family: "快遞新"; color: 海軍藍;">
style="font-size: 10pt; font-family: "快遞新"; color: 黑色;">