Skip to main content

find runs (non-randomness) in sequences

Project description

Skid Marks: Check for runs in sequences

Q: how do you check for runs?

A: look for skidmarks.

This module implements some functions to check a sequence for randomness. in some cases, it is assumed to be a binary sequence (not only 1’s and 0’s but containing only 2 distinct values). Any feedback, improvements, additions are welcomed.

>>> from skidmarks import gap_test, wald_wolfowitz, auto_correlation, serial_test

Wald-Wolfowitz

http://en.wikipedia.org/wiki/Wald-Wolfowitz_runs_test

http://support.sas.com/kb/33/092.html

>>> r = wald_wolfowitz('1000001')
>>> r['n_runs'] # should be 3, because 1, 0, 1
3
>>> r['p'] < 0.05 # not < 0.05 evidence to reject Ho of random sequence
False

this should show significance for non-randomness

>>> li = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
>>> wald_wolfowitz(li)['p'] < 0.05
True

Autocorrelation

>>> result = auto_correlation('00000001111111111100000000')
>>> result['p'] < 0.05
True
>>> result['auto_correlation']
0.83766233766233755

Serial Test

http://books.google.com/books?id=EIbxfCGfzgcC&lpg=PA141&ots=o-8ymmqbs9&pg=PA142#v=onepage&q=&f=false

>>> serial_test('101010101111000')
{'chi': 1.4285714285714286, 'p': 0.69885130769248427}
>>> serial_test('110000000000000111111111111')
{'chi': 18.615384615384617, 'p': 0.00032831021826061683}

Gap Test

http://books.google.com/books?id=EIbxfCGfzgcC&lpg=PA141&ots=o-8ymmqbs9&pg=PA142#v=onepage&q=&f=false

>>> gap_test('100020001200000')
{'chi': 756406.99909855379, 'item': '1', 'p': 0.0}
>>> gap_test('101010111101000')
{'chi': 11.684911193438811, 'item': '1', 'p': 0.23166089118674466}

gap_test() will default to looking for gaps between the first value in the sequence (in this case ‘1’) and each later occurrence. use the item kwarg to specify another value.

>>> gap_test('101010111101000', item='0')
{'chi': 11.028667632612191, 'item': '0', 'p': 0.27374903509732523}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skidmarks-0.0.6.tar.gz (4.4 kB view details)

Uploaded Source

File details

Details for the file skidmarks-0.0.6.tar.gz.

File metadata

  • Download URL: skidmarks-0.0.6.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for skidmarks-0.0.6.tar.gz
Algorithm Hash digest
SHA256 cd52dbf4ba0a0a49b8ab3b693f123d42b8bf1380a5927bf4ebe650a389c68efd
MD5 9c28bebf5dfbb98333ffbb7bf92ec448
BLAKE2b-256 8095dbe4ab1a6c729428f6e015d9cef25586644b7ea96a9886fc43bd6caf038c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page