Mol(Math Object Library) fot .Net
データ行列中の欠測値(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 中の欠測値を置き換えます。

名前空間: Mol
アッセンブリー: Mol.Net (in Mol.Net.dll)

構文

C#
public void ReplaceMissingValues(
	int m,
	double EM_ACCURACY,
	int EM_ITER_NUM,
	int DA_ITER_NUM
)
Visual Basic
Public Sub ReplaceMissingValues ( 
	m As Integer,
	EM_ACCURACY As Double,
	EM_ITER_NUM As Integer,
	DA_ITER_NUM As Integer
)
Visual C++
public:
void ReplaceMissingValues(
	int m, 
	double EM_ACCURACY, 
	int EM_ITER_NUM, 
	int DA_ITER_NUM
)
member ReplaceMissingValues : 
        m : int * 
        EM_ACCURACY : float * 
        EM_ITER_NUM : int * 
        DA_ITER_NUM : int -> unit 

Parameters

m
タイプ: System..::..Int32
一つの欠測値に対する推定値の候補数(ゼロまたは負の値を指定すると 5 が仮定されます)
EM_ACCURACY
タイプ: System..::..Double
EMアルゴリズムの収束精度(ゼロまたは負の値を指定すると 0.001 が仮定されます)
EM_ITER_NUM
タイプ: System..::..Int32
EMアルゴリズムの最大繰り返し回数(ゼロまたは負の値を指定すると 50 が仮定されます)
DA_ITER_NUM
タイプ: System..::..Int32
DAアルゴリズムの最大繰り返し回数(ゼロまたは負の値を指定すると 30 が仮定されます)

参照