สถิติ: ความสัมพันธ์ระหว่างอัลฟ่าและเบต้า


13

คำถามของฉันเกี่ยวกับความสัมพันธ์ระหว่างอัลฟ่าและเบต้ากับคำจำกัดความในสถิติ

alpha = type I error rate = ระดับนัยสำคัญภายใต้การพิจารณาว่าสมมติฐาน NULL นั้นถูกต้อง

อัตราข้อผิดพลาด Beta = type II

หากอัลฟาลดลง (ความจำเพาะเพิ่มขึ้นเมื่ออัลฟ่า = 1- เจาะจง) เบต้าจะเพิ่มขึ้น (ความไว / พลังงานลดลงเมื่อเบต้า = 1 - ความไว / พลังงาน)

การเปลี่ยนแปลงในอัลฟ่าส่งผลต่อเบต้าอย่างไร มีความสัมพันธ์เชิงเส้นหรือไม่? อัตราส่วนอัลฟ่า / เบต้าจะเท่ากันเสมอหรือกล่าวอีกนัยหนึ่งว่าความจำเพาะ / ความไวของอัตราส่วนจะเท่ากันเสมอหรือไม่? ถ้าใช่ก็หมายความว่าโดยใช้การแก้ไข bonferroni เราเพียงแค่เปลี่ยนเป็นความไวต่ำและความจำเพาะสูงกว่า แต่เราไม่ได้เปลี่ยนอัตราส่วนความไว / ความจำเพาะ ถูกต้องหรือไม่ที่จะพูดอย่างนั้น?

อัปเดต (คำถามเฉพาะกรณี):

สำหรับการออกแบบการทดลองที่กำหนดเราเรียกใช้โมเดลเชิงเส้น 5 ตัวบนข้อมูล เรามี True Positive Rate (sensitvity / power) ที่ 0.8 และ True Negative Rate (specificity) ที่ 0.7 (ลองจินตนาการว่าเรารู้ว่าอะไรควรเป็นบวกและไม่ควร) หากเราแก้ไขระดับนัยสำคัญโดยใช้ Bonferroni เป็น 0.05 / 5 = 0.01 เราสามารถประมาณอัตรา True Positive Rate (ความไว / พลังงาน) ที่เป็นผลลัพธ์และ True Negative Rate (Specificity) ได้หรือไม่?

ขอบคุณมาก ๆ สำหรับความช่วยเหลือของคุณ.

คำตอบ:


16

αβ

