我正在使用 Jeff Alstott 的 Python 幂律包来尝试将我的数据拟合到幂律。Jeff 的软件包基于 Clauset 等人的论文,该论文讨论了幂律。
首先,关于我的数据的一些细节:
- 它是离散的(字数数据);
- 它严重向左倾斜(高偏度)
- 它是Leptokurtic(过度峰度大于 10)
到目前为止我做了什么
df_data 是我的数据框,其中 word_count 是一个包含大约 1000 个单词标记的单词计数数据的系列。
首先,我生成了一个fit对象:
fit = powerlaw.Fit(data=df_data.word_count, discrete=True)
接下来,我使用 fit.distribution_compare(distribution_one, distribution_two) 方法将我的数据的幂律分布与其他分布(即lognormal、exponential、lognormal_positive、stretched_exponential和truncated_powerlaw )进行比较。
作为 distribution_compare 方法的结果,我为每个比较获得了以下 (r,p) 元组:
- fit.distribution_compare('power_law', 'lognormal') = (0.35617607052907196, 0.5346696007)
- fit.distribution_compare('power_law', 'exponential') = (397.3832646921206, 5.3999952097178692e-06)
- fit.distribution_compare('power_law', 'lognormal_positive') = (27.82736434863289, 4.2257378698322223e-07)
- fit.distribution_compare('power_law', 'stretched_exponential') = (1.37624682020371, 0.2974292837452046)
- fit.distribution_compare('power_law', 'truncated_power_law') =(-0.0038373682383605, 0.83159372694621)
从幂律文档:
R:浮动
两组可能性的对数似然比。如果为正,则第一组可能性更有可能(因此产生它们的概率分布更适合数据)。如果为负,则反之亦然。
p : 浮动
R 符号的显着性。如果低于临界值(通常为 0.05),则认为 R 的符号显着。如果高于临界值,则 R 的符号被认为是由于统计波动。
从幂律分布、指数分布和对数正态分布的比较结果来看,我倾向于说我有幂律分布。
这是对测试结果的正确解释/假设吗?或者也许我错过了什么?