高次の固定効果

  areg コマンドおよび xtreg コマンドの absorb() オプションを使用して、 線形および固定効果線形モデルで 1 つだけでなく複数の高次元カテゴリ変数を吸収します。 モデルにこれらのカテゴリ変数のインジケーターを含める従来のアプローチに比べて、大幅な速度の向上を期待できます。

操作例:高次元カテゴリ変数を含む線形モデル

 線形モデルに複数のカテゴリ変数を含める場合を考えます。 たとえば、輸入関税(imports)が年間貿易量(trade)に及ぼす影響を調査し、 年(year)、国(country)、業界(industry)をカテゴリ変数として含めたい場合があります。
  3 つのカテゴリ変数を使用して線形回帰を当てはめることができます。

. regress trade imports i.year i.country i.industry

 40 年間のデータ、160 か国、および 4 桁の業界コードがある場合、 およそ 1,200 のパラメーターを推定することになります。 この推定には時間がかかりますが、研究課題で重要となるパラメータは imports の係数の 1 つだけです。
 absorb()オプションを使用して、次のように入力することで、同じモデルを短時間で適合させることができます。

. areg trade imports, absorb(year country industry)

 変数 year, country, industry が吸収されます。 areg はすでにこの機能を持っていましたが、指定できる変数が 1 つだけでした。 今回のアップデートにより、カテゴリ変数を必要なだけ追加できるようになりました。

 

 そして、たとえば業界の固定効果をモデルに当てはめたい場合は、次のように入力します。

 
. xtset industry year
. xtreg trade imports, fe absorb(year country)

どれくらいの時間を節約できるでしょうか?

 以下は、100 万の観測値、1 つの変数( x )、それぞれ 1,000 のカテゴリを持つ 2 つのカテゴリ変数(a1 と a2)、 および 10 万のカテゴリを持つ変数 id を含む例です。

 以前は、変数を 1 つだけ吸収でき、次のように入力していました。

. webuse hdfe
. quietly areg y x i.a1 i.a2, absorb(id)

 absorb() オプションにカテゴリ数が最大の変数 id を指定します。 上記の推定には、Stata/MP では約 5 分、Stata/SE では約 6 分かかります。
 一方で、次のように入力することで 3 つのカテゴリ変数をすべて吸収できるようになりました。

 
. quietly areg y x, absorb(id a1 a2)

 この推定には、Stata/MP では約 1 秒、Stata/SE では 1.3 秒かかります。 時間はコンピュータによって若干異なる場合がありますが、推定に要する時間が短縮されていることがわかります。

固定効果線形モデルの高速化

 areg コマンドは、高次元のカテゴリ変数を含むモデルにとって最も高速なコマンドです。 ただし、固定効果モデルを当てはめたい場合は、xtreg, fe コマンドの方が適切かもしれません。
 以前は、xtreg, fe を使用してカテゴリ変数を制御するには、それらをモデル内のカテゴリ変数として 指定する必要がありました。areg コマンドの場合と同じように、新しい absorb() オプションで それらを指定できるようになりました。 これにより、 xtreg, fe コマンドの実行が 大幅に高速化されます。

 前の例を続けて、変数 id の固定効果を使用して線形モデルを近似したいとします。 あなたは次のように入力します

 
. xtset id
. xtreg y x, fe absorb(a1 a2) vce(cluster id)

 推定結果は以下の通りです。

 

 xtreg, fe はより重い処理を行うため、areg よりも遅くなります。 特に、固定効果間の変動 (sigma_u) を計算するためのパネルレベルの統計量を計算します。 sigma_u に興味がない場合は、nosigmau オプションを指定することで実行時間を節約できます。

 
. xtreg y x, fe absorb(a1 a2) vce(cluster id) nosigmau

 vce(cluster id) オプションを使用しない場合、xtreg, fe は、すべてのパネル効果 がゼロであるという検定を報告します。 この場合、nouitest オプションを指定すると、 検定と sigma_u の推定の両方が抑制され、実行時間をさらに節約できます。

参考

 さらに詳しい内容につきましては、下記のマニュアルをご覧ください。

Stata is a registered trademark of StataCorp LLC, College Station, TX, USA, and the Stata logo is used with the permission of StataCorp.

page_top_icon