r - 计算 R 中四个连续随机变量的联合集的概率
问题描述
X1, X2, X3, X4
我有四个具有标准正态分布的自变量。我想计算 的概率P(X1 > A | X2 > A | X3 > A | X4 > A)
。我在 R 中编写了一个函数,可以正确计算任何大于 0 的 A 值的概率,但对于任何小于 0 的值,结果都很小:
prob_union_greater <- function(x){
(1 - pnorm(x))*4 - 6*((1 - pnorm(x))^2) + 3*((1 - pnorm(x))^3) - ((1 - pnorm(x))^4)
}
我试图为的情况编写一个类似的函数,在P(X1 < A | X2 < A | X3 < A | X4 < A)
这里我遇到了相反的问题:对于 A 的负值它有效,对于正值它不起作用。
prob_union_smaller <- function(x){
pnorm(x)*4 - 6*(pnorm(x)^2) + 3*(pnorm(x)^3) - (pnorm(x)^4)
}
我在这里想念什么?
解决方案
你可以试试下面的代码
prob_union_greater <- function(x) {
p <- pnorm(x, lower.tail = FALSE)
4 * p - 6 * p^2 + 4 * p^3 - p^4
}
prob_union_smaller <- function(x) {
p <- pnorm(x)
4 * p - 6 * p^2 + 4 * p^3 - p^4
}
你会得到
> prob_union_greater(1)
[1] 0.4989328
> prob_union_smaller(1)
[1] 0.9993664
推荐阅读
- python - DIY 剪辑而不是使用 numpy.clip
- c# - 将 azure keyvault 机密 json 反序列化为 MicrosoftIdentityOptions
- php - 如何在一个 gcloud 应用上运行多个页面
- powershell - Set-PnPGroup : 找不到组
- python - Python中执行时间跟踪的效率
- python - Project Euler 问题 12,如何优化我的代码以便更快地找到答案?
- node.js - 如何查询文档中包含特定值的数组
- python - 在python中使用多进程时子进程会做什么
- c - 并行计算在 C 中使用 Petsc
- javascript - Ionic5 模态路由