통계 : 알파와 베타의 관계


13

내 질문은 알파와 베타의 관계와 통계의 정의와 관련이 있습니다.

알파 = 유형 I 오류율 = NULL 가설이 올바른 것으로 간주되는 유의 수준

베타 = 유형 II 오류율

알파가 낮아지면 (알파 = 1- 특이성으로 특이도가 증가) 베타가 증가합니다 (베타 = 1-민감도 / 전력으로 민감도 / 전력 감소)

알파 변경은 베타에 어떤 영향을 줍니까? 선형 관계가 있습니까? 알파 / 베타 비율은 항상 동일합니까? 즉, 비율 특이성 / 감도는 항상 동일합니까? 그렇다면 본 페로 니 보정을 사용하여 감도를 낮추고 특이도를 높이려고하지만 감도 / 특성 비율은 변경하지 않습니다. 그렇게 말하는 것이 맞습니까?

업데이트 (사례 별 질문) :

주어진 실험 설계에 대해 데이터에 대해 5 개의 선형 모델을 실행합니다. 0.8의 True Positive Rate (감도 / 전력)와 0.7의 True Negative Rate (특이성)가 있습니다. (긍정적이어야 할 것과 그렇지 않아야 할 것을 알고 있다고 상상해보십시오.). Bonferroni를 사용하여 유의 수준을 0.05 / 5 = 0.01로 수정합니다. 결과로 발생하는 진 양성 비율 (민감도 / 전력) 및 진 음성 비율 (특이성)을 수치 적으로 추정 할 수 있습니까?

도와 주셔서 정말로 고맙습니다.

답변:


16

αβ

발생할 수있는 네 가지 가능성이 있습니다.

  1. 아픈 사람이 아픈 것으로 올바르게 식별 됨 (참 양성 = TP)
  2. 아픈 사람이 건강하다고 잘못 분류 된 경우 (거짓 음성 = FN)
  3. 건강한 사람이 건강하다고 올바르게 식별 됨 (참 음성 = TN)
  4. 건강한 사람은 허물로 잘못 분류 됨 (가양 성 = FP)

이러한 가능성은 2x2 테이블 로 설명 할 수 있습니다 .

               Sick Healthy
Test positive   TP     FP
Test negative   FN     TN

αα=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)

}

예를 봅시다. 우리는 아픈 사람들 사이에서 혈액 마커의 평균 수준이 100이고 표준 편차가 10 인 것으로 가정합니다. 건강한 사람들 사이에서 평균 혈액 수준은 표준 편차가 15 인 140입니다. 임상의는 컷오프를 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

컷오프 120의 베타 및 알파

α=901/(901+9099)0.09β=236/(236+9764)0.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)

컷오프 값이 다른 알파 및 베타 플롯

αβ

완벽한 컷오프

여기서 우리는 150의 컷오프가 병자와 건강을 구별한다는 의미에서 "완벽한"테스트를합니다.


본 페로 니 조정

αββ0.020.31α0.090.01


@COOLSerdash 와우 좋은 답변! 감사합니다. 귀하의 예에서 알려진 분포에서 유의미한 수준을 선택할 수 있습니다. 예를 들어 생물학에서 치료가 효과가 있다면 종속 변수의 분포를 알 수 없습니다. 다시 말해, 유의 수준을 선택하면 False Positive Rate를 선택하지만 False Negative Rate가 어떻게 설정되어 있는지 거의 알 수 없습니다. 실제 양수 및 음수 비율이 어떻게 설정되어 있는지 전혀 모릅니다. 그 맞습니까 ?
Remi.b

1
αα1βαβpα

2

앞으로 다른 사람들을 위해 :

표본 크기 추정에서 Ztotal은 알파에 해당하는 Z와 검정력 (1 베타)에 해당하는 Z를 더하여 계산됩니다. 수학적으로, 표본 크기가 일정하게 유지되면 알파에 대해 Z를 증가시키는 것은 SAME 양만큼 전력에 대한 Z를 감소시키는 것을 의미합니다. 예를 들어, Zalpha를 0.05에서 0.1로 증가 시키면 Zpower가 0.05만큼 감소합니다.

차이점은 알파의 Z는 양측이고 베타의 Z는 단측입니다. 따라서 Z 값은 같은 양만큼 변하지 만이 Z 값에 해당하는 확률 %는 같은 양만큼 변하지 않습니다.

예:

80 % 검정력 (20 % 베타)의 5 % 알파 (95 % 신뢰도)는

관계가 1 : 1 인 경우에 얻을 수있는 95 %의 힘이 아니라 93.6 %의 힘 (6.4 % 베타)으로 20 % 알파 (80 % 신뢰도).


1

알파와 베타 사이에는 일반적인 관계가 없습니다.

그것은 모두 테스트에 달려 있으며 간단한 예를 들어보십시오.

(위키 백과)

구어체 사용에서 제 1 종 오류는 "무고한 사람을 유죄 판결"으로 간주하고 제 2 종 오류는 "유죄 인을 자유롭게 함"이라고 생각할 수 있습니다.

배심원은 심각 할 수 있습니다 : 유형 II 오류 없음, 유형 I 배심원은 "종류"일 수 있습니다 : 유형 I 없음 유형 II 배심원은 정상일 수 있습니다 : 일부 유형 I 및 유형 II 배심원은 완벽 할 수 있습니다 : 오류 없음

실제로 두 가지 길항제 효과가 있습니다.

테스트 품질이 올라가면 유형 I 및 유형 II 오류가 어느 시점까지 감소합니다. 배심원이 개선되면, 그는 무고한 사람과 유죄 인 모두를 더 잘 판단하는 경향이 있습니다.

어느 시점이 지나면 근본적인 문제가 테스트 구축에 나타납니다. 시험을 수행하는 사람에게는 유형 I 또는 II가 더 중요합니다. 배심원 예의 경우 제 1 종 오류가 더 중요하므로 제 1 종을 피하기 위해 법 절차가 구축됩니다. 직관적으로 이것은 유형 II 오류의 증가로 이어집니다.

Bonferroni에 관하여 :

(다시 위키 백과)

Bonferroni 보정은 오 탐지 확률 만 제어합니다. 교정은 일반적으로 오탐 (false negative)을 생성 할 가능성을 증가시키고 결과적으로 통계적 힘을 감소시키는 비용으로 발생합니다. 많은 수의 가설을 테스트 할 때 임계 값이 커질 수 있습니다.


귀하의 답변에 감사드립니다. 유용하지만 여전히 나에게 분명하지 않습니다. 새 질문을 추가하여 게시물을 업데이트했습니다.
Remi.b
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.