Function Repository Resource:

RunCountRandomnessTest

Conduct a runs up–based randomness test on a sequence of random reals between 0 and 1

Contributed by: Emmy/Noah Blumenthal
noahb320@gmail.com
emmyb320@bu.edu
 ResourceFunction["RunCountRandomnessTest"][sequence] counts the number of increasing runs to assess randomness of sequence and returns an associated p-value. ResourceFunction["RunCountRandomnessTest"][sequence,"property"] counts the number of increasing runs to assess randomness and returns the specified property.

Details and Options

Properties include:
 "TestStatistic" returns the test statistic "PValue" returns the p-value associated with the test
The test statistic is generated by creating a chi square–like statistic that measures the difference between the counts of runs up in a sequence and the expected mean counts of runs up in the sequence.
The test only works for sequences of random reals between 0 and 1.
ResourceFunction["RunCountRandomnessTest"] results are valid only for sequence lengths greater than 600.
The ResourceFunction["RunCountRandomnessTest"] function performs a two-tailed test on the test statistic.

Examples

Basic Examples (3)

Generate a sequence of random integers:

 In[1]:=

Visualize the sequence:

 In[2]:=
 Out[2]=

Apply a run count-based test to the sequence:

 In[3]:=
 Out[3]=
 In[4]:=
 Out[4]=

Scope (3)

Generate a sequence of random integers:

 In[5]:=
 In[6]:=

Visualize the sequence:

 In[7]:=
 Out[7]=

Attempt to reject a non-random sequence:

 In[8]:=
 Out[8]=
 In[9]:=
 Out[9]=

Possible Issues (1)

This test is not very powerful and fails to reject non-random sequences that repeat over longer intervals on occasion. Ideally, it should be used in conjunction with another test:

 In[10]:=
 In[11]:=
 In[12]:=
 Out[12]=
 In[13]:=
 Out[13]=
 In[14]:=
 Out[14]=

Neat Examples (1)

Visualize the sampling distribution of the test statistic:

 In[15]:=
 In[16]:=
 Out[16]=
 In[17]:=
 Out[17]=
 In[18]:=
 Out[18]=

Emmy Blumenthal

Version History

• 1.0.0 – 08 July 2019