https://boardgamearena.com/table?table=451655181 had 56 rolls. For 56, the probability of there being at least one
number occurred few times event at least as surprising as "10 dropped only 1 time" is greater than 24% :
(By one of the Bonferroni inequalities, https://en.wikipedia.org/wiki/Boole's_i ... equalities
unionbound-pairwisecorrection is a lower bound on the probability that _at least one_ of the rolls 4,5,6,7,8,9,10 has a surprisingly low frequency.
I don't know a proof of that in general, but I can explain the pairwise special case:
)
https://boardgamearena.com/table?table=451655181 had 56 rolls. For 56, the probability of there being at least one
number occurred few times event at least as surprising as "10 dropped only 1 time" is greater than 24% :
Code: Select all
Python 3.8.0 (default,
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from math import comb,factorial
>>> from fractions import Fraction as frac
>>> threshold = 56*frac(3,36)*(frac(33,36)**55)
>>> comb(56,4)*(frac(6,36)**4)*(frac(30,36)**52) < threshold < comb(56,5)*(frac(6,36)**5)*(frac(30,36)**51)
True
>>> [(n,k) for n in (1,2,3,4,5,6) for k in (0,1,2,3,4) if comb(56,k)*(frac(n,36)**k)*(frac(36-n,36)**(56-k)) == threshold]
[(3, 1)]
>>> [(n,[k for k in (0,1,2,3,4) if comb(56,k)*(frac(n,36)**k)*(frac(36-n,36)**(56-k)) <= threshold]) for n in (1,2,3,4,5,6)]
[(1, []), (2, []), (3, [0, 1]), (4, [0, 1, 2]), (5, [0, 1, 2, 3]), (6, [0, 1, 2, 3, 4])]
>>> lowfrequenciesfor = ((),(),(),(),(0,1),(0,1,2),(0,1,2,3),(0,1,2,3,4),(0,1,2,3),(0,1,2),(0,1),(),())
>>> unionbound = sum(comb(56,k)*(frac(6-abs(roll-7),36)**k)*(frac(36-(6-abs(roll-7)),36)**(56-k)) for roll in (4,5,6,7,8,9,10) for k in lowfrequenciesfor[roll])
>>> pairwisecorrection = sum(frac(factorial(56),factorial(j)*factorial(k)*factorial(56-(j+k)))*(frac(6-abs(m-7),36)**j)*(frac(6-abs(n-7),36)**k)*(frac(36-((6-abs(m-7))+(6-abs(n-7))),36)**(56-(j+k))) for m in (4,5,6,7,8,9,10) for n in (4,5,6,7,8,9,10) for j in lowfrequenciesfor[m] for k in lowfrequenciesfor[n] if m != n)
>>> frac(17,(17*4)+1) < frac(246550,10**6) < unionbound-pairwisecorrection
True
>>> (By one of the Bonferroni inequalities, https://en.wikipedia.org/wiki/Boole's_i ... equalities
unionbound-pairwisecorrection is a lower bound on the probability that _at least one_ of the rolls 4,5,6,7,8,9,10 has a surprisingly low frequency.
I don't know a proof of that in general, but I can explain the pairwise special case:
Code: Select all
Let S_0,S_1,...,S_(n-1) be the sets. For a first attempt at estimating Probability ( S_0 union S_1 union ... S_(n-1) ) ,
one can use Probability(S_0) + Probability(S_1) + ... + Probability(S_(n-1)) .
The only issue with that sum is, it counts each event a number of times equal to the
number of the sets S the event is in, rather than counting each event at most once.
Accordingly, one can get a lower bound by subtracting the result of counting
each event that is in _more than_ one of the sets S
a number of times equal to at least
the number of the sets S the event is in minus 1 .
Adding the probabilities of the pairwise intersections does count those events at least that often:
Events in exactly s of the sets S get counted s choose 2 times.
When s is at least 2,
s choose 2 = s*(s-1)/2) = (s-1)*s/2 >= (s-1)*2/2 = s-1 .