メインメニューを開く

差分

標準偏差

1,700 バイト追加, 2022年9月13日 (火) 01:17
編集の要約なし
標準偏差(ひょうじゅんへんさ、standard deviation、std)とは、データの散らばっている範囲の中心のことである。'''標準偏差'''(ひょうじゅんへんさ、standard deviation、std)とは、[[データ]]の散らばっている範囲の中心のことである。
一般的な分布ではデータの9割は標準偏差を中心とした約2倍(1.96倍)の範囲内に収まる。逆をいえばデータの1割以上が範囲外の場合は、そもそもデータ数が足りておらず統計もクソもない状態であるといえる。標準偏差は[[平均]]と共によく使われる指標である。
一般的な分布ではデータの9割(±5%=95%)は[[相加平均]]を中心として、標準偏差の約2倍(1.96倍)の範囲内に収まる。この状態は「[[正規分布]]」と呼ばれる。 逆をいえばデータの1割以上が範囲外の場合は、そもそもデータ数が足りておらず、統計もクソもない状態であるといえる。そのような状態にも関わらず、あえて正規分布をもちいた「現実とは乖離した数値」を提示し、よくわかっていない一般人を、煽り、騙す、という詐欺師の手法なども有名なので数字のマジックには注意しよう。 == 計算式 ==* データの平均を求めるデータの[[平均]]を求める
* 各データと平均の差の2乗を求め、足していく
* 要素数で割る要素数で割った平方根を求める ; C#<source lang="csharp">// データvar array = new [] { 1, 2, 3, 4, 5 }; // データの平均var mean = array.Average(); // 各データと平均の差の2乗を足していくvar sum = 0;for (int i = 0; i < array.Length; i++) { sum += Math.Pow(array[i] - mean, 2);} // データの要素数で割り、その平方根を取ると標準偏差になるvar std = Math.Sqrt( sum / array.Length );</source> 加算している部分はLINQを使うと1行で書けます。<source lang="csharp">// データvar array = new [] { 1, 2, 3, 4, 5 }; // データの平均var mean = array.Average(); // 各データと平均の差の2乗を足していくvar sum = array.Sum(d => Math.Pow(d - average, 2)); // データの要素数で割り、その平方根を取ると標準偏差になるvar std = Math.Sqrt( sum / array.Length );</source> NuGetにあるMath.Net Numericsを使えば何も考える必要はありません。<source lang="csharp">using MathNet.Numerics.Statistics;var array = new [] { 1, 2, 3, 4, 5 };var std = array.StandardDevaton();</source> == 関連項目 ==* [[標本標準偏差]]  [[category: アルゴリズム]][[category: 算数]]