使用此代码时,我遇到了一些奇怪的问题:
positions<-c(58256)
occurrencies<-c(30)
frequency<-c(11/5531777)
length<-c(4)
prob<-c(0)
for(i in 0:(occurrencies-1))
{
pow<-frequency^i
pow1<-(1-frequency)^(positions-i)
bin<-choose(positions, i)
prob<<-prob+(bin*pow*pow1)
}
i
此 for 循环的每次迭代都应计算在给定频率的情况下事件发生次数的二项式概率。每次迭代也会总结结果。这应该会导致prob
变量永远不会超过 1,但是在 7 次左右的循环迭代之后,一切都变得糟糕并prob
超过 1。
我认为这可能是数字精度的问题,所以我尝试使用Rmpfr但无济于事——同样的问题仍然存在。
我想知道是否有任何技巧或包来克服这种情况,或者我是否坚持这一点。