Alteryxで欠損値の補完をする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、小澤です。

欠損値、なんとも嫌なひびきですね。欠損値が発生する理由は様々ですが、どんなに頑張っても発生は避けて通れません。

欠損値にはMCAR, MAR, MNARといった種類があます。 また、どのように補完するかも多重代入法など複雑なものもあります。 さらに、どのパターンならどの手法が使えるかとかの話も出てきて、もう「わけがわからないよ」となってしまいがちです。

そのため、今回はAlteryxのツール1つで実現可能な簡単な補完方法を見ていくことにしましょう。

欠損値補完のためのツール

Alteryxには欠損値を補完するためツールとして、Imputationツールがあります。

このツールの設定は以下のようになっています。

以下のようなデータに対してこのツールを使った時の動きを見てみることにします。

Fields to imputeでは、欠損値の補完対象となる列を選択します。 今回は、Field1, Field2双方を選択しておきます。

Incomming value to replaceでは、欠損値とみなす値を指定します。

Null()を選択した場合は、Null(値が入っていないもの)を欠損値として補完します。 結果は以下のようになります。

値としてNullが含まれるField1は「4」で補完されています。なぜ「4」になるのかは後ほど説明します。 一方Nullが含まれないField2は値が変更されません。

User specific valueを選択すると、欠損値としてみなす値を指定することができます。 ここで欠損値を「0」に指定して実行してみると以下のような結果になります。

Field1のNullの部分はそのままNullとなっています。 また、一番上のレコードの値が「0」だったのですが、ここが4に変更されています。 Filed2はもともと値が「0」だった項目が「3」に変更されているのが確認できます。

Replace with valueの項目では、先ほど指定した値で欠損値として判定されたものに対してどのような値で補完を行うかの指定を行います。 ここでは、4つの選択肢があります。

  • Average : 欠損値以外の値の平均値
  • Median : 欠損値以外の値の中央値
  • Mode : 欠損値以外の値の最頻値
  • User specific value : 任意の固定値を指定

上3つはデータの代表値を入れるものになっています。 どの値を入れるのがいいかは分布などデータの性質から判断してやる必要があります。

一番下の項目は、固定値で補完するものとなります。 例えば、Nullの所に0を入れておきたいなどといった場合に利用可能でしょう。

これらは全ての欠損値に同じ値を入れます。 この後でどのような分析を行うかによってはこの補完結果に引っ張られて本来とは違う性質が出てしまう可能性も考えられるので注意して使ってください。 そんな注意を促すための設定が残りの2つになります。

Include imputed value indicator fieldにチェックを入れると以下のようにもともとの値か、補完によって生成されたデータかを示す列が追加されます。

<元の列名>_Indicatorとなっている列が、もともとの値であれば「0」、補完された値であれば「1」となります。 これによって後続の分析でもともと欠損値であったかの判断に利用することも可能になります。

最後のOutput imputed values as a separate fieldにチェックを入れると、元の列を直接変更せずに新しい列を生成します。

例えば、補完対象にUser specific valueを使って特定の値を指定してた場合などに元の値と照らし合わせながらの処理を後続で行うことが可能になります。

利用上の注意点

さて、このツールの利用上の注意点を書いておきます。

まずは、先ほども記載しましたが欠損値を補完することで、データの性質が変わってしまう可能性があることです。 これは欠損値が多い場合なんかだと、補完後は特定の値が頻繁に出すぎているデータになってしまったりもするのでご注意ください。

2点目としては、このツールは数値のみしか扱えません。 そのため、数値以外のものに対してはそのままでは扱えません。 例えば文字列が入っている列をカテゴリカル変数にするという手もありますが、カテゴリカル変数は数値演算をしても意味がないので補完対象としては平均値ではなく最頻値を使うなどの追加の工夫も必要になります。

おわりに

今回はAlteryxで欠損値を補完する方法としてImputationツールを紹介しました。 欠損値の扱いに関しては非常に奥深く、このツールのみで全てが賄えるわけではありませんが、欠損値に悩まされた時にはまず最初にここから初めてみるがいいかと思います。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400