ねこすたっと

ねこの気持ちと統計について悩む筆者の備忘録的ページ。

高校生のためのデータ分析入門 (17):複数の説明変数を使った回帰モデル

数学が苦手なうちのJKに、将来必要となるかもしれないデータ分析への抵抗感をなくしてもらう目的で記事を書くことにしました。

前回:高校生のためのデータ分析入門 (16):回帰モデルを当てはめてみよう - ねこすたっと

モデルに複数の説明変数を含める

前回は気温とおでんの売り上げの関係を例にして、回帰モデルを当てはめました。このときは、1つの説明変数(=気温)から1つの応答変数(=おでん売り上げ)の期待値を推定しましたが、現実ではもっと色々な要因が影響しているはずです。

例えば下のように、気温のほかに来場者数のデータもあったとしましょう。同じ気温でも、来場者が多い方がおでんは売れそうですよね。

  • 説明変数1( X_1):最高気温(℃)
  • 説明変数2( X_2):来場者数(人)
  • 応答変数( Y):おでんの売り上げ(個)

 Y の期待値が X_1 X_2 によって決まるようにしたいんですが、どうしたらいいでしょうか。 1番簡単な方法は、下のように X_2 の項を足してやる方法です。

 
\begin{aligned}
E[Y|X_1, X_2] &= \beta_0 + \beta_1 X_1 + \beta_2 X_2
\end{aligned}

説明変数が1つのときは直線を表していましたが、説明変数が2つになると平面を表します(下図)。3つ以上のときは図にできませんが、超平面(hyperplane)と呼びます。

係数はどう解釈したらいい?

説明変数が増えても、「期待値がどのように決まるか」を表していることには変わりません。 例えば、気温10℃で来場者が100人のときの売り上げの期待値は、

 
\begin{aligned}
E[Y|X_1=10, X_2=100] &= \beta_0 + 10 \beta_1 + 100 \beta_2
\end{aligned}

であることが推定されます。

傾きは他の変数が固定されている状態で解釈する

では、傾き  \beta_1, \beta_2 そのものはどのように解釈したらいいのでしょうか?

「傾き」は、その説明変数が1単位増えたときに、応答変数がどれくらい変化すると期待されるか、を表しています。説明変数が1つのときは、回帰直線からイメージしやすいですね。

説明変数が2つになると、軸がもう1つ追加されて、直線ではなく平面になります。でも平面の傾きと言われてもピンと来ませんよね。まずは図ではなく数式で考えてみましょう。

例えば、気温が10℃のときに来場者数が100人、あるいは200人だった場合、売り上げの期待値はそれぞれ、

 
\begin{aligned}
E[Y|X_1=10, X_2=100]  &= \beta_0 + 10 \beta_1 + 100 \beta_2  \\
E[Y|X_1=10, X_2=200] &= \beta_0 + 10 \beta_1 + 200 \beta_2
\end{aligned}

となります。2番目の式から1番目の式を引くと、来場者が100人増えると期待値は  100 \beta_2 だけ増えることが分かります。つまり、 \beta_2来場者が1人増加するのに対して、どれくらいおでんの売り上げが増えると期待されるか、を表しています。 気温の話は無視して、来場者の変化の影響だけを考えられるので、とてもシンプルで分かりやすいですね。

ただし、このように解釈できるのは、気温が同じときだけです。気温が違うと、 \beta_1 の項が打ち消し合わずに残ってしまいますもんね。 つまり、傾き  \beta_2 を「売り上げに対する来場者の変化の影響度」として解釈することができるのは、「他の説明変数(ここでは気温)は同じ値に固定されているとしたら」という条件付きなのです。

傾きは一定

さっきは、「気温が10℃のとき、来場者が100人増えると売り上げは  100 \beta_2 増える」と言いました。では、気温が20℃のときはどうでしょうか。

 
\begin{aligned}
E[Y|X_1=20, X_2=100]  &= \beta_0 + 20 \beta_1 + 100 \beta_2  \\
E[Y|X_1=20, X_2=200] &= \beta_0 + 20 \beta_1 + 200 \beta_2
\end{aligned}

