求解 Python 中的幂律分布

Solving Power Law Distribution in Python

我的数据非常类似于 power law 分布。使用 Python,我想通过求解以下形式的两个方程来近似数据:

y是y轴数据。在 Python 中它将是 data[i]。 x 将是 i + 1。因此,我们在第一个数据索引处和 "random" 第二个数据索引处得到两个具有两个未知变量的方程式:


问题归结为只解决

由于数学简化。我不知道如何使用 numpy.linalg.solve 这样的库来求解这样的方程式。如何使用 Python 找到 a 的值?

好的,知道了

import math

def get_power_law_variables(data):
    c = data[0]
    middle_index = len(data) / 2
    division = float(data[middle_index]) / c
    logarithm_base = middle_index + 1
    a = math.log(division, logarithm_base)
    return c, a

# Example usage
data = range(50, 150)
c, a = get_power_law_variables(data)
print c, a