ทำไมชุดการกระจายสินค้านี้


12

เรากำลังตรวจสอบการทดสอบทางสถิติแบบเบย์และพบกับปรากฏการณ์แปลก ๆ (สำหรับฉันอย่างน้อยที่สุด)

พิจารณากรณีต่อไปนี้: เราสนใจที่จะวัดว่าประชากร A หรือ B ใดที่มีอัตราการแปลงสูงกว่า สำหรับการตรวจสอบสติเราตั้งค่านั่นคือความน่าจะเป็นของการแปลงเท่ากันทั้งสองกลุ่ม เราสร้างข้อมูลเทียมโดยใช้แบบจำลองทวินามเช่นpA=pB

nABinomial(N,pA)

จากนั้นเราพยายามประเมินโดยใช้แบบจำลองเบต้า - ทวินามแบบเบย์เพื่อให้เราได้รับสำหรับแต่ละอัตราการแปลงเช่นpA,pB

PABeta(1+nA,NnA+1)

สถิติการทดสอบของเราคำนวณโดยการคำนวณผ่านทาง monte carloS=P(PA>PB|N,nA,nB)

สิ่งที่ทำให้ผมประหลาดใจคือว่าถ้าแล้ว(0,1)} ความคิดของฉันคือว่ามันจะอยู่กึ่งกลางประมาณ 0.5 และยังมาบรรจบกันถึง 0.5 เป็นขนาดตัวอย่าง, , เติบโต pA=pBSUniform(0,1)N

คำถามของฉันคือทำไม เมื่อ ?p A = p BSUniform(0,1)pA=pB


นี่คือบางส่วนของรหัสไพ ธ อนที่แสดง:

%pylab
from scipy.stats import beta
import numpy as np
import pylab as P

a = b = 0.5
N = 10000
samples = [] #collects the values of S
for i in range(5000):
    assert a==b
    A = np.random.binomial(N, a); B = np.random.binomial(N, b)
    S = (beta.rvs(A+1, N-A+1, size=15000) > beta.rvs(B+1, N-B+1, size=15000)).mean() 
    samples.append(S)

P.hist(samples)
P.show()

โปรดทราบว่าไม่สามารถเหมือนกันอย่างแน่นอนเพราะมันเป็นตัวแปรที่ไม่ต่อเนื่อง ดังนั้นคุณจะถามเกี่ยวกับพฤติกรรมที่ไม่มีอาการ ยิ่งไปกว่านั้นสำหรับขนาดเล็ก(น้อยกว่าประมาณโดยมี ) การกระจายไม่ได้ใกล้เคียงกับเครื่องแบบ SN100/min(p,1p)p=pA=pB
whuber

@whuber S ไม่ต่อเนื่องมันเป็นความน่าจะเป็นที่อยู่ระหว่าง 0 ถึง 1 นอกจากนี้แม้สำหรับ N ต่ำผมก็สังเกตพฤติกรรมที่เหมือนกัน
Cam.Davidson.Pilon

2
ฉันจะต้องเข้าใจการตั้งค่าของคุณผิดแล้ว เท่าที่ฉันสามารถบอกได้ว่าสำหรับค่าใด ๆ ของค่าของคือตัวเลข ดังนั้นยอมรับว่าและได้รับการแก้ไขในขณะนั้น (ในขณะที่พวกเขาอยู่ในรหัสของคุณ)เป็นหน้าที่ของn_B) แต่หลังการตระหนักถึงการแจกแจงทวินามสองครั้งสามารถบรรลุค่าชุดที่ไม่ต่อเนื่อง เมื่อฉันทำซ้ำรหัสของคุณในการที่ฉันได้รับ histograms เด็ดไม่เหมือนกันสำหรับขนาดเล็กและไม่มีข้อความN,nA,nB,SN,pA,pBS(nA,nB)RN
whuber

1
แม้ว่าของคุณจะมีค่าอยู่ระหว่างถึงแต่อย่าสับสนกับค่าที่ไม่ต่อเนื่อง: สามารถมีค่าที่แตกต่างกันมากที่สุด (และจริงๆแล้วมีค่าน้อยกว่านั้น) สิ่งนี้อาจไม่ชัดเจนสำหรับคุณเนื่องจากการจำลองของคุณสร้างค่าประมาณของแทนค่าที่ถูกต้องและค่าประมาณนั้นมีการกระจายอย่างต่อเนื่อง S01N2S
whuber

1
@ โฮ่ใช่คุณถูกต้องสังเกตที่ดีเยี่ยม ฉันยังคงติดอยู่กับเหตุผลที่ว่าทำไมมันดูเหมือนกันแล้ว
Cam.Davidson.Pilon

