대신 균일 한 임의의 숫자의 우리가 표준 정규 번호를 사용하는 경우 분석적 당신에게 문제를 이해하기 쉽게, 그리고 질적 결과는 특정 경우에 적용 할 수 있습니다 : 지금 그래서
>>> a = np.random.normal(0, 1, size=(5, 5, 5, 3))
>>> s = a.sum(axis=(0, 1, 2))
세 각 항목을 s
은 125 개의 숫자의 합계이며, 각각 표준 정규 분포에서 나온 것입니다. 2 개의 정규 분포를 더하면 평균의 합계가 평균이고 분산이 분산의 합이되는 또 다른 정규 분포가됩니다. 따라서 s
의 세 값은 평균 0과 표준 편차 sqrt (125) = 11.18의 정규 분포에서 무작위 샘플로 배포됩니다.
분산의 분산이 커진다는 사실은 코드를 여러 번 실행하더라도 볼 수있는 특정 실행에서 해당 숫자 각각에 평균 0이 표시된다는 것을 의미합니다. 큰 오프셋부터
그런 다음 세 값의 표준을 계산합니다. 3 개의 표준 정규 분포를 자르고 함께 더하면 chi-squared distribution이됩니다. 그런 다음 제곱근을 취하면 chi distribution이됩니다. 전자는 다루기 쉽고이며, 당신의 세 가지 값 중 규범의 제곱의 평균 값이 3 * 125이 될 것이라고 예측 그리고 가장 확실 할 것 같다
>>> mean_norm_sq = 0
>>> for n in xrange(1000):
... a = np.random.normal(0, 1, size=(5, 5, 5, 3))
... s = a.sum(axis=(0, 1, 2))
... mean_norm_sq += np.sum(s**2)
...
>>> mean_norm_sq/1000
374.47629802482447
먼저 간단한 경우를보십시오 [2,4,6,8]]에서 i에 대한 선형 사례 [abs ((np.random.random (10 ** i) -0.5) .sum())를 말하십시오. 무슨 일이 일어나고 있는지 볼 수 있니? – DSM
그래서, 그것의 합계가 아니라 내 테스트 케이스? (-0.5,0.5)를 넘는 N 개의 난수 세트는 N -> inf와 같이 0으로 합쳐지지 않습니다. 왜 안돼? 내 테스트가 유효하지 않은 경우 내 합계가 정확합니까? – chadh
결과 합산 된 벡터의 크기를 취하고 있으며, 실수는 실수를 사용할 때 항상 양수입니다. [wiki 페이지] (http://en.wikipedia.org/wiki/Norm_ (mathematics))를 참조하십시오. [1,2,3,4]]에서 N에 대해'[(np.random.rand (10 ** N) -0.5) .sum()/10 ** N '과 같은 것을 사용하고 싶다고 생각합니다. 상대 편차의 수렴. – Daniel