説明変数(特徴量)とは?意味・種類・前処理・変数選択・因果の違いまでを実務視点で解説

「説明変数」とは何か — 基本定義と用語整理

説明変数(せつめいへんすう)は、統計学や機械学習で用いられる用語で、ある対象の「結果(目的変数、従属変数、応答変数)」を説明・予測するために用いる変数を指します。英語では explanatory variable、independent variable、predictor、feature など複数の呼び方があり、文脈によってニュアンスが少し変わります。例えば因果推論の文脈では「独立変数(independent variable)」や「介入(treatment)」という表現が使われ、機械学習では「特徴量(feature)」や「予測子(predictor)」が一般的です。

種類・データ型

説明変数はデータ型や性質によって取り扱いが変わります。主な種類は以下の通りです。

  • 連続変数:身長、体重、価格など実数値を取る変数。
  • 順序尺度(ordinal):満足度(低・中・高)など順序はあるが差が一定でない変数。
  • カテゴリ(名義尺度):性別、地域、職業など順序性のないカテゴリ変数。
  • 二値変数(binary):0/1 のようなフラグ。

統計モデリングと機械学習での役割の違い

「説明」重視の統計モデリング(例えば線形回帰)では、説明変数の係数の解釈や信頼区間、仮説検定が重要になります。一方、機械学習では予測性能や汎化能力が主眼で、説明変数(特徴量)の加工・選択(feature engineering、feature selection)がモデル精度に直結します。ただし、近年は解釈可能性を求めるニーズが高まり、両者の境界は曖昧になっています。

前処理とエンコーディング

説明変数をそのままモデルに入れると誤った結果や性能低下を招くことがあります。代表的な前処理は次のとおりです。

  • カテゴリ変数のエンコーディング:ダミー変数(one-hot)、ラベルエンコーディング、ターゲットエンコーディング(但しターゲットリーケージに注意)など。
  • スケーリング:標準化(zスコア)や最小最大正規化。距離に依存するモデル(k-NN、SVM、クラスタリング)や正則化モデル(Ridge/Lasso)では重要。
  • 変換:対数変換、Box–Cox、分位点変換など。非対称分布や大きな外れ値を扱う際に有効。
  • 欠損値処理:除外、平均/中央値代入、回帰代入、多重代入(multiple imputation)など。欠損のメカニズム(MCAR、MAR、MNAR)によって適切な手法が異なる。

変数選択と次元問題

説明変数が多すぎると過学習や推定の不安定化が起こります(いわゆる次元の呪い)。変数選択の主な方法は次の通りです。

  • フィルタ法:相関係数、相互情報量、統計的検定で事前に選別。
  • ラッパー法:逐次選択や後退選択、再帰的特徴選択(RFE)などでモデルの性能を基準に選択。
  • 組み込み法(embedded):L1 正則化(LASSO)や決定木ベースの重要度評価など、学習過程で選択が行われる手法。
  • 次元削減:主成分分析(PCA)や非負値行列因子分解(NMF)など。ただし解釈性が損なわれる点に注意。

多重共線性(マルチコ)とその対処

説明変数同士が高い相関を持つと、回帰係数の分散が大きくなり推定が不安定になります。検出には分散膨張係数(VIF)、特異値分解による条件数などが用いられます。対処法は以下の通りです。

  • 相関の高い変数の削除や統合(例えば合成指標の作成)。
  • 正則化(RidgeやLASSO):Ridgeは多重共線性に強い。LASSOは変数選択も同時に行う。
  • 主成分回帰(PCR)や部分最小二乗(PLS)などの次元削減を併用する手法。

因果関係と相関の違い

説明変数という語は「説明する」という言葉から因果を示唆しがちですが、観察データ下では「説明変数が結果を因果的に引き起こす」ことを自動的に意味しません。相関は因果ではない、という基本原則を常に念頭に置く必要があります。因果推論のためには、無作為化比較試験(RCT)、傾向スコア、操作変数法(IV)、差分の差分(DiD)、構造因果モデル(DAGs・Pearlの枠組み)などの手法が使われます。

測定誤差・バイアスの影響

説明変数の測定誤差は推定にバイアスを生むことがあります。古典的測定誤差(誤差が説明変数側に独立に加わる)では回帰係数がゼロ方向へ減衰(attenuation bias)するのが典型です。測定誤差の存在下では、誤差構造を考慮したモデルや外部情報(リライアビリティ係数)、操作変数法などが必要です。

変数間の相互作用(交互作用)・非線形性

説明変数同士が互いに影響し合う(交互作用)場合や、目的変数との関係が非線形な場合、単純な線形項だけでは表現できません。対処法としては:

  • 交互作用項(X1*X2)の導入。
  • 多項式やスプラインによる非線形項の追加。
  • 木系モデル(ランダムフォレスト、勾配ブースティング)やニューラルネットワークの利用。

モデル解釈性と変数重要度

モデルの解釈性を求める場合、説明変数の役割を明確にするために次のような手法が使われます。

  • 係数推定(線形モデル)や信頼区間。
  • 部分依存プロット(Partial Dependence Plot, PDP)や個別条件期待値(ICE)。
  • SHAP値やLIMEなどの局所的・全体的解釈手法。
  • 決定木系の変数重要度(ただしGini重要度はカテゴリ数や分岐回数の偏りを持つので注意)。

実務での注意点とベストプラクティス

説明変数を扱う上での実務的な留意点をまとめます。

  • 目的(予測か因果推論か)を明確にする。目的により必要な変数や手法が異なる。
  • データのスキーマと意味を確認し、欠損・外れ値・単位をチェックする。
  • カテゴリ変数のエンコーディングはモデルとサンプルサイズに合わせて選ぶ。ターゲットエンコーディングはデータリーケージに注意。
  • 相関やVIFで多重共線性をチェックし、必要なら削除・統合・正則化を行う。
  • 交互作用や非線形性が疑われる場合は、可視化や部分依存図で確認する。
  • 変数選択は単なる自動化に頼らず、ドメイン知識で検証する(因果的な意味付けが重要)。
  • 欠損データのメカニズムを考慮し、適切な代入法(多重代入など)を使う。
  • モデル評価はホールドアウト/クロスバリデーションで行い、過学習を防ぐ。

具体例(簡単なケース)

住宅価格を目的変数とした回帰モデルの例を考えます。説明変数として床面積、築年数、最寄り駅までの距離、最寄り駅のランク(カテゴリ)、リフォームの有無(0/1)などを用いる場合:

  • 床面積は連続変数。分布が歪めば対数変換を検討。
  • 築年数は非線形性(古くなるほど影響が非線形)を持つことがあるため多項式やスプラインを使う。
  • 駅のランクはカテゴリだが順序性があれば順序変数として扱うか、ダミー化する。
  • リフォームはバイナリでそのまま使えるが、相互作用(例えば築年数×リフォーム)も検討する。

まとめ

説明変数は単なる入力データではなく、データの性質、前処理、モデルの目的(予測か因果か)によって取り扱いが大きく変わる重要な要素です。適切なエンコーディング、欠損処理、スケーリング、変数選択、そしてドメイン知識に基づく解釈と因果的検証が良いモデル作りの鍵になります。

参考文献