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