決定係数や標準化偏回帰係数が高いと「影響力が強い」といえるのか?

はじめに

OLS回帰分析は変数間の関係を見るうえで最も基本的な分析方法である。回帰分析の元の式がこのような形だとする。

$$Y_i = \beta_0 + \beta_1X_i + \varepsilon_i$$

これをデータに当てはめると、以下の予測式が得られる。

$$\hat{Y}_i = \hat{\beta}_0 + \hat{\beta}_1X_i$$

このように回帰式を推定するだけでなく、そのモデルのフィッティングであったり、変数間の関係を知るための方法がいくつもある。そのなかでもよく用いられるものとして、決定係数と標準化偏回帰係数がある。

これらは、やや不用意な使われ方をしている場面に出くわすことも少なくないように思う。とくにそれは異なるサンプル(例えば、異なる時点であったり、属性であったりでサンプルを分割するなど)を用いた比較分析するときによく出くわす。たとえば同一の変数を投入して異なるサンプルで決定係数を比較して、決定係数が高いことをもって「独立変数の影響力が強い」とか、標準化偏回帰係数の高さを比べてやはり「独立変数の影響力が強い」という言い方がなされたりする。

しかし、ここでの影響力とは一体何なのだろうか?決定係数の高さや標準化偏回帰係数の大きさはいかにしてもたらされるのだろうか?この点に関して考えていることをメモとして残しておく。なおここで念頭に置いているのは個人を単位とする社会調査データの分析である。

決定係数と標準化偏回帰係数

まずは、決定係数と標準化偏回帰係数の定義を確認しておく。

決定係数

予測したモデルがどの程度フィットしているかを測る指標として最もポピュラーな指標が決定係数(R2乗値、R-squared)であろう。これは以下のように定義される。

$$R^2 = 1 – \frac{\displaystyle \sum^N_{i = 1}(Y_i – \hat{Y}_i)^2}{\displaystyle \sum^N_{i = 1}(Y_i – \overline{Y})^2}$$

この式を見て分かるとおり、決定係数は、回帰式を当てはめて得られる予測値と観測値のずれ(残差)の総和(右辺第2項の分子)が\(Y\)の総変動(右辺第2項の分母)に近づくほど大きくなり、遠ざかる(0に近くなる)ほど小さくなる。ここから、決定係数は回帰式が観察された\(Y\)の分散をどの程度予測できているか、を表していると読むことができる。決定係数が高いほど、モデルのフィッティングがよいと判断できる。

標準化偏回帰係数

また回帰分析でよく用いられるもう1つの指標が、標準化偏回帰係数(標準偏回帰係数ともいわれる。)である。これは変数の測定単位にあまり意味がない場合(たとえば心理尺度など)であったり、単位の異なる独立変数をそろえて比較をしたいときに用いられる。

標準化偏回帰係数は、先の回帰分析に用いる従属変数と独立変数を平均0、標準偏差1に標準化することによって求められる。

$$ \frac{Y_i – \overline{Y}}{\mathrm{Sd}(Y)} = b_0 + b_1\frac{X_i – \overline{X}}{\mathrm{Sd}(X)} + e_i$$

推定の結果得られた係数\(\hat{b}_1\)は、独立変数\(X\)が1標準偏差分上昇したときに\(Y\)の標準偏差が何ポイント変化するのかを表す。標準化偏回帰係数を用いることで、単位の異なる独立変数であっても、従属変数Yとの関連を同一の尺度のもとで比較できる。

独立変数の分布の違いがもたらす帰結

ここまではごく一般的な決定係数と標準化偏回帰係数のたんなる数学的な定義である。しかし、これをどのような実質的意味を持つ指標として読んでいくのかについてはここから導くことはできず、研究の文脈に応じて判断していく必要がある。

そこでここでは、独立変数の分布の違いが決定係数や標準化偏回帰係数をどのように変えるのかを考えることを通して、その意味について考えてみたい。

セッティング

次のような仮想的なシチュエーションを考える。話を単純にするために、従属変数は連続変数、独立変数は2値変数として考える。たとえば、世の中を大卒と非大卒の2つに分割するとする。大卒は非大卒と比べて、従属変数\(Y\)の値が1ポイント高いとする。この1ポイントの単位は1点から10点までのスケールを取る幸福度1点分でもいいし、所得100万円分でもいい。

このときの回帰式は次のようになる。今はとりあえず切片は文字のままとしておく。

$$Y_i = \beta_0 + 1 \times X_i + \varepsilon_i$$

ここで、独立変数の分布が異なる2つのシチュエーションを考えよう。1つめは、大卒がサンプル全体の1割を占めるとき、2つめは、大卒がサンプル全体の5割を占めるときである。

ただし、いずれも従属変数の分散については変わらないものと想定する。実際にサンプルを生成しよう。2つのサンプルは、従属変数\(Y\)についてはいずれも平均0、標準偏差1の正規分布にしたがって生成するものとする。独立変数\(X\)は非大卒の場合に0、大卒の場合に1をとるダミー変数とし、成功確率0.1の二項分布と、成功確率0.5の二項分布にしたがう場合の2つを考える。このとき回帰式は以下のように書くことができる。

$$ Y_i = -0.1 + 1 \times X_i + \varepsilon_{1i}, \ \ \bar{X} = 0.1 \ \ \ \ (1) $$

$$ Y_i = -0.5 + 1 \times X_i + \varepsilon_{2i}, \ \ \bar{X} = 0.5 \ \ \ \ (2) $$

この条件にしたがってそれぞれN = 100,000のサンプルを生成した1)自分のコードか数学的な理解が間違っているのかもしれないが、この条件のもとでサンプルを生成すると\(Y\)の標準偏差は完全には同じにならず、何回やっても0.07くらい(2)のサンプルのほうが標準偏差が大きくなってしまう。ただしこの違いはここでの結論に大きな違いを生じさせないと考えられるため、ひとまずこのまま進める。コードを貼ってあるので誰か原因が分かる人がいたら教えて欲しい。。