คำตอบ:


11

TL; DR: ส่วนผสมของการแจกแจงแบบปกติอาจมีลักษณะเหมือนกันเมื่อขนาดถังขยะมีขนาดใหญ่

คำตอบนี้ยืมมาจากรหัสตัวอย่าง @ whuber ของ (ซึ่งฉันคิดว่าครั้งแรกเป็นข้อผิดพลาด แต่ในการหวนกลับอาจเป็นคำใบ้)

สัดส่วนพื้นฐานในประชากรเท่ากัน: a = b = 0.5.
แต่ละกลุ่ม A และ B มี 10000 N = 10000สมาชิก:
พวกเราจะไปดำเนินการซ้ำของ 5000 for i in range(5000):จำลอง:

อันที่จริงสิ่งที่เรากำลังทำอยู่เป็นของ{} ในแต่ละ 5000 ซ้ำเราจะทำ{}simulationprimesimulationunderlyingsimulationprimesimulationunderlying

ในการทำซ้ำของแต่ละเราจะจำลองจำนวนสุ่มของ A และ B ที่มี 'ความสำเร็จ' (AKA แปลง) ให้เท่ากับสัดส่วนพื้นฐานที่กำหนดไว้ก่อนหน้านี้: ชื่อนี้จะให้ผลตอบแทน A = 5,000 และ B = 5,000 แต่ A และ B แตกต่างกันไปจากการทำงานของซิมไปจนถึงการทำงานของซิมและมีการกระจายข้ามการจำลองการทำงาน 5,000 ครั้งอย่างอิสระและโดยปกติ (โดยประมาณ)simulationprimeA = np.random.binomial(N, a); B = np.random.binomial(N, b)

ตอนนี้เรามาถึง สำหรับการวนซ้ำหนึ่งครั้งของซึ่ง A และ B มีจำนวนความสำเร็จเท่ากัน (ตามค่าเฉลี่ยของกรณี) ในแต่ละการวนซ้ำของเราจะได้รับ A และ B สร้างการแปรปรวนแบบสุ่มของการแจกแจงแบบเบต้าสำหรับแต่ละกลุ่ม จากนั้นเราจะทำการเปรียบเทียบและหาว่าโดยให้เป็น TRUE หรือ FALSE (1 หรือ 0) ในตอนท้ายของการรันของเราได้ทำซ้ำ 15000 ครั้งและมีค่า 15,000 TRUE / FALSE ค่าเฉลี่ยของสิ่งเหล่านี้จะให้ค่าเดียวจากการกระจายตัวตัวอย่าง (ประมาณปกติ) ของสัดส่วนของsimulationunderlyingsimulationprimesimulationunderlyingBetaA>BetaBsimulationunderlyingBetaA>BetaBเบต้า}

ยกเว้นตอนนี้จะเลือกค่า 5000 A และ B A และ B จะไม่ค่อยเท่ากัน แต่ความแตกต่างโดยทั่วไปในจำนวน A และ B ที่ประสบความสำเร็จนั้นถูกแคระโดยขนาดตัวอย่างทั้งหมดของ A และ B โดยทั่วไปในฐานะ A และ B โดยทั่วไป As และ Bs จะให้ผลมากกว่าดึงจากการกระจายตัวอย่างสัดส่วนสัดส่วนแต่สิ่งที่อยู่บนขอบของการกระจาย A / B จะถูกดึงเช่นกันsimulationprimeBetaA>BetaB

ดังนั้นสิ่งที่สำคัญที่เราดึงมากกว่าการทำงานของซิมคือการรวมกันของการสุ่มตัวอย่างการแจกแจงของสำหรับการรวมกันของ A และ B (ด้วยการดึงเพิ่มเติมจากการแจกแจงตัวอย่างที่ทำจากค่าทั่วไป ของ A และ B มากกว่าค่าที่ผิดปกติของ A และ B) สิ่งนี้ส่งผลให้เกิดการผสมผสานของการแจกแจงแบบปกติ - ish เมื่อคุณรวมขนาดที่มีขนาดเล็กลง (เช่นเดียวกับค่าเริ่มต้นสำหรับฟังก์ชั่นฮิสโตแกรมที่คุณใช้และระบุไว้ในรหัสเดิมของคุณโดยตรง) คุณจะพบสิ่งที่ดูเหมือนการกระจายแบบสม่ำเสมอBetaA>BetaB

พิจารณา:

