Dummy Coding タブ
Dummy Coding タブでは、カテゴリ変数(名義尺度・順序尺度)を数値のダミー変数(0/1)に変換します。回帰分析や GLM にカテゴリ変数を組み込むための前処理です。
基本的な使い方
Dummy Coding を開く
メニューバーから Data > Dummy Coding... を選択すると、新しい Dummy Coding タブが開きます。
変換を設定する
- Dataset ドロップダウンで変換対象のデータセットを選択
- 列の設定テーブルで各列の Scale と Action、必要に応じて Reference(参照カテゴリ)を設定
- Encoding Preview セクションで、各列の参照カテゴリと生成されるダミー変数の数を確認
- Create Dataset をクリック
- データセット名を入力して OK をクリック
Encoding Preview では、ユニーク値の数が想定どおりか、表記ゆれやタイプミスで増えていないか、参照カテゴリが意図したものかを確認します。ユニーク値が1つしかない列は変換できず、エラーが表示されます。
このページで使用するデータ
この説明では、5人のアンケートデータ(survey.csv)を使用します。blood_type と education がカテゴリ変数です。
| name | age | blood_type | education |
|---|---|---|---|
| Alice | 28 | A | college |
| Bob | 35 | B | graduate |
| Carol | 42 | O | college |
| Dave | 31 | A | high_school |
| Eve | 26 | AB | graduate |
列の設定
Scale(測定尺度)
| 尺度 | 説明 | ダミー変数への変換 |
|---|---|---|
| nominal | 名義尺度 | 可能 |
| ordinal | 順序尺度 | 可能 |
| interval | 間隔尺度 | 不可(数値としてそのまま使用) |
| ratio | 比率尺度 | 不可(数値としてそのまま使用) |
順序尺度(ordinal)に設定した列でも、その順序(low → mid → high など)はダミーコーディングに使われません。ダミー変数の生成順も参照カテゴリの初期値もカテゴリ名のアルファベット順で決まります。特定のカテゴリを基準にしたい場合は Reference で選びます。
Scale の初期値は列に設定されている測定尺度です。尺度が未設定の列はデータ型から推論され、string と boolean は nominal、数値と日時は interval になります。詳細は データ型と測定尺度 を参照してください。Scale はドロップダウンで変更できます。設備番号やライン番号のように数値で記録した区分は interval と推論されますが、Scale を nominal に変更するとダミーコーディングできます。
Action(アクション)
| アクション | 説明 |
|---|---|
| Not included | 出力データセットから除外する |
| Include as-is | 列をそのまま出力に含める |
| Dummy code | ダミー変数に変換する(元の列は除外) |
| Dummy code (keep original) | ダミー変数に変換し、元の列も保持する。出力データセットでグラフやクロス集計に元のカテゴリ列を使う場合に選ぶ |
Dummy code / Dummy code (keep original) はカテゴリ変数(nominal / ordinal)にのみ選択可能です。boolean 型の列は対象外です1。
Reference(参照カテゴリ)
参照カテゴリは、ダミー変数の係数を解釈するときの基準になるグループです。対照群や標準条件、ベースラインなど比較の基準にしたいグループを選ぶと、係数を解釈しやすくなります。
Action で Dummy code または Dummy code (keep original) を選択した列では、Reference ドロップダウンで参照カテゴリを選択できます。初期値はアルファベット順で最初のカテゴリです。
変換の仕組み
k 個のカテゴリから k-1 個のダミー変数を生成し、1つのカテゴリを参照カテゴリ(reference category)として省略します2。この方式は treatment coding(参照カテゴリを基準にした符号化)と呼ばれます。
- カテゴリのユニーク値を抽出します3
- アルファベット順にソートします
- 参照カテゴリを除外します。初期値はアルファベット順で最初のカテゴリで、Reference ドロップダウンで変更できます
- 残りの k-1 個のカテゴリに対してダミー変数を生成します
- 該当するカテゴリの行は1、それ以外は0になります
変換例
blood_type 列(ユニーク値: A, AB, B, O)を変換する場合:
- 参照カテゴリ:
A(初期値。アルファベット順で最初) - 生成されるダミー変数:
blood_type_AB、blood_type_B、blood_type_O
| blood_type | blood_type_AB | blood_type_B | blood_type_O |
|---|---|---|---|
| A | 0 | 0 | 0 |
| B | 0 | 1 | 0 |
| O | 0 | 0 | 1 |
| A | 0 | 0 | 0 |
| AB | 1 | 0 | 0 |
参照カテゴリ A の行はすべてのダミー変数が0になります。
回帰モデルにダミー変数を投入すると、各ダミー変数の係数は参照カテゴリとの差の推定値です。差が測られる尺度はモデルのリンク関数で決まります。線形回帰(恒等リンク)では応答変数そのものの尺度上の差です。ロジスティック回帰やポアソン回帰などリンク関数が恒等でない GLM では、線形予測子の尺度(対数オッズや対数など)上の差です。この例で blood_type_B を線形回帰の説明変数に投入した場合、係数は B 型と参照カテゴリ A 型の応答変数の差の推定値です。ほかの説明変数を含むモデルでは、それらを一定とした場合の差です。
出力データセット
上のサンプルデータで name を Not included、age を Include as-is、blood_type と education を Dummy code に設定した場合の出力です。
| age | blood_type_AB | blood_type_B | blood_type_O | education_graduate | education_high_school |
|---|---|---|---|---|---|
| 28 | 0 | 0 | 0 | 0 | 0 |
| 35 | 0 | 1 | 0 | 1 | 0 |
| 42 | 0 | 0 | 1 | 0 | 0 |
| 31 | 0 | 0 | 0 | 0 | 1 |
| 26 | 1 | 0 | 0 | 1 | 0 |
blood_type(4カテゴリ)から3つ、education(3カテゴリ: college, graduate, high_school、参照: college)から2つのダミー変数が生成されています。列名は {元の列名}_{カテゴリ名} の形式で、データ型は int64(0または1)、測定尺度は比率尺度です。回帰や GLM の説明変数にそのまま投入でき、再度ダミーコーディングされることはありません。行数は元のデータセットと同じです。元のデータセットは変更されず、新しい 派生データセット として保存されます。
保存済み Dummy Coding の編集
既存の Dummy Coding データセットは編集できます。Project Lineage タブでデータセットを右クリックするか、Project Overview のデータセットのメニューボタン(⋮)から Edit Operation... を選択すると、ソースデータセットと列ごとのアクション、参照カテゴリ、スケールの上書きが復元された状態で Dummy Coding が編集モードで開きます。
編集モードでは、他のデータセットやモデル、レポートがこのデータセットに依存している場合、影響を受ける項目の種類と件数が警告として表示されます。ソースデータセットを変更すると、新しいソースに同名の列がある設定は引き継がれます。カテゴリカルでなくなった列のアクションは Include as-is に変わり、新しいソースで確認できない参照カテゴリはリセットされます。引き継げなかった設定は通知に表示されます。Update Dataset をクリックすると変更が反映されます。このデータセットに依存する派生データセットは次にデータが必要になったとき再計算され、依存するモデルは自動的に再推定されます。
編集タブを開いてから Update Dataset をクリックするまでの間に、同じデータセットの操作が別の編集タブや Agent API など他の経路から変更されていた場合、MIDAS は保存を拒否します。先に加えられた変更を警告なく失わせないためです。編集タブを閉じて Edit Operation... を開き直すと、最新の状態から編集をやり直せます。
Next steps
- Linear Regression タブ - ダミー変数を使用した回帰分析
- GLM タブ - ダミー変数を使用した GLM
See also
- Convert Column Types タブ - データ型の変換
脚注
このページの Markdown 版もあります。