Tại sao đồng phục phân phối này?


12

Chúng tôi đang điều tra thử nghiệm thống kê Bayes, và bắt gặp một hiện tượng kỳ lạ (với tôi ít nhất).

Hãy xem xét trường hợp sau: chúng tôi quan tâm đến việc đo dân số, A hoặc B, có tỷ lệ chuyển đổi cao hơn. Để kiểm tra độ tỉnh táo, chúng tôi đặt , nghĩa là xác suất chuyển đổi là bằng nhau ở cả hai nhóm. Chúng tôi tạo dữ liệu nhân tạo bằng mô hình nhị thức, ví dụ:pA=pB

nABinomial(N,pA)

Sau đó, chúng tôi cố gắng ước tính bằng mô hình nhị phân beta Bayes để chúng tôi có được hậu thế cho mỗi tỷ lệ chuyển đổi, ví dụ:pA,pB

PABeta(1+nA,NnA+1)

Thống kê kiểm tra của chúng tôi được tính bằng cách tính thông qua monte carlo.S=P(PA>PB|N,nA,nB)

Điều làm tôi ngạc nhiên là nếu , thì . Suy nghĩ của tôi là nó sẽ tập trung vào khoảng 0,5, và thậm chí hội tụ đến 0,5 khi cỡ mẫu, N , tăng lên. pA=pBSUniform(0,1)N

Câu hỏi của tôi là, tại sao SUniform(0,1) khi pA=pB ?


Đây là một số mã Python để chứng minh:

%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()

Lưu ý rằng không thể đồng nhất chính xác, bởi vì nó là một biến rời rạc. Do đó, bạn đang hỏi về hành vi tiệm cận. Ngoài ra, đối với nhỏ (dưới , xấp xỉ, với ), phân phối thậm chí không gần với thống nhất. SN100/min(p,1p)p=pA=pB
whuber

@whuber S không rời rạc, đó là một xác suất có thể rơi vào khoảng từ 0 đến 1. Ngoài ra, ngay cả đối với N thấp, tôi đang quan sát hành vi thống nhất.
Cam.Davidson.Pilon

2
Tôi phải hiểu nhầm thiết lập của bạn, sau đó. Theo như tôi có thể nói, với bất kỳ giá trị đã cho nào của giá trị của là một số. Do đó, chấp nhận rằng và được cố định trong thời điểm này (vì chúng nằm trong mã của bạn), là một hàm của . Nhưng sau này, là sự hiện thực hóa hai phân phối Binomial, chỉ có thể đạt được một tập hợp các giá trị riêng biệt. Khi tôi sao chép mã của bạn vào , tôi nhận được biểu đồ không đồng nhất cho nhỏ . N,nA,nB,SN,pA,pBS(nA,nB)RN
whuber

1
Mặc dù thực sự của bạn có các giá trị từ đến , nhưng đừng nhầm lẫn rằng với không rời rạc: nó có thể có tối đa giá trị riêng biệt (và thực tế có ít hơn thế). Điều này có thể không hoàn toàn rõ ràng với bạn vì mô phỏng của bạn tạo ra các ước tính của thay vì các giá trị chính xác của nó và các ước tính về cơ bản có phân phối liên tục. 0 1 N 2 SS01N2S
whuber

1
@whuber vâng, bạn đúng, quan sát tuyệt vời. Tôi vẫn còn bế tắc về lý do tại sao nó trông đồng nhất sau đó.
Cam.Davidson.Pilon

Câu trả lời:


11

TL; DR: Hỗn hợp phân phối bình thường có thể trông đồng nhất khi kích thước thùng lớn.

Câu trả lời này mượn từ mã mẫu của @ whuber (mà tôi nghĩ đầu tiên là lỗi, nhưng nhìn lại có lẽ là một gợi ý).

Các tỷ lệ cơ bản trong dân số là bằng nhau : a = b = 0.5.
Mỗi nhóm, A và B có 10000 thành viên : N = 10000.
Chúng tôi sẽ tiến hành 5000 lần lặp lại mô phỏng : for i in range(5000):.

Trên thực tế, những gì chúng tôi đang làm là một của một s i m u l a t i o n u n d e r l y i n g . Trong mỗi lần lặp 5000 s i m u l một t i o n p r i m đ chúng tôi sẽ làm ssimulationprimesimulationunderlyingsimulationprime .simulationunderlying

