0

有没有办法获得分布的参数?我知道几乎每个发行版都有“loc”和“scale”,但它们之间存在差异,例如 alpha 有“a”,beta 有“a”、“b”。

我想做的是以编程方式打印(在拟合分布后)参数、值的键值对。

但我不想为每个可能的分发编写打印例程。

4

2 回答 2

2

inspect_pdf方法似乎有效:

import inspect

# keys
[p for p in inspect.signature(stats.beta._pdf).parameters if not p=='x']
# ['a', 'b']

# keys and values
dist = stats.alpha(a=1)
inspect.signature(stats.alpha._pdf).bind('x', *dist.args, **dist.kwds).arguments
# OrderedDict([('x', 'x'), ('a', 1)])
# 'x' probably doesn't count as a parameter
于 2017-11-23T08:03:23.690 回答
0

最后我所做的是:

parameter_names = [p for p in inspect.signature(distribution._pdf).parameters if not p=='x'] + ["loc","scale"]
parameters = distribution.fit(pd_series)
distribution_parameters_dictionary =dict(zip(parameter_names,parameters))

其中 pd_series 是要拟合的数据的 pandas 系列。

于 2017-11-24T06:55:48.050 回答