问题描述
我正在努力简化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
参数,这使其返回log(p)。将方程式更改为exp(log(p1)-log(p2)):
exp(pnorm(-50,log = TRUE) - pnorm(-40,log = TRUE))
#[1] 2.95577e-196