我想将一些数据放到Pareto distribution using the scipy.stats
库中。我不确定问题是否可能是数字,所以只是为了安全;我为自变量('分钟')测量了因变量(让我们称之为'推')的值,从几千分钟开始,每隔十分钟一次(除了在数据清理过程中删除的几个点) )。
e.g。
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
非常感谢一些指导,谢谢。
答案 0 :(得分:0)
正如我在上面的评论中所提到的,pareto.fit()
并不是你想要的。
scipy.stats
中连续分布的.fit()
methods获得分布参数的估计值,以最大化观察某些特定样本值集的概率。因此,pareto.fit()
只需要一个单个数组参数,其中包含要使分布适合的样本。其他关键字参数控制拟合过程的各个方面,例如通过指定分布参数的初始值。
你实际试图做的是使某个独立变量x
与某些因变量y
之间的关系适合,即
y_fit = f(x, params)
您需要做的是:
为f
选择一些功能表单。根据您的描述,y
与x
的图形类似于probability density function for a Pareto distribution,因此可能这个或衰减的指数可能是合适的。
找到最小化params
和y
之间差异度量的y_fit
集(通常是差值的平方和)。您可以使用scipy.optimize.curve_fit
或scipy.optimize.minimize
执行此操作。