Mathematics    

データの前処理

この節は、つぎのデータの取り扱いに関して記述します。

欠測値

特殊な値NaNはMATLABの中で、Not-a-Number を省略したものです。IEEE浮動小数点代数変換は、0/0のような定義されない表現の結果としてNaNを出力します。

欠測データの正しい取り扱いは、難しい問題です。そして、種々の立場で、異なる取り扱いがなされます。データ解析目的に対して、欠測値や利用できないデータを表現するのにNaNを使うことが便利になります。

MATLABは、一様で厳格な方法でNaNを取り扱います。すなわち、ある計算の中でNaNを生じると、最後の結果まで、この値を持ち続けます。NaNsを含んでいる数学計算は、結果にもNaNを含みます。

例えば、行列の中心にNaNをもつ3行3列の魔方陣を含む行列を考えます。

行列の各列の和を計算します。

NaNを含むある数学計算は、最終結果までNaNsをもたらせます。

統計計算を行なう前に、データからNaNを取り去ってください。それを行なうのに種々の方法があります。

i = find(~isnan(x));
x = x(i)
NaNでないベクトルの中の要素のインデックスを探し、NaNでない要素のみを残します。
x = x(find(~isnan(x)))
ベクトルからNaNを取り除く
x = x(~isnan(x));
ベクトルからNaNを取り除く(高速)
x(isnan(x)) = [];
ベクトルからNaNを取り除く
X(any(isnan(X)'),:) = [];
NaNを含む行列からある行を取り除く

NaNを取り除くことが頻繁にあるならば、つぎのようなM-ファイルを作成してください。

そして、つぎのようにタイプしてください。

同じ結果になります。


 有限差分 異常値の除去