저는 여러 분포를 맞추고 각각에 대한 표준 편차를 얻으려고합니다. 그러나 표준 편차에 대해서는 inf 또는 Nan 중 많은 수가 다시 실행됩니다. 필자가하고있는 적합 분포의 분산을 얻는 방법이 정확한가? 더 좋은 방법이 있습니까? 왜 Nans? 이것이 내가 한 일입니다.scipy에서 맞는 분포에서 표준 편차를 구하는 방법?
param = distribution.fit(data)
arg = param[:-2]
loc = param[-2]
scale = param[-1]
if len(arg)>0:
std = np.sqrt(distribution.stats(arg, loc, scale, moments='v')[0]))
else:
std = np.sqrt(distribution.stats(loc, scale, moments='v')[0]))
또한 데이터를 피팅하는 동안 경고를 생성하는 배포를 건너 뜁니다.
업데이트 1 : 예를 들어 , distribution = scipy.stats.beta
, 나는 [ nan nan]
을 얻고 매개 변수가있는 경우 다음과 같이 베타 분포의
arg: (32.198726690922953, 15883184.284202889)
loc: -33527.5754686
scale: 35484135514.4
자세한 내용을 입력하십시오. '데이터 '를 제공하고 어느 배포판이'inf' 나'nan'을 제공하는지 보여줍니다. –
알림 @WarrenWeckesser에게 감사드립니다. 배포본을 질문에 추가 하겠지만 코드는 정확합니까? 또는 내 데이터의 표준 편차를 얻는 더 좋은 방법이 있습니다. – user2179347