Stats: Relation entre Alpha et Beta

13

Ma question concerne la relation entre alpha et bêta et leurs définitions en statistiques.

alpha = taux d'erreur de type I = niveau de signification en considérant que l'hypothèse NULL est correcte

Bêta = taux d'erreur de type II

Si l'alpha est abaissé (la spécificité augmente comme alpha = 1-spécificité), le bêta augmente (la sensibilité / puissance diminue comme bêta = 1 - la sensibilité / puissance)

Comment un changement d'alpha affecte-t-il la bêta? Existe-t-il une relation linéaire ou non? Le rapport alpha / bêta est-il toujours le même, autrement dit le rapport spécificité / sensibilité est toujours le même? Si oui, cela signifie qu'en utilisant une correction bonferroni, nous passons simplement à une sensibilité plus faible et à une spécificité plus élevée, mais nous ne modifions pas le rapport sensibilité / spécificité. Est-ce exact de le dire?

Mise à jour (question spécifique au cas):

Pour une conception expérimentale donnée, nous exécutons 5 modèles linéaires sur les données. Nous avons un vrai taux positif (sensibilité / puissance) à 0,8 et un vrai taux négatif (spécificité) à 0,7. (Imaginons que nous sachions ce qui devrait être positif et ce qui ne devrait pas l'être.). Si nous corrigeons maintenant le niveau de signification en utilisant Bonferroni à 0,05 / 5 = 0,01. Pouvons-nous estimer numériquement le vrai taux positif résultant (sensibilité / puissance) et le vrai taux négatif (spécificité)?

Merci beaucoup pour votre aide.

Remi.b
la source

Réponses:

16

α et sont liés. Je vais essayer d'illustrer le point avec un test de diagnostic. Disons que vous avez un test de diagnostic qui mesure le niveau d'un marqueur sanguin. Il est connu que les personnes atteintes d'une certaine maladie ont des niveaux de ce marqueur inférieurs à ceux des personnes en bonne santé. Il est immédiatement clair que vous devez décider d'une valeur seuil, en dessous de laquelle une personne est classée comme «malade», tandis que les personnes dont la valeur est supérieure à cette limite sont considérées comme saines. Il est très probable, cependant, que la distribution des bloodmarker varie considérablement , même au sein des malades et en bonne santé. Certaines personnes en bonne santé peuvent avoir des niveaux de marqueurs sanguins très bas, même si elles sont parfaitement saines.β

Il y a quatre possibilités qui peuvent se produire:

  1. une personne malade est correctement identifiée comme malade (vrai positif = TP)
  2. une personne malade est faussement classée en bonne santé (faux négatif = FN)
  3. une personne en bonne santé est correctement identifiée comme en bonne santé (vrai négatif = TN)
  4. une personne en bonne santé est faussement classée comme malade (faux positif = PF)

Ces possibilités peuvent être illustrées par un tableau 2x2 :

               Sick Healthy
Test positive   TP     FP
Test negative   FN     TN

α désigne le taux de faux positifs, qui est . est le taux de faux négatifs, qui est . J'ai écrit simplement un script pour illustrer graphiquement la situation.α=FP/(FP+TN)ββ=FN/(TP+FN)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)

}

Regardons un exemple. Nous supposons que le niveau moyen du marqueur sanguin chez les personnes malades est de 100 avec un écart-type de 10. Chez les personnes en bonne santé, le niveau sanguin moyen est de 140 avec un écart-type de 15. Le clinicien fixe le seuil à 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

Bêta et alpha avec un seuil de 120

Vous voyez que les zones ombrées sont en relation les unes avec les autres. Dans ce cas, et . Mais que se passe-t-il si le clinicien a fixé le seuil différemment? Fixons-le un peu plus bas, à 105 et voyons ce qui se passe.α=901/(901+9099)0.09β=236/(236+9764)0.024

              Sick Healthy
Test positive 6909      90
Test negative 3091    9910

Coupure 105

Notre est très bas maintenant car presque aucune personne en bonne santé n'est diagnostiquée malade. Mais notre a augmenté, car les personnes malades avec un niveau de marqueur sanguin élevé sont désormais faussement classées comme saines.αβ

Enfin, regardons comment et changent pour différents seuils:αβ

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)

Graphique alpha et bêta avec différentes valeurs de coupure

Vous pouvez immédiatement voir que le rapport de et n'est pas constant. Ce qui est également très important, c'est la taille de l'effet. Dans ce cas, ce serait la différence des moyennes des niveaux de marqueurs sanguins chez les personnes malades et en bonne santé. Plus la différence est grande, plus les deux groupes peuvent être facilement séparés par une coupure:αβ

