如果你看到本帖,哦那恭喜你,其他帖子就不用看了,我都替你筛选过了,都用处不大,没有一个能实际求出参数的,都是生成随机分布的点,然后做拟合,然后就没然后了,把人能气死,别提了就,要么就是给你介绍一堆什么是幂律分布,我都都要求参数了你还给我讲道理,这不扯淡么。

r语言 拟合算法 r语言拟合幂律分布_拟合


总结一下,幂律分布主要求两个参数,一个是系数C,一个是求幂指数,一般是负值。方法一:线性拟合倒推

1、公式推导

r语言 拟合算法 r语言拟合幂律分布_r语言 拟合算法_02


r语言 拟合算法 r语言拟合幂律分布_算法_03


验证幂律分布的办法就是对坐标轴XY同时取对数,如果是一条直线就服从幂律分布。如上图所示。上边的图是用ORIGIN画出来的,origin会有这条直线的参数,直线的系数就是幂指数,截距就是幂率分布的系数。这个在excel中也能做

r语言 拟合算法 r语言拟合幂律分布_拟合_04


r语言 拟合算法 r语言拟合幂律分布_r语言 拟合算法_05


具体Origin和excel中怎么做下边会介绍,R方就是评估指标拟合优度。这种情况只适用与你的数据真的是很服从幂律分布,真的就是一条直线。如果是如下这种情况,误差就很大。

r语言 拟合算法 r语言拟合幂律分布_r语言 拟合算法_06


r语言 拟合算法 r语言拟合幂律分布_算法_07


r语言 拟合算法 r语言拟合幂律分布_机器学习_08


所以说就要用如下辆种方法

方法二:最小二乘法

该方法用graphpad和origin都可以,方法先绘制散点图,再做曲线拟合,而最小二乘法就是一种曲线拟合求最优参数的方法。不对坐标轴取对数,直接捏概率密度函数图或者分布函数图。

r语言 拟合算法 r语言拟合幂律分布_概率论_09


如此一来R方也大了,说明拟合更好了。数据也会更准确。

方法三:最大似然估计

本方法需要用到Python的第三方库powerlaw,直接搜索说明文档即可,这里不做赘述。