统计:Alpha和Beta之间的关系


13

我的问题与alpha和beta及其在统计中的定义之间的关系有关。

alpha = I型错误率=考虑到NULL假设正确的显着性水平

Beta = II型错误率

如果alpha降低(特异性随着alpha = 1特异性而增加),则beta增加(灵敏度/功效随着beta = 1-灵敏度/功效而降低)

alpha的变化如何影响beta? 是否存在线性关系?α/β之比是否始终相同,换句话说,特异性/敏感性之比始终相同?如果是,则意味着通过使用Bonferroni校正,我们只是转移到较低的敏感性和较高的特异性,而没有改变敏感性/特异性比。这样说正确吗?

更新(针对案例的问题):

对于给定的实验设计,我们对数据运行5个线性模型。我们的True阳性率(灵敏度/功效)为0.8,True阴性率(特异性)为0.7。(让我们想象一下,我们知道什么应该是积极的,什么不应该。)。如果现在使用Bonferroni将显着性水平校正为0.05 / 5 = 0.01。我们是否可以通过数值估算得出的真正率(灵敏度/功率)和真负率(特异性)?

非常感谢你的帮助。

Answers:


16

α和是相关的。我将尝试通过诊断测试来说明这一点。假设您有一个诊断测试,可以测量血液标记物的水平。已知患有某种疾病的人与健康人相比具有较低水平的该标志物。显而易见,您必须确定一个临界值,低于该临界值的人将被分类为“病假”,而具有高于该临界值的人则被认为是健康的。但是,即使患病和健康的人群中,血迹标记的分布也很有可能会发生很大变化。即使他们完全健康,一些健康人的血液标志物水平也可能很低。β

可能发生四种可能性:

  1. 正确地识别出一个患病的人(真实阳性= TP)
  2. 一个病人被错误地分类为健康人(假阴性= FN)
  3. 一个健康的人被正确地识别为健康(真阴性= TN)
  4. 健康的人被错误地分类为病假(假阳性= FP)

这些可能性可以用2x2表格说明

               Sick Healthy
Test positive   TP     FP
Test negative   FN     TN

α表示误报率,即。是假阴性率,即。我写了一个简单的脚本以图形方式说明这种情况。α=FP/FP+Ťñββ=Fñ/ŤP+FñR

alphabeta <- function(mean.sick=100, sd.sick=10, mean.healthy=130, sd.healthy=10, cutoff=120, n=10000, side="below", do.plot=TRUE) {

  popsick <- rnorm(n, mean=mean.sick, sd=sd.sick)
  pophealthy <- rnorm(n, mean=mean.healthy, sd=sd.healthy)

  if ( side == "below" ) {

    truepos <- length(popsick[popsick <= cutoff])
    falsepos <- length(pophealthy[pophealthy <= cutoff])
    trueneg <- length(pophealthy[pophealthy > cutoff])
    falseneg <- length(popsick[popsick > cutoff])

  } else if ( side == "above" ) {

    truepos <- length(popsick[popsick >= cutoff])
    falsepos <- length(pophealthy[pophealthy >= cutoff])
    trueneg <- length(pophealthy[pophealthy < cutoff])
    falseneg <- length(popsick[popsick < cutoff])

  }

  twotable <- matrix(c(truepos, falsepos, falseneg, trueneg), 2, 2, byrow=T)
  rownames(twotable) <- c("Test positive", "Test negative")
  colnames(twotable) <- c("Sick", "Healthy")

  spec <- twotable[2,2]/(twotable[2,2] + twotable[1,2])
  alpha <- 1 - spec
  sens <- pow <- twotable[1,1]/(twotable[1,1] + twotable[2,1])
  beta <- 1 - sens

  pos.pred <- twotable[1,1]/(twotable[1,1] + twotable[1,2])
  neg.pred <- twotable[2,2]/(twotable[2,2] + twotable[2,1])


  if ( do.plot == TRUE ) {

    dsick <- density(popsick)
    dhealthy <- density(pophealthy)

    par(mar=c(5.5, 4, 0.5, 0.5))
    plot(range(c(dsick$x, dhealthy$x)), range(c(c(dsick$y, dhealthy$y))), type = "n", xlab="", ylab="", axes=FALSE)
    box()
    axis(1, at=mean(pophealthy), lab=substitute(mu[H[0]]~paste("=",m, sep=""), list(m=mean.healthy)), cex.axis=1.5,tck=0.02)
    axis(1, at=mean(popsick), lab=substitute(mu[H[1]]~paste("=",m, sep=""), list(m=mean.sick)), cex.axis=1.5, tck=0.02)                                        
    axis(1, at=cutoff, lab=substitute(italic(paste("Cutoff=",coff, sep="")), list(coff=cutoff)), pos=-0.004, tick=FALSE, cex.axis=1.25)
    lines(dhealthy, col = "steelblue", lwd=2)

    if ( side == "below" ) {
      polygon(c(cutoff, dhealthy$x[dhealthy$x<=cutoff], cutoff), c(0, dhealthy$y[dhealthy$x<=cutoff],0), col = "grey65")
    } else if ( side == "above" ) {
      polygon(c(cutoff, dhealthy$x[dhealthy$x>=cutoff], cutoff), c(0, dhealthy$y[dhealthy$x>=cutoff],0), col = "grey65")
    }

    lines(dsick, col = "red", lwd=2)

    if ( side == "below" ) {
      polygon(c(cutoff,dsick$x[dsick$x>cutoff],cutoff),c(0,dsick$y[dsick$x>cutoff],0) , col="grey90")
    } else if ( side == "above" ) {
      polygon(c(cutoff,dsick$x[dsick$x<=cutoff],cutoff),c(0,dsick$y[dsick$x<=cutoff],0) , col="grey90")
    }

    legend("topleft",
           legend=(c(as.expression(substitute(alpha~paste("=", a), list(a=round(alpha,3)))), 
                     as.expression(substitute(beta~paste("=", b), list(b=round(beta,3)))))), fill=c("grey65", "grey90"), cex=1.2, bty="n")
    abline(v=mean(popsick), lty=3)
    abline(v=mean(pophealthy), lty=3)
    abline(v=cutoff, lty=1, lwd=1.5)
    abline(h=0)

  }

  #list(specificity=spec, sensitivity=sens, alpha=alpha, beta=beta, power=pow, positiv.predictive=pos.pred, negative.predictive=neg.pred)

  c(alpha, beta)

}

