欠損値の概要

データ・マイニングのデータの前処理フェーズでは、データの欠損値の置換が必要な場合がしばしばあります。欠損値とは、データ・セット中の不明な値、収集されていない値、または誤って入力された値です。通常、そのような値はフィールドに対して無効になります。例えば、「性別」 フィールドの値は M または F でなくてはなりません。このフィールドに YZ などの値があった場合は、値は無効で空白として解釈しても問題ありません。同様に、「年齢」 フィールドに負の値がある場合も、意味がないため空白として扱われます。このような明白に誤った値が故意に入力されたり、質問に対して回答したくないことを示すために、フィールドを空欄のまま放置することはよくあります。時には、年齢を入力していないなどの未回答が、特定の結果を予測するための因子であるかかどうかを判断するために、空白の意味を詳しく調べる必要があることもあります。

一部のモデル作成手法では、欠損値がより効果的に処理されます。例えば、C5.0、および Apriori は、データ型ノードで明示的に「欠損値」と宣言された値を効果的に処理しています。他のモデル作成技法では、欠損値を処理できないため、学習に時間がかかったり、モデルの精度が低下してしまいます。

IBM® SPSS® Modeler の欠損値には、次の 2 種類があります。

  • ヌル値またはシステム欠損値 : これらの値は、データベースまたはソース・ファイルに空白のまま残された文字列以外の値であり、入力ノードまたはデータ型ノードで特に「欠損値」として定義されていません。システム欠損値は $null$値として表示されます。空の文字列が特定のデータベースでヌルとして処理される場合でも、IBM SPSS Modeler では空の文字列をヌルとは見なさないことに注意してください。
  • 空文字列と空白文字 : 空文字の値と空白文字(表示されない文字による文字列)をヌル値の重複レコードとして処理します。空白の文字列は、ほとんどの目的に対してホワイト スペースとして扱われます。例えば、オプションを選択して入力またはデータ型ノードで空白文字を空白値として扱う場合、この設定は空白の文字列も同様に適用します。
  • 空白値またはユーザー定義の欠損値: これらは、入力ノードまたはデータ型ノード内で欠損値として明示的に定義されている unknown99–1 などの値です。オプションでヌルと空白文字を「空白」として処理することもできます。そうすることによって、特別な処理のためにフラグを付けたり、ほとんどの計算から除外することができるようになります。例えば、@BLANK 関数を使用して、これらの値を他の欠損値と共に空白値として処理することができます。

混在データの読み込み: 数値ストレージ (整数、実数、時間、タイムスタンプ、または日付のいずれか) をフィールドに読み込む場合は、数値以外のすべての値がヌル またはシステム欠損値 に設定されることに注意してください。これは、他のアプリケーションと異なり、フィールド内にストレージの混在を許さないためです。これを回避するためには、必要に応じて入力ノードまたは外部アプリケーション内の記憶域タイプを変更し、混在データを含むフィールドを文字列として読み込む必要があります。

Oracle からの空の文字列の読み取り: Oracle データベースとの間で読み書きするときには、Oracle が IBM SPSS Modeler やその他のほとんどのデータベースとは異なり、空の文字列値をヌル値と同様に処理および格納することに注意してください。つまり、Oracle データベースから抽出されたデータは、同じデータがファイルやその他のデータベースから抽出された場合とは異なって動作し、また異なる結果が返ることがあります。