データサイエンス

ダミー変数の作り方

製造部門では品管検査の結果、大きく分けて合格か不合格の判定がなされます。

合格か不合格のように2つに決まる値はダミー変数に変換することでデータ解析に活用します。

ダミー変数は元データを1か0かで表して解析できるようにしたデータのことです。

例えば合格を0、不合格を1とすることで文字データを数値データに変換できます。

今回はダミー変数の作り方について解説します。

詳しい解説は目次から項目をクリックしてご確認ください。

ダミー変数の作り方

まずはダミー変数の基本事項を解説します。

ダミー変数の考え方は元データを1か0かに変換して表を作り直すことです。

以下の品管検査記録があるとします。

ロット合否
A-101合格
A-102不合格
A-103合格
A-104合格
A-105不合格
A-106合格
ロットごとの検査結果データ

まずは「合格ですか?」「不合格ですか?」という質問にそれぞれYESなら1、NOなら0を入れてみます。

そのために"合格列"と"不合格列"を用意します。

これがダミー変数の基本的な考え方です。

ロット合否合格不合格
A-101合格10
A-102不合格01
A-103合格10
A-104合格10
A-105不合格01
A-106合格10
合否データを1と0で表現する

合格列を見てみると、ここでは”合格"が1で"それ以外"が0を意味します。

0の"それ以外"は消去法で”不合格”であると判断できます。

つまり合格か不合格のような2つの判定結果は1列にまとめることができます。

正確に言えば、多重共線性という解析の精度を低下させる原因になりうるため必ず片方を削除しなければなりません。

そのため以下の表でも同じ意味になります。

ロット合否不合格
A-101合格0
A-102不合格1
A-103合格0
A-104合格0
A-105不合格1
A-106合格0
不合格データを1と0で表現する

データ合否の行は数値化されておらず不合格の列と同じ意味を持つため削除します。

ロット不合格
A-1010
A-1021
A-1030
A-1040
A-1051
A-1060
ロットごとの合否データ(完成版)

これで、ある製品のロットごとの合否結果がダミー変数のおかげで数値データ化されました。

3つ以上種類がある場合

先の合否データでは2つの値でした。

3つ以上の値の場合はどうなるのでしょうか。

例えば合格・不合格に再検査の項目が追加したとして考えます。

基本的には同じ考え方

合格・不合格・再検査の3種類の値が入った検査結果があるとします。

値が3つでも考え方は変わりません。

ロット検査結果
A-101合格
A-102不合格
A-103合格
A-104合格
A-105再検査
A-106合格
ロットごとの検査結果データ(再検査追加)

今回は不合格・再検査の列を追加して、それ以外は消去法で”合格"として作成してみます。

ロット検査結果不合格再検査
A-101合格00
A-102不合格10
A-103合格00
A-104合格00
A-105再検査01
A-106合格00
不合格と再検査を0と1で表現する

最後に検査結果の列を削除して完成です。

ロット不合格再検査
A-10100
A-10210
A-10300
A-10400
A-10501
A-10600
ロットごとの合否、再検査データ(完成版)

ここまで見て分かる通り、項目数から1つ少ない数のダミー変数に変換するようにします。

ダミー変数にする項目に決まりはありません。

ただしデータを回帰分析に応用する場合は係数を求められるため、どのダミー変数がどの程度影響があるか知ることができます。

1と0のみで表現すること

例えば合格を0、不合格を1、再検査を2とした場合を考えてみます。

それでも数値で表して尚且つ分類をすることはできます。

しかしその場合、不合格は再検査の2倍という意味を持つようになります。

1と0以外で表現すると何倍になるのか計算できてしまいデータの意味に不都合が生じてしまいます。

Excelを使った作り方

Excelを使ってダミー変数に変換する場合、1個ずつ入力しても良いですが楽になる方法があります。

合格・不合格に関するダミー変数を作成してみます。

置換

Excelには文字を置換する機能があります。

置換したい範囲(以下例ではG3~G8)を選択してCtrl+Hを押すと「検索と置換」のウィンドウが出てきます。

置換を用いたダミー変数の作成1

「検索する文字列」を不合格、「置換後の文字列」を1に設定します。

「すべてを置換」を押すと不合格が1に置換されました。

置換を用いたダミー変数の作成2

同様に"合格"についても0で置換するようにすればダミー変数へ変換が可能です。

置換を用いたダミー変数の作成3

このやり方は関数を入力しなくて良い反面、1個ずつ置換しなければいけなく手間がかかってしまいます。

2値であれば置換の方が分かりやすく早く処理できます。

IF関数

IF関数を使用した条件式で不合格の場合は1、それ以外は0とすることでダミー変数に変換できます。

IF関数を用いたダミー変数の作成

IF関数を使用した場合のメリットはダミー変数の数が増えても低労力で対応できる点です。

絶対参照をうまく使うことで1つの関数を入力するだけで関係する箇所はすべて変換できます。

IF関数を用いたダミー変数の作成(3値の例)

連続数値をダミー変数にする

これまでは合格や不合格のような文字データをダミー変数に変換していました。

実は数値データもダミー変数に変換する方法があります。

例えば製造温度が50℃を超えた場合に不合格になりそうだと想定できている場合があるとします。

その際は温度データのうち50℃以上の温度を記録した場合に1とするダミー変数を作ることもできます。

ロット温度 ℃ダミー変数(50℃以上)
A-101350
A-102591
A-103480
A-104511
A-105601
A-106370
50℃以上の温度データをダミー変数化

まとめ

今回はダミー変数の作り方について解説しました。

ダミー変数を作成するにもデータのとり方が大切です。

以下の記事を解説していますので是非ご覧になってください。

記事への問い合わせはこちらから

-データサイエンス