Statistik: Beziehung zwischen Alpha und Beta

13

Meine Frage hat mit der Beziehung zwischen Alpha und Beta und ihren Definitionen in der Statistik zu tun.

Alpha = Fehlerrate Typ I = Signifikanzniveau unter Berücksichtigung der Richtigkeit der NULL-Hypothese

Beta = Typ II Fehlerrate

Wenn Alpha gesenkt wird (Spezifität steigt mit Alpha = 1 - Spezifität), steigt Beta (Empfindlichkeit / Leistung nimmt ab, wenn Beta = 1 - Empfindlichkeit / Leistung)

Wie wirkt sich eine Änderung des Alphas auf das Beta aus? Gibt es eine lineare Beziehung oder nicht? Ist das Verhältnis Alpha / Beta immer gleich, dh das Verhältnis Spezifität / Sensitivität ist immer gleich? Wenn ja, bedeutet dies, dass wir durch die Verwendung einer Bonferroni-Korrektur nur zu einer niedrigeren Empfindlichkeit und einer höheren Spezifität wechseln, aber das Verhältnis von Empfindlichkeit zu Spezifität nicht ändern. Ist das richtig zu sagen?

Update (fallspezifische Frage):

Für einen bestimmten Versuchsaufbau führen wir 5 lineare Modelle für die Daten aus. Wir haben eine True Positive Rate (Empfindlichkeit / Leistung) bei 0,8 und eine True Negative Rate (Spezifität) bei 0,7. (Stellen wir uns vor, wir wissen, was positiv sein sollte und was nicht.) Wenn wir nun das Signifikanzniveau mit Bonferroni auf 0,05 / 5 = 0,01 korrigieren. Können wir die resultierende True Positive Rate (Empfindlichkeit / Leistung) und True Negiative Rate (Spezifität) numerisch schätzen?

Vielen dank für Deine Hilfe.

Remi.b
quelle

Antworten:

16

und β sind verwandt. Ich werde versuchen, den Punkt mit einem diagnostischen Test zu veranschaulichen. Angenommen, Sie haben einen diagnostischen Test, der den Spiegel eines Blutmarkers misst. Es ist bekannt, dass Menschen mit einer bestimmten Krankheit im Vergleich zu gesunden Menschen einen geringeren Gehalt an diesem Marker aufweisen. Es ist sofort klar, dass Sie einen Grenzwert festlegen müssen, unter dem eine Person als "krank" eingestuft wird, während Personen mit Werten über diesem Grenzwert als gesund gelten. Es ist sehr wahrscheinlich, aber, dass die Verteilung der bloodmarker wesentlich auch variiertinnerhalbkranken und gesunden Menschen. Einige gesunde Personen haben möglicherweise sehr niedrige Blutmarkerwerte, obwohl sie vollkommen gesund sind. Und einige kranke Menschen haben einen hohen Blutmarker, obwohl sie an der Krankheit leiden.αβ

Es gibt vier Möglichkeiten, die auftreten können:

  1. Eine kranke Person wird korrekt als krank identifiziert (wahr positiv = TP).
  2. Eine kranke Person wird fälschlicherweise als gesund eingestuft (falsch negativ = FN).
  3. Eine gesunde Person wird korrekt als gesund identifiziert (wahr negativ = TN).
  4. Eine gesunde Person wird fälschlicherweise als krank eingestuft (falsch positiv = FP).

Diese Möglichkeiten können mit einer 2x2-Tabelle veranschaulicht werden :

               Sick Healthy
Test positive   TP     FP
Test negative   FN     TN

bezeichnet die falsch positive Rate, die α = F P / ( F P + T N ) ist . β ist die falsch negative Rate, die β = F N / ( T P + F N ) ist . Ich habe ein einfachesSkript geschrieben, um die Situation grafisch darzustellen.αα=F.P./.(F.P.+T.N.)ββ=F.N./.(T.P.+F.N.)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)

}

Schauen wir uns ein Beispiel an. Wir gehen davon aus, dass der mittlere Blutmarkerwert bei den Kranken 100 mit einer Standardabweichung von 10 beträgt. Bei den gesunden Menschen beträgt der mittlere Blutspiegel 140 mit einer Standardabweichung von 15. Der Kliniker setzt den Grenzwert auf 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 und Alpha mit einem Cutoff von 120

α=901/.(901+9099)0,09β=236/.(236+9764)0,024

              Sick Healthy
Test positive 6909      90
Test negative 3091    9910

Cutoff 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)

Darstellung von Alpha und Beta mit unterschiedlichen Grenzwerten