書くまでもなかったかもしれませんが、第2式から第1式を引くと、来場者が100人増えると期待値は  100 \beta_2 増える(つまり、 \beta_2 / 人)ので、気温10℃のときと同じになります。 このモデルでは、気温が何℃であれ、来場者1人あたりの売り上げ増加分の期待値は同じになります。

回帰分析の結果は空想上の世界の話

ところで、「他の説明変数が一定だとしたら」という条件は、現実世界で成立するんでしょうか?例えば、気温が低すぎたら来場者は少なくなるかもしれないし、そしたらおでんの売り上げが逆に減るかもしれません。

あるいは、気温が10℃のときも20℃のときも、来場者が100人増えたら同じくらい売り上げが伸びるんでしょうか?20℃のときは来場者がいくら増えても、おでんを買う人は少数派かもしれません。

回帰分析の結果は、

  • 気温が同じのまま、来場者が増えたとすると...
  • 気温が変わっても、来場者増加の影響が一定だとすると...

のような「仮想の世界」の中でデータを眺めた結果に過ぎません。 そもそも、上記のような仮定が妥当かどうかは、どうやって判断したらいいのでしょうか。

1つ目は、経験や知識にもとづいて、分析者が主観的に判断する方法です。「気温が上がっても、来場者増加の効果は一定だろう」と考えれば、先ほどのモデルを使えばいいですが、結果を聞いて解釈する人がその仮定を受け入れてくれなければ、結論に納得してくれないでしょう。

2つ目は、データがモデルの仮定をどれくらい満たしているかを確認する方法です。

データからモデルの妥当性を確認する方法

誤差は直接観察できません*1が、モデルから推測される値(期待値・予測値)と実際に観測された値の差(=残差)を使えば、誤差の様子を推定できます。 そこで、残差が誤差に求められる仮定を満たしているかどうかを確認します。

誤差に求められる仮定について忘れた人は、下の記事を復習してください。

necostat.hatenablog.jp

残差が正規分布しているか

1つ目は、「誤差は正規分布に従う」という仮定です(正規性の仮定)。これは残差のヒストグラムを描くことで確認します。

例えば、左下のようになれば正規分布といって良さそうですが、右下のような場合は仮定が満たされていないと考えます。

残差のバラツキ具合が一定か

2つ目は、「誤差の分散は一定である」という仮定です(等分散性の仮定)。 これは、説明変数Xに対して残差をプロットした散布図で確認します。

例えば、左下はXが変化しても残差のバラツキ具合は一定に見えますが、右下ではXが大きくなるにつれて残差のバラツキも大きくなっているのがわかります。

残差に一定の傾向がないか

3つ目は、「誤差は互いに無関係である」という仮定です(独立性の仮定)。 例えば、観察された順に残差を並べてみて一定の傾向があるか、などで確認します。

例えば、左下は残差の大きさや向きに一定の傾向がなさそうに見えますが、右下では周期的な規則性があるように見えます。

2つ目に説明した「説明変数に対するプロット」でも確認できます。 例えば下の図では、説明変数が小さいうちは残差が負、大きくなると正になっていて、一定の傾向があるように見えます*2

おわりに

  • 回帰分析とは、モデルを使ってデータを解釈することです。常に「モデルが正しいとすれば」という前提条件が付くことを忘れてはいけません。
  • どのようなモデルが正しいかは、神様しか分かりません。さらに言えば、「全てのモデルは間違っている」のです。
  • なぜなら、真実は複雑すぎるので、人間が理解するには簡素化(が必要だからです。データにモデルを当てはめるということは、データを見て「要はこういうことじゃない?」と考えることなのです。
  • モデルの正しさとは別の話ですが、来場者数で売り上げを予測する場合、来場者数はいつ、どうやって知るのでしょう?予想最高気温と違って、前日に知ることは難しそうですね。使うシチュエーションも考慮して回帰モデルを考える必要があります。
  • 次回:高校生のためのデータ分析入門 (18):曲線を当てはめる - ねこすたっと

*1:真の値が分からないので。

*2:正確には、これは残差同士の独立性ではなく、残差と説明変数の独立性の話ですが。