使用Scipy执行对数正态拟合时遇到问题

时间:2019-03-06 11:30:05

标签: python scipy

我已经阅读了很多有关该主题的过去问题,但是我还没有找到解决该问题的方法。当对一组数据(Y)使用python scipy.stats.lognormal.fit时,输出参数分别为shapelocscale。假设shape等于正态分布随机变量X的标准偏差,使得exp(X)= Y,而scale等于exp(mu) ,mu是相同正态分布随机变量X的均值。我要进行拟合的数据有三组,但是特别是其中一组给我带来麻烦,而我却无法找到原因。我无法共享代码,因为样本非常具体并且大小为270,因此我直接从文件中读取它,但是问题是我得到了不同的标准偏差值= scale和mu = ln({scale)通过两种不同的方式进行拟合:一种是使用lognorm.fit直接拟合数据Y,另一种是对正态分布样本X进行拟合。我用另一种软件进行了检查( Matlab和Excel),第二个选项给出了正确的结果,所以我猜测它与lognorm.fit的收敛性或特定特征有关,但是我尝试了一些失败的事情,例如使用优化器:

#def opti_wrap(fun, x0, args, disp=0, **kwargs):
#    return minimize(fun, x0, args=args, method='SLSQP', 
#                    tol=1e-12, options={'maxiter': 1000}).x

或在进行loc时使用lognorm.fit值。

任何想法可能是什么问题?

0 个答案:

没有答案