python对数正态分布函数_如何使用Mu和Sigma在Python中获得对数正态分布?

我一直试图通过

Scipy获得

lognormal分配的结果。我已经有了Mu和Sigma,所以我不需要做任何其他准备工作。如果我需要更具体(我正试图用我对数据的有限知识),我会说我正在寻找累积函数(在Scipy下的cdf)。问题是,我无法弄清楚如何做到这一点,只要平均值和标准偏差在0-1的范围内(即回答的答案应该是0-1)。我也不知道哪个方法从dist,我应该用来得到答案。我已经尝试阅读文档并查看SO,但有关的问题(如

this和

this)似乎没有提供我正在寻找的答案。

以下是我正在使用的代码示例。谢谢。

from scipy.stats import lognorm

stddev = 0.859455801705594

mean = 0.418749176686875

total = 37

dist = lognorm.cdf(total,mean,stddev)

更新:

经过一番工作和一点研究,我有点进一步。但我还是错了答案。新的代码如下。根据R和Excel,结果应该是.7434,但这显然不是发生了什么。我错过了一个逻辑缺陷吗?

dist = lognorm([1.744],loc=2.0785)

dist.cdf(25) # yields=0.96374596, expected=0.7434

更新2:

工作lognorm实现,产生正确的0.7434结果。

def lognorm(self,x,mu=0,sigma=1):

a = (math.log(x) - mu)/math.sqrt(2*sigma**2)

p = 0.5 + 0.5*math.erf(a)

return p

lognorm(25,1.744,2.0785)

> 0.7434

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值