【问题标题】:How obtain the real mean & se of my exponential fit?如何获得我的指数拟合的真实均值和 se?
【发布时间】:2016-10-29 03:31:46
【问题描述】:

我正在尝试同时拟合同一图上的直方图上的高斯和指数,但是当我尝试获取指数拟合的平均值时,我得到了一些错误,例如平均值:@987654323 @,(我希望得到类似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_cycle1list_cycle2 的示例。

PS:我阅读了this SciPy documentation,但我不明白我的代码在哪里未能获得指数拟合的平均值。

【问题讨论】:

    标签: python matplotlib scipy histogram exponential


    【解决方案1】:

    stats.expon.fit 返回元组 (loc, scale)。根据文档,

    比例 = 1 / λ

    这也是指数分布的平均值。因此,它是您想要的第二个参数。

    如果要强制位置为0,可以传入floc参数来适应。

    【讨论】:

    • 感谢您的回答! (我不知道为什么我专注于获取平均值:S)
    猜你喜欢
    • 2015-01-02
    • 2013-07-20
    • 2022-07-31
    • 2019-08-25
    • 2017-03-02
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多