私の質問は、アルファとベータの関係と統計におけるそれらの定義に関係しています。
アルファ=タイプIのエラー率= NULL仮説が正しいと考えられる有意水準
ベータ=タイプIIのエラー率
アルファが低下した場合(アルファ= 1として特異性が増加-特異性)、ベータが増加します(ベータ= 1として感度/電力が減少します-感度/電力)
アルファの変更はベータにどのように影響しますか?線形関係はありますか?アルファ/ベータ比は常に同じですか、言い換えれば、比の特異性/感度は常に同じですか?はいの場合、ボンフェローニ補正を使用することで、感度と特異度を低くするだけで、感度と特異度の比率を変更しないことを意味します。そのように言うのは正しいですか?
更新(ケース固有の質問):
特定の実験計画について、データに対して5つの線形モデルを実行します。真の陽性率(感度/パワー)は0.8、真の陰性率(特異度)は0.7です。 (何が正であるべきか、何が正であってはならないかを知っていると想像してみましょう。)ボンフェローニを使用して有意水準を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) }
例を見てみましょう。病気の人の血液マーカーの平均レベルは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
影付きであることがわかりますエリアは互いに関係しています。この場合、$ \ alpha = 901 /(901+ 9099)\ upperx 0.09 $および$ \ beta = 236 /(236 + 9764)\ upperx 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 $の比率が一定ではないことがすぐにわかります。また、非常に重要なのは効果量です。この場合、これは病気の人と健康な人の間の血液マーカーレベルの平均の違いになります。差が大きいほど、2つのグループをカットオフで簡単に分離できます。
ここに「 150のカットオフが病気の人と健康な人を区別するという意味での完璧な」テスト。
ボンフェローニ調整
ボンフェローニ調整は$ \ alpha $エラーを減らしますが、タイプIIエラー($ \ beta $)を膨らませます。これは、誤検知を最小限に抑えながら、誤検知の決定を行うエラーが増加することを意味します。そのため、ボンフェローニ調整はしばしば保守的と呼ばれます。上のグラフで、カットオフを120から105に下げたときに$ \ beta $がどのように増加したかを確認してください。$ 0.02 $から$ 0.31 $に増加しました。同時に$ \ alpha $は$ 0.09 $から$ 0.01 $に減少しました。
コメント
- @COOLSerdashうわーいい答えです!ありがとうございます。あなたの例では、有意水準は既知の分布で行うことができます。たとえば生物学では、治療が効果があるかどうか従属変数の分布を知ることはできません。言い換えると、有意水準を選択することにより、偽陽性率を選択しますが、ほとんどわかりません。偽陰性率の設定方法。実際には、真陽性率と陰性率の設定方法がわからないので、正しいですか?
- @ Remi.bありがとうございます。正しいと思います。通常は有意水準として$ \ alpha $を選択するか、前に検出力の計算を実行します(効果のサイズについて仮定を立てることにより、$ \ alpha $ a nd power($ 1- \ beta $)。しかし、あなたは'正しいです。$ \ alpha $を選択することで制御できますが、$ \ beta $は不明なことがよくあります。 このペーパーは、$ p $値と、$ \ alpha $レベルの実際の意味についての非常に良い出発点です。
回答
将来のその他の場合:
サンプルサイズの推定では、Ztotalはアルファに対応するZを加算することによって計算されますZは検出力(1-ベータ)に対応します。したがって、数学的には、サンプルサイズが一定に保たれている場合、アルファのZを増やすと、同じ量だけ検出力のZが減少します。たとえば、Zalphaを0.05から0.1に増やすと、Zpowerが0.05減少します。
違いはZです。アルファの場合は両側で、ベータの場合は片側です。したがって、Z値は同じ量だけ変化しますが、このZ値が対応する確率%は同じ量だけ変化しません。
例:
5%アルファ( 80%の検出力(20%のベータ)で95%の信頼度)は、95%の検出力ではなく93.6%の検出力(6.4%のベータ)で20%のアルファ(80%の信頼度)と同じサンプルサイズを提供します
関係が1:1の場合に発生します。
回答
アルファとベータの間に一般的な関係はありません。
それはすべてあなたのテストに依存します、簡単な例を見てください:
(Wikipedia)
口頭での使用タイプでは、エラーは「無実の人を有罪にする」と考えることができます。
陪審員は深刻な場合があります。タイプIIのエラーはなく、一部のタイプIAの陪審員は「親切」である可能性があります。タイプIはありませんが、タイプIIのAの陪審員がいます。正常である可能性があります:一部のタイプIと一部のタイプII審査員は完璧である可能性があります:エラーなし
実際には2つの拮抗効果があります:
テストの品質が上がると、 t ypeIおよびタイプIIのエラーはある時点まで減少します。陪審員が改善すると、彼は無実の人々と有罪の人々の両方に対してより良い判断を下す傾向があります。
ある時点の後、根本的な問題がテストの構築に現れます。タイプIまたはIIは、テストを実行する人にとってより重要です。陪審員の例では、タイプIの過誤がより重要であるため、法のプロセスはタイプIを回避するように構築されています。疑いがある場合は、その人は自由です。直感的に、これはタイプIIエラーの増加につながります。
ボンフェローニについて:
(ウィキペディアでも)
ボンフェローニ補正は、誤検知の確率のみを制御します。通常、修正には、偽陰性が発生する可能性が高くなり、その結果、統計的検出力が低下するという犠牲が伴います。多数の仮説をテストする場合、これにより大きな臨界値が生じる可能性があります。
コメント
- 回答ありがとうございます。便利ですが、それでも何か私にはわかりません。新しい質問を追加して投稿を更新しました。