python gamma.fit返回值似乎不正确分布在Excel中

我有一系列用于产生散点图的实验数据值XY ,这个散点图看起来与伽玛分布非常相似,我已经读过文章说这个实验数据可以使用伽马分布表示/build模。

所以我写了下面一些python代码来查找gamma分布常量:

import csv import random import scipy as sp import scipy.stats as ss from collections import defaultdict columns = defaultdict(list) with open('case_1_RTD.csv') as f: reader=csv.reader(f) reader.next() for row in reader: for(i,v) in enumerate(row): columns[i].append(v) X=(columns[0]) Y=(columns[1]) data=[float(i) for i in Y] alpha= [] beta=[] loc=[] alpha,loc,beta=ss.gamma.fit(data, floc=0) print (alpha,loc,beta) 

然后,我使用这个输出在Excel中生成伽马分布,并将这个新的Gamma分布数据与原始的X,Y数据进行比较。 数据值的集合根本不是一个类似的东西。

在Excel中,我使用该function

 =Gamma.Dist(X,alpha,beta,False) #I have tried switching alpha and beta around but no luck 

事实上,我不使用python代码中的X数据集有点令人不安,但从我读过的Scipy文档中,我无法看到在哪里使用它。 这与python中的locvariables有什么关系吗? (从我读过的没有)

X,Y数据集包含3718个值,最小的Y值是1.11E-297,这是否会造成问题?

在此先感谢您的帮助或指导

您似乎正在寻找将$ Y $作为$ X $,$ Y = f(X)$的非线性函数进行build模,而不是试图估计$ Y $的分布。 显然,从理论上考虑,$ f $是一个非负函数,曲线下面积为1,指数衰减的尾部( 维基百科关于停留时间分布的文章 ),所以你想使用概率密度函数,特别是Gamma分布 pdf。

这不是一个分布拟合问题,而是一个非线性回归问题。 我不知道如何用Python做,但是快速search这些关键字提供了一个有前途的链接 。