กฎ. 632+ ในการบูตสแตรปคืออะไร


107

ที่นี่ @gung อ้างอิงถึงกฎ. 632+ การค้นหาโดย Google อย่างรวดเร็วไม่ได้ให้คำตอบที่เข้าใจง่ายว่ากฎนี้หมายถึงอะไรและใช้เพื่อจุดประสงค์ใด มีคนช่วยอธิบายกฎ. 632+ หน่อยได้ไหม

คำตอบ:


115

ฉันจะไปที่ตัวประมาณ 0.632 แต่มันจะเป็นการพัฒนาที่ค่อนข้างยาว:

สมมติว่าเราต้องการทำนายด้วยโดยใช้ฟังก์ชันซึ่งอาจขึ้นอยู่กับพารามิเตอร์บางอย่างที่ประเมินโดยใช้ข้อมูลเช่นYXff(Y,X)f(X)=Xβ

การประมาณค่าผิดพลาดโดยการคาดการณ์คือโดยที่คือฟังก์ชันการสูญเสีย มักเรียกว่าข้อผิดพลาดในการฝึกอบรม Efron และคณะ เรียกมันว่าอัตราข้อผิดพลาดที่ชัดเจนหรืออัตราการประกาศใหม่ มันไม่ดีมากเพราะเราจะใช้ข้อมูลของเราเพื่อให้พอดีกับFส่งผลให้ถูกทำให้ลำเอียงลง คุณต้องการที่จะทราบวิธีที่ดีรูปแบบของคุณไม่ในการทำนายค่าใหม่L(xi,yi)f¯errf

err¯=1Ni=1NL(yi,f(xi))
L(xi,yi)ferr¯f

บ่อยครั้งที่เราใช้การตรวจสอบความถูกต้องไขว้เป็นวิธีง่ายๆในการประเมินข้อผิดพลาดการคาดการณ์ตัวอย่างพิเศษที่คาดหวัง

Err=E[L(Y,f(X))]

วิธีที่นิยมทำเช่นนี้คือทำการตรวจสอบข้าม -fold แบ่งข้อมูลของคุณออกเป็นกลุ่ม (เช่น 10) สำหรับแต่ละกลุ่มพอดีกับรูปแบบของคุณที่เหลือกลุ่มและทดสอบบน TH กลุ่ม ข้อผิดพลาดการคาดการณ์ตัวอย่างเพิ่มเติมที่ผ่านการตรวจสอบแล้วของเรานั้นเป็นเพียงค่าเฉลี่ยโดยที่เป็นฟังก์ชั่นดัชนีบางอย่างที่ระบุพาร์ติชันที่การสังเกตได้รับการจัดสรรและเป็นค่าที่คาดการณ์ของโดยใช้ข้อมูลที่ไม่ได้อยู่ในชุด thK k K - 1 kKKkK1k

ErrCV=1Ni=1NL(yi,fκ(i)(xi))
κifκ(i)(xi)xiκ(i)

ประมาณนี้จะอยู่ที่ประมาณเป็นกลางสำหรับข้อผิดพลาดการทำนายเป็นจริงเมื่อและมีความแปรปรวนขนาดใหญ่และมีมากขึ้นการคำนวณราคาแพงสำหรับขนาดใหญ่Kดังนั้นอีกครั้งที่เราเห็นอคติ - ความแปรปรวนการค้าที่เล่นK=NK

แทนที่จะใช้การตรวจสอบความถูกต้องข้ามเราสามารถใช้ bootstrap เพื่อประเมินข้อผิดพลาดการทำนายตัวอย่างแบบพิเศษ Bootstrap resampling สามารถใช้ในการประเมินการกระจายตัวตัวอย่างของสถิติใด ๆ หากข้อมูลการฝึกอบรมของเราคือจากนั้นเราสามารถนึกถึงการเก็บตัวอย่าง (พร้อมการแทนที่) จากชุดนี้โดยที่แต่ละชุดเป็นตัวอย่างตัวอย่าง ตอนนี้เราสามารถใช้ตัวอย่างบูตสแตรปของเราเพื่อประเมินข้อผิดพลาดในการทำนายตัวอย่างแบบพิเศษ:โดยที่คือค่าที่ทำนายไว้ที่จากแบบจำลองที่พอดีกับX=(x1,,xN)BZ1,,ZBZiN

