【问题标题】:SciPy stats lognormal distribution obtain pdf with given lognormal distribution mean and lognormal distribution geometric standard deviationSciPy stats lognormal distribution 获得具有给定对数正态分布均值和对数正态分布几何标准差的pdf
【发布时间】:2021-06-28 22:24:21
【问题描述】:

我正在处理液滴分布,出于工作目的,我想创建液滴分布图。在这种情况下,scipy 需要lognorm.pdf。不幸的是scipy 构建函数lognorm.pdf 有一个这样的等式:

lognorm.pdf(x, s) = 1 / (s*x*sqrt(2*pi)) * exp(-1/2*(log(x)/s)**2)

就我而言,我想使用公式形式Wikipedia

pdf = 1 / (s*x*sqrt(2*pi)) * exp(-1/2*((log(x)-mu)/s)**2)

最好的方程式是这样的:

(np.exp(-(np.log10(x) - np.log10(mu))**2 / (2 * np.log10(s)**2)) / ( np.log10(s) * np.sqrt(2 * np.pi)))*N

我确实有一个遵循最小方程式的代码,但我只是想知道是否有任何方法可以使用 scipy 或任何其他 python 库来做到这一点?

【问题讨论】:

    标签: python scipy scipy.stats


    【解决方案1】:

    最简单的方法,如果x 不是太消耗内存:

    tempX = x / np.exp(mu)
    distr = lognorm.pdf(tempX, s)
    

    甚至定义你自己的函数:

    def lognormMu(x, mu, s):
        tempX = x / np.exp(mu)
        return lognorm.pdf(tempX, s)
    

    #EDIT

    另外,lognorm docs 明确声明

    上面的概率密度以“标准化”形式定义。 要移动和/或缩放分布,请使用 loc 和 scale 参数。具体来说,lognorm.pdf(x, s, loc, scale) 是相同的 相当于lognorm.pdf(y, s) / scaley = (x - loc) / scale

    所以看来应该叫作

    distr = lognorm.pdf(x, s, mu)
    

    获得想要的效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2021-12-14
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      相关资源
      最近更新 更多