python - 估计幂律分布中的指数截断

标签 python statistics social-networking

因为我一直在做一些社交网络分析,所以我偶然发现了在网络度上拟合概率分布的问题。

因此,我有一个概率分布 P(X >= x),从目测来看,它遵循具有指数截断的幂律而不是纯幂律(直线)。

因此,假定具有指数截断的幂律分布方程为:

f(x) = x**alpha * exp(beta*x)

我如何使用 Python 估计参数 alphabeta

我知道 scipy.stats.powerlaw 包存在并且它们有一个 .fit() 函数,但它似乎没有完成这项工作,因为它只返回绘图的位置和比例,哪个似乎只对正态分布有用?这个包的教程也不够。

附言我很清楚 CLauset et al 的实现但它们似乎没有提供估计交替分布参数的方法。

最佳答案

Powerlaw库可以直接用于估计参数如下:

  1. 安装所有 pythons 依赖项:

    pip install powerlaw mpmath scipy
    
  2. 运行适合python环境的powerlaw包:

    import powerlaw
    data = [5, 4, ... ]
    results = powerlaw.Fit(data)
    
  3. 从结果中获取参数

    results.truncated_power_law.parameter1 # power law  parameter (alpha)
    results.truncated_power_law.parameter2 # exponential cut-off parameter (beta)
    

关于python - 估计幂律分布中的指数截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9063097/

相关文章:

python - 基于当前行上方或下方第 n 行的条件 - Python

python - 安装脚本退出并出现错误 : Unable to find vcvarsall. bat

machine-learning - 逻辑回归分类器训练计数

database - 社交网站的数据存储

javascript - 使用 javascript 库的社交网络图

python - 如果包含在循环中,字典是否会被清除

Python - 从 SharePoint 网站下载文件

r - 文件名未知的文件

python - 将 Z 值(Z 值,标准分数)转换为 Python 中正态分布的 p 值

在 R 中重新排列多个矩阵的形状