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


例えば平均の計算ですと、既知の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」を必須とさせて頂きます。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/11/06 23:19:17
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4974ベストアンサー獲得回数2154

ポイント100pt

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 番目のサンプルを手に入れた後の、新しい平均は、質問にある式で求めます。

id:cdaotg

早速の回答ありがとうございます。
試しにExcelで計算してみたら、関数で計算した分散と一致しました。

感謝の証として100ptとベストアンサーを進呈させて頂きます。

2012/11/06 23:26:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません