는 자연수이고,
일 때,
산술 평균:

산술 분산:

이 때,
라면,
새로운 산술 평균:

즉, 새로운 입력 값이 하나 더 추가되면 기존의 평균값과 집합에 포함된 원소의 개수를 알아야한다.
새로운 산술 분산:

새로운 산술 분산에서는 기존 평균값, 기존 제곱의 평균값, 집합에 포함된 원소의 개수가 필요하다.
조금이라도 연산을 줄이려면 아래와 같이 평균이 아니라 합(Summation)을 알고 있으면 연산이 조금 더 편해진다.

수식적으로는 큰 차이가 없어 보이나
코드로 구현하면 메모리 효율을 극대화 할 수 있다.
아래 예제는 새로운 값이 들어올 때마다 실시간으로 평균과 표준 편차를 구한다.
N(원소의 개수), sum(합), ssum(제곱합)은 Global Variable
새로운 입력 x가 들어오면 N, sum, ssum 갱신
N++; sum += x; ssum += x*x; |
N, sum, ssum을 이용하여 평균과 분산 값 계산(갱신)
Ex = sum/N; Vx = ssum/N - Ex*Ex; |