Giả sử A theo phân phối theo hàm mũ; B sau Gamma phân phối Làm thế nào để vẽ PDF 0.5 * (A + B)Cách vẽ hàm mật độ xác suất của hàm?
Trả lời
này là khá thẳng về phía trước bằng cách sử dụng " distr" gói:
library(distr)
A <- Exp(rate=3)
B <- Gammad(shape=2, scale=3)
conv <- 0.5*(A+B)
plot(conv)
plot(conv, to.draw.arg=1)
Sửa bởi JD dài
âm mưu Kết quả trông như thế này:
Tôi không phải là một lập trình viên R, nhưng nó có thể hữu ích để biết rằng đối với biến ngẫu nhiên độc lập với các file PDF f (x) và f (x), PDF của tổng của hai biến được đưa ra bởi sự chuyển đổi f * f 2 (2) của hai tệp PDF đầu vào.
Đây là một nỗ lực thực hiện chuyển đổi (mà @Jim Lewis đề cập) trong R. Lưu ý rằng có thể có nhiều cách hiệu quả hơn để thực hiện việc này.
lower <- 0
upper <- 20
t <- seq(lower,upper,0.01)
fA <- dexp(t, rate = 0.4)
fB <- dgamma(t,shape = 8, rate = 2)
## C has the same distribution as (A + B)/2
dC <- function(x, lower, upper, exp.rate, gamma.rate, gamma.shape){
integrand <- function(Y, X, exp.rate, gamma.rate, gamma.shape){
dexp(Y, rate = exp.rate)*dgamma(2*X-Y, rate = gamma.rate, shape = gamma.shape)*2
}
out <- NULL
for(ix in seq_along(x)){
out[ix] <-
integrate(integrand, lower = lower, upper = upper,
X = x[ix], exp.rate = exp.rate,
gamma.rate = gamma.rate, gamma.shape = gamma.shape)$value
}
return(out)
}
fC <- dC(t, lower=lower, upper=upper, exp.rate=0.4, gamma.rate=2, gamma.shape=8)
## plot the resulting distribution
plot(t,fA,
ylim = range(fA,fB,na.rm=TRUE,finite = TRUE),
xlab = 'x',ylab = 'f(x)',type = 'l')
lines(t,fB,lty = 2)
lines(t,fC,lty = 3)
legend('topright', c('A ~ exp(0.4)','B ~ gamma(8,2)', 'C ~ (A+B)/2'),lty = 1:3)
Đừng bận tâm tạo ra các dữ liệu từ các chức năng, chỉ cần vẽ các chức năng. Bạn sẽ sử dụng đường cong() thay vì dòng() với add = TRUE. – John
Nếu bạn chỉ tìm kiếm đồ thị nhanh, tôi thường thực hiện phương pháp mô phỏng nhanh và bẩn. Tôi làm một số rút, slam mật độ Gauss trên trận hòa và mưu rằng cậu bé xấu:
numDraws <- 1e6
gammaDraws <- rgamma(numDraws, 2)
expDraws <- rexp(numDraws)
combined <- .5 * (gammaDraws + expDraws)
plot(density(combined))
đầu ra nên nhìn một chút như thế này:
- 1. Mật độ xác suất của dữ liệu
- 2. Python - tính toán các hàm mật độ xác suất đa thức trên tập dữ liệu lớn?
- 3. Vẽ các hàm mật độ được xác định trước bằng ggplot và R
- 4. Xác định hàm phân bố xác suất của riêng bạn trong MATLAB
- 5. Tính đạo hàm của hàm mật độ tích lũy trong Python
- 6. Xác định hàm khối xác suất của biến ngẫu nhiên
- 7. Xác định mật độ xác suất/khối lượng chức năng của tập dữ liệu trong R
- 8. Thường trình bậc hai cho mật độ xác suất
- 9. Thực hiện hàm mật độ xác suất gaussian đa biến cho> 2 kích thước trong C++
- 10. Hàm mật độ xác suất từ giấy, được triển khai bằng C++, không hoạt động như dự định
- 11. Đưa ra một biến ngẫu nhiên với hàm mật độ xác suất f (x), cách tính giá trị kỳ vọng của biến ngẫu nhiên này trong R?
- 12. Hiệu suất hàm Postgres min
- 13. Độ dài đối số của hàm Python?
- 14. Xác nhận hàm băm muối
- 15. cách xác định hàm functor bên trong hàm
- 16. Cách lấy độ dài của hàm bằng byte?
- 17. cách đánh giá đạo hàm của hàm trong MATLAB?
- 18. Hạn chế miền của hàm được vẽ trên Gnuplot
- 19. Vẽ một hàm bước trong Mathematica
- 20. Hàm băm mật khẩu cho Excel VBA
- 21. Cách xác định hàm piecewise trong R
- 22. Cách xác định hàm trong .emac?
- 23. OCaml: Khai báo hàm trước khi xác định hàm
- 24. Thuộc tính độ dài của các hàm tạo hàm, mảng và đối tượng là gì?
- 25. Javascript: Cách gọi hàm trả về của hàm ngoài từ hàm bên trong?
- 26. Yêu cầu độ chính xác của các hàm toán học GNU GCC?
- 27. Làm cách nào để xác định hàm trong một hàm trong Clojure và tham chiếu hàm đó?
- 28. Lợi ích của việc xác định hàm trong một hàm trong python là gì?
- 29. cách gọi hàm trong hàm plsql
- 30. Cách sử dụng hàm writeImage() của imagick?
Đó là khá gọn gàng. Tôi không quen với gói distr. –