Errboot=1Bb=1B1Ni=1NL(yi,fb(xi))
fb(xi)xib th ชุดข้อมูล bootstrap น่าเสียดายที่นี่ไม่ใช่ตัวประมาณที่ดีโดยเฉพาะเนื่องจากตัวอย่าง bootstrap ที่ใช้ในการผลิตอาจมีอยู่ ตัวประมาณการ bootstrap แบบปล่อยครั้งเดียวให้การปรับปรุงโดยการเลียนแบบการตรวจสอบความถูกต้องข้ามและถูกกำหนดเป็น:โดยที่เป็นชุดของดัชนีสำหรับตัวอย่าง bootstrap ที่ ไม่มีการสังเกตและคือจำนวนตัวอย่างดังกล่าว fb(xi)xi
Errboot(1)=1Ni=1N1|Ci|bCiL(yi,fb(xi))
Cii|Ci|Errboot(1)แก้ปัญหาการ overfitting แต่ยังคงลำเอียง (อันนี้เป็นลำเอียงขึ้นไป) อคติเกิดจากการสังเกตที่ไม่ชัดเจนในตัวอย่างบูตสแตรปซึ่งเป็นผลมาจากการสุ่มตัวอย่างด้วยการแทนที่ จำนวนการสังเกตที่แตกต่างกันโดยเฉลี่ยในแต่ละตัวอย่างประมาณ (ดูคำตอบนี้สำหรับคำอธิบายว่าทำไมทำไมตัวอย่าง bootstrap โดยเฉลี่ยแต่ละอันมีประมาณสองในสามของการสังเกต? ) เพื่อแก้ปัญหาอคติ Efron และ Tibshirani เสนอตัวประมาณ 0.632: โดยที่0.632N
Err.632=0.368err¯+0.632Errboot(1)
err¯=1Ni=1NL(yi,f(xi))
เป็นข้อผิดพลาดในการคาดคะเนการคาดการณ์ที่ไร้เดียงสามักเรียกว่าข้อผิดพลาดในการฝึกอบรม แนวคิดคือการเฉลี่ยค่าประมาณลำเอียงที่ลดลงและค่าประมาณที่เอนเอียงขึ้น

อย่างไรก็ตามถ้าเรามีฟังก์ชั่นการคาดคะเนที่สูงเกินไป (เช่น ) ดังนั้นแม้แต่ตัวประมาณ. 632 ก็จะเอนเอียงลง เครื่องมือประมาณการ. 632+ ได้รับการออกแบบมาให้มีการประนีประนอมระหว่างและน้อย พร้อม โดยที่คืออัตราข้อผิดพลาดที่ไม่มีข้อมูลประมาณโดยการประเมินรูปแบบการทำนายของชุดค่าผสมที่เป็นไปได้ทั้งหมด เป้าหมายและพยากรณ์x_ierr¯=0err¯Errboot(1)

Err.632+=(1w)err¯+wErrboot(1)
w=0.63210.368RandR=Errboot(1)err¯γerr¯
γyixi

γ=1N2i=1Nj=1NL(yi,f(xj))
(x_j))

นี่วัดอัตราการ overfitting สัมพัทธ์ หากไม่มีการ overfitting (R = 0 เมื่อ ) นี่จะเท่ากับ. 632RErrboot(1)=err¯


