module documentation

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: Power laws, Pareto distributions and Zipf's law. Contemporary Physics 46, 323-351 (2005)
  • A Clauset, CR Shalizi, MEJ Newman: Power-law distributions in empirical data. E-print (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 对象。可以从返回对象的 xminalpha 属性中查询拟合的 xmin 值和幂律指数。
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()