1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

複数要素に対して、平均μと分散σ^2を逐次更新する方法【統計の断捨離】

Posted at

まだ、平均μや分散σ^2を計算するために、すべての要素を保持していますか?

すべての要素を保持しておく必要はありません。
そう、要素数と、直前のμとσを保持しておけば。

まずは結論

n番目までの平均、分散

\mu_{n}と\sigma_{n}^2

が既知であれば、そこに、下記の複数の要素を追加したい場合、

x_{n+1}, x_{n+2}, .. x_{n+k}

平均

\mu_{n+k} = \frac{1}{n+k}(n\mu_{n} + \Sigma_{n+1}^{n+k}x_{i})

分散

\sigma_{n+k}^2 = \frac{n(\sigma_{n}^2+\mu_{n}^2)+\Sigma_{n+1}^{n+k}x_{i}^2}{n+k} - \mu_{n+k}^2

で計算できる。

基本的には、[3] にあるように、

分散は「自乗の和」から「和の自乗」を引いたもの

であり、「自乗の和」の部分を式変形することで導出できる。

解説 (作成中。近日補完)

定義

n番目までの平均は

\mu_{n} := \frac{1}{n}\Sigma_{1}^{n}x_{i}  ・・・(1)
\\

分散は

\sigma_{n}^2 := \frac{1}{n}\Sigma_{1}^{n}x_{i}^2 - \left (\frac{1}{n}\sum_{1}^{n}x_{i}  \right )^{2}  ・・・(2)
\\
= \frac{1}{n}\Sigma_{1}^{n}x_{i}^2 - \mu_{n}^2  ・・・(2)'

と定義されます。
この時点では、計算するためにすべての要素が必要です。

逐次計算!

n+1番目の要素を加えるにはどうするか
[1][2]にも記載があるように、

\mu_{n+1} := \frac{1}{n+1}(n\mu_+x_{n+1})  ・・・(3)
\\
\sigma_{n+1}^2 := \frac{n(\sigma_{n}^2 + \mu_{n}^{2})+x_{n+1}^2}{n+1} - \mu_{n+1}^{2}  ・・・(4)

と計算できます。逐次計算してる感満載。

つまり…下記だけ保持しておけばよい!
n, \mu_{n}, \sigma_{n}^2

断捨離である。

軽く解説

(3)は、意外と単純で:

  1. n番目までの総和を“復元”
  1. (n+1)番目を足し込む
  2. 改めて(n+1)で除算

としているだけ。
(4)は

Var[X] = E[X^2] - \mu_{n}^2

をもとに、式変形することで導出できます。

これ以降、近日追記予定


[1] 平均と分散を逐次的に計算するアルゴリズム
[2] 分散の逐次更新
[3] 分散の意味と二通りの計算方法

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?