qnorm
我有兴趣从当前级别计算/时增加浮点限制pnorm
,例如:
x <- pnorm(10) # 1
qnorm(x) # Inf
qnorm(.9999999999999999444) # The highst limit I've found that still return a <<Inf number
那(在合理的时间内)可以做到吗?如果是这样,怎么做?
qnorm
我有兴趣从当前级别计算/时增加浮点限制pnorm
,例如:
x <- pnorm(10) # 1
qnorm(x) # Inf
qnorm(.9999999999999999444) # The highst limit I've found that still return a <<Inf number
那(在合理的时间内)可以做到吗?如果是这样,怎么做?
如果参数在上尾,您应该能够通过计算 1-p 获得更好的精度。像这样:
> x = pnorm(10, lower.tail=F)
> qnorm(x, lower.tail=F)
10
我希望(尽管我不确定) pnorm() 函数是指一个 C 或 Fortran 例程,该例程卡在硬件支持的任何浮点大小上。重新排列您的问题可能更好,因此不需要精度。
然后,如果您正在处理非常非常大的 z 值,您可以使用 log.p=T:
> qnorm(pnorm(100, low=F, log=T), low=F, log=T)
100
抱歉,这不是您要找的。但我认为它会更具可扩展性——pnorm 在高 z 值下如此迅速地达到 1(毕竟它是 e^(-x^2)),即使你添加更多位,它们也会很快用完。