αβ

Perfekter Cutoff

Hier haben wir einen "perfekten" Test in dem Sinne, dass der Cutoff von 150 die Kranken von den Gesunden unterscheidet.


Bonferroni-Einstellungen

αββ0,020,31α0,090,01

COOLSerdash
quelle
@COOLSerdash Wow schöne Antwort! Vielen Dank. In Ihrem Beispiel kann die Auswahl der signifikanten Ebene für bekannte Verteilungen erfolgen. In der Biologie zum Beispiel können Sie die Verteilung Ihrer abhängigen Variablen nicht kennen, wenn die Behandlung eine Wirkung hat. Mit anderen Worten, wenn Sie ein Signifikanzniveau auswählen, wählen Sie die False Positive Rate, aber Sie haben fast keine Ahnung, wie die False Negative Rate eingestellt wird. Da Sie eigentlich keine Ahnung haben, wie die True Positive und Negative Rates eingestellt werden. Ist das korrekt ?
Remi.b
1
αα1- -βαβpα Werte Werte wirklich bedeuten.
COOLSerdash
2

Für andere in der Zukunft:

Bei der Schätzung der Stichprobengröße wird das Ztotal berechnet, indem das Z entsprechend Alpha und das Z entsprechend der Leistung (1-Beta) addiert werden. Wenn also die Stichprobengröße konstant gehalten wird, bedeutet das Erhöhen von Z für Alpha, dass Sie das Z für die Leistung um den gleichen Betrag verringern, z. B. wenn Sie Zalpha von 0,05 auf 0,1 erhöhen, wird die Z-Leistung um 0,05 verringert.

Der Unterschied besteht darin, dass das Z für Alpha zweiseitig ist, während das Z für Beta einseitig ist. Während sich der Z-Wert um den gleichen Betrag ändert, ändert sich die Wahrscheinlichkeit%, der dieser Z-Wert entspricht, nicht um den gleichen Betrag.

Beispiel:

5% Alpha (95% Konfidenz) mit 80% Leistung (20% Beta) ergeben die gleiche Stichprobengröße wie

20% Alpha (80% Vertrauen) mit 93,6% Leistung (6,4% Beta) anstelle der 95% Leistung, die wir hätten, wenn die Beziehung 1: 1 wäre.

Vlad
quelle
1

Es gibt keine allgemeine Beziehung zwischen Alpha und Beta.

Es hängt alles von Ihrem Test ab, nehmen Sie das einfache Beispiel:

(Wikipedia)

Im umgangssprachlichen Sprachgebrauch kann der Fehler vom Typ I als "Verurteilung einer unschuldigen Person" und der Fehler vom Typ II als "Freilassung einer schuldigen Person" angesehen werden.

Eine Jury kann schwerwiegend sein: kein Fehler vom Typ II, einige vom Typ I Eine Jury kann "freundlich" sein: kein Typ I, aber einige vom Typ II Eine Jury kann normal sein: einige vom Typ I und einige vom Typ II Eine Jury kann perfekt sein: kein Fehler

In der Praxis gibt es zwei Antagonisteneffekte:

Wenn die Qualität des Tests steigt, nehmen die Fehler vom Typ I und Typ II bis zu einem gewissen Punkt ab. Wenn sich eine Jury verbessert, neigt er dazu, sowohl unschuldige als auch schuldige Menschen besser zu beurteilen.

Nach einiger Zeit tritt das zugrunde liegende Problem im Aufbau des Tests auf. Typ I oder II sind für denjenigen, der den Test durchführt, wichtiger. Mit dem Beispiel der Jury sind Fehler vom Typ I wichtiger, und daher wird das Rechtsverfahren so aufgebaut, dass Typ I vermieden wird. Im Zweifelsfall ist die Person frei. Intuitiv führte dies zu einem Anstieg des Typ-II-Fehlers.

In Bezug auf Bonferroni:

(Wieder Wikipedia)

Die Bonferroni-Korrektur steuert nur die Wahrscheinlichkeit von Fehlalarmen. Die Korrektur geht normalerweise zu Lasten der Erhöhung der Wahrscheinlichkeit, falsche Negative zu erzeugen, und folglich der Verringerung der statistischen Leistung. Beim Testen einer großen Anzahl von Hypothesen kann dies zu großen kritischen Werten führen.

lcrmorin
quelle
Vielen Dank für Ihre Antwort. Es ist nützlich, aber mir ist noch etwas nicht klar. Ich habe meinen Beitrag aktualisiert und eine neue Frage hinzugefügt.
Remi.b