http://www.perlmonks.org?node_id=832923


in reply to Re: Fastest way to calculate hypergeometric distribution probabilities (i.e. BIG factorials)?
in thread Fastest way to calculate hypergeometric distribution probabilities (i.e. BIG factorials)?

I could be mistaken but I think this calculates the probability of i successful selections, not i or more successful selections as claimed above. For the cdf, prob of i or more successes, you need to do the following:
my $hypercdf = 0; for (my $iref=$i; $iref < min($N,$n); $iref++) { $hypercdf += hypergeom($n,$m,$N,$iref); } print $hypercdf;

Replies are listed 'Best First'.
Re^3: Fastest way to calculate hypergeometric distribution probabilities (i.e. BIG factorials)?
by Alokito (Novice) on Jun 06, 2011 at 11:30 UTC
    You may need a less than or equal to in the condition of the for loop. This probably won't make a difference in most cases, as the final probability is usually very small.
    my $hypercdf = 0; for (my $iref=$i; $iref <= min($N,$n); $iref++) { $hypercdf += hypergeom($n,$m,$N,$iref); } print $hypercdf;