suketani’s diary

個人的メモ用、どこも代表していない

Stataで交差項のあるモデルでの変数の限界効果をプロット

marginsmarginsplotを使って変数の限界効果をプロットする方法をまとめる。
プロッティングの方法については、このリンクを参照した。


交差項のF検定の方法については次回。


次のような設定を考える。ある要素xyに与える影響を観察したいとする。しかし、この影響は他の要素zに依存していると考えられており、主たる関心がこのxzの相互関係であるとする。

このような仮説を検証するためには、次のような回帰モデルを推定すればよい:
y= \alpha + \beta x + \gamma x*z + \delta z + \varepsilon

この定式化によって、xの限界効果は次のように表現することができる:
\frac{\partial y}{\partial x}=\beta + \gamma z
xの限界効果がzに依存して決定するように定式化されていることがわかる。


結果を解釈する際に重要なのは次の3点である。

  1.  \betaは有意か?
  2. \gammaは有意か?
  3.  \beta + \gamma は有意か?

主に交差項に係る係数 \gammaが有意であるかのみに注意しがちだが、この3つ全体の構造を念頭に置いて結果を解釈することが望ましい。


最も悩ましいのは2のみが有意で、1と3が有意でないケースである。すなわち、x単体の限界効果は有意ではなくzの変化がxの限界効果に与える影響が有意であるものの、その影響を考慮したxの影響が有意でないという場合である。


個人的には、このような場合は解釈不可能な結果であると考えるか、zの値にもとづいたサブサンプル分析を行うのが望ましいと思っている。

どのように対処すべきかはひとまず置いておいて、交差項の分析ではxの限界効果を交差項の結果を含めた全体として解釈する必要があることは確かである。


そこで、xの限界効果を視覚的に示すことはしばしば有益である。特に有益であると考えられるのは、下で見る連続変数同士の交差項を用いている場合とDID分析での前提の確認の際*1である。


以下では、交差項に用いる変数zがカテゴリカル変数である場合と連続変数である場合に分けてプロットの方法をまとめていく。

カテゴリカル変数との交差項を使ったモデルでのプロット

まず、zがなんらかのカテゴリカル変数である場合を見る。zが単純なダミー変数である場合もこちらに入る。
たとえば、zがあるグループに属していることを示すダミー変数であるとする(z=[0,1])。

zが0をとる時と1をとる時のxの限界効果をプロットするためには、次のようなコードを回せばよい:

reghdfe y x c.x#c.z z , absorb(year firm) vce(cl year firm)
margins, dydx(x) at(z=(0(1)1))
marginsplot

\beta = -.02317および \gamma = .05916であった。なお、 \gammaだけ有意であった。この時、 \beta + \gamma =.03599である。またそれぞれの係数について標準偏差が推定されている。


上のコードを回すと次のようなグラフが吐き出される:

f:id:suketani:20181104045621p:plain
カテゴリー変数との交差項を用いた場合の限界効果の視覚的表示

これを見ると、交差項の係数を考慮した上でのzが1をとるグループのxの限界効果が有意であることがわかる。
カテゴリカル変数の場合はプロットよりもF検定の方が有用であるが、このようにxによる偏微分が有意であるかを確認することもできる。

連続変数との交差項を使ったモデルでのプロット

より重要なのは、zが連続変数である場合である:

reghdfe y x c.x#c.z z , absorb(year firm) vce(cl year firm)

*Point plotting
margins, dydx(x) at(z=(1(0.1)5))
marginsplot

*Line plotting
marginsplot, recast(line) recastci(rarea)

このコードを回すと次のようなグラフが吐き出される。

f:id:suketani:20181104051715p:plain
連続変数同士の交差項の限界効果の視覚的表示

これを見ると、zが大きくなるほどxの限界効果が負の方向に大きくなることがわかる。しかし、連続変数の交差項は解釈に十分な注意が必要である。
カテゴリカル変数の場合とは異なり、連続変数の場合はzが1よりも小さい値をとる場合がある。すると、zのxの効果に与える変化は係数よりも小さくなる。
たとえば、xの係数が0.5で交差項の係数が-0.7の場合、zがxの効果を打ち消しているように見える。
しかし、zが0から0.5の範囲をとる変数だった場合、zが最大値だった場合でもxの効果を完全に打ち消すまでにはならない(0.5-0.7*0.5=0.15)。

このように、連続変数の交差項の場合にはzがとりうる数値の範囲がどれくらいであるかに依存して係数を解釈する必要があるのである。
たとえば上のグラフはz=[1,5]という範囲を想定してプロットしているが、同じ結果をz=[1,15]と想定してプロットすると次のようになる:

f:id:suketani:20181104051723p:plain
範囲を変えた場合のプロット

zはxの効果を打ち消した後、xの効果を正の方向に変えることがわかる。このふたつのプロットは大きく異なる印象を与えるだろう。

zの範囲の設定は、基本統計量でどれくらいの範囲をとるかを十分に確認したうえで行う必要がある。
交差項の解釈に役立ててくだせえ。