Coupure parfaite

Ici, nous avons un test "parfait" dans le sens où le seuil de 150 discrimine les malades des sains.


Ajustements de Bonferroni

Les ajustements de Bonferroni réduisent l' erreur mais gonflent l'erreur de type II ( ) . Cela signifie que l'erreur de prendre une décision faussement négative est augmentée tandis que les faux positifs sont minimisés. C'est pourquoi l'ajustement de Bonferroni est souvent appelé conservateur. Dans les graphiques ci-dessus, notez comment le augmenté lorsque nous avons abaissé le seuil de 120 à 105: il est passé de à . Dans le même temps, passé de à .αββ0.020.31α0.090.01

COOLSerdash
la source
@COOLSerdash Wow belle réponse! Je vous remercie. Dans votre exemple, le choix du niveau significatif peut se faire sur des distributions connues. En biologie par exemple, vous ne pouvez pas connaître la distribution de votre variable dépendante si le traitement a un effet. En d'autres termes, en choisissant un niveau de signification, vous choisissez le taux de faux positifs mais vous ne savez presque pas comment le taux de faux négatifs est défini. Comme vous n'avez en fait aucune idée de la façon dont les taux positifs et négatifs réels sont définis. Est-ce exact ?
Remi.b
1
@ Remi.b Merci. Je pense que vous avez raison. Habituellement, vous choisissez simplement comme niveau de signification ou effectuez un calcul de puissance avant (en faisant des hypothèses sur la taille de l'effet, et la puissance ( ). Mais vous avez raison: vous pouvez contrôler en choisissant mais est souvent inconnu. Cet article est un très bon point de départ sur les valeurs et ce que niveaux signifient vraiment.αα1βαβpα
COOLSerdash
2

Pour d'autres à l'avenir:

Dans l'estimation de la taille de l'échantillon, le Ztotal est calculé en ajoutant le Z correspondant à alpha et Z correspondant à la puissance (1-beta). Donc, mathématiquement, si la taille de l'échantillon est maintenue constante, l'augmentation de Z pour alpha signifie que vous diminuez le Z pour la puissance de la même quantité, par exemple, l'augmentation de Zalpha de 0,05 à 0,1 diminue la puissance de Z de 0,05.

La différence est que le Z pour alpha est bilatéral tandis que le Z pour beta est unilatéral. Ainsi, alors que la valeur Z change du même montant, mais la probabilité% à laquelle cette valeur Z correspond ne change pas du même montant.

Exemple:

5% alpha (95% de confiance) avec 80% de puissance (20% bêta) donne la même taille d'échantillon que

20% alpha (80% de confiance) avec 93,6% de puissance (6,4% bêta) plutôt que la puissance de 95% que nous aurions si la relation était de 1: 1.

Vlad
la source
1

Il n'y a pas de relation générale entre alpha et bêta.

Tout dépend de votre test, prenez l'exemple simple:

(Wikipédia)

Dans l'usage courant, l'erreur de type I peut être considérée comme «condamner une personne innocente» et l'erreur de type II «laisser un coupable se libérer».

Un jury peut être sévère: pas d'erreur de type II, certains de type I Un jury peut être "gentil": pas de type I mais certains de type II Un jury peut être normal: certains types I et certains types II Un jury peut être parfait: pas d'erreur

En pratique, il existe deux effets antagonistes:

Lorsque la qualité du test augmente, les erreurs de type I et de type II diminuent jusqu'à un certain point. Lorsqu'un jury s'améliore, il a tendance à mieux juger les innocents et les coupables.

Après un certain point, le problème sous-jacent apparaît dans la construction du test. Les types I ou II sont plus importants pour celui qui exécute le test. Avec l'exemple du jury, les erreurs de type I sont plus importantes et donc le processus juridique est conçu pour éviter le type I. En cas de doute, la personne est libre. Intuitivement, cela a conduit à une augmentation de l'erreur de type II.

Concernant Bonferroni:

(Wikipédia à nouveau)

La correction de Bonferroni contrôle uniquement la probabilité de faux positifs. La correction se fait généralement au prix d'une augmentation de la probabilité de production de faux négatifs, et par conséquent d'une réduction de la puissance statistique. Lorsque vous testez un grand nombre d'hypothèses, cela peut entraîner de grandes valeurs critiques.

lcrmorin
la source
Merci pour votre réponse, c'est utile mais encore quelque chose n'est pas clair pour moi. J'ai mis à jour mon message en ajoutant une nouvelle question.
Remi.b