分析の結果

さてまずXごとに層化したうえで密度関数を見ておこう。こちらが(1)式にしたがって作成した、大卒比率10%のときの密度関数である。

こちらが(2)式にしたがって作成した、大卒比率50%のときの密度関数である。

この2つのサンプルそれぞれに対して、Yを従属変数、Xを独立変数とする回帰分析を行った結果が下の表である。

回帰分析
Sample 1, β Sample 2, β Sample 1, b Sample 2, b
(Intercept) -0.096*** -0.499*** 0.000 0.000
(0.003) (0.004) (0.003) (0.003)
x 0.992*** 1.002*** 0.285*** 0.448***
(0.011) (0.006) (0.003) (0.003)
R2 0.081 0.201 0.081 0.201
Adj. R2 0.081 0.201 0.081 0.201
Num. obs. 100000 100000 100000 100000
RMSE 0.999 0.999 0.958 0.894
***p < 0.001, **p < 0.01, *p < 0.05

第1列は大卒比率10%のサンプルを用いて推定した結果、第2列は大卒比率50%のサンプルを用いて推定した結果である。係数は回帰係数(βと表記)を、括弧内は標準誤差を示している。どちらも、(1)式と(2)式のとおり、\(X = 0\)と比べて\(X = 1\)のときは従属変数\(Y\)が1ポイント高いという真のモデルを再現できている。

ここで決定係数\(R^2\)の値に注目してみると、第1列ではこの値は0.081であるのに対して、第2列ではその値はずっと高く、0.201となっている。

先のプロットでもみたように、大卒と非大卒の\(Y\)の値の差はどちらのサンプルでも同じであり、違うのはただたんに大卒の比率だけである。つまり、独立変数の分布が変わることで、たとえ回帰係数が全く変化していなかったとしても、決定係数は大きく変化するのである。

ついで第3列と第4列は、係数を回帰係数でなく、標準化偏回帰係数(bと表記)に置き換えたものである。先ほどとは違い、係数の値は両者で異なっている。xの標準化偏回帰係数は、第3列では0.285であるのに対して、第4列では0.448である。

生成したサンプル間でYの標準偏差がほとんど変わらないということを踏まえれば、やはりここでのサンプル間での標準化偏回帰係数の違いもまた、独立変数の分布の違いによって引き起こされていることがわかる。

考察とまとめ

結果をいかに解釈するのか

先ほどの結果をまとめよう。ここでは2つのサンプルを生成した。両サンプルは、従属変数の分散の大きさは同じで、独立変数の値による従属変数の値の差も同じとなるようにし、ただ一点、独立変数の分布のみを変化させた。その結果、独立変数の分散が大きい(大卒と非大卒の比率がちょうど半分ずつ)ときに、決定係数がより大きくなり、標準化偏回帰係数も大きくなることがわかった。

さきの2つのサンプルを比べて、大卒比率50%のサンプルにおいては「(従属変数に対する)独立変数の影響力が強い」という言い方をするのは妥当だろうか?もちろんこれは独立変数の「影響力 Influence」をいかに定義するかにもよるが、独立変数が従属変数を変化させる「効果 Effect」としての意味だとすれば、これは明らかに間違いだろう。なぜなら、どちらもXがYを上昇させる大きさはどちらも1ポイントで、まったく同じだからだ。ここで起こっているのは、どちらかといえばたんに独立変数の「予測力 Predictive power」の向上に過ぎず、「効果」が大きいことを意味しないのである。

 

重要なのは、決定係数あるいは標準化偏回帰係数の違いは、以下の2つの要因によってもたらされるということである。第1に回帰係数の値の違い(因果推論的にナイーブな言葉遣いをすれば、独立変数の「効果」の違い)、第2に独立変数の分布の違いである2)多分これは数式で表現できると思うけど自分の数学力ではできなかった。。。決定係数あるいは標準化偏回帰係数の違いの裏にある原因に注意を払っておかないと、不適切な議論をすることになりかねない。

実践的な含意と読み方

普段から注意すべきこととしては、はじめから標準化偏回帰係数や決定係数「だけ」をみるだけでなく、標準化する前のもともとの回帰係数(あるいはさらにその前の記述的な統計量…平均値や分散、ヒストグラムなど)をきちんと見る、という当たり前のことに落ち着く。

たとえば同じ変数の回帰係数と標準化偏回帰係数を見比べて、回帰係数はさほど違いがないにもかかわらず標準化偏回帰係数が大きいということがあれば、その違いは独立変数の分布の違いによって起こっていそうだ、と判断できる。他の変数を統制したときの独立変数の分散は必ずしも記述統計量でみたときの分散とは一致しないが、記述統計量で分布をしっかり確認しておくことも原因を推測するのに役立つだろう。

このように分析の結果を見て、異なるサンプル間での決定係数や標準化偏回帰係数の違いがなぜ起こっているのかをおさえておくと、ある変数の重要性を過大に(過小に)評価することを避けやすくなるだろう。

Rコード

Notes

Notes
1 自分のコードか数学的な理解が間違っているのかもしれないが、この条件のもとでサンプルを生成すると\(Y\)の標準偏差は完全には同じにならず、何回やっても0.07くらい(2)のサンプルのほうが標準偏差が大きくなってしまう。ただしこの違いはここでの結論に大きな違いを生じさせないと考えられるため、ひとまずこのまま進める。コードを貼ってあるので誰か原因が分かる人がいたら教えて欲しい。。
2 多分これは数式で表現できると思うけど自分の数学力ではできなかった。。