0

我想使用该库将一些数据拟合到帕累托分布。scipy.stats我不确定问题是否是数字问题,所以为了安全起见;我从几千分钟开始测量自变量(“分钟”)的因变量(我们称它们为“推”)的值,此后每十分钟(除了在数据清理过程中删除的几个点) )。

例如

2780.0 362.0

2800.0 376.0

2810.0 393.0 ...

我能找到的最好的信息是这样的

from scipy.stats import pareto
result = pareto.fit(data)

而且我不知道在这种情况下如何格式化这些数据。我已经尝试了以下但都导致错误。

result = pareto.fit(zip(minutes, pushes))
result = pareto.fit(pushes)

错误通常是

Warning: invalid value encountered in double_scalars

非常感谢一些指导,谢谢。

4

1 回答 1

0

正如我在上面的评论中提到的,pareto.fit()这不是你要找的。

连续分布的.fit()方法scipy.stats获得对分布参数的估计,该估计使观察到某些特定样本值集的概率最大化。因此,pareto.fit()只需要一个包含要拟合分布的样本的数组参数。其他关键字参数控制拟合过程的各个方面,例如通过指定分布参数的初始值。

实际上要做的是拟合一些自变量x和一些因变量之间的关系y,即

y_fit = f(x, params)

你需要做的是:

  1. 为 选择一些函数形式f。根据您的描述,yvs的图x类似于帕累托分布的概率密度函数,因此也许这个或衰减指数可能是合适的。

  2. 找到一组最小化和params之间差异的一些度量(通常是平方差的总和)。您可以使用或执行此操作。yy_fitscipy.optimize.curve_fitscipy.optimize.minimize

于 2015-04-13T16:19:25.437 回答