R을 사용하여 일련의 데이터를 가진 로그 정규 모델을 피팅했습니다. 결과 매개 변수는 다음과 같습니다.
meanlog = 4.2991610
sdlog = 0.5511349
이 모델을 Scipy로 이전하고 싶습니다. Scipy를 사용하여 1과 3.1626716539637488e + 90의 모양과 스케일을 얻을 수있었습니다. 매우 다른 숫자입니다. 또한 meanlog 및 sdlog의 exp를 사용하려고했지만 기괴한 그래프를 계속 얻습니다.
나는 scipy에서 할 수있는 모든 문서를 읽었 으며이 인스턴스에서 모양 및 배율 매개 변수의 의미에 대해 여전히 혼란 스럽습니다. 함수를 직접 코딩하는 것이 합리적입니까? 나는 scipy를 처음 사용하기 때문에 오류가 발생하기 쉬운 것 같습니다.
SCIPY Lognormal (BLUE) vs. R Lognormal (RED) :
어떤 방향으로 갈 생각이 있습니까? 그런데 데이터는 R 모델에 매우 적합하므로 파이썬에서 다른 것처럼 보이는 경우 자유롭게 공유하십시오.
감사합니다!
최신 정보:
Scipy 0.11을 실행 중입니다.
다음은 데이터의 하위 집합입니다. 실제 샘플은 38k +이며 평균은 81.53627입니다.
서브 세트 :
x
[60, 170, 137, 138, 81, 140, 78, 46, 1, 168, 138, 148, 145, 35, 82, 126, 66, 147, 88, 106, 80, 54, 83, 13, 102, 54, 134, 34]
numpy.mean (x)
99.071428571428569
또는
PDF를 캡처하는 기능을 연구 중입니다.
def lognoral(x, mu, sigma):
a = 1 / (x * sigma * numpy.sqrt(2 * numpy.pi) )
b = - (numpy.log(x) - mu) ^ 2 / (2 * sigma ^ 2)
p = a * numpy.exp(b)
return p
그러나 이것은 나에게 다음과 같은 숫자를줍니다 (sdlog와 meanlog가 섞여있는 의미로 여러 가지를 시도했습니다).
>>> lognormal(54,4.2991610, 0.5511349)
0.6994656085799437
>>> lognormal(54,numpy.exp(4.2991610), 0.5511349)
0.9846125119455129
>>> lognormal(54,numpy.exp(4.2991610), numpy.exp(0.5511349))
0.9302407837304372
이견있는 사람?
최신 정보:
"UPQuark 's 제안으로 다시 실행 :
모양, 위치, 스케일 (1.0, 50.03445923295007, 19.074457156766517)
그러나 그래프의 모양은 21과 비슷합니다.