a = b = 0.5
N = 10
samples = [] #collects the values of S
for i in range(5000):
    assert a==b
    A = np.random.binomial(N, a); B = np.random.binomial(N, b)
    S = (beta.rvs(A+1, N-A+1, size=15000) > beta.rvs(B+1, N-B+1, size=15000)).mean() 
    samples.append(S)

P.hist(samples,1000)
P.show()

1
ดังนั้นจึงมีความแตกต่างระหว่างของฉันและรหัสของคุณ ฉันสุ่มตัวอย่าง A และ B ในแต่ละวงคุณลองมันหนึ่งครั้งและคำนวณ S 5000 ครั้ง
Cam.Davidson.Pilon

1
ความคลาดเคลื่อนอยู่ในการเรียกของคุณrbinomซึ่งส่งคืนเวกเตอร์ โทรตามมาrbetaภายในreplicateจะ vectorized ดังนั้นภายใน (ภายใน) ห่วงคือการใช้ที่แตกต่างกัน และสำหรับแต่ละตัวแปรสุ่ม 15000 สร้าง (ห่อรอบสุดท้าย 5000 ตั้งแต่ของคุณ) ดูเพิ่มเติม สิ่งนี้แตกต่างจากรหัสของ @ Cam ซึ่งมีและคงที่เดียวที่ใช้ในการโทรสุ่ม 15000 รายการทั้งหมดสำหรับการสุ่มตัวอย่าง 5000 ครั้ง ( ) แต่ละครั้ง B A BABNSIM = 10000?rbetaABreplicate
พระคาร์ดินัล

1
นี่คือผลลัพธ์สำหรับผู้ที่อยากรู้อยากเห็น: imgur.com/ryvWbJO
Cam.Davidson.Pilon

1
สิ่งเดียวที่ฉันรู้ว่ามีความเกี่ยวข้องในระดับแนวคิดคือก) การแจกแจงผลลัพธ์ที่คาดหวังมีความสมมาตรข) ขนาดถังขยะของ 1 มีค่าสม่ำเสมอเสมอกัน c) ขนาดถังขยะ 2 สำหรับการกระจายแบบสมมาตร จะปรากฏสม่ำเสมอเสมอ d) จำนวนการแจกแจงการสุ่มตัวอย่างที่เป็นไปได้ที่สามารถดึงมาจากการเพิ่มด้วย N, e) ค่าของ S ไม่สามารถซ้อนทับบน 0 หรือ 1 เพียงอย่างเดียวเพราะเบต้าไม่ได้กำหนดไว้เมื่อมี 0 สำเร็จในทั้งสองกลุ่ม และ f) ตัวอย่างถูก จำกัด ระหว่าง 0 และ 1
russellpierce

1
จากการสังเกตเพียงอย่างเดียวเราจะเห็นว่าระยะห่างระหว่างเซนทรอยด์ของการกระจายตัวตัวอย่างลดลงเมื่อเซนทรอยด์ของการกระจายตัวตัวอย่างเคลื่อนห่างจาก. 5 (อาจเกี่ยวข้องกับประเด็น f ด้านบน) ผลกระทบนี้มีแนวโน้มที่จะต่อต้านแนวโน้มสำหรับความถี่สูงของการสังเกตสำหรับความสำเร็จที่เท่าเทียมกันโดยทั่วไปในกลุ่ม A และกลุ่ม B อย่างไรก็ตามการให้วิธีการแก้ปัญหาทางคณิตศาสตร์เกี่ยวกับสาเหตุที่เป็นหรือทำไมจึงควรให้การแจกแจงแบบปกติสำหรับขนาดถังขยะบางขนาดไม่ได้อยู่ใกล้กับพื้นที่ของฉัน
russellpierce

16

เพื่อให้ได้สัญชาตญาณว่าเกิดอะไรขึ้นขอให้เรารู้สึกอิสระที่จะทำให้มีขนาดใหญ่มากและไม่สนใจพฤติกรรมและใช้ประโยชน์จากทฤษฎีแบบอะซิมโทติคซึ่งระบุว่าการแจกแจงทั้งแบบเบต้าและแบบทวินาม (ด้วยปัญหาบางอย่างสิ่งทั้งหมดนี้สามารถทำได้อย่างเข้มงวด) เมื่อเราทำสิ่งนี้ผลลัพธ์จะปรากฏขึ้นจากความสัมพันธ์เฉพาะระหว่างพารามิเตอร์ต่างๆO ( 1 / N )NO(1/N)


