「標準偏差」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) (ページの作成:「標準偏差(ひょうじゅんへんさ、standard deviation、std)とは、データの散らばっている範囲の中心のことである。 一般的な分布…」) |
Administrator (トーク | 投稿記録) |
||
(同じ利用者による、間の9版が非表示) | |||
1行目: | 1行目: | ||
− | + | '''標準偏差'''(ひょうじゅんへんさ、standard deviation、std)とは、[[データ]]の散らばっている範囲の中心のことである。 | |
− | + | 標準偏差は[[平均]]と共によく使われる指標である。 | |
− | * | + | 一般的な分布ではデータの9割(±5%=95%)は[[相加平均]]を中心として、標準偏差の約2倍(1.96倍)の範囲内に収まる。この状態は「[[正規分布]]」と呼ばれる。 |
+ | |||
+ | 逆をいえばデータの1割以上が範囲外の場合は、そもそもデータ数が足りておらず、統計もクソもない状態であるといえる。そのような状態にも関わらず、あえて正規分布をもちいた「現実とは乖離した数値」を提示し、よくわかっていない一般人を、煽り、騙す、という詐欺師の手法なども有名なので数字のマジックには注意しよう。 | ||
+ | |||
+ | == 計算式 == | ||
+ | * データの[[平均]]を求める | ||
* 各データと平均の差の2乗を求め、足していく | * 各データと平均の差の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: 算数]] |
2022年9月13日 (火) 01:17時点における最新版
標準偏差(ひょうじゅんへんさ、standard deviation、std)とは、データの散らばっている範囲の中心のことである。
標準偏差は平均と共によく使われる指標である。
一般的な分布ではデータの9割(±5%=95%)は相加平均を中心として、標準偏差の約2倍(1.96倍)の範囲内に収まる。この状態は「正規分布」と呼ばれる。
逆をいえばデータの1割以上が範囲外の場合は、そもそもデータ数が足りておらず、統計もクソもない状態であるといえる。そのような状態にも関わらず、あえて正規分布をもちいた「現実とは乖離した数値」を提示し、よくわかっていない一般人を、煽り、騙す、という詐欺師の手法なども有名なので数字のマジックには注意しよう。
計算式[編集 | ソースを編集]
- データの平均を求める
- 各データと平均の差の2乗を求め、足していく
- 要素数で割った平方根を求める
- C#
// データ
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 );
加算している部分はLINQを使うと1行で書けます。
// データ
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 );
NuGetにあるMath.Net Numericsを使えば何も考える必要はありません。
using MathNet.Numerics.Statistics;
var array = new [] { 1, 2, 3, 4, 5 };
var std = array.StandardDevaton();