Dziwne problemy precyzji w R podczas obliczania skumulowanego prawdopodobieństwa dwumianowego
Podczas korzystania z tego kodu miałem do czynienia z dziwnymi problemami:
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)
}
Każda iteracja tej pętli for powinna obliczać prawdopodobieństwo dwumianowe, które,i
liczba wystąpień zdarzenia występuje, biorąc pod uwagę częstotliwość. Każda iteracja podsumowuje również wynik. Powinno to skutkowaćprob
zmienna nigdy nie przekracza 1, ale po około 7 dla iteracji pętli, wszystko idzie do piekła iprob
poprzedza 1.
Myślałem, że to może być kwestia precyzyjnych cyfr, więc spróbowałem użyćRmpfr ale bezskutecznie - ten sam problem trwał.
Zastanawiałem się, czy są jakieś wskazówki lub pakiety, aby przezwyciężyć tę sytuację, lub jeśli utknąłem z tym.