Trong mỗi lần lặp của chúng ta sẽ mô phỏng một số ngẫu nhiên của A và B là 'thành công' (AKA chuyển đổi) đưa ra tỷ lệ cơ bản tương đương được xác định trước đó: . Về cơ bản, điều này sẽ mang lại A = 5000 và B = 5000, nhưng A và B thay đổi từ chạy sim sang chạy sim và được phân phối trên 5000 mô phỏng chạy độc lập và (khoảng) thông thường (chúng tôi sẽ quay lại với điều đó).simulationprimeA = np.random.binomial(N, a); B = np.random.binomial(N, b)

Bây giờ chúng ta hãy bước qua cho một lần lặp duy nhất của s i m u l a t i o n p r i m e trong đó A và B có được thực hiện trên một số lượng thành công như nhau (như sẽ là trung bình của trường hợp). Trong mỗi lần lặp của s i m u l một t i o n usimulationunderlyingsimulationprime chúng ta sẽ, cho A và B, tạo ra các biến thể ngẫu nhiên của phân phối beta cho mỗi nhóm. Sau đó, chúng tôi sẽ so sánh chúng và tìm hiểu xem B e t a A > B e t a B , mang lại TRUE hay FALSE (1 hoặc 0). Vào cuối một hoạt động củasimulmộttio n u n d e r l y i n gsimulationunderlyingBetaA>BetaBsimulationunderlying, chúng tôi đã hoàn thành 15000 lần lặp và có 15000 giá trị TRUE / FALSE. Mức trung bình trong số này sẽ mang lại một giá trị duy nhất từ (xấp xỉ bình thường) lấy mẫu phân bố tỷ lệ .BetaA>BetaB

Ngoại trừ bây giờ sẽ chọn 5000 A và B giá trị. A và B sẽ hiếm khi bằng nhau, nhưng sự khác biệt điển hình về số lượng thành công của A và B bị lấn át bởi tổng kích thước mẫu của A và B. Điển hình As và Bs sẽ mang lại nhiều lực kéo hơn từ phân phối mẫu của B e t a A > B e t a B , nhưng những người ở các cạnh của phân phối A / B cũng sẽ bị kéo.simulationprimeBetaA>BetaB

Vì vậy, về bản chất, chúng tôi kéo theo nhiều lần chạy sim là sự kết hợp các phân phối lấy mẫu của để kết hợp A và B (với nhiều lần lấy hơn từ các phân phối lấy mẫu được tạo từ các giá trị chung của A và B hơn các giá trị không phổ biến của A và B). Điều này dẫn đến hỗn hợp phân phối bình thường-ish. Khi bạn kết hợp chúng trên một kích thước thùng nhỏ (như mặc định cho chức năng biểu đồ bạn đã sử dụng và được chỉ định trực tiếp trong mã gốc của bạn), bạn sẽ kết thúc với một thứ trông giống như một bản phân phối thống nhất.BetaA>BetaB

Xem xét:

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
Vì vậy, có một sự khác biệt giữa mã của tôi và mã của bạn. Tôi lấy mẫu A và B trong mỗi vòng lặp, bạn lấy mẫu một lần và tính S 5000 lần.
Cam.Davidson.Pilon

1
Sự khác biệt nằm trong các cuộc gọi của bạn rbinom, trả về một vectơ. Cuộc gọi tiếp theo vào rbetabên trong replicateđược vector hóa, do đó, vòng lặp bên trong (bên trong) đang sử dụng AB khác nhau cho mỗi trong số 15000 biến ngẫu nhiên được tạo (bao quanh 5000 cuối cùng kể từ khi bạn ). Xem để biết thêm. Mã này khác với mã của @ Cam có một AB cố định duy nhất được sử dụng trong tất cả 15000 cuộc gọi biến đổi ngẫu nhiên cho mỗi trong số 5000 vòng lặp lấy mẫu ( ). ABNSIM = 10000?rbetaABreplicate
Đức hồng y

1
đây là đầu ra cho những người tò mò: imgur.com/ryvWbJO
Cam.Davidson.Pilon

1
Điều duy nhất tôi nhận thấy có khả năng thích hợp ở mức độ khái niệm là a) phân phối kết quả dự kiến ​​là đối xứng, b) kích thước bin 1 luôn đồng nhất, c) kích thước bin 2 cho phân phối đối xứng cũng sẽ luôn xuất hiện thống nhất, d) số lượng phân phối lấy mẫu có thể có thể được rút ra từ các mức tăng với N, e) giá trị của S không thể xếp chồng lên 0 hoặc 1 vì beta không được xác định khi có 0 thành công trong cả hai nhóm và f) các mẫu được giới hạn trong khoảng từ 0 đến 1.
russellpierce

