【操作変数法】オフェンスリバウンドの獲得によって出場時間はどれくらい延びるのか?

お久しぶりです、こんにちは。らんそうるい(@rnsr0371)です。山本勲『実証分析のための計量経済学』という教科書を読んで、刺激を受けたので、データ分析の練習の結果を公開したいと思います。
私はこれまで、出場時間で得点を最小二乗法で回帰した上で、その残差を調べるということを行ってきました。しかし、これはアンチパターンだったようです。誠に申し訳ございません。なぜダメなのかと言うと、出場時間が長いから得点が多くなる効果と得点が多いから出場時間が長くなる効果の両方が想定できて、このように効果がグルグル循環している時、無相関であることが求められる説明変数と誤差項との間に相関が生じ、推定されるパラメタ(回帰係数など)にバイアスがかかるからです。これを同時決定バイアスと呼ぶそうです。  
そこで本稿では、計量経済学の分野で同時決定バイアスに対処するために使われる、操作変数法という統計手法を紹介し、実演したいと思います。題材にするのは「オフェンスリバウンドを一本獲得することによって、出場時間が何分延びるのか」という因果関係です。

操作変数法とは?

操作変数法は次の2つの条件を満たす追加的な情報(操作変数)を用いることによって、関心のある因果関係とは逆方向の因果関係の影響を取り除く手法です。「オフェンスリバウンドを一本獲得することによって、出場時間が何分延びるのか」という問題を扱う上での、具体的な条件は次の通りです。

  • 条件1:説明変数(オフェンスリバウンド獲得数)に影響を与える。
  • 条件2:被説明変数(出場時間の長さ)からの影響は直接受けない。

この記事では、被説明変数に出場時間・説明変数にオフェンスリバウンド・操作変数に身長を使います。身長はオフェンスリバウンドの本数に影響を与え、出場時間が長いほど高くなるわけではないので、操作変数として使えると判断いたしました。  
操作変数の使い方は次のとおりです:①オフェンスリバウンドを被説明変数、操作変数である身長を説明変数とする数式を最小二乗法で推定し、オフェンスリバウンドの予測値を得る。②こうして得られた予測値を説明変数として使って、出場時間を被説明変数に置いた単回帰モデルを推定する。
分析では、分散の不均一性に対処するために、選手一人一人の出場試合数を使って加重最小二乗法を使ってオフェンスリバウンドの効果を推定します。
操作変数法によってなぜ同時決定バイアスが解消されるのか? については初めに挙げた山本『実証分析のための計量経済学』をご覧ください。

データセット

B1 2021-22シーズン12月15日終了時点での平均スタッツを使用しました。身長はBリーグ公式ホームページからスクレイピングによって取得しました。身長が欠損していない、279名の選手が分析対象となりました。

分析結果

平均出場時間を被説明変数・オフェンスリバウンド獲得数を説明変数・身長を操作変数に用いて、操作変数法によって回帰モデルを推定しました。また、分散の不均一性(出場試合数が多い選手ほど出場時間とオフェンスリバウンドの分散が大きくなり、選手間で分散が均一ではなくなる問題)に対処するために、出場試合数を用いて加重最小二乗法を用いて回帰モデルを推定しました。操作変数を使う意味があったかどうかを調べるために、操作変数法を用いず、平均出場時間をオフェンスリバウンドの獲得数によって加重最小二乗法で回帰したモデルも推定してみました。その結果が次の表です。


表のオフェンスリバウンド獲得数の係数を確認してみると、2つのモデルの間で係数は一致しませんでした。この差は同時決定バイアスによるものだと推測できます。
肝心の因果関係ですが、操作変数法によって推定したモデルによると、オフェンスリバウンド獲得数が1つ増えるたびに、出場時間が4.23分延びるようです。これは、個人的には、大きすぎる効果だと思います。まだ考慮していないバイアスについては最後に考察します。

最後に

この記事では操作変数法を使って「オフェンスリバウンドの獲得数が一本増えることで、出場時間がどれくらい延びるのか」という因果関係の推定を試みました。その結果、4.23分という数字が得られました。直感的には、この効果は大きすぎると思います。
おそらく、推定されるパラメタにバイアスがかかっているのでしょう。単回帰モデルというシンプルなモデルを立てたために、本来は盛り込むべき情報が考慮できておらず、オフェンスリバウンドと誤差項の間に相関が残っているのだと考えられます。このような問題は欠落変数バイアスと呼ばれるそうです。因果関係の推定というのは奥が深くて難しいなぁと思いました。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA