Mol(Math Object Library) fot .Net

The Stat type exposes the following members.

メソッド

  名前説明
Public methodComputePartialCovarianceCorrelationMatrix
部分分散行列と部分相関行列を計算します(本計算を実行する前に分散共分散行列(CovarianceMatrix)が計算されている必要があります)。 部分分散行列と部分相関行列の定義はリファレンスの「数式表記」の項を参照して下さい。
Public methodComputePooledGroupEstimates
整数ベクトル divider で指定されたグループ毎に平均(group_means)と分散共分散行列(group_cov)を計算します。 グループの計算は各グループ毎に(行サイズの小さい) DataMatrix(と Weight) が作成されて計算が 定義通りに実行されることと同じです。
さらにそれらをまとめて配分(Pool)した平均(pooled_mean)と分散共分散行列(pooled_cov)を計算します。 配分(Pool)は各グループの平均や分散共分散行列の各要素を、各グループの重み(グループに属する要素の重みの合計) を用いた加重平均として計算されます。
Public methodComputeProperties()()()()
指定された統計量計算を実行します。 ComputeProperties()メソッドは一度でデータ行列(DataMatrix)に入りきらないデータでも、データ行列の内容を 書き換え(またはデータ行列を置き換え)て繰り返し呼ぶことで必要な(プロパティに設定した)統計量を計算できます。
※本メソッドは最初の実行時にのみ使用できます(ComputeProperties(0) と同じです)。
Public methodComputeProperties(Int32)
指定された統計量計算を実行します。 ComputeProperties()メソッドは一度でデータ行列(DataMatrix)に入りきらないデータでも、データ行列の内容を 書き換え(またはデータ行列を置き換え)て繰り返し呼ぶことで必要な(プロパティに設定した)統計量を計算できます。
Public methodComputeQuantileMatrix
分位率(0<分位率<1)を格納したベクトル(QuantileOrder)に対応した分位値を格納した行列(QuantileMatrix)を計算します。
分位率とは DataMatrix の各列データを昇順に並べて、最小値の位置を 0 、最大値の位置を 1 に対応させた場合の値(0<分位率<1)です。 個々の分位率の位置にあたるデータの値を分位値といいます。
※中央値(メディアン:Median)は分位率 0.5 の時の分位値になります。
※DataMatrix の行数を n として、値((n-1)・分位率)の整数部を j、小数部を f とすると 分位値=y[j+1]+f・(y[j+2]-y[j+1]) で計算されます。
Public methodComputeRobustStat
ノイズ等の疑わしいデータ(外れ値DetectOutliers(VectorDenseDouble, Stat..::..BACON_INITILIZER, Double, Double))を含むデータ行列の平均値(Mean)と 分散共分散行列(CovarianceMatrix)を推定(ロバスト推定)します。 分散共分散行列プロパティが設定されていない場合、自動作成されます。
計算は、Maronna と TBS という 2 つのアルゴリズムから成ります。最初の Maronna は 2 つ目 TBS アルゴリズムの開始データ (共分散と平均) を計算します。 次に TBS アルゴリズムは、要求した精度(ACCURACY)が得られるか、最大反復回数(ITER_NUM)に達するまで反復します。 その他、最大降伏点 (BD_POINT:アルゴリズムで許容可能な外れ値の割合) と ARP (棄却率) を指定します。 TBS アルゴリズムを使用しない場案は反復数を 0 に設定します。
Public methodDetectOutliers
データ行列中の外れ値(outlier) を検出して、結果を引数 w に格納します。
外れ値は一群のデータの中からノイズのような疑わしいデータレコード(行)です。 データレコードが推定される分布(正規分布)に従っていないように見える場合、それらは外れ値とみなされます。
alphaにゼロまたは負の値を指定すると 0.05、deltaにゼロまたは負の値を指定すると0.005が仮定されます。
Public methodDispose
使用したメモリー資源などを解放します。
(Overrides _Mol..::..Dispose()()()().)
Public methodStatic memberIsMissingValue
double の値は欠測値(==非数値:NaN)かどうか判定します。 欠測値は非数値(NaN)ですので操作には注意が必要です。NaNを含む計算は全て NaN になります。 また自分(NaN)自身と比較しても一致しません(NaN==NaN の比較は false になります)。 従って、数値が NaN であるかどうかの判定は == や != を使用できません。代わりに Double.IsNaN() や 本メソッドを使用して判定します。
Public methodParameterizeCorrelationMatrix
元になる相関行列(プロパティ)とできる限り同じ内容で、かつ負の固有値を持たない新しい相関行列(半正定値)を計算します。
予め相関行列(プロパティ)を計算しておく必要があります。
Public methodReplaceMissingValues
データ行列中の欠測値(MissingValueプロパティで指定された値(==Double.NaN))を周囲の有効値から類推して(意味のある値に)置き換えます。 欠測データには指定された値(=Mol.MissingValue)をセットする必要があります。また欠測値は非数値(Double.NaN)ですので数値的な比較 (自分自身と比較しても等しくはなりません)は無意味です。欠測値かどうかの判定は IsMissingValue(Double) メソッドを使用してください。
欠測値を正しい(とある程度思われる)値に置き換えるには期待値最大化 (EM) とデータ拡大 (DA) の2つのアルゴリズムを用います。 この場合、まず m 個の正しそうな推定値を計算します(EM アルゴリズム)。 そしてそれぞれの推定値を用いて他の統計的推定値を計算し、m 個の推定値をまとめて最終的な推定値を計算します(DA アルゴリズム)。
EM アルゴリズムは EM_ITER_NUM 回反復して(またはEM_ACCURACYの精度が達成されると)、平均および共分散の推定値を計算します。 MeanCovarianceMatrixプロパティに初期値をセットすることができます。 CovarianceMatrixプロパティが null または全要素がゼロの場合、初期値に利用されません。 EM アルゴリズムが終了すると、DA アルゴリズムは DA_ITER_NUM 回反復して最終的な推定値を計算して DataMatrix 中の欠測値を置き換えます。

参照