変数選択

重回帰分析では、関連しそうな説明変数をすべて投入して分析することはよくないとされています。重回帰分析では、他の説明変数の影響を除いた上で、目的とする説明変数と目的変数の関係を明らかにします。説明変数が多すぎると、投入した説明変数の影響が微妙に影響し合って、思わぬ結果が偶然出てしまう可能性があるからです。

重回帰分析では、説明変数の組み合わせによって結果が大きく変わってしまうため、どのような説明変数を入れるべきかは重要な問題です。

説明変数を入れすぎてはいけない

例えば、日本の県別平均寿命を予測するために、県別の様々な食べ物の消費量、所得、医療費などなど、多くの説明変数を入れて重回帰分析を行うとどうなるでしょうか。それなりに高い予測率になると思いますが、説明変数と目的変数の関係を正しく表している保証はありません。試しにまったくランダムな数字からなる説明変数を10ほど用意して、重回帰分析に投入すると、少なからず高い回帰係数が出てしまいます。

分析済みの重回帰分析の式に、説明変数のいずれか1つと目的変数の双方に関連がある新しい説明変数を投入すると、回帰係数が変わってしまいます。ましてやそのような説明変数をたくさん投入してしまうと回帰係数が大きく変わってしまい、正しく解釈できなくなってしまうのです。

説明変数をどのように選ぶべきか

説明変数の組み合わせは人間が1つ1つ試すこともできますが、機械的に選ぶ方法もあります。コンピュータが1つ1つの変数を入れたりはずしたりしながらよい組み合わせを探す方法です。自動的に変数の組み合わせを選んでくれるので楽ですし、恣意的な操作がないため客観性が高いようにも思えます。

しかし、重回帰分析では1つの変数を入れるか入れないかで結果が大きく変わるため、コンピュータが選んだ変数の組み合わせが必ずしも正しい関係という訳ではありません。したがって、機械的な変数選択方法に頼りすぎないことが重要です。

事前に検定を行い有意な変数のみを入れる方法はダメ

単変数の検定で有意差があった変数だけを選ぶという方法は、多段階検定になる上、単変数の分析ではみえなかった交絡を調整できるという重回帰のメリットを無視している。

本によっては、単変数の検定でp値が0.20未満(0.05よりも基準を緩くして少し多めに変数を選ぶという意図)の変数を入れるということを推奨していたりしますが、そもそも集まったデータの特徴で、変数を選ぶという方法そのものがダメという考えもあります。以下の意見を参照のこと。

そもそも分析段階で変数を選んではいけないという意見

理屈的には正しいと思うが、事前に想定した変数で説明できなければお手上げ!で終わるという研究になってしまう。確かに、治療や疾病に関係する生体反応という変数について、分析段階で新しい変数を入れるということは少ないかもしれない。

しかし、事前に明確な仮説をたてにくい研究、例えば生活習慣と疾病の関係や心理的反応などの調査では、交絡を調整することは非常に困難であり、事後に変数間の相関をみながら変数を選ぶ必要が出てくると思う。

強制投入

全ての変数を強制投入するのがなぜいけないのか?

参考

傾向スコア(合成変数を作る)

複数の説明変数を合成して変数の数を減らす方法。サンプル数が十分集まらずに説明変数をたくさんいれることができない場合の対処方法。 傾向スコアを参照

文献