본문 바로가기
파이썬

파이썬 Mu 및 Sigma를 사용하여 Python에서 로그 정규 분포를 얻으려면 어떻게해야합니까?

by º기록 2020. 9. 19.
반응형


다음은 내가 작업중인 코드 샘플입니다. 감사.

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 : 올바른 0.7434 결과를 ​​산출하는 작동하는 lognorm 구현.

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

 

해결 방법

 

알려진 매개 변수에서 "고정 된"분포를 인스턴스화하려는 것 같습니다. 귀하의 예에서 다음과 같이 할 수 있습니다.

from scipy.stats import lognorm
stddev = 0.859455801705594
mean = 0.418749176686875
dist=lognorm([stddev],loc=mean)

지정한 평균과 표준 편차가있는 lognorm 분포 객체를 제공합니다. 그런 다음 다음과 같이 pdf 또는 cdf를 얻을 수 있습니다.

import numpy as np
import pylab as pl
x=np.linspace(0,6,200)
pl.plot(x,dist.pdf(x))
pl.plot(x,dist.cdf(x))

lognorm cdf 및 pdf

이것이 당신이 염두에 둔 것입니까?

 

참조 페이지 https://stackoverflow.com/questions/8870982

 

 

반응형

댓글