เนื่องจากเราวางแผนที่จะใช้การประมาณปกติเราจะต้องใส่ใจกับความคาดหวังและความแปรปรวนของตัวแปร:

  • ในฐานะที่เป็นทวินาม variates,และมีความคาดหวังของและความแปรปรวนของ N ดังนั้นและมีความคาดหวังของและแปรปรวน Nn A n B p N p ( 1 - p ) N α = n A / N β = n B / N p p ( 1 - p ) / N(N,p)nAnBpNp(1p)Nα=nA/Nβ=nB/Npp(1p)/N

  • ในฐานะที่เป็นรุ่นเบต้าตัวแปร,มีความคาดหวังของและความแปรปรวนของ3)] ประมาณว่าเราพบว่ามีความคาดหวัง(nA+1,N+1nA)PA(nA+1)/(N+2)(nA+1)(N+1nA)/[(N+2)2(N+3)]PA

    E(PA)=α+O(1/N)

    และความแปรปรวนของ

    Var(PA)=α(1α)/N+O(1/N2),

    กับผลที่คล้ายกันสำหรับP_BPB

ให้เราประมาณการกระจายตัวของและด้วย Normalและ Normalการกระจาย (โดยที่พารามิเตอร์ตัวที่สอง กำหนดความแปรปรวน ) การกระจายของจึงเป็นปกติประมาณ; เพื่อปัญญาPAPB(α,α(1α)/N)(β,β(1β)/N)PAPB

PAPBNormal(αβ,α(1α)+β(1β)N).

สำหรับมีขนาดใหญ่มากนิพจน์จะไม่เปลี่ยนแปลงอย่างเห็นได้ชัดจากยกเว้น ที่มีความน่าจะเป็นต่ำมาก (อีกคำที่ถูกละเลย ) ดังนั้นให้เป็น CDF มาตรฐานทั่วไปNα(1α)+β(1β)p(1p)+p(1p)=2p(1p)O(1/N)Φ

Pr(PA>PB)=Pr(PAPB>0)Φ(αβ2p(1p)/N).

แต่เนื่องจากมีค่าเฉลี่ยเป็นศูนย์และความแปรปรวนเป็นมาตรฐานปกติ แปรปรวน (อย่างน้อยประมาณ) คือมันน่าจะเป็นแปลง ; เป็นเครื่องแบบαβ2p(1p)/N, Z=αβ2p(1p)/NΦΦ(Z)


1
ฉันอยู่กับคุณจนกระทั่ง ... จากนั้นคุณออกไปอีกทิศทางหนึ่งที่ฉันไม่ได้ติดตาม คือที่กำหนดไว้สองครั้งเป็นปกติ CDF มาตรฐานแล้วเป็นหนึ่งน่าจะเปลี่ยน? ฉันหวังว่าคุณสามารถขยายคำอธิบายของคุณตามขั้นตอนเหล่านี้และเชื่อมโยงพวกเขากับรหัส / ปัญหาเริ่มต้น อาจวนกลับไปมาและแก้ไขพารามิเตอร์เฉพาะที่ให้ผลลัพธ์เหมือนกัน PAPBNormalΦ
russellpierce

1
@rpierce (1) ความแตกต่างของนั้นประมาณปกติเนื่องจากและนั้นมีความเป็นอิสระและแต่ละตัวก็เป็นปกติ ค่าเฉลี่ยคือความแตกต่างของค่าเฉลี่ยและความแปรปรวนคือผลรวมของความแปรปรวน (2) การแปลงอินทิกรัลแบบน่าจะเป็นคือ CDF: เป็นกรณีของตัวแปรสุ่มมีการแจกแจงแบบต่อเนื่องซึ่งนั้นเหมือนกัน PAPBPAPBXFF(X)
whuber

1
โอ้ฉันได้ 1 มันเป็นของหลังจากที่ฉันหลงทาง นี่จะเป็นสิ่งที่น่าเหลือเชื่อ แต่ทำไมเหมือนกับ CDF Pr(PA>PB)
russellpierce

1
@ rpierce นั้นค่อนข้างตรงตามคำจำกัดความ แต่มีการบิดเล็กน้อยซึ่งสมมาตรของการแจกแจงแบบปกติจะถูกเรียกใช้ เรากำลังจัดการกับตัวแปรปกติสันนิษฐานว่าจะมีความคาดหวังของและความแปรปรวน N Standardizingมันเป็นเรื่องธรรมดาที่จะเขียนความน่าจะเป็นX=PAPBμ=αβσ2=2p(1p)/NX
Pr(X>0)=Pr((Xμ)/σ>(0μ)/σ)=1Φ(μ/σ)=Φ(μ/σ).
whuber

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