我确信这很容易,但我一直在努力寻找如何在 R 中做到这一点。
我有一些数据试图拟合幂律分布。为此,您需要在对数累积概率图上绘制数据。y 轴是数据频率的 LOG(或对数概率,如果您愿意),x 轴是值的对数。如果是一条直线,那么它符合幂律分布,梯度决定幂律参数。
如果我想要数据的频率,我可以使用 ecdf() 函数:
我的数据集称为Profits.negative,它只是一长串小于零的交易利润(我名义上将它们全部转换为正数以避免以后出现记录问题)。
所以我可以输入
plot(ecdf(Profits.negative))
我得到了一个方便的经验 CDF 函数。我需要做的就是将两个轴都转换为对数刻度。我可以做x轴:
Profits.negative.logs <- log(Profits.negative)
plot(ecdf(Profits.negative.logs))
差不多好了!我只需要弄清楚如何记录 y 轴!但我似乎做不到,我不知道如何从 ecdf 对象中提取数字。任何人都可以帮忙吗?
我知道有一个 power.law.fit 函数,但这只是估计参数 - 我想绘制数据并查看它是否对齐。