使用Pebay结果的描述性统计
pebaystats的Python项目详细描述
可以找到有关存储库和包维护操作的信息 在Wiki上。
使用pip从pypi安装包:
bash> pip install pebaystats
pebaystats
提供统计力矩的单通道生成。此包基于文档中描述的公式 Formulas for Robust, One-Pass Parallel Computation of Covariances and Arbitrary-Order Statistical Moments, Phillipe Pébay, Sandia National Laboratories
请阅读“The Full Manual”以获取此包的更详细描述。
这个包的当前实现允许计算 一次多个数据集(列)的统计矩。 目前只计算前四个矩 源文件中的目的算法尚未实现。
注意
峰度值的聚集似乎遭受了一些损失 与scipy生成的值进行比较时的精度。这是真的 在累积简单数据值时不会发生,原因是 目前已知。我怀疑这是一个算术精度效应, 但还没有调查。
这个Python实现是从我的C++代码演化而来的,其中包括 能够从累加器中移除/分解数据。那个 功能最终将迁移到此处。
快速启动
from__future__importprint_function
从模块导入聚合对象。
frompebaystatsimportdstats
创建一些具有不同深度(矩数)和宽度的对象 (要计算统计信息的列数)。这里是stats1和 stats3对象每一个都为 数据,stats2对象为4收集4个统计矩 数据列。
stats1=dstats(2,1)stats2=dstats(4,4)stats3=dstats(2,1)
将单个数据值添加到 stats1对象。打印对象以查看其状态,包括 到目前为止,力矩值是累积的。另外,打印列表列表 从statistics()方法调用返回。在这里你可以看到 平均值为2.0,方差为0.0。
stats1.add(2)stats1.add(2)stats1.add(2)print('stats1: %s'%stats1)print('statistics: %s'%stats1.statistics())
stats1: dstats: 2 moments, 1 columns, 3 rows [[ 2.] [ 0.]] statistics: [[ 2.] [ 0.]]
向stats2对象添加整行(多列)值。 查看累积结果。注意当第二个时刻 (n * Var)是0,相当于0的偏差,较高的力矩 处于初始0状态。较高的统计设置为 NaN本例中的值。
stats2.add([1.2,2,3,9])stats2.add([4.5,6,7,9])stats2.add([8.9,0,1,9])stats2.add([2.3,4,5,9])print('stats2: %s'%stats2)print('statistics: %s'%stats2.statistics(True))
stats2: dstats: 4 moments, 4 columns, 4 rows [[ 4.22500000e+00 3.00000000e+00 4.00000000e+00 9.00000000e+00] [ 3.47875000e+01 2.00000000e+01 2.00000000e+01 0.00000000e+00] [ 6.73818750e+01 7.10542736e-15 7.10542736e-15 0.00000000e+00] [ 5.75139658e+02 1.64000000e+02 1.64000000e+02 0.00000000e+00]] statistics: [[ 4.22500000e+00 3.00000000e+00 4.00000000e+00 9.00000000e+00] [ 2.94904646e+00 2.23606798e+00 2.23606798e+00 0.00000000e+00] [ 6.56807734e-01 1.58882186e-16 1.58882186e-16 nan] [ -1.09897921e+00 -1.36000000e+00 -1.36000000e+00 nan]]
从stats2对象中删除数据(未实现)。
# stats2.remove(1.2,2,3,9)
使用数据加载stats3对象并查看结果。
stats3.add(4)stats3.add(4)stats3.add(4)print('stats3: %s'%stats3)print('statistics: %s'%stats3.statistics())
stats3: dstats: 2 moments, 1 columns, 3 rows [[ 4.] [ 0.]] statistics: [[ 4.] [ 0.]]
现在将该对象聚合到第一个对象上。只有当 形状是一样的。
stats1.aggregate(stats3)print('stast1: %s'%stats1)print('statistics: %s'%stats1.statistics(True))
stast1: dstats: 2 moments, 1 columns, 6 rows [[ 3.] [ 6.]] statistics: [[ 3.] [ 1.]]
历史记录
0.1(2016-11-13)
- pypi上的第一个版本
0.2(2016-11-13)
- 更正了一些设置配置问题
0.3(2016-11-14)
- 增加了对序列化的支持和测试
0.4(2017-1-4)
- 添加了repl()和str()支持
- 为不支持的方法和不支持的力矩添加了异常
- 处理每列除以零
- 改进了设置过程
- 扩展测试
- 已开始迁移到分解测试依赖项
- 方差为0的测试列
- 增加了用于评估预期倾斜和峰度值的scipy
- 对不支持的时刻引发异常
- 大量文档更新
- 添加makefile以生成文档并创建自述文件
- 已删除可选文件
- 改为经典主题
- 扩展内容和示例