2014-12-11 2 views
2

Scipy에서 생존 계산을하고 있는데 올바른 값을 얻을 수 없습니다.Scipy Weibull CDF 계산

내 코드 :

X, A, C = 1000, 150, 5000

발스 exponweib.cdf = (X, A, C, LOC = 0, 배율 = 1)

Val은 0.085559356392783004와 같아야하지만 대신 0을 얻습니다. (- (X/C) ** A)

I 수익 1 np.exp : (X, A, C) 데프 weibCumDist : 나는 내 자신의 함수를 정의 할 경우

나는 정답을 얻을 내 자신의 기능을 사용할 수는 있지만, 내가 뭘 잘못하고 있는지 궁금해. 어떤 제안?

감사합니다.

+0

'c'의 값은 엄청나므로 그 말이 맞을까요? 파워 지수가 너무 커서 런타임 에러가 발생합니다. – N1B4

답변

4

매개 변수를 scipy의 매개 변수에 올바르게 매핑하지 않았습니다. exponweibexponentiated Weibull distribution입니다

In [22]: x = 1000 

In [23]: a = 1.5 

In [24]: c = 5000 

In [25]: exponweib.cdf(x, 1, a, loc=0, scale=c) 
Out[25]: 0.08555935639278299 

하는 것으로 : 당신의 weibCumDist의 상당을 구현합니다.

아마도 scipy.stats.weibull_min을 사용하고 싶을 것입니다. 이것은 종종 "the"Weibull distribution이라고 불리는 배포판의 구현입니다 :

In [49]: from scipy.stats import weibull_min 

In [50]: weibull_min.cdf(x, a, loc=0, scale=c) 
Out[50]: 0.08555935639278299