如何使用 Python 估计幂律分布的指数?

Posted

技术标签:

【中文标题】如何使用 Python 估计幂律分布的指数?【英文标题】:How to estimate the exponent of a power law distribution using Python? 【发布时间】:2012-01-28 18:24:25 【问题描述】:

我目前正在做一些网络分析,我想估计平均聚类系数与节点度的幂律分布的指数。首选方法是最大似然估计 (MLE)

我知道这里已经实现了类似的代码:http://tuvalu.santafe.edu/~aaronc/powerlaws/

但是,他们实现的代码专门用于绘制曲线 Pr(X >= x) vs x,其中 x 是给定序列中的一个节点。换句话说,Pr(X >= x) 是X中存在一个节点等于或大于x的概率。

我已经用谷歌搜索了好几天,但我仍然没有找到任何可以做到这一点的工具,例如估计给定两个值序列的幂律分布的指数。

提前致谢。

【问题讨论】:

【参考方案1】:

我知道这可能会晚,但您可以查看最近发布的 `powerlaw' 软件包。它有一个 iPython notebook 带有工作示例和图形。

【讨论】:

【参考方案2】:

查看scipy.optimize。如果您必须使用最大似然,请定义一个似然函数并使用 fmin() 来找到 -似然的最小值(=似然的最大值)。如果可以接受其他方法,请考虑 curve_fit()(使用最小二乘拟合)。

【讨论】:

以上是关于如何使用 Python 估计幂律分布的指数?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算图的幂律指数

用 Python 求解幂律分布

Power-law(幂律)分布 拟合

如何使媒体管道姿势估计更快(python)

求总体为指数分布的矩估计和极大似然估计

Python 幂律符合使用 ODR 的数据中的上限和不对称错误