模块文档

igraph 中与统计相关的内容

FittedPowerLaw 将幂律拟合到样本向量的结果
Histogram 适用于实数的通用直方图类
RunningMean 运行平均值计算器。
函数 mean 返回可迭代对象的平均值。
函数 median 返回未排序或已排序数值向量的中位数。
函数 percentile 返回未排序或已排序数值向量的第 p 个百分位数。
函数 power_law_fit 将幂律分布拟合到经验数据
函数 quantile 返回未排序或已排序数值向量的第 q 个分位数。
函数 sd 返回可迭代对象的标准差。
函数 var 返回可迭代对象的方差。
def mean(xs): (source)

返回可迭代对象的平均值。

示例

>>> mean([1, 4, 7, 11])
5.75
参数
xs一个产生数字的可迭代对象。
返回
可迭代对象提供的数字的平均值。
另请参阅
如果您还需要方差或标准差,请使用 RunningMean()
def median(xs, sort=True): (source)

返回未排序或已排序数值向量的中位数。

参数
xs向量本身。
sort是否对向量进行排序。如果您已知向量已排序,请传入False这里。
返回
中位数,它将始终是一个浮点数,即使原始向量包含整数。
def percentile(xs, p=(25, 50, 75), sort=True): (source)

返回未排序或已排序数值向量的第 p 个百分位数。

这等同于调用 quantile(xs, p/100.0);有关计算的更多详细信息,请参见 quantile

示例

>>> round(percentile([15, 20, 40, 35, 50], 40), 2)
26.0
>>> for perc in percentile([15, 20, 40, 35, 50], (0, 25, 50, 75, 100)):
...     print("%.2f" % perc)
...
15.00
17.50
35.00
45.00
50.00
参数
xs向量本身。
p要查找的百分位数。如果您想一次调用计算多个分位数,它也可以是一个列表。默认值计算第 25、50 和 75 个百分位数。
sort是否对向量进行排序。如果您已知向量已排序,请传入False这里。
返回
第 p 个百分位数,它将始终是一个浮点数,即使原始向量包含整数。如果 p 是一个列表,结果也将是一个列表,包含列表中每个项目的百分位数。
def power_law_fit(data, xmin=None, method='auto', p_precision=0.01): (source)

将幂律分布拟合到经验数据

参考文献

  • MEJ Newman: 幂律、帕累托分布和齐夫定律。《现代物理学》46, 323-351 (2005)
  • A Clauset, CR Shalizi, MEJ Newman: 经验数据中的幂律分布。预印本 (2007)。arXiv:0706.1062
参数
data要拟合的数据,一个包含整数值的列表
xmin幂律拟合的下限。如果为None,也将估算最佳的 xmin 值。零表示将使用最小可能的 xmin 值。
method

要使用的拟合方法。目前已实现以下方法

  • continuous, hill: 当输入数据来自连续尺度时,精确的最大似然估计。这被称为 Hill 估计器。该估计器的统计误差为 (alpha − 1) ⁄ sqrt(n),其中 alpha 是估计的指数,n 是超过 xmin 的数据点数。已知该估计器在有限样本量下存在阶数为 O(n − 1) 的小偏差,当 n > 100 时,此偏差很小。如果 n 较小,igraph 将尝试补偿有限样本量。
  • discrete: 当输入来自离散尺度时,精确的最大似然估计(参见参考文献中的 Clauset 等人)。
  • auto: 精确的最大似然估计,如果输入向量包含至少一个分数(非整数)值,则使用连续方法;如果输入向量只包含整数,则使用离散方法。
p_precisionp 值计算的期望精度。精度最终取决于重采样尝试的次数。重采样试验的次数由 0.25 除以所需精度的平方确定。例如,所需精度为 0.01 意味着将抽取 2500 个样本。
返回
一个 FittedPowerLaw 对象。拟合的xmin值和幂律指数可以从xminalpha返回对象的属性中查询。
def quantile(xs, q=(0.25, 0.5, 0.75), sort=True): (source)

返回未排序或已排序数值向量的第 q 个分位数。

计算样本分位数有多种不同方法。igraph 实现的方法是 NIST 推荐的方法。首先,我们计算秩 n 为 q(N+1),其中 N 是 xs 中的项目数,然后我们将 n 分为整数部分 k 和小数部分 d。如果 k <= 1,我们返回第一个元素;如果 k >= N,我们返回最后一个元素;否则,我们使用因子 d 返回 xs[k-1] 和 xs[k] 之间的线性插值。

示例

>>> round(quantile([15, 20, 40, 35, 50], 0.4), 2)
26.0
参数
xs向量本身。
q要查找的分位数。如果您想一次调用计算多个分位数,它也可以是一个列表。默认值计算第 25、50 和 75 个百分位数。
sort是否对向量进行排序。如果您已知向量已排序,请传入False这里。
返回
第 q 个分位数,它将始终是一个浮点数,即使原始向量包含整数。如果 q 是一个列表,结果也将是一个列表,包含列表中每个项目的分位数。
def sd(xs): (source)

返回可迭代对象的标准差。

示例

>>> sd([1, 4, 7, 11])       #doctest:+ELLIPSIS
4.2720...
参数
xs一个产生数字的可迭代对象。
返回
可迭代对象提供的数字的标准差。
另请参阅
如果您还需要平均值,请使用 RunningMean()
def var(xs): (source)

返回可迭代对象的方差。

示例

>>> var([1, 4, 8, 11])            #doctest:+ELLIPSIS
19.333333...
参数
xs一个产生数字的可迭代对象。
返回
可迭代对象提供的数字的方差。
另请参阅
如果您还需要平均值,请使用 RunningMean()