데이타 처리를 하면서 평균과 표준편차를 구해야 하는 경우가 많이 있다. 이 때, 평균과 표준편차의 계산을 점화식을 이용해서 하면 반복문의 수를 반으로 줄여서 빠르게 계산을 할 수 있다.
평균: \(\mu_{n+1} = \displaystyle\frac{n}{n+1}\mu_n + \displaystyle\frac{a_{n+1}}{n+1},\quad(n\geq0). \)
표준편차: \(\sigma^2_{n+1}=\displaystyle\frac{n}{n+1}\sigma^2_{n}+\displaystyle\frac{(\mu_{n+1}-a_{n+1})^2}{n},\quad(n\geq1).\)
공변: \(\sigma(a,b)_{n+1}=\displaystyle\frac{n}{n+1}\sigma(a,b)_{n}+\displaystyle\frac{(\mu_{n+1}-a_{n+1})(\nu_{n+1}-b_{n+1})}{n},\quad(n\geq1).\)
- 평균 증명
- 점화식을 이용해서 \(n+1\)번째 항까지의 평균을 구할 때 우리가 가지고 있는 정보는 다음과 같다.
- \(n\)번째 항까지의 평균 \(\mu_n\)
- \(n+1\)번째 항의 값 \(a_{n+1}\)
- 이 정보들만 가지고 \(n+1\)번째 항까지의 평균을 구해내야 한다.
\[\begin{align}\mu_{n+1}&=\displaystyle\sum^{n+1}_{i=1}\displaystyle\frac{a_i}{n+1},\\&=\displaystyle\sum^{n}_{i=1}\displaystyle\frac{a_i}{n+1}+\displaystyle\frac{a_{n+1}}{n+1},\\&=\displaystyle\frac{a_{n+1}}{n+1}+\displaystyle\frac{n}{n+1}\displaystyle\sum^{n}_{i=1}\displaystyle\frac{a_i}{n}.\end{align}\]
\[\therefore \mu_{n+1}=\dfrac{n}{n+1}\mu_n+\dfrac{a_{n+1}}{n+1},\quad(n\geq0).\]
- 표준편차 증명
- \(n+1\)번째 항까지의 표준편차를 구할 때에 우리가 가지고 있는 정보는 다음과 같다.
- \(n\)번째 항까지의 표준편차 \(\sigma^2_{n}\)
- \(n+1\)번째 항까지의 평균 \(\mu_{n+1}\)
- \(n+1\)번째 항의 값 \(a_{n+1}\)
- 평균과 마찬가지로, 표준편차를 구할 때도 위 세 가지 값만 가지고 \(n+1\)번째 항까지의 표준편차를 구해야 한다.
\[\begin{align}\sigma^2_{n+1}&=\sum^{n+1}_{i=1}\dfrac{(a_i-\mu_{n+1})^2}{n+1},\\&=\sum^{n}_{i=1}\dfrac{(a_i-\mu_{n+1})^2}{n+1}+\frac{(a_{n+1}-\mu_{n+1})^2}{n+1}.\qquad (1)\end{align}\]
두번째 항은 알고있는 값들로만 돼 있으니 놔두고, 첫번째 항을 알고있는 값들로만 바꿔주면 된다.
\[\begin{align}\sum^{n}_{i=1}(a_i-\mu_{n+1})^2-\sum^{n}_{i=1}(a_i-\mu_n)^2&=\sum^{n}_{i=1}(\mu_n-\mu_{n+1})(2a_i-\mu_{n+1}-\mu_n),\\&=(\mu_n-\mu_{n+1})(2n\mu_n-n\mu_{n+1}-n\mu_n),\\&=n(\mu_{n+1}-\mu_n)^2.\qquad(2)\end{align}\]
이제 식 (2)를 식 (1)에 넣어 정리하면,
\[\begin{align}\sigma^2_{n+1}&=\sum^{n}_{i=1}\dfrac{(a_i-\mu_n)^2}{n+1}+\dfrac{n}{n+1}(\mu_{n+1}-\mu_n)^2+\dfrac{(a_{n+1}-\mu_{n+1})^2}{n+1},\\&=\dfrac{n}{n+1}\sigma^2_{n}+\dfrac{n}{n+1}(\mu_{n+1}-\mu_n)^2+\dfrac{(a_{n+1}-\mu_{n+1})^2}{n+1}.\qquad(3)\end{align}\]
\(n\)번째 항까지의 평균값은 \(n+1\)번째 항까지의 평균값을 구하면서 없어졌으므로, 평균의 점화식 공식을 이용해서 \(n\)번째 항까지의 평균값을 없애버리자. 점화식을 다시 정리하면
\[\mu_n=\dfrac{n+1}{n}\mu_{n+1}-\dfrac{1}{n}a_{n+1}\]
가 되므로, 이 식을 식 (3)의 두번째 항에 대입하면, 두번째 항은 다음과 같이 된다.
\[\begin{align}\dfrac{n}{n+1}(\mu_{n+1}-\mu_n)^2&=\dfrac{n}{n+1}\left(\mu_{n+1}-\dfrac{n+1}{n}\mu_{n+1}+\dfrac{1}{n}a_{n+1}\right)^2,\\&=\dfrac{1}{n(n+1)}(a_{n+1}-\mu_{n+1})^2\end{align}\]
\[\therefore \sigma^2_{n+1}=\dfrac{n}{n+1}\sigma^2_{n}+\dfrac{(\mu_{n+1}-a_{n+1})^2}{n},\quad(n\geq1).\]
- 공변 증명은 표준편차 증명과 똑같은 방식이므로 생략한다.
- 각 값의 가중치가 같지 않을 때의 평균과 공변 식
평균: \(\mu_{n+1} = \displaystyle\frac{W_n}{W_n+w_{n+1}}\mu_n + \displaystyle\frac{w_{n+1}a_{n+1}}{W_n+w_{n+1}},\quad(n\geq0). \)
표준편차: \(\sigma^2_{n+1}=\displaystyle\frac{W_n}{W_n+w_{n+1}}\sigma^2_{n}+\displaystyle\frac{w_{n+1}(\mu_{n+1}-a_{n+1})^2}{W_n},\quad(n\geq1).\)
공변: \(\sigma(a,b)_{n+1}=\displaystyle\frac{W_n}{W_n+w_{n+1}}\sigma(a,b)_{n}+\displaystyle\frac{w_{n+1}(\mu_{n+1}-a_{n+1})(\nu_{n+1}-b_{n+1})}{W_n},\quad(n\geq1).\)
위 식들에서 \(W_n=\displaystyle\sum^n_{i=1}w_i\)이고, \(w_n\)은 \(n\)번째 값의 가중치이다.
- Acknowledgement
- 이정우님이 가중치가 있을 때의 계산 오류에 대해 지적해 주어 바로고침