Thực hiện Dirichlet cdf?


8

Tôi cần tính toán Dirichlet CDF , nhưng tôi chỉ có thể tìm thấy các triển khai của PDF .

Các bạn có biết về bất kỳ thư viện (tốt nhất là R) thực hiện nó không?


1
Không trực tiếp nhận ra bất kỳ. Nhưng có thể có một cái gì đó có thể được thực hiện. Bạn cần làm gì với nó?
Glen_b -Reinstate Monica

2
Tôi cần lấy phần bổ sung của CDF và coi nó là giá trị p của mình.
Ricky Robinson

2
Hừm. Vì vậy, yeah, nếu bạn cần , bạn phần nào làm nhu cầu lũy. Ý tưởng mô phỏng của Zen chắc chắn là một cách để thực hiện (và số lượng kích thước càng cao, nó bắt đầu trông tốt hơn), nhưng nếu bạn làm điều đó, hãy sử dụng một trong các gói có triển khai tích hợp . Nếu nó chỉ có 3 biến thiên hoặc có thể là 4 biến thiên (thành phần cuối cùng, tất nhiên, là dự phòng), có thể đáng để thử phương trình số. 1-P(X1x1,X2x2,...,Xkxk)rdirichlet
Glen_b -Reinstate Monica

Câu trả lời:


9

Hãy nhớ rằng, nếu là độc lập G một m m một ( một i , b ) , cho i = 1 , ... , k , sau đó ( X 1 , ... , X k ) = ( Y 1YTôiGmộtmmmột(mộtTôi,b)Tôi= =1,Giáo dục,k

(X1,Giáo dục,Xk)= =(Y1Σj= =1kYj,Giáo dục,YkΣj= =1kYj)~DTôirTôichtôiet(một1,Giáo dục,mộtk).

Bằng chứng có thể được tìm thấy ở trang 594 của cuốn sách Luc Devroye .

Do đó, một khả năng là tính toán xấp xỉ Monte X của bắt đầu với gamma. Trong, hãy thử điều này:

FX1,Giáo dục,Xk(t1,Giáo dục,tk)= =P{X1t1,Giáo dục,Xktk},
R
pdirichlet <- function(a, t) {
    N <- 10000
    rdirichlet <- function(a) { y <- rgamma(length(a), a, 1); y / sum(y) }
    x <- replicate(N, rdirichlet(a), simplify = FALSE)
    sum(sapply(x, function(x) prod(x <= t))) / N
}

Tôi đã không kiểm tra mã. Sử dụng cẩn thận. Nếu bạn tìm thấy bất kỳ lỗi, xin vui lòng cho chúng tôi biết.


3
Đã có một hàm stririchlet được vector hóa trong R - thực tế là một vài trong số chúng ( ví dụ gtools, MCMCpackdirmultchẳng hạn).
Glen_b -Reinstate Monica

@Zen Tôi có a <- c(6, 20,2)cách lấy cdf Drichelt? là t 2 bằng 2 ma trận?
điểm số

Tôi đã sử dụng đoạn mã trên, nhưng nó bị lỗi.
điểm số

[0,1]1(6,20,2)

2

Có thư viện nào không? Toán học có nó. Đây là mã cho một âm mưu ví dụ của CDF Dirichlet từ tài liệu:

Plot3D[CDF[DirichletDistribution[{1, 3, 2}], {x, y}], {x, 0, 1}, {y, 0, 1}]

1
Làm cách nào để có được biểu thức cho CDF [DirichletDistribution [{1, 3, 2}]]?
AIB
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.