在序列中查找运行(非随机)

skidmarks的Python项目详细描述


打滑标记:检查是否按顺序运行

Q: how do you check for runs?

A: look for skidmarks.

该模块实现了一些检查序列随机性的功能。 在某些情况下,它被假定为二进制序列(不仅仅是1和0 但只包含两个不同的值)。 欢迎任何反馈、改进和补充。

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

沃尔德沃尔福威茨

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

这将显示非随机性的重要性

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

自相关

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

串行测试

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}

间隙测试

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()将默认为查找 序列(在本例中为“1”)和以后的每个事件。使用项 Kwarg指定另一个值。

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在带注释的SpringMVC中验证模型中图像的mime类型?   java无法打开Google地图活动。安卓   在另一个类文件中调用时返回空值的java getter   spring引导服务中的java线程   什么版本的Java可以使用Liquibase Maven插件?   原因:java。lang.UnsupportedOperationException:BigQuery源必须在读取之前拆分   需要java模式建议(Hibernate+Guice)   java如何在netbeans中的两个帧之间传输数据?   java在Eclipse中创建新项目,然后将其添加到Mercurial repo中   为什么打印0100用Java打印64?   java如何使用Jackson@JsonFormat注释在序列化时格式化字符串?   bash如何将java库包含到shell脚本中   java如何使我的片段利用我的活动数据?   JButton中的java波动