1
Khi quan sát một mình, chúng ta có thể thấy rằng khoảng cách giữa các tâm của phân phối lấy mẫu bị giảm khi các tâm của phân phối lấy mẫu di chuyển ra xa .5 (có thể liên quan đến điểm f ở trên). Hiệu ứng này có xu hướng chống lại xu hướng tần số quan sát cao đối với những thành công gần như phổ biến hơn trong trường hợp nhóm A và nhóm B. Tuy nhiên, việc đưa ra một giải pháp toán học là tại sao đó là lý do hoặc tại sao nó mang lại sự phân phối bình thường cho các kích thước thùng nhất định không ở bất kỳ đâu gần lãnh thổ của tôi.
russellpierce

16

Để có được một số trực giác cho những gì đang diễn ra, chúng ta hãy thoải mái làm cho rất lớn và khi đó bỏ qua hành vi O ( 1 / N ) và khai thác các định lý tiệm cận cho thấy cả phân phối Beta và Binomial đều trở nên Bình thường. (Với một số rắc rối, tất cả điều này có thể được thực hiện nghiêm ngặt.) Khi chúng tôi làm điều này, kết quả xuất hiện từ một mối quan hệ cụ thể giữa các tham số khác nhau.NO(1/N)


Vì chúng tôi dự định sử dụng các xấp xỉ bình thường, chúng tôi sẽ chú ý đến các kỳ vọng và phương sai của các biến:

  • Như nhị thức variates, n An B có những kỳ vọng của p N và phương sai của p ( 1 - p ) N . Do đó α = n Một / Nβ = n B / N có những kỳ vọng của p và phương sai p ( 1 - p ) / N .(N,p)nAnBpNp(1p)Nα=nA/Nβ=nB/Npp(1p)/N

  • Khi Beta , P A có kỳ vọng là ( n A + 1 ) / ( N + 2 ) và phương sai của ( n A + 1 ) ( N + 1 - n A ) / [ ( N + 2 ) 2 ( N + 3(nA+1,N+1nA)PA(nA+1)/(N+2) . Xấp xỉ, chúng tôi thấy rằng P A có kỳ vọng về(nA+1)(N+1nA)/[(N+2)2(N+3)]PA

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

    và phương sai của

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

    với kết quả tương tự cho .PB

Vậy, chúng ta xấp xỉ phân phối của P B với bình thường ( α , α ( 1 - α ) / N ) và Bình thường ( β , β ( 1 - β ) / N ) phân phối (trong đó tham số thứ hai chỉ rõ những sai ) . Do đó, sự phân phối P A - P B xấp xỉ Bình thường; dí dỏmPAPB(α,α(1α)/N)(β,β(1β)/N)PAPB

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

Nα(1α)+β(1β)p(1p)+p(1p)=2p(1p)O(1/N)Φ

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

But since αβ has zero mean and variance 2p(1p)/N, Z=αβ2p(1p)/N is a standard Normal variate (at least approximately). Φ is its probability integral transform; Φ(Z) is uniform.


1
I'mn with you up until PAPBNormal... then you go off another direction that I didn't quite follow. Is Φ defined twice, once as the standard normal CDF and then as the probability integral transform? I'm hoping you can expand your description around these steps and relate them to the initial code/problem. Maybe loop back around and restate which specific parameters produce the uniform result.
russellpierce

1
@rpierce (1) The difference PAPB is approximately normal because PA and PB are independent and each is approximately normal. The mean is the difference of the means and the variance is the sum of the variances. (2) The probability integral transform is the CDF: it is the case for any random variable X with continuous distribution F, that F(X) is uniform.
whuber

1
Oh I got 1, it was the stuff after it where I got lost. This will be mindbogglingly dumb, but why is Pr(PA>PB) the same as the CDF?
russellpierce

1
@rpierce That follows rather directly from the definition, but there's a slight twist in which the symmetry of the Normal distribution is invoked. We're dealing with a Normal variate X=PAPB assumed to have an expectation of μ=αβ and variance σ2=2p(1p)/N. Standardizing X, it is natural to rewrite the probability as
Pr(X>0)=Pr((Xμ)/σ>(0μ)/σ)=1Φ(μ/σ)=Φ(μ/σ).
whuber

3
@whuber this is pretty amazing. You are a wonderful teacher. I appreciate both yours and rpierce's answer, I'll still give him credit as it did solve our problem, and you have shown why the behaviour occurs. Ty!
Cam.Davidson.Pilon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.