2024-05-15 10:58:00 发布
网友
我试图通过使用scipy.stats.gamma和scipy.optimize.minimize以及我的数据来估计scale参数。 我建立了一个要评估的函数:
scipy.stats.gamma
scipy.optimize.minimize
def loss_func(para, x, y): return sum((gamma.cdf(x, para[0], para[1])-y)**2)/2
以及
这样,res.x[1]会返回scale参数,而{}会返回shape参数吗?在
res.x[1]
不,我不认为你说得对。请参阅scipy.stats的文档,了解累积分布函数方法:.cdf(x, a, loc=0, scale=1),函数如下:
scipy.stats
.cdf(x, a, loc=0, scale=1)
para[0]变为a,因此形状参数和para[1]变成{},这是位置参数。结果,res.x[1]返回位置,res.x[0]返回shape,这不是您想要的。在
para[0]
a
para[1]
res.x[0]
所以你应该把你的功能改成:
现在,请记住,你实际上是在做最小二乘法最小化,以使经验CDF与Gamma CDF相匹配。什么@贝沙德努里建议使用.fit()方法,是一种最大似然法。这两者不同,预期结果也会不同。如果你有原始数据(而不是经验CDF),你最好使用.fit()或{}方法。在
.fit()
不,我不认为你说得对。请参阅
scipy.stats
的文档,了解累积分布函数方法:.cdf(x, a, loc=0, scale=1)
,函数如下:para[0]
变为a
,因此形状参数和para[1]
变成{res.x[1]
返回位置,res.x[0]
返回shape,这不是您想要的。在所以你应该把你的功能改成:
^{pr2}$现在,请记住,你实际上是在做最小二乘法最小化,以使经验CDF与Gamma CDF相匹配。什么@贝沙德努里建议使用}方法。在
.fit()
方法,是一种最大似然法。这两者不同,预期结果也会不同。如果你有原始数据(而不是经验CDF),你最好使用.fit()
或{相关问题 更多 >
编程相关推荐