いつもお世話になっております。
ただ今、検査データの標準偏差を求めるプログラムを作っているのですが、
標準偏差=√(各データの2乗の平均) - (各データの平均の2乗)
という式を昔の数学の本で調べまして、
int cnt; // データ件数
double sum; // データ合計
double powsum; // 2乗合計
double ave; // 平均
double sigma; // 標準偏差
ave = sum / cnt;
sigma = sqrt(powsum/cnt - pow(ave,2));
という処理を作りました。検査のたびに、データ件数、データ合計、データ2乗
合計を更新し、標準偏差を求めたいタイミングで、上記の処理を行い、算出する
ようにしました。雑誌についていた標準偏差のサンプルプログラムと値が一致
したので、OKだと思ったのですが、客先からの要求は、「ExcelのSTDEV関数
と同じように標準偏差を求めたい」というものであることが分かりまして、困って
おります。というのも、例えば10.11.12の3つの値で標準偏差を求めた場合、
私の作った処理ですと、0.8~という値が出ます。データ合計をデータ件数で割った
時点で、121.6666・・・という値が出てしまいます。ところが、STDEV関数ですと、
ぴったり1という値が出ます。VCでExcelのSTDEV関数を使う方法を調べたのですが、
どうしても分かりません。どなたかお分かりになる方、教えて下さい。
よろしくお願い致します。
ExcelのヘルプでSTDEVを調べましょう。
算出式が書いてあります。
Excelのヘルプで、Stdev関数の定義と計算方法を確認して下さい。
それによると、標準偏差の定義には別の式を使っています。
数学的な意味は忘れてしまいましたが、
必要なら統計学の初歩について、調べて下さい。
ありがとうございます。ただ今確認しまして、プログラムを修正し、
成功しました。
困ったらまずヘルプ、を忘れておりました。
感謝いたします。