2011-05-09 41 views
4

我有興趣增加從它們的電流電平計算qnorm/pnrom當用於浮點限制,例如:將浮點精度添加到qnorm/pnorm? (在R)

x <- pnorm(10) # 1 
qnorm(x) # Inf 
qnorm(.9999999999999999444) # The highst limit I've found that still return a <<Inf number 

那是(下在合理的時間量)可能做到?如果是這樣,怎麼樣?

由於前期,塔爾

回答

10

如果參數爲方式,在上尾,你應該能夠通過計算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)),即使增加更多的位,它們也會很快耗盡。

+0

正是我在找什麼,謝謝歐文! – 2011-05-09 08:05:47