2
เหล่านี้เป็นคำถามที่ดี @rpierce แต่พวกเขาค่อนข้างห่างจากหัวข้อกลางของหัวข้อนี้ จะเป็นการดียิ่งขึ้นถ้า CV องค์กรฉลาดที่จะมีพวกเขาในหัวข้อใหม่เพื่อให้มันง่ายขึ้นสำหรับคนที่จะค้นหาและใช้ข้อมูลนั้นในภายหลัง
gung



1
@ ดุร้ายฉันขอโทษถ้าฉันทำให้คำถามของฉันยากที่จะติดตาม กำลังเปรียบเทียบความพอดีของแบบจำลองของคุณกับข้อมูลที่ใช้เพื่อให้พอดี ดังนั้นสำหรับการสูญเสียข้อผิดพลาดกำลังสองที่จะเป็นerr¯=1Ni=1NL(yi,f(xi))1ni=1n(yiy^i)2
bdeonovic

1
@ ดุร้ายใช่! ฉันเป็นคนตัวเล็ก ๆ น้อย ๆ เพราะฉันได้ทบทวนเนื้อหานี้อีกครั้งจากบันทึกย่อของชั้นเรียน
bdeonovic

53

คุณจะพบข้อมูลเพิ่มเติมในส่วนที่ 3 นี้1กระดาษ แต่เพื่อสรุปถ้าคุณเรียกตัวอย่างของตัวเลขจากวาดแบบสุ่มและมีการแทนที่มีค่าเฉลี่ยประมาณองค์ประกอบที่ไม่ซ้ำกันSn{1:n}S(1e1)n0.63212056n

เหตุผลมีดังนี้ เราเติมโดยการสุ่มตัวอย่างครั้ง (แบบสุ่มและด้วยการเปลี่ยน) จาก\} พิจารณาโดยเฉพาะอย่างยิ่งดัชนี\} S={s1,,sn}i=1,,n{1:n}m{1:n}

แล้ว:

P(si=m)=1/n

และ

P(sim)=11/n

และนี่คือความจริง (สังหรณ์ใจเนื่องจากเราสุ่มตัวอย่างด้วยการแทนที่ความน่าจะเป็นไม่ได้ขึ้นอยู่กับ )1ini

ดังนั้น

P(mS)=1P(mS)=1P(i=1nsim)=1i=1nP(sim)=1(11/n)n1e1

นอกจากนี้คุณยังสามารถจำลองเล็ก ๆ น้อย ๆ นี้เพื่อตรวจสอบคุณภาพของการประมาณค่า (ซึ่งขึ้นอยู่กับ ):n

n <- 100
fx01 <- function(ll,n){
    a1 <- sample(1:n, n, replace=TRUE)
    length(unique(a1))/n
}
b1 <- c(lapply(1:1000,fx01,n=100), recursive=TRUE)
mean(b1)

1. Bradley Efron และ Robert Tibshirani (1997) การปรับปรุงการตรวจสอบข้าม: วิธีการบูต . 632+ วารสารของสมาคมอเมริกันสถิติฉบับ 92, หมายเลข 438, pp. 548--560


3
นี่คือเอกสารสำหรับคุณในการอ้างอิง - stat.washington.edu/courses/stat527/s14/readings/ …

1
(+1) ดีมาก ฉันจะทำให้สัญลักษณ์มีมาตรฐานเพิ่มขึ้นอีกเล็กน้อย ข้อมูล:x_n) IID ตัวแปรสุ่มกับ(k) ผลลัพธ์:\% (x1,,xn)S1,,SnP(Si=k)=1nI{1,,n}(k)P(i=1n{Si=k})=1P(i=1n{Sik})=1i=1nP{Sik}=1(11/n)n11/e63.21%
Zen

4
@rpierce: ใช่ "ความชัดเจน" บิตว่าคำตอบขณะนี้ล้มเหลวที่จะพูดถึงก็คือว่า1-E1e10.63212056
Ilmari Karonen

