人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

分散の漸進的(?)な計算方法ってありますか?

例えば平均の計算ですと、既知のn個のサンプルの平均がaの場合、n+1個目の新しいサンプル(これの値をx(n+1)とします)を含めた平均a'は「a' = ( n * a + x(n+1) ) / ( n + 1 )」と計算できますよね。つまり、n個のサンプルを手に入れた時点でn個全部を覚えておかなくても、aとnだけ覚えておけばn+1個の平均が求まります。

これと同じ様に、「n個のサンプルの分散vが既知の場合に、nとvを元にn+1個のサンプルの分散を計算する」ってのは可能でしょうか? nとvだけでは不可能でしたら、もう少し覚えておく値の数を増やしてもOKです。

質問の背景として、自作のプログラムに分散の計算を組み込みたいのですが、サンプル数nに比例しない定数オーダのメモリ専有量で、かつそこそこの計算コストで分散を求めたいというのがあります。

回答には「計算式」もしくは「計算式の載っているウェブサイトのURL」を必須とさせて頂きます。

●質問者: cdaotg
●カテゴリ:学習・教育
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント ベストアンサー

n と v (分散) と a (平均) を覚えておけば、計算できると思います。

分散の公式、http://www.eco.konan-u.ac.jp/home/koyama/home/statweb/images/Image172.gif を使います。
計算式の導出は、こんな感じ(汚くて、ごめんなさい)。

f:id:a-kuma3:20121106225226j:image

n+1 番目のサンプルを手に入れた後の、新しい平均は、質問にある式で求めます。


cdaotgさんのコメント
早速の回答ありがとうございます。 試しにExcelで計算してみたら、関数で計算した分散と一致しました。 感謝の証として100ptとベストアンサーを進呈させて頂きます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