| Mathematics | ![]() |
データの前処理
欠測値
特殊な値NaNはMATLABの中で、Not-a-Number を省略したものです。IEEE浮動小数点代数変換は、0/0のような定義されない表現の結果としてNaNを出力します。
欠測データの正しい取り扱いは、難しい問題です。そして、種々の立場で、異なる取り扱いがなされます。データ解析目的に対して、欠測値や利用できないデータを表現するのにNaNを使うことが便利になります。
MATLABは、一様で厳格な方法でNaNを取り扱います。すなわち、ある計算の中でNaNを生じると、最後の結果まで、この値を持ち続けます。NaNsを含んでいる数学計算は、結果にもNaNを含みます。
例えば、行列の中心にNaNをもつ3行3列の魔方陣を含む行列を考えます。
a = magic(3); a(2,2) = NaN
a =
8 1 6
3 NaN 7
4 9 2
sum(a)
ans =
15 NaN 15
NaNを含むある数学計算は、最終結果までNaNsをもたらせます。
統計計算を行なう前に、データからNaNを取り去ってください。それを行なうのに種々の方法があります。
注意
IEEE代数変換により、論理比較NaN == NaNは必ず0になるので、NaNを見つけるのに特殊関数isnan を使うことができます。データからNaNsを取り除くのに、x(x==NaN) = []を使うことはできません。
|
NaNを取り除くことが頻繁にあるならば、つぎのようなM-ファイルを作成してください。
function X = excise(X) X(any(isnan(X)'),:) = [];
X = excise(X);
| 有限差分 | 異常値の除去 | ![]() |