1
คำตอบนี้ดีมากจริง ๆ แล้วคำตอบที่ได้รับการยอมรับรวมทั้งคำตอบนี้ให้คำตอบเต็มคำถามของฉัน - แต่ระหว่างสองสิ่งนี้ฉันรู้สึกว่าเบนจามินอยู่ใกล้กับสิ่งที่ฉันกำลังมองหาในคำตอบ ที่ถูกกล่าว - ฉันหวังว่ามันเป็นไปได้ที่จะยอมรับทั้ง
russellpierce

1
@rpierce: ในการอ้างถึง Celine Dion " Tale as as as time / song as as the Rhyme / Beauty และ the beast" : P
Nick Stauner

8

จากประสบการณ์ของฉันโดยพื้นฐานจากการจำลองสถานการณ์ bootstrap รุ่น 0.632 และ 0.632+ นั้นมีความจำเป็นเท่านั้นเนื่องจากปัญหาร้ายแรงที่เกิดจากการใช้กฎการให้คะแนนความแม่นยำที่ไม่เหมาะสมกล่าวคือสัดส่วน "จำแนก" อย่างถูกต้อง เมื่อคุณใช้กฎการให้คะแนนที่เหมาะสม (เช่นคะแนน deviance-based หรือ Brier) หรือกึ่งกึ่งกลาง (เช่น -index = AUROC) มาตรฐาน bootstrap การมองโลกในแง่ดีของ Efron-Gong ก็ใช้ได้ดีc


3
ฉันไม่คิดว่าฉันเข้าใจสิ่งที่คุณพูดที่นี่มากที่สุดในแฟรงก์ คุณยินดีจะอธิบายไหม? ดูเหมือนคุณจะมีบางอย่างที่พิเศษและสำคัญที่จะต้องช่วย
russellpierce

ยินดีที่จะขยายหากคุณสามารถระบุคำถามเฉพาะ
Frank Harrell

1
กฎการให้คะแนนเหล่านี้คือ ... ตัดสินคุณภาพของผลบู๊ตสแตรปใช่ไหม คุณสามารถให้ลิงค์ที่อธิบายสัดส่วน "จัดประเภท" กฎการให้คะแนนที่ถูกต้องได้หรือไม่ฉันกำลังมีปัญหาในการจินตนาการว่าสัตว์ชนิดใดที่อาจเป็น จากผลการค้นหาอันดับต้น ๆ สำหรับ "การมองโลกในแง่ดี Efron-Gong" บน Google ส่วนใหญ่ดูเหมือนจะโพสต์โดยคุณ ... มันแตกต่างจากถ้าฉันพูดว่า "bootstrap" โดยไม่มีตัวระบุหรือไม่ ฉันควรดูบทความ Effron และ Gong ใด ดูเหมือนจะมีหลายอย่าง
russellpierce

3
ดูกระดาษต้นฉบับประมาณ 0.632 ซึ่งใช้และกำหนดสัดส่วนที่จำแนกอย่างถูกต้อง (Efron & Tibshirani JASA 92: 548; 1997) bootstrap optimism เป็นตัวแปรของ bootstrap สำหรับการประมาณค่าอคติ อธิบายไว้ใน Gong: JASA 85:20; 1990.
Frank Harrell

2

คำตอบเหล่านั้นมีประโยชน์มาก ฉันหาวิธีสาธิตด้วยคณิตศาสตร์ไม่ได้ดังนั้นฉันจึงเขียนโค้ด Python ที่ใช้งานได้ดี:

    from numpy import mean
    from numpy.random import choice

    N = 3000

    variables = range(N)

    num_loop = 1000
    # Proportion of remaining variables
    p_var = []

    for i in range(num_loop):
        set_var = set(choice(variables, N))
        p=len(set_var)/float(N)
        if i%50==0:
            print "value for ", i, " iteration ", "p = ",p
        p_var.append(p)

    print "Estimator of the proportion of remaining variables, ", mean(p_var)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.