首页 > 解决方案 > 计算 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)  
}

我在这里想念什么?

标签: rstatisticsprobability

解决方案


你可以试试下面的代码

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

推荐阅读