มีความเป็นไปได้สี่อย่างที่สามารถเกิดขึ้นได้:

  1. ผู้ป่วยได้รับการระบุอย่างถูกต้องว่าป่วย (true positive = TP)
  2. คนป่วยถูกจำแนกอย่างผิด ๆ ว่ามีสุขภาพดี (false negative = FN)
  3. บุคคลที่มีสุขภาพดีได้รับการระบุอย่างถูกต้องว่าเป็นคนมีสุขภาพดี (true negative = TN)
  4. คนที่มีสุขภาพดีถูกจำแนกอย่างผิด ๆ ว่าป่วย (false positive = 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 ในบรรดาคนที่มีสุขภาพระดับเลือดเฉลี่ยอยู่ที่ 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

เบต้าและอัลฟ่าที่มีการตัด 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 คนที่เลือกปฏิบัติต่อผู้ป่วยจากสุขภาพที่ดี


การปรับ Bonferroni

αββ0.020.31α0.090.01


@COOLSerdash ว้าวคำตอบที่ดี! ขอบคุณ. ในตัวอย่างของคุณการเลือกระดับสำคัญสามารถทำได้จากการแจกแจงที่รู้จัก ในวิชาชีววิทยาเช่นคุณไม่สามารถรู้การกระจายของตัวแปรตามของคุณหากการรักษามีผล กล่าวอีกนัยหนึ่งโดยการเลือกระดับความสำคัญคุณเลือกอัตราการบวกเป็นเท็จ แต่คุณแทบไม่รู้เลยว่าการตั้งค่าอัตราลบเป็นเท็จ ตามที่คุณไม่มีความคิดจริง ๆ เกี่ยวกับวิธีการกำหนดอัตราการบวกและลบ True ถูกต้องหรือไม่
Remi.b

1
αα1βαβpα

2

สำหรับคนอื่น ๆ ในอนาคต:

ในการประมาณขนาดตัวอย่าง Ztotal จะถูกคำนวณโดยการเพิ่ม Z ที่สอดคล้องกับอัลฟาและ Z ที่สอดคล้องกับกำลังไฟ (1-beta) ในทางคณิตศาสตร์ถ้าขนาดของกลุ่มตัวอย่างคงที่การเพิ่ม Z สำหรับอัลฟ่าหมายความว่าคุณลด Z สำหรับพลังงานด้วยจำนวน SAME เช่นเพิ่ม Zalpha จาก 0.05 เป็น 0.1 ลด Zpower ลง 0.05

ความแตกต่างคือ Z สำหรับอัลฟ่านั้นเป็นแบบสองด้านในขณะที่ Z สำหรับเบต้านั้นมี 1 แบบ ดังนั้นในขณะที่ค่า Z เปลี่ยนแปลงตามจำนวนเดียวกัน แต่ความน่าจะเป็น% ที่ค่า Z นี้สอดคล้องกับจะไม่เปลี่ยนแปลงตามจำนวนเดียวกัน

ตัวอย่าง:

5% อัลฟา (ความเชื่อมั่น 95%) ที่มีพลัง 80% (20% เบต้า) ให้ขนาดตัวอย่างเดียวกับ

20% อัลฟา (ความเชื่อมั่น 80%) ที่มีอำนาจ 93.6% (6.4% เบต้า) แทนที่จะเป็นพลัง 95% ที่เราจะได้รับหากความสัมพันธ์เป็น 1: 1


1

ไม่มีความสัมพันธ์ทั่วไประหว่างอัลฟ่าและเบต้า

ทุกอย่างขึ้นอยู่กับการทดสอบของคุณใช้ตัวอย่างง่าย ๆ :

(วิกิพีเดีย)

ในประเภทการใช้ภาษาพูดฉันข้อผิดพลาดสามารถคิดว่าเป็น "การตัดสินคนบริสุทธิ์" และข้อผิดพลาดประเภท II "ปล่อยให้คนผิดไปฟรี"

คณะลูกขุนอาจรุนแรง: ไม่มีข้อผิดพลาดประเภทที่สองบางประเภทฉันคณะลูกขุนอาจเป็น "ชนิด": ไม่พิมพ์ฉัน แต่บางประเภท II คณะลูกขุนอาจเป็นปกติ: บางประเภทฉันและบางประเภท II คณะลูกขุนจะสมบูรณ์แบบ: ไม่มีข้อผิดพลาด

ในทางปฏิบัติมีเอฟเฟกต์คู่ต่อสู้สองตัว:

เมื่อคุณภาพของการทดสอบสูงขึ้นข้อผิดพลาด type I และ Type II จะลดลงจนกระทั่งถึงจุดหนึ่ง เมื่อคณะลูกขุนดีขึ้นเขามีแนวโน้มที่จะตัดสินคนทั้งผู้บริสุทธิ์และผู้ผิดได้ดีขึ้น

หลังจากถึงจุดหนึ่งปัญหาพื้นฐานจะปรากฏขึ้นในการสร้างการทดสอบ Type I หรือ II นั้นสำคัญกว่าสำหรับผู้ที่ทำการทดสอบ ด้วยความผิดพลาดของคณะลูกขุนข้อผิดพลาดประเภทที่ 1 มีความสำคัญมากกว่าและดังนั้นกระบวนการทางกฎหมายจึงถูกสร้างขึ้นเพื่อหลีกเลี่ยงประเภทที่ 1 หากมีข้อสงสัยใด ๆ บุคคลนั้นจะเป็นอิสระ นำไปสู่การเติบโตในข้อผิดพลาด type II โดยสังหรณ์ใจ

เกี่ยวกับ Bonferroni:

(Wikipedia อีกครั้ง)

การแก้ไข Bonferroni ควบคุมความน่าจะเป็นของผลบวกเท็จเท่านั้น การแก้ไขโดยทั่วไปจะมีค่าใช้จ่ายในการเพิ่มความน่าจะเป็นของการสร้างเชิงลบที่ผิดพลาดและทำให้ลดกำลังทางสถิติลง เมื่อทำการทดสอบสมมติฐานจำนวนมากสิ่งนี้อาจส่งผลให้เกิดค่าวิกฤตจำนวนมาก


ขอบคุณสำหรับคำตอบของคุณมันมีประโยชน์ แต่ก็ยังมีบางสิ่งที่ไม่ชัดเจนสำหรับฉัน ฉันอัปเดตโพสต์แล้วเพิ่มคำถามใหม่
Remi.b
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.