您可以使用以下脚本创建一个图形,该脚本在新图形上放置参考线和两条 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 =打开(“$SAMPLE_DATA/Fitness.jmp”);
fm = dt << 拟合模型(
Y( :性别 ),
效果(:氧气),
人格(名义逻辑),
运行模型(
积极的
等级( "M" ),
似然比检验 ( 1 ),
瓦尔德
测试(0),
鹏
曲线( 1 ),
物流
图(1),
发送至报告(
Dispatch( {“接收器操作
特征"}, "ROC 表", OutlineBox, 关闭( 0 ) )
)
)
(英文):
fmReport = 报告(fm);
fmReport["ROC Table"][Table Box( 1 )] << 制作成数据
桌子;
数据表(1)<<设置名称(“Oxy”);
fm = dt << 拟合模型(
Y( :性别 ),
效果(:运行时),
人格(名义逻辑),
运行模型(
积极的
等级( "M" ),
似然比检验 ( 1 ),
瓦尔德
测试(0),
鹏
曲线( 1 ),
物流
图(1),
发送至报告(
Dispatch( {“接收器操作
特征"}, "ROC 表", OutlineBox, 关闭( 0 ) )
)
)
(英文):
fmReport = 报告(fm);
fmReport["ROC Table"][Table Box( 1 )] << 制作成数据
桌子;
数据表(1)<<设置名称(“运行时”);
连接(
数据表(“运行时”),
数据表(“Oxy”)
输出表( "Both" ),
创建源列
(英文):
叠加图(
X( :名称( "1-特异性" ) ),
Y(:敏感度),
分组(:源表),
覆盖组,
步骤(1),
显示点( 0 ),
发送至报告(
派遣(
{},
“106”,
比例框( 2 ),
{格式(“最佳”, 10 ), 显示主要网格(
1)}
),
派遣(
{}, "101", ScaleBox( 2 ), {显示主要网格( 1 )} )
)
(英文):
样式="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;">