Quantcast
Channel: プログラミング
Viewing all articles
Browse latest Browse all 7970

逐次計算(移動平均・移動分散) - Notes_JP

$
0
0

移動平均

移動平均
\begin{aligned}
\bar{x}_{m} = \frac{1}{n} \sum_{i=m-n+1}^{m} x_{i}
\end{aligned}
を逐次計算する.

\begin{aligned}
\bar{x}_{m}
&= (n\bar{x}_{m-1} - x_{m-n} + x_{m}) / n \\
&= \bar{x}_{m-1} + \frac{1}{n} (x_{m} - x_{m-n})
\end{aligned}

移動分散

\begin{aligned}
S_{m} = \sum_{i=m-n+1}^{m} (x_{i} - \bar{x}_{m})^{2}
\end{aligned}
を保持して,分散
\begin{aligned}
s_{m}^{2} = \frac{1}{n-1} S_{m}
\end{aligned}
を計算する.

\begin{aligned}
S_{m}
&= (x_{m} - \bar{x}_{m})^{2} - (x_{m-n} - \bar{x}_{m})^{2} \\
&\quad
+ \underbrace{\sum_{i=m-n}^{m-1} \biggl[(x_{i} - \bar{x}_{m-1}) - (\bar{x}_{m} - \bar{x}_{m-1}) \biggr]^{2}}
_{=S_{m-1} - 2(\bar{x}_{m} - \bar{x}_{m-1}) \cancel{\sum_{i=m-n}^{m-1} (x_{i} - \bar{x}_{m-1})} + n(\bar{x}_{m} - \bar{x}_{m-1})^{2} } \\
&= S_{m-1} + n(\bar{x}_{m} - \bar{x}_{m-1})^{2} + (x_{m} - \bar{x}_{m})^{2} - (x_{m-n} - \bar{x}_{m})^{2} \\
&= S_{m-1} + (x_{m} - x_{m-n})(\bar{x}_{m} - \bar{x}_{m-1}) \\
&\quad
+ (x_{m} - x_{m-n})\bigl[(x_{m} - \bar{x}_{m}) + (x_{m-n} - \bar{x}_{m})\bigr] \\
&= S_{m-1} +(x_{m} - x_{m-n})\bigl[(x_{m} - \bar{x}_{m}) + (x_{m-n} - \bar{x}_{m-1})\bigr]
\end{aligned}

関連記事

過去全ての平均・分散を逐次計算する方法:
逐次計算(平均・分散) - Notes_JP

Viewing all articles
Browse latest Browse all 7970

Trending Articles