预测绩效增长百分比的功率分析

2024-10-03 09:15:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用支持向量机和10个特征对两组进行二元分类:45个健康组和15个不健康组,它给了我0.80的auc。有没有一种方法来进行功率分析,以估计我们需要从每组中选出多少受试者来增加5%的总体AUC?或者换句话说,有没有一种方法可以得到AUC相对于样本数量增加百分比的曲线?你知道吗

我在matlab中查看了sampsizepwr函数,但我认为这不会给出我需要的绘图:

nout=sampsizepwr(测试类型,p0,p1)

有人能带我到这里吗?我也可以试试R或python。你知道吗


Tags: 方法数量分类特征功率向量曲线百分比
1条回答
网友
1楼 · 发布于 2024-10-03 09:15:39

AUC原则上不应改变N个大小。然而,随着N的增大,您将更确定您的受试者样本的AUC与一般人群相似。在这里,我模拟了一个随机抽样的“受试者”,15个病人和45个健康人,然后计算AUC。我做了30次,AUC在0.69到0.93之间。我将样本量乘以100,AUC范围是0.8到0.82。你知道吗

n = [45,15];
rng(3)
for mult = 1:100
    for iter = 1:30
        healthy = normrnd(0,1,n(1)*mult,1);
        abnormal = normrnd(1.25,1,n(2)*mult,1);
        score = [healthy;abnormal];
        label = [zeros(n(1)*mult,1);ones(n(2)*mult,1)];
        [~,~,~,AUC(mult,iter)] = perfcurve(label,score,1);
    end
end
M = mean(AUC,2);
SD = std(AUC,[],2);
figure;
errorbar(M',SD')
xlabel('How many times to multiply N subjects')
ylabel('Mean AUC for 30 iterations (bars = SD)')
title('AUC by N subjects')
ylim([0.5 1])
box off
grid on

AUC by N

相关问题 更多 >