让我们来看一个例子。我们假设患病者的血液标志物的平均水平为100,标准差为10。在健康人中,血液标准物的平均血液水平为140,标准差为15。临床医生将临界值设置为120。

alphabeta(mean.sick=100, sd.sick=10, mean.healthy=140, sd.healthy=15, cutoff=120, n=100000, do.plot=TRUE, side="below")

              Sick Healthy
Test positive 9764     901
Test negative  236    9099

Beta和Alpha截止值为120

α=901/901+90990.09β=236/236+97640.024

              Sick Healthy
Test positive 6909      90
Test negative 3091    9910

截止105

αβ

αβ

cutoffs <- seq(0, 200, by=0.1)
cutoff.grid <- expand.grid(cutoffs)

plot.frame <- apply(cutoff.grid, MARGIN=1, FUN=alphabeta, mean.sick=100, sd.sick=10, mean.healthy=140, sd.healthy=15, n=100000, do.plot=FALSE, side="below")

plot(plot.frame[1,]~cutoffs, type="l", las=1, xlab="Cutoff value", ylab="Alpha/Beta", lwd=2, cex.axis=1.5, cex.lab=1.2)
lines(plot.frame[2,]~cutoffs, col="steelblue", lty=2, lwd=2)
legend("topleft", legend=c(expression(alpha), expression(beta)), lwd=c(2,2),lty=c(1,2), col=c("black", "steelblue"), bty="n", cex=1.2)

具有不同截断值的alpha和beta的图

αβ

完美截止

在这里,我们有一个“完美”的检验标准,即150的临界值可以将病人与健康人区分开。


Bonferroni调整

αββ0.020.31α0.090.01


@COOLSerdash哇,好答案!谢谢。在您的示例中,重要级别的选择可以在已知分布上进行。例如,在生物学中,如果治疗有效,您将不知道因变量的分布。换句话说,通过选择显着性水平,可以选择误报率,但是几乎不知道如何设置误报率。由于您实际上不知道如何设置真实的正负利率。那是对的吗 ?
Remi.b

1
αα1个-βαβpα

2

对于将来的其他人:

在“样本大小估计”中,通过将与alpha相对应的Z和与功效(1-beta)相对应的Z相加来计算Ztotal。因此从数学上讲,如果样本大小保持恒定,则将alpha的Z增大意味着将幂的Z减小SAME的数量,例如,将Zalpha从0.05增大到0.1会使Zpower减小0.05。

区别在于,α的Z是两个尾部,而β的Z是1尾部。因此,尽管Z值变化相同的量,但是此Z值所对应的概率%却没有变化相同的量。

例:

5%的alpha(95%的置信度)和80%的功效(20%的beta)得出的样本量与

20%的alpha(80%的置信度)和93.6%的功效(6.4%的beta),而不是如果关系为1:1时的95%功效。


1

alpha和beta之间没有一般关系。

一切都取决于您的测试,举一个简单的例子:

(维基百科)

在口语用法中,类型I的错误可以被认为是“使无罪的人定罪”,而类型II的错误可以被视为“让有罪的人逍遥法外”。

陪审团可能很严重:没有II型错误,有些I型陪审团可能是“同类”:没有I型,但有些II型陪审团可以正常:某些I型和某些II型陪审团可以是完美的:没有错误

实际上,有两种拮抗作用:

当测试质量提高时,I型和II型错误会减少直到某个点。当陪审团提高时,他倾向于对无辜和有罪的人做出更好的判断。

在某一点之后,潜在的问题出现在测试的构建中。对于进行测试的人,I或II型更为重要。以陪审团为例,类型I的错误更为重要,因此建立法律程序来避免类型I。如果有任何疑问,该人有自由。直观上,这导致II型错误的增加。

关于Bonferroni:

(再次是维基百科)

Bonferroni校正仅控制误报的可能性。通常,校正是以增加产生假阴性的可能性为代价的,因此降低了统计能力。当检验大量假设时,这可能会导致较大的临界值。


感谢您的回答,这很有用,但我仍然不清楚。我更新了帖子,添加了一个新问题。
Remi.b
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.