【发布时间】:2015-05-26 08:16:17
【问题描述】:
我正在编写一个脚本来使用 scipy.stats 在数据集上找到最合适的分布。 我首先有一个分发名称列表,我会在上面进行迭代:
dists = ['alpha', 'anglit', 'arcsine', 'beta', 'betaprime', 'bradford', 'norm']
for d in dists:
dist = getattr(scipy.stats, d)
ps = dist.fit(selected_data)
errors.loc[d,['D-Value','P-Value']] = kstest(selected.tolist(), d, args=ps)
errors.loc[d,'Params'] = ps
现在,在这个循环之后,我选择最小 D 值以获得最佳拟合分布。现在,每个分布在 ps 中返回一组特定的参数,每个参数都有它们的名称等等(例如,对于 'alpha',它将是 alpha,而对于 'norm',它们将是 mean 和 std)。
有没有办法在 scipy.stats 中获取估计参数的名称?
提前谢谢你
【问题讨论】:
-
恕我直言,因为你知道你使用了哪个发行版,所以明确地这样做......在你的 ps 周围制作一个包装器,并用易于理解的方法在那里处理它们,它会告诉你它是什么分布以及什么参数可以你期待。
-
FWIW,scipy stats 中的每个分布都有一个属性
shapes。 -
感谢您的回复;最后我不得不手动完成,因为
shapes参数仍然没有给我一个对发布有效的名称。