비닝 된 데이터로 작업하는 것은 기본적으로 가중치 데이터로 작업하는 것과 같습니다. 하나는 각 빈의 중간 점을 데이터 점으로 사용하고 그 빈의 무게를 해당 빈의 개수로 사용합니다. scipy.stats.moment
가중치를 지원하면이 계산을 직접 수행 할 수 있습니다. 그대로, 가중치를 지원하는 numpy.average
메소드를 사용하십시오.
midpoints = 0.5 * (H[1][1:] + H[1][:-1])
ev = np.average(midpoints, weights = H[0])
print(ev)
for k in range(2, 5):
print(np.average((midpoints - ev)**k, weights = H[0]))
출력 (분명히 랜덤) :
1.08242834443
4.21602099286
0.713129264647
51.6257736139
내가 대신 예상 값을 인쇄, (공사에 의해 0)을 중심으로 제 1 회 순간을 인쇄하지 않았다. 이론적으로 *, 이것들은 1, 4, 0, 48입니다. 그러나 어떤 주어진 샘플에 대해서, 분포의 매개 변수로부터 약간의 편차가있을 것입니다.
(*) 정확하게는 아닙니다. 분산 수식에서 나는 보정 계수 n/(n-1)
을 포함하지 않았다 (n은 데이터 세트의 총 크기, 즉 가중치의 합계 임). 이 요인은 sample variance을 조정하여 모집단 분산의 불편 추정치가됩니다. 원한다면 포함시킬 수 있습니다. 고차원 적 순간에 비슷한 조정이 필요할 것입니다 (목표가 비 공산적 추정량을 갖는 것이라면).하지만 이것을 살펴 봐야 할 것입니다. 그리고 어쨌든 이것은 통계 사이트가 아닙니다.
출처
2017-11-30 16:30:07
FTP
이 경우 두 번째 순간 (분산)이 4가 아니어야합니까? 나는 scipy.stats에서 histograms (보통 이것은 원시 데이터를 사용하는 것보다 정확하지 않음)에서 작동하는 함수를 인식하지 못합니다. '데이터'에서 순간을 직접 계산할 수없는 이유는 무엇입니까? – kazemakase
죄송합니다. 귀하의 권리는 4이어야합니다. 다음에 직접 계산하겠습니다.하지만 오랜 시간 동안 시뮬레이션을하고 결과를 사용하고 싶습니다. – user7784503