人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelでの標準偏差の関数で、stdev関数とstdevp関数とありますが、mysqlのSTD関数は、stdev関数に該当するという理解で良いでしょうか?また、PHPやjavaのソース、functionなどで、stdevに該当するものを教えていただけませんでしょうか。

●質問者: nakamura12go
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
●200ポイント ベストアンサー

>mysqlのSTD関数

データを母集団として取り扱うのでExcelのSTDEVP相当。
ExcelのSTDEVに該当するものは見たことが無い。
http://dev.mysql.com/doc/refman/5.1/ja/group-by-functions.html
修正: http://dev.mysql.com/doc/refman/5.1-olh/ja/group-by-functions.html

>PHP

ExcelのSTDEVPに相当するPECL拡張の統計関数あり。
修正: ExcelのSTDEV / STDEVPに相当するPECL拡張の統計関数あり。
http://www.php.net/manual/ja/function.stats-standard-deviation.php
統計関数を利用できない場合は下記で対応。

function standard_deviation($aValues, $bSample = false)
{
$fMean = array_sum($aValues) / count($aValues);
$fVariance = 0.0;
foreach ($aValues as $i)
{
$fVariance += pow($i - $fMean, 2);
}
$fVariance /= ( $bSample ? count($aValues) - 1 : count($aValues) );
return (float) sqrt($fVariance);
}


>JAVA

外部のライブラリを使う。下記参考まで。
http://ja.wikipedia.org/wiki/Apache_Commons_Math

>Javascript

外部のライブラリを使う。下記参考まで。
https://github.com/jstat/jstat


nakamura12goさんのコメント
ありがとうございます。 恐縮ですが、基礎的なことかと思うのですが、下記の?と:はどういう意味でしょうか? phpのソースが読めません・・。 ( $bSample ? count($aValues) - 1 : count($aValues) ); また、ExcelのSTDEVPのほうではなくて、STDEVに該当するソースを探しています。 分母が n-1 になるかと思うのですが・・。どう変更すれば良いのかがよくわからないのですが、可能であれば教えていただけませんでしょうか。

うぃんどさんのコメント
>( $bSample ? count($aValues) - 1 : count($aValues) ); $bSampleがtrueならcount($aValues) - 1を、 falseならcount($aValues)を返す式。 すなわち、 関数呼び出し時に第二引数としてtrueを渡せば分母がn-1になり、 第二引数を省略もしくはfalseを渡せば分母がnになる。 詳しくは、下記の三項演算子の項を参照。 http://php.net/manual/ja/language.operators.comparison.php

うぃんどさんのコメント
MySQLにもありましたので追記します。 http://dev.mysql.com/doc/refman/5.1-olh/ja/group-by-functions.html

nakamura12goさんのコメント
ありがとうございます。本当に助かりました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