제 질문은 알파와 베타의 관계 및 통계에서의 정의와 관련이 있습니다.
alpha = 제 1 종 오류율 = NULL 가설이 맞다고 고려중인 유의 수준
베타 = 제 2 종 오류율
알파가 낮아지면 (특이성은 알파 = 1- 특이성으로 증가합니다. ), 베타 증가 (베타 = 1로 민감도 / 파워 감소-민감도 / 파워)
알파 변화가 베타에 어떤 영향을 미치나요? 선형 관계가 있습니까? 알파 / 베타 비율이 항상 동일합니까? 즉, 비율 특이성 / 민감도가 항상 동일합니까? 만약 그렇다면, 본 페로 니 보정을 사용함으로써 우리는 단지 더 낮은 민감도와 더 높은 특이 도로 이동하고 있지만 우리는 민감도 / 특이성 비율을 변경하지 않는다는 것을 의미합니다. 그렇게 말하는 것이 맞습니까?
업데이트 (사례 별 질문) :
주어진 실험 설계에 대해 데이터에 대해 5 개의 선형 모델을 실행합니다. 참 양성률 (감도 / 전력)은 0.8이고 참 음성률 (특이성)은 0.7입니다. (긍정적이어야하는 것과 그렇지 않은 것을 알고 있다고 가정 해 봅시다.) 이제 Bonferroni를 사용하여 유의 수준을 0.05 / 5 = 0.01로 수정하면 결과의 참 양성률 (민감도 / 전력) 및 참을 수치 적으로 추정 할 수 있습니까? 부정적 비율 (구체성)?
도움을 주셔서 감사합니다.
답변
$ \ alpha $와 $ \ beta $는 관련이 있습니다. 진단 테스트를 통해 요점을 설명하겠습니다. 혈액 마커의 수준을 측정하는 진단 검사가 있다고 가정 해 보겠습니다. 특정 질병을 가진 사람들은 건강한 사람에 비해이 마커의 수준이 낮은 것으로 알려져 있습니다. 컷오프를 결정해야한다는 것은 즉시 분명합니다. 이 값보다 낮 으면 사람이 “아픈”것으로 분류되는 반면이 기준을 초과하는 값을 가진 사람은 건강한 것으로 간주됩니다.하지만 혈액 표지자의 분포는 아픈 내부 에서도 상당히 다양 할 가능성이 높습니다. 일부 건강한 사람은 완벽하게 건강하더라도 혈액 마커 수치가 매우 낮을 수 있습니다. 일부 아픈 사람은 질병이 있어도 혈액 마커 수치가 높습니다.
4 개가 있습니다. 발생할 수있는 가능성 :
- 아픈 사람이 아픈 사람으로 올바르게 식별 됨 (진 양성 = TP)
- 아픈 사람이 건강한 사람으로 잘못 분류 됨 (거짓 음성 = FN)
- 건강한 사람은 건강한 것으로 올바르게 식별됩니다 (진 음성 = TN)
- 건강한 사람은 아픈 사람으로 잘못 분류됩니다 (거짓 긍정 = FP)
이러한 가능성은 2×2 표 :
Sick Healthy Test positive TP FP Test negative FN TN
$ \ alpha $는 $ \ alpha = FP / (FP + TN) $ 인 오 탐률을 나타냅니다. $ \ beta $는 $ \ beta = 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) }
예를 살펴 보겠습니다. 환자의 혈액 표지자의 평균 농도는 표준 편차 10으로 100이라고 가정합니다. 건강한 사람의 평균 혈중 농도는 140이고 표준 편차는 15입니다. 임상의는 컷오프를 120으로 설정합니다. / p>
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
영역은 서로 관계에 있습니다.이 경우 $ \ alpha = 901 / (901+ 9099) \ approx 0.09 $ 및 $ \ beta = 236 / (236 + 9764) \ approx 0.024 $입니다. 임상의가 컷오프를 다르게 설정 했습니까? 좀 더 낮게 설정하여 105로 설정하고 어떻게되는지 살펴 보겠습니다.
Sick Healthy Test positive 6909 90 Test negative 3091 9910
우리의 $ \ alpha $는 현재 거의 건강한 사람이 병으로 진단되지 않기 때문에 매우 낮습니다. 하지만 혈중 마커 수치가 높은 환자가 이제 건강하다고 잘못 분류되어 $ \ beta $가 증가했습니다.
마지막으로 $ \ alpha $와 $ \ beta $가 서로 다른 방식으로 어떻게 변하는 지 살펴 보겠습니다. 컷오프 :
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 조정
Bonferroni 조정은 $ \ alpha $ 오류를 줄이지 만 유형 II 오류 ($ \ beta $)를 부풀립니다 .이는 오탐 (false positive)을 최소화하면서 오탐 (false negative) 결정을 내리는 오류는 증가한다는 것을 의미합니다. 이것이 Bonferroni 조정을 종종 보수적이라고하는 이유입니다. 위 그래프에서 컷오프를 120에서 105로 낮췄을 때 $ \ beta $가 어떻게 증가했는지 확인하십시오. $ 0.02 $에서 $ 0.31 $로 증가했습니다. 동시에 $ \ alpha $가 $ 0.09 $에서 $ 0.01 $로 감소했습니다.
댓글
- @COOLSerdash 와우 좋은 답변입니다! 감사합니다. 귀하의 예에서는 알려진 분포에 대해 유의 한 수준을 수행 할 수 있습니다. 예를 들어 생물학에서 치료가 효과가있는 경우 종속 변수의 분포를 알 수 없습니다. 즉, 유의 수준을 선택하여 거짓 양성률을 선택하지만 거의 알 수 없습니다. False Negative Rate 설정 방법입니다. True Positive 및 Negative Rate가 어떻게 설정되어 있는지 실제로는 모르기 때문에 맞습니까?
- @ Remi.b 감사합니다. 맞습니다. 일반적으로 $ \ alpha $를 유의 수준으로 선택하거나 이전에 검정력 계산을 수행합니다 (효과 크기에 대한 가정을 통해 $ \ alpha $ a nd power ($ 1- \ beta $). 하지만 ' 맞습니다. $ \ alpha $를 선택하여 제어 할 수 있지만 $ \ beta $는 종종 알 수 없습니다. 이 문서 는 $ p $ -values와 $ \ alpha $ 수준의 실제 의미에 대한 아주 좋은 출발점입니다.
답변
향후 다른 사용자 :
샘플 크기 추정에서 Ztotal은 알파에 해당하는 Z를 더하여 계산됩니다. Z는 거듭 제곱 (1- 베타)에 해당합니다. 따라서 수학적으로 표본 크기가 일정하게 유지되는 경우 알파에 대한 Z를 증가 시키면 Z를 동일한 양만큼 감소시키는 것을 의미합니다. 예를 들어 Zalpha를 0.05에서 0.1로 증가 시키면 Z 전력이 0.05만큼 감소합니다.
차이는 Z입니다. 알파의 경우 양측이고 베타의 경우 Z는 단측입니다. 따라서 Z 값은 같은 양만큼 변하지 만이 Z 값에 해당하는 확률 %는 같은 양만큼 변하지 않습니다.
예 :
5 % alpha ( 95 % 신뢰도), 80 % 검정력 (20 % 베타)은 95 % 검정력이 아니라
20 % 알파 (80 % 신뢰도)와 93.6 % 검정력 (6.4 % 베타)과 동일한 표본 크기를 제공합니다. 관계가 1 : 1이면 그럴 것입니다.
답변
알파와 베타 사이에는 일반적인 관계가 없습니다.
모든 것은 테스트에 따라 다릅니다. 간단한 예를 들어 보겠습니다.
(Wikipedia)
구어체 사용 유형에서 I 오류는 “무고한 사람을 유죄”로 간주 할 수 있습니다. 및 유형 II 오류 “유죄 인을 석방”.
배심원은 심각 할 수 있습니다. 유형 II 오류 없음, 일부 유형 IA 배심원은 “친절”할 수 있습니다. 유형 I이 아니라 일부 유형 II 배심원 정상일 수 있음 : 일부 유형 I 및 일부 유형 II 배심원은 완벽 할 수 있습니다. 오류 없음
실제로 두 가지 적대적 효과가 있습니다.
테스트의 품질이 향상되면 티 ype I 및 유형 II 오류는 어느 시점까지 감소합니다. 배심원이 향상되면 그는 무고한 사람과 죄를 지은 사람 모두에 대해 더 나은 판단을 내리는 경향이 있습니다.
언젠가는 테스트 구축에 근본적인 문제가 나타납니다. 유형 I 또는 II는 테스트를 실행하는 사람에게 더 중요합니다. 배심원 예시의 경우, 제 1 종 오류가 더 중요하므로 제 1 종을 피하기 위해 법률 절차가 구축됩니다. 의심 할 여지가있는 경우 그 사람이 자유 롭습니다. 직관적으로 이것은 유형 II 오류의 증가로 이어집니다.
Bonferroni 관련 :
(다시 Wikipedia)
Bonferroni 수정은 오탐 확률 만 제어합니다. 수정은 일반적으로 위음성을 생성 할 확률을 높이고 결과적으로 통계적 능력을 감소시키는 대가로 이루어집니다. 많은 수의 가설을 테스트 할 때 큰 임계 값이 발생할 수 있습니다.
댓글
- 답변 해 주셔서 감사합니다. 유용하지만 여전히 뭔가 나에게 명확하지 않습니다. 새 질문을 추가하여 게시물을 업데이트했습니다.