使用具有预定平均值和std(loc& scale)的scipy进行拟合分布?

时间:2016-08-17 15:09:37

标签: python scipy

如何使用具有预定平均值的scipy.stats.t.fit()和std?

来拟合t分布

问题是,我有一个标准化的数据集,mean=0std=1,我只希望得到df t分布。 但是当我执行scipy.stats.t.fit(data)时,它会输出df, loc, scale,并且loc& sclae不一定等于0& 1。

我该如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:2)

在致电.fit()时,请使用参数floc=0fscale=1来修复这些参数。

这是一个例子。首先,导入t并生成要使用的示例:

In [24]: from scipy.stats import t

In [25]: np.random.seed(123)

In [26]: sample = t.rvs(3, loc=0, scale=1, size=10000)

现在使用.fit()方法将t分布拟合到样本,将位置约束为0,将比例缩小为1:

In [27]: t.fit(sample, floc=0, fscale=1)
Out[27]: (3.1099609375000048, 0, 1)

fit docstringhere on stackoverflow中有更多示例(使用不同的发布)。