我正在使用Jeff Alstott的Python powerlaw包来尝试将我的数据拟合到幂律中。 Jeff的包是基于Clauset等人的论文,其中讨论了Powerlaw。
首先,我的数据的一些细节:
到目前为止我做了什么
df_data是我的Dataframe,其中word_count是一个系列,包含大约1000个单词代币的字数统计数据。
首先,我已经生成了 fit 对象:
fit = powerlaw.Fit(data=df_data.word_count, discrete=True)
接下来,我将我的数据的powerlaw分布与其他分布进行比较 - 即 lognormal ,指数, lognormal_positive , stretched_exponential 和 truncated_powerlaw ,使用fit.distribution_compare(distribution_one,distribution_two)方法。
作为distribute_compare方法的结果,我为每个比较获得了以下(r,p)元组:
来自powerlaw文档:
R:float
两组似然的对数似然比。如果积极, 第一组可能性更有可能(概率也是如此) 产生它们的分布更适合数据)。如果 否定,反之亦然。
p:float
R的符号的重要性如果低于临界值 (通常.05)R的符号被认为是重要的。如果在上面 临界值R的符号被认为是统计学的 波动。
根据powerlaw,指数和对数正态分布的比较结果,我倾向于说我有一个powerlaw分布。
这是对测试结果的正确解释/假设吗?或许我错过了什么?
答案 0 :(得分:1)
首先,虽然这些方法可能是由我,Cosma Shalizi和Mark Newman开发的,但我们的实现是在Matlab和R中。我认为你使用的python实现可能来自Jeff Alstott或Javier del Molino Matamala或者乔尔·奥恩斯坦(all of these are available off my website)。
现在,关于结果。似然比检验(LRT)不允许您断定您有或没有幂律分布。它只是一个模型比较工具,意味着它会评估幂律是否比某些替代方案更不适合您的数据。 (我这样说是因为LRT不是一种拟合方法。)因此,即使幂律分布在所有备选方案中都是赞成,它并不意味着你的数据 分享幂律。这只意味着幂律模型是一种不太可怕的数据统计模型,而不是替代品。
要评估幂律分布本身是否是统计上合理的模型,您应该使用半参数自举{{3}计算拟合幂律模型的 p 值。 }。如果 p> 0.1 ,和,则幂律模型优于LRT的替代方案,那么您可以在幂律分布后得出相对强大的数据支持
返回到您的特定结果:您的每个LRT比较产生一对(r,p),其中 r 是标准化的对数似然比和 p 是该比率的统计显着性。正在为 p -value测试的事情是 r 的符号是否有意义。如果LRT的 p <0.05 ,那么正号表示有利于幂律模型。看看你的结果,我发现指数和lognormal_positive替代方案比幂律模型更适合数据。但是,lognormal,stretched_exponential和truncated_power_law都不是,这意味着这些替代方案与数据一样非常适合您的幂律模型。
如果没有来自幂律模型本身的假设检验的 p - 值,则LRT结果不能完全解释。但即使是部分解释也不符合幂律模式的强有力证据,因为两种非幂律模型与这些数据的幂律一样好(坏)。考虑到数据的正确偏差,指数模型真的比幂律更差,这一事实并不令人惊讶,所以没有什么可以写回家的。