简化 Normals cumulatives 函数的划分

Simplify the division of Normals cumulatives functions

我正在努力研究如何简化 R 中两个正态概率函数的商。实际上,我正在计算条件偏斜-正态密度,我在这两个函数之间进行了划分:

pnorm(alpha0+t(alpha2)%*%chol2inv(chol(omega2))%*%t(y2-xi2.1))/pnorm(tau2.1)

其中 alpha0+t(alpha2)%*%chol2inv(chol(omega2))%*%t(y2-xi2.1)tau2.1 产生实数。例如,有时我有 pnorm(-50)/pnorm(-40),例如不一致 0/0。但这些值不为零,R 只是近似值。我尝试使用 erf 函数,但我遇到了同样的问题 (0/0)

关于如何解决这个问题的任何提示?

pnorm 有一个 log 参数,这使得它成为 return log(p)。将方程更改为 exp(log(p1) - log(p2)):

exp(pnorm(-50, log = TRUE) - pnorm(-40, log = TRUE))
#[1] 2.95577e-196