• 締切済み

標準偏差が整数となる数列を作る効率の良い方法を教えて下さい。

標準偏差が整数となる数列を作る効率の良い方法を教えて下さい。 私は現在統計学入門者用のテキストを執筆しているのですが、標準偏差(母集団の標準偏差)を計算させる練習問題を載せようとしています。 計算が楽になるように、標準偏差が整数になるような数列を作ろうとしたのですが(2,4,5,6,8など)、意外と面倒でした(もちろん0,0,0,0,0など単純な数列を使うのであれば、標準偏差を整数にするのは簡単ですが)。 そこで、統計の本質とはあまり関係ありませんが、標準偏差が整数となる数列を作る効率の良い方法(アルゴリズム?)をもしどなたかご存知でしたら、教えて頂ければと思います。 よろしくお願いします。 (参考までに以下が執筆中のテキストです) http://www.bioinfo.sfc.keio.ac.jp/class/bioinfo-a/WEB_RS/Texts/mgf1_3_shrink_tmp1.pdf

みんなの回答

  • 2ac0uO
  • ベストアンサー率60% (9/15)
回答No.1

サンプルを X1,X2,・・・,Xn とすると、 平均  X = Σ[i=1→n]Xi / n 標準偏差  σ = √(Σ[i=1→n](Xi - X)^2 / (n - 1)) サンプル数が変わると分母が変わりますので、一般解と言うのは難しいのではないかと思います。 しかし、例題としてサンプルセットが得られればよいと言う目的でしたら、若干姑息な手段は考えられます。 標準偏差の計算では、サンプル値から平均値を引いて計算しますので、平均値はゼロであると仮定しても一般性は失われません。 n = 2m + 1 とし、サンプル値として以下の値を使用すると、 0,A1,A2,・・・,Am,-A1,-A2,・・・,-Am σ = √(Σ[i=1→m]Ai^2 / m) 後は Excel を使用して計算を行います。 m=2 の場合、A列目に A1 の候補,1行目に A2 の候補をリストアップし、 セルB2に以下の式をセットし、必要な部分にコピーすると、所々に整数のセルが現れますので、それが解となります。 『=SQRT((B$1*B$1 + $A2*$A2) / 2)』 m = 2 の場合ですと、例えば下記の解が得られます。 -7, -1, 0, 1, 7 m を更に大きくする場合は、変数を二つ残して後は適当に値を仮決めし、上と同じ様に Excel で計算する事が可能です。 うまい解が得られない場合は、仮決めした値を修正し、整数解が得られる様に調整します。 例えば、m = 3 の場合ですと、例えば下記の様な解が得られます。 -14, -10, -2, 0, 2, 10, 14 実際に使用する場合は、これに一定の値を加え、並び順を換えれば、とりあえずはぼろ隠しにはなります。 例えば、 18, 8, 28, 16, 20, 32, 4 但し、実際に標準偏差の計算をするとネタバレになってしまうかもしれませんが。

Mephyl
質問者

お礼

大変ご丁寧なご回答をありがとうございます。ご指導頂いた通り、Excelの表を作成し、うまくいくことを確認しました(参考までに私の方で作成した表はhttp://repub-r.iab.keio.ac.jp/~rsaito/Public/Stats/pukiwiki/の"偏差を整数にする方法"に置いてあります)。