Thành công của các thử nghiệm Bernoulli với các xác suất khác nhau


11

Nếu 20 thử nghiệm Bernoulli độc lập được thực hiện thì mỗi thử nghiệm có xác suất thành công khác nhau và do đó thất bại. Xác suất mà chính xác n trong số 20 thử nghiệm đã thành công là gì?

Có cách nào tốt hơn để tính toán các xác suất này thay vì chỉ đơn giản là tổng hợp các kết hợp của xác suất thành công và thất bại?

Câu trả lời:


12

Phân phối mà bạn đang hỏi về được gọi là phân phối nhị phân Poisson , với pmf khá phức tạp (xem Wikipedia để mô tả rộng hơn)

Pr(X=x)=AFxiApijAc(1pj)

Nói chung, vấn đề là bạn không thể sử dụng phương trình này cho một số thử nghiệm lớn hơn (thường là khi số lượng thử nghiệm vượt quá ). Ngoài ra còn có các phương pháp tính toán pmf khác, ví dụ các công thức đệ quy, nhưng chúng không ổn định về số lượng. Cách dễ nhất xung quanh những vấn đề đó là các phương pháp gần đúng (được mô tả bởi Hong, 2013 ). Nếu chúng ta xác địnhn=30

μ=i=1npi

σ=i=1npi(1pi)

γ=σ3i=1npi(1pi)(12pi)

sau đó chúng ta có thể tính gần đúng pmf với phân phối Poisson thông qua định luật số lượng nhỏ hoặc định lý Le Cam

Pr(X=x)μxexp(μ)x!

nhưng nó thấy rằng sự gần đúng của Binomial hoạt động tốt hơn ( Choi và Xia, 2002 )

Pr(X=x)Binom(n,μn)

bạn có thể sử dụng xấp xỉ bình thường

f(x)ϕ(x+0.5μσ)

hoặc cdf có thể được xấp xỉ bằng cách sử dụng cái gọi là xấp xỉ Bình thường tinh chế (ROLova, 1996)

F(x)max(0, g(x+0.5μσ))

trong đó .g(x)=Φ(x)+γ(1x2)ϕ(x)6

Một lựa chọn khác tất nhiên là mô phỏng Monte Carlo.

dpbinomHàm R đơn giản sẽ là

dpbinom <- function(x, prob, log = FALSE,
                    method = c("MC", "PA", "NA", "BA"),
                    nsim = 1e4) {

  stopifnot(all(prob >= 0 & prob <= 1))
  method <- match.arg(method)

  if (method == "PA") {
    # poisson
    dpois(x, sum(prob), log)
  } else if (method == "NA") {
    # normal
    dnorm(x, sum(prob), sqrt(sum(prob*(1-prob))), log)
  } else if (method == "BA") {
    # binomial
    dbinom(x, length(prob), mean(prob), log)
  } else {
    # monte carlo
    tmp <- table(colSums(replicate(nsim, rbinom(length(prob), 1, prob))))
    tmp <- tmp/sum(tmp)
    p <- as.numeric(tmp[as.character(x)])
    p[is.na(p)] <- 0

    if (log) log(p)
    else p 
  }
}

Hầu hết các phương thức (và nhiều hơn nữa) cũng được thực hiện trong gói R poibin .


Chen, LHY (1974). Về sự hội tụ của phân phối Poisson cho phân phối Poisson. Biên niên sử Xác suất, 2 (1), 178-180.

Chen, SX và Liu, JS (1997). Các ứng dụng thống kê của các bản phân phối Poou-Binomial và Bernoulli có điều kiện. Statistica Sinica 7, 875-892.

Chen, SX (1993). Phân phối Poisson-Binomial, phân phối Bernoulli có điều kiện và entropy tối đa. Tường trình kỹ thuật. Khoa Thống kê, Đại học Harvard.

Chen, XH, Dempster, AP và Liu, JS (1994). Lấy mẫu dân số hữu hạn để tối đa hóa entropy. Sinh trắc học 81, 457-469.

Vương, YH (1993). Về số lượng thành công trong các thử nghiệm độc lập. Statistica Sinica 3 (2): 295-312.

Hồng, Y. (2013). Về tính toán hàm phân phối cho phân phối nhị thức Poisson. Thống kê tính toán & phân tích dữ liệu, 59, 41-51.

ROLova, AY (1996). Một sàng lọc của định lý giới hạn trung tâm cho các tổng của các chỉ số ngẫu nhiên độc lập. Lý thuyết xác suất và các ứng dụng của nó 40, 791-794.

Choi, KP và Xia, A. (2002). Xấp xỉ số lượng thành công trong các thử nghiệm độc lập: Binomial so với Poisson. Biên niên sử về xác suất ứng dụng, 14 (4), 1139-1148.

Lê Cẩm, L. (1960). Một định lý gần đúng cho phân phối nhị thức Poisson. Tạp chí toán học Thái Bình Dương 10 (4), 1181 bóng1197.


0

Một cách tiếp cận là sử dụng các hàm tạo. Giải pháp cho vấn đề của bạn là hệ số trong đa thứcxn

i=120(pix+1pi).

Đây là tương đương với lập trình động (thời gian bậc hai tính theo số lượng biến Bernoulli) của phép tính tổng trong phân phối nhị phân Poisson từ câu trả lời của Tim (sẽ là thời gian theo cấp số nhân).

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.