如何获得我的指数拟合的真实均值和 se?
How obtain the real mean & se of my exponential fit?
我试图同时拟合同一个图上的直方图上的高斯分布和指数分布,但是当我尝试获取指数拟合的均值时,我得到了一些错误信息,例如均值: -9.8636992990798974e-07
,(我希望得到类似70
的东西,而不是-9.8e-07
)。
有了高斯拟合,我的值没问题。
这是我的情节的打印:
我不知道我在获取指数拟合均值的代码中做错了什么:
plt.figure(1)
plt.subplot(221)
cycle = map(float,cycle)
cycle = np.array(cycle)
list_cycle1 = cycle[cycle < 1000 ]
list_cycle2 = cycle[cycle >= 1000]
plt.hist(list_cycle1, bins=10, normed=True)
xt1 = plt.xticks()[0]
xmin1, xmax1= min(xt1), max(xt1)
lnspc1 = np.linspace(xmin1, xmax1, len(list_cycle1))
m1, s1 = stats.expon.fit(list_cycle1, moments='mv')
pdf_e = stats.expon.pdf(lnspc1, m1, s1)
plt.plot(lnspc1, pdf_e, label='expon pdf')
list_mean_1.append(m1)
list_se_1.append(s1)
plt.hist(list_cycle2, bins=10, normed=True)
xt2 = plt.xticks()[0]
xmin2, xmax2= min(xt2), max(xt2)
lnspc2 = np.linspace(xmin2, xmax2, len(list_cycle2))
m2, s2 = stats.norm.fit(list_cycle2)
pdf_g = stats.norm.pdf(lnspc2, m2, s2)
plt.plot(lnspc2, pdf_g, label="Norm")
list_mean_2.append(m2)
list_se_2.append(s2)
如果需要,我可以添加 list_cycle1
和 list_cycle2
的示例。
PS:我读过 this SciPy documentation,但我不明白我的代码哪里失败了,无法获得我的指数拟合的平均值。
stats.expon.fit returns 元组 (loc, scale)。根据文档,
比例= 1 / lambda
这也是指数分布的均值。因此,它是您想要的第二个参数。
如果想强制location为0,可以传入floc参数来fit。
我试图同时拟合同一个图上的直方图上的高斯分布和指数分布,但是当我尝试获取指数拟合的均值时,我得到了一些错误信息,例如均值: -9.8636992990798974e-07
,(我希望得到类似70
的东西,而不是-9.8e-07
)。
有了高斯拟合,我的值没问题。
这是我的情节的打印:
我不知道我在获取指数拟合均值的代码中做错了什么:
plt.figure(1)
plt.subplot(221)
cycle = map(float,cycle)
cycle = np.array(cycle)
list_cycle1 = cycle[cycle < 1000 ]
list_cycle2 = cycle[cycle >= 1000]
plt.hist(list_cycle1, bins=10, normed=True)
xt1 = plt.xticks()[0]
xmin1, xmax1= min(xt1), max(xt1)
lnspc1 = np.linspace(xmin1, xmax1, len(list_cycle1))
m1, s1 = stats.expon.fit(list_cycle1, moments='mv')
pdf_e = stats.expon.pdf(lnspc1, m1, s1)
plt.plot(lnspc1, pdf_e, label='expon pdf')
list_mean_1.append(m1)
list_se_1.append(s1)
plt.hist(list_cycle2, bins=10, normed=True)
xt2 = plt.xticks()[0]
xmin2, xmax2= min(xt2), max(xt2)
lnspc2 = np.linspace(xmin2, xmax2, len(list_cycle2))
m2, s2 = stats.norm.fit(list_cycle2)
pdf_g = stats.norm.pdf(lnspc2, m2, s2)
plt.plot(lnspc2, pdf_g, label="Norm")
list_mean_2.append(m2)
list_se_2.append(s2)
如果需要,我可以添加 list_cycle1
和 list_cycle2
的示例。
PS:我读过 this SciPy documentation,但我不明白我的代码哪里失败了,无法获得我的指数拟合的平均值。
stats.expon.fit returns 元组 (loc, scale)。根据文档,
比例= 1 / lambda
这也是指数分布的均值。因此,它是您想要的第二个参数。
如果想强制location为0,可以传入floc参数来fit。