Rút thăm mô phỏng từ Phân phối thống nhất bằng cách sử dụng các lần rút từ Phân phối bình thường


15

Gần đây tôi đã mua một tài nguyên phỏng vấn khoa học dữ liệu trong đó một trong những câu hỏi xác suất như sau:

Rút ra từ một phân phối bình thường với các tham số đã biết, làm thế nào bạn có thể mô phỏng các bản vẽ từ một phân phối thống nhất?

Quá trình suy nghĩ ban đầu của tôi là, đối với một biến ngẫu nhiên rời rạc, chúng ta có thể chia phân phối bình thường thành K phần phụ duy nhất trong đó mỗi phần phụ có diện tích bằng nhau dưới đường cong thông thường. Sau đó, chúng ta có thể xác định giá trị K nào của biến bằng cách nhận ra khu vực nào của đường cong thông thường mà biến cuối cùng rơi vào.

Nhưng điều này sẽ chỉ làm việc cho các biến ngẫu nhiên rời rạc. Tôi đã thực hiện một số nghiên cứu về cách chúng ta có thể làm tương tự cho các biến ngẫu nhiên liên tục, nhưng thật không may, tôi chỉ có thể tìm thấy các kỹ thuật như lấy mẫu biến đổi nghịch đảo sẽ sử dụng làm đầu vào một biến ngẫu nhiên thống nhất và có thể xuất các biến ngẫu nhiên từ một số phân phối khác. Tôi đã nghĩ rằng có lẽ chúng ta có thể làm quá trình này ngược lại để có được các biến ngẫu nhiên thống nhất?

Tôi cũng đã nghĩ về việc có thể sử dụng các biến ngẫu nhiên Bình thường làm đầu vào cho một trình tạo đồng quy tuyến tính, nhưng tôi không chắc liệu nó có hoạt động không.

Bất kỳ suy nghĩ về cách tôi có thể tiếp cận câu hỏi này?

Câu trả lời:


30

Trong tinh thần sử dụng các phép tính đại số đơn giản không liên quan đến tính toán của phân phối chuẩn , tôi sẽ nghiêng về phía sau. Chúng được ra lệnh khi tôi nghĩ về chúng (và do đó cần thiết để ngày càng sáng tạo hơn), nhưng tôi đã tiết kiệm tốt nhất - và đáng ngạc nhiên nhất - để tồn tại.

  1. Đảo ngược kỹ thuật Box-Mueller : từ mỗi cặp normals , hai đồng phục độc lập có thể được xây dựng như (trên khoảng ) và (trên khoảng ).atan2 ( Y , X ) [ - π , π ] exp ( - ( X 2 + Y 2 ) / 2 ) [ 0 , 1 ](X,Y)atan2(Y,X)[π,π]exp((X2+Y2)/2)[0,1]

  2. Lấy các quy tắc theo nhóm hai và tính tổng bình phương của chúng để có được một chuỗi thay đổi . Các biểu thức thu được từ các cặp Y 1 , Y 2 ,χ22Y1,Y2,,Yi,

    Xi=Y2iY2i1+Y2i

    sẽ có phân phối , thống nhất.Beta(1,1)

    Rằng điều này chỉ đòi hỏi số học cơ bản, đơn giản nên rõ ràng.

  3. Bởi vì phân phối chính xác của hệ số tương quan Pearson của mẫu bốn cặp từ phân phối chuẩn bivariate Phân phối chuẩn được phân phối đồng đều trên , chúng tôi có thể chỉ cần lấy các giá trị theo nhóm bốn cặp (nghĩa là tám giá trị trong mỗi bộ) và trả về hệ số tương quan của các cặp này. (Điều này liên quan đến số học đơn giản cộng với hai phép toán căn bậc hai.)[1,1]

  4. Từ thời cổ đại, người ta đã biết rằng hình chiếu hình trụ của hình cầu (một bề mặt trong ba không gian) có diện tích bằng nhau . Điều này ngụ ý rằng trong phép chiếu phân bố đồng đều trên mặt cầu, cả tọa độ ngang (tương ứng với kinh độ) và tọa độ dọc (tương ứng với vĩ độ) sẽ có phân bố đồng đều. Bởi vì phân phối chuẩn của trivariate là đối xứng hình cầu, nên hình chiếu của nó lên quả cầu là đồng nhất. Lấy kinh độ về cơ bản là tính toán tương tự như góc trong phương pháp Box-Mueller ( qv ), nhưng vĩ độ dự kiến ​​là mới. Phép chiếu lên quả cầu chỉ đơn giản hóa một bộ ba tọa độ và tại điểm đóz X 3 i - 2 , X 3 i -(x,y,z)zlà vĩ độ dự kiến. Vì vậy, đi bình thường variates trong nhóm của ba, và máy tínhX3i2,X3i1,X3i

    X3iX3i22+X3i12+X3i2

    cho .i=1,2,3,

  5. Bởi vì hầu hết các hệ thống máy tính đại diện cho các số ở dạng nhị phân , việc tạo số thống nhất thường bắt đầu bằng cách tạo ra các số nguyên phân bố đồng đều trong khoảng từ đến (hoặc một số công suất cao liên quan đến độ dài từ máy tính) và định cỡ lại chúng khi cần. Các số nguyên như vậy được biểu diễn bên trong dưới dạng chuỗi gồm chữ số nhị phân. Chúng ta có thể thu được các bit ngẫu nhiên độc lập bằng cách so sánh một biến Bình thường với trung vị của nó. Do đó, nó đủ để chia các biến Bình thường thành các nhóm có kích thước bằng số bit mong muốn, so sánh từng biến với giá trị trung bình của nó và tập hợp các chuỗi kết quả của kết quả đúng / sai thành một số nhị phân. Viết2 32 - 1 2 32 k H H ( x ) = 1 x > 0 H ( x ) = 0 [02321232kđối với số bit và cho dấu (nghĩa là khi và nếu không) chúng ta có thể biểu thị giá trị đồng nhất chuẩn hóa trong với công thứcHH(x)=1x>0H(x)=0[0,1)

    j=0k1H(Xkij)2j1.

    Các biến thiên có thể được rút ra từ bất kỳ phân phối liên tục nào có trung vị bằng (chẳng hạn như Bình thường tiêu chuẩn); chúng được xử lý theo nhóm với mỗi nhóm tạo ra một giá trị đồng nhất giả như vậy.Xnk0k

  6. Lấy mẫu từ chối là một cách tiêu chuẩn, linh hoạt, mạnh mẽ để rút ra các biến thiên ngẫu nhiên từ các phân phối tùy ý. Giả sử phân phối mục tiêu có PDF . Giá trị được vẽ theo phân phối khác với PDF . Trong bước từ chối, giá trị đồng nhất nằm giữa và được rút ra độc lập với và so với : nếu nó nhỏ hơn, được giữ lại nhưng nếu không thì quá trình được lặp lại. Tuy nhiên, cách tiếp cận này có vẻ như hình tròn: làm thế nào để chúng ta tạo ra một phương sai đồng nhất với một quy trình cần một phương sai thống nhất để bắt đầu?Y g U 0 g ( Y ) Y ffYgU0g(Y)YYf(Y)Y

    Câu trả lời là chúng ta không thực sự cần một phương sai thống nhất để thực hiện bước từ chối. Thay vào đó (giả sử ), chúng ta có thể lật một đồng xu công bằng để lấy ngẫu nhiên hoặc . Điều này sẽ được hiểu là bit đầu tiên trong biểu diễn nhị phân của một biến thiên thống nhất trong khoảng . Khi kết quả là , điều đó có nghĩa là ; mặt khác, . Một nửa thời gian, điều này là đủ để quyết định bước từ chối: nếu nhưng đồng xu là , nên chấp nhận ; nếu0 1 U [ 0 , 1 ) 0 0 U < 1 / 2 1 / 2 U < 1 f ( Y ) / g ( Y ) 1 / 2 0 Y f ( Y ) / g ( Y ) < 1 / 2 1 Y U fg(Y)001U[0,1)00U<1/21/2U<1f(Y)/g(Y)1/20Yf(Y)/g(Y)<1/2 nhưng đồng xu là , nên bị từ chối; mặt khác, chúng ta cần lật lại đồng xu để có được bit tiếp theo . Bởi vì - cho dù giá trị có là bao nhiêu - vẫn có cơ hội dừng lại sau mỗi lần lật, số lần lật dự kiến ​​chỉ là .1YU1 / 2 1 / 2 ( 1 ) +f(Y)/g(Y)1/21/2(1)+1/4(2)+1/8(3)++2n(n)+=2

    Lấy mẫu từ chối có thể có giá trị (và hiệu quả) với điều kiện số lượng từ chối dự kiến ​​là nhỏ. Chúng ta có thể thực hiện điều này bằng cách khớp hình chữ nhật lớn nhất có thể (đại diện cho phân phối đồng đều) bên dưới PDF thông thường.

    PDF thông thường và thống nhất

    Sử dụng Giải tích để tối ưu hóa diện tích của hình chữ nhật, bạn sẽ thấy rằng các điểm cuối của nó sẽ nằm ở , trong đó chiều cao của nó bằng , làm cho diện tích của nó hơi nhỏ lớn hơn . Bằng cách sử dụng mật độ Bình thường tiêu chuẩn này dưới dạng và từ chối tất cả các giá trị bên ngoài khoảng , và nếu không áp dụng quy trình loại bỏ, chúng tôi sẽ thu được các biến thiên thống nhất trong cách hiệu quả:exp ( - 1 / 2 ) / ±10,48g[-1,1][exp(1/2)/2π0.2419710.48g[1,1][1,1]

    • Trong một phần thời gian, phương sai Bình thường nằm ngoài và ngay lập tức bị từ chối. ( là CDF bình thường tiêu chuẩn.)[ - 1 , 1 ] Φ2Φ(1)0.317[1,1]Φ

    • Trong phần còn lại của thời gian, thủ tục từ chối nhị phân phải được tuân theo, trung bình cần thêm hai biến thể Bình thường.

    • Quy trình tổng thể yêu cầu trung bình bước.1/(2exp(1/2)/2π)2.07

    Số lượng biến thiên Bình thường dự kiến ​​cần thiết để tạo ra mỗi kết quả thống nhất tính ra

    2eπ(12Φ(1))2.82137.

    Mặc dù điều đó khá hiệu quả, lưu ý rằng (1) tính toán của PDF thông thường yêu cầu tính toán theo cấp số nhân và (2) giá trị phải được tính toán trước một lần và mãi mãi. Đó vẫn là một phép tính ít hơn một chút so với phương pháp Box-Mueller ( qv ).Φ(1)

  7. Số liệu thống kê thứ tự của một phân phối thống nhất có khoảng cách theo cấp số nhân. Do tổng bình phương của hai Normals (không có nghĩa là 0) theo cấp số nhân, nên chúng tôi có thể tạo ra một nhận thức về đồng phục độc lập bằng cách tính tổng bình phương của các cặp Normals đó, tính tổng của các số này, tính lại kết quả để giảm trong khoảng và bỏ cái cuối cùng (sẽ luôn bằng ). Đây là một cách tiếp cận vừa lòng vì nó chỉ yêu cầu bình phương, tính tổng và (ở cuối) một bộ phận duy nhất.[ 0 , 1n1[0,1]1

    Các giá trị sẽ tự động theo thứ tự tăng dần. Nếu sắp xếp như vậy là mong muốn, phương pháp này vượt trội hơn so với tất cả các cách khác vì nó tránh được chi phí của một loại. Tuy nhiên, nếu cần một chuỗi các đồng phục độc lập, thì việc sắp xếp ngẫu nhiên các giá trị này sẽ thực hiện thủ thuật. Vì (như đã thấy trong phương pháp Box-Mueller, qv ) các tỷ lệ của mỗi cặp Định mức không phụ thuộc vào tổng bình phương của mỗi cặp, nên chúng ta đã có phương tiện để có được hoán vị ngẫu nhiên đó: sắp xếp các tổng tích lũy theo tỷ lệ tương ứng . (Nếu rất lớn, quá trình này có thể được thực hiện trong các nhóm nhỏ hơnO ( n log ( n ) ) n n knO(nlog(n))nnkvới ít mất hiệu quả, vì mỗi nhóm chỉ cần mức để tạo giá trị đồng nhất. Đối với cố định , do đó chi phí tính toán tiệm cận là = , cần Biến đổi bình thường để tạo ra giá trị đồng nhất.)k k O ( n log ( k ) ) O ( n ) 2 n ( 1 + 1 / k ) n2(k+1)kkO(nlog(k))O(n)2n(1+1/k)n

  8. Với một xấp xỉ tuyệt vời, bất kỳ phương sai Bình thường nào có độ lệch chuẩn lớn đều trông đồng nhất trên các phạm vi của các giá trị nhỏ hơn nhiều. Khi đưa phân phối này vào phạm vi (bằng cách chỉ lấy các phần phân số của các giá trị), do đó chúng tôi có được phân phối đồng nhất cho tất cả các mục đích thực tế. Điều này cực kỳ hiệu quả, đòi hỏi một trong những phép toán số học đơn giản nhất: chỉ cần làm tròn mỗi biến số Bình thường xuống số nguyên gần nhất và giữ lại số thừa. Sự đơn giản của phương pháp này trở nên hấp dẫn khi chúng ta kiểm tra một triển khai thực tế :[0,1]R

    rnorm(n, sd=10) %% 1
    

    đáng tin cậy tạo ra ncác giá trị đồng nhất trong phạm vi với chi phí chỉ là các biến thiên Bình thường và hầu như không tính toán.[0,1]n

    (Ngay cả khi độ lệch chuẩn là , PDF xấp xỉ này thay đổi từ PDF thống nhất, như thể hiện trong hình sau, bởi ít hơn một phần trong ! Để phát hiện nó đáng tin cậy sẽ đòi hỏi một mẫu của các giá trị - đã vượt quá khả năng của bất kỳ thử nghiệm ngẫu nhiên tiêu chuẩn nào. Với độ lệch chuẩn lớn hơn, độ không đồng đều rất nhỏ, thậm chí không thể tính được. Ví dụ, với SD là như trong mã, mức tối đa độ lệch so với PDF đồng nhất chỉ là .)10 8 10 16 10 10 - 857110810161010857

    PDF gần đúng


Trong mọi trường hợp, các biến thông thường "với các tham số đã biết" có thể dễ dàng được truy xuất và định cỡ lại thành các Tiêu chuẩn được giả định ở trên. Sau đó, các giá trị phân phối đồng đều có thể được lấy lại và định cỡ lại để bao gồm bất kỳ khoảng mong muốn nào. Chúng chỉ yêu cầu các phép toán số học cơ bản.

Sự dễ dàng của các công trình này được chứng minh bằng Rđoạn mã sau , chỉ sử dụng một hoặc hai dòng cho hầu hết chúng. Tính chính xác của chúng được chứng kiến ​​bằng các biểu đồ gần như thống nhất dựa trên giá trị độc lập trong mỗi trường hợp (cần khoảng 12 giây cho cả bảy mô phỏng). Để tham khảo - trong trường hợp bạn lo lắng về số lượng biến thể xuất hiện trong bất kỳ ô nào trong số này - một biểu đồ các giá trị thống nhất được mô phỏng với trình tạo số ngẫu nhiên thống nhất được bao gồm ở cuối.100,000R

Biểu đồ

Tất cả các mô phỏng này đã được kiểm tra tính đồng nhất bằng cách sử dụng thử nghiệm dựa trên thùng; không ai có thể được coi là không đồng nhất đáng kể (giá trị p thấp nhất là cho các kết quả được tạo bởi trình tạo số thống nhất thực tế!). 1000 3 %χ210003%R

set.seed(17)
n <- 1e5
y <- matrix(rnorm(floor(n/2)*2), nrow=2)
x <- c(atan2(y[2,], y[1,])/(2*pi) + 1/2, exp(-(y[1,]^2+y[2,]^2)/2))
hist(x, main="Box-Mueller")

y <- apply(array(rnorm(4*n), c(2,2,n)), c(3,2), function(z) sum(z^2))
x <- y[,2] / (y[,1]+y[,2])
hist(x, main="Beta")

x <- apply(array(rnorm(8*n), c(4,2,n)), 3, function(y) cor(y[,1], y[,2]))
hist(x, main="Correlation")

n.bits <- 32; x <-  (2^-(1:n.bits)) %*% matrix(rnorm(n*n.bits) > 0, n.bits)
hist(x, main="Binary")

y <- matrix(rnorm(n*3), 3)
x <- y[1, ] / sqrt(apply(y, 2, function(x) sum(x^2)))
hist(x, main="Equal area")

accept <- function(p) { # Using random normals, return TRUE with chance `p`
  p.bit <- x <- 0
  while(p.bit == x) {
    p.bit <- p >= 1/2
    x <- rnorm(1) >= 0
    p <- (2*p) %% 1
  }
  return(x == 0)
}
y <- rnorm(ceiling(n * sqrt(exp(1)*pi/2))) # This aims to produce `n` uniforms
y <- y[abs(y) < 1]
x <- y[sapply(y, function(x) accept(exp((x^2-1)/2)))]
hist(x, main="Rejection")

y <- matrix(rnorm(2*(n+1))^2, 2)
x <- cumsum(y)[seq(2, 2*(n+1), 2)]
x <- x[-(n+1)] / x[n+1]
x <- x[order(y[2,-(n+1)]/y[1,-(n+1)])] 
hist(x, main="Ordered")

x <- rnorm(n) %% 1 # (Use SD of 5 or greater in practice)
hist(x, main="Modular")

x <- runif(n)      # Reference distribution
hist(x, main="Uniform")

2
(+1) Nếu tôi hỏi câu hỏi này trong một cuộc phỏng vấn, tôi sẽ sửa đổi nó để hỏi về trường hợp các tham số được cố định, nhưng không rõ , điều này khiến tôi thấy thú vị hơn. Cách tiếp cận tương quan Pearson (# 3) không thay đổi, nhưng có lẽ hơi bí truyền. Cách tiếp cận Beta (# 2) chỉ yêu cầu sửa đổi một chút bằng cách xem xét bình phương của sự khác biệt của các cặp khác nhau. Tương tự, là Cauchy tiêu chuẩn (bất kể giá trị trung bình và phương sai của ), có một cdf đẹp. Z=(X1X2)/(X3X4)X
Đức hồng y

1
Tổng quát hơn, nguyên tắc là tìm một đại lượng quan trọng từ mẫu với một cdf có thể tính toán được. Điều này kết hợp chặt chẽ với việc xây dựng các khoảng tin cậy và kiểm tra giả thuyết, với khuynh hướng mà chúng ta có thể tìm cách tối ưu hóa số lượng phần tử được sử dụng thay vì các trường hợp sau tập trung nhiều hơn vào tối đa hóa thông tin từ một cỡ mẫu cố định.
Đức hồng y

@Cardinal Cảm ơn bạn đã cho ý kiến ​​thú vị, cũng như phương pháp thứ chín (Cauchy). Ngay cả việc tìm kiếm một số lượng quan trọng là không cần thiết khi chỉ tìm kiếm một xấp xỉ tốt. Ví dụ, (8) hoạt động hoàn hảo nếu bạn dành một số lượng nhỏ kết quả ban đầu để thiết lập thang đo thô.
whuber

8

Bạn có thể sử dụng một mẹo rất giống với những gì bạn đề cập. Giả sử là một biến ngẫu nhiên bình thường với các tham số đã biết. Sau đó, chúng ta biết chức năng phân phối của nó, và sẽ được phân phối đồng đều trên . Để chứng minh điều này, lưu ý rằng với chúng ta thấy rằngXN(μ,σ2)Φμ,σ2Φμ,σ2(X)(0,1)d(0,1)

P(Φμ,σ2(X)d)=P(XΦμ,σ21(d))=d .

Xác suất trên rõ ràng là 0 đối với không dương và đối với . Đây là đủ để chứng minh rằng có một phân bố đều trên như chúng ta đã chỉ ra rằng các biện pháp tương ứng đều bình đẳng cho một máy phát điện của Borel -algebra trên . Do đó, bạn chỉ có thể định dạng dữ liệu được phân phối bình thường theo chức năng phân phối và bạn sẽ nhận được dữ liệu phân phối đồng đều.d1d1Φμ,σ2(X)(0,1)σR


4
Đó là nghịch đảo của lấy mẫu biến đổi nghịch đảo!
Roger Fan

Bạn có thể giải thích về câu thứ hai của đoạn thứ hai không? Tôi gặp khó khăn trong việc hiểu những điều sau: "Điều này đủ để chỉ ra rằng Φμ, 2 (X) có phân phối đồng đều trên (0,1) vì chúng tôi đã chỉ ra rằng các biện pháp tương ứng là bằng nhau cho một trình tạo đại số Borel vào. "
wellington

Để chỉ ra rằng một số biến ngẫu nhiên thực, , có phân phối đồng đều, chúng ta nên chỉ ra rằng số đo tương ứng của nó, bằng với phân phối đồng đều cho tất cả các bộ có thể đo được của dòng thực. Tuy nhiên, thực sự đủ để xem xét một số trình tạo của -đau khớp, do tính duy nhất của định lý biện pháp. Nếu chúng bằng nhau trên các bộ của trình tạo, chúng sẽ bằng nhau cho tất cả các bộ có thể đo được. Đây chỉ là một đính kèm lý thuyết đo lường cho câu trả lời. XX(P)σ
swmo
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.