[Stataによるデータ分析入門]xtdidregコマンドの使い方
Stata17から差の差回帰用のコマンドdidregress、xtdidregressコマンドが登場しました。本コラムではパネルデータ用の差の差分析用コマンド、xtdidregressの使い方を紹介します。
注意:Stata16以前では両コマンドは実行できません。
なお、本コラムは、Stataによるデータ分析入門第3版のWEB補論として用意されました。本書の5.3節、EUによる対カンボジアの特恵関税制度の原産地規則の貿易創出効果(Tanaka, 2020)を事例として説明します。
事例の背景
一般特恵関税制度と原産地規則
先進国が途上国の製品を輸入する際に、途上国の輸出振興を支援するため、輸入関税を割り引く、あるいは無税にするという制度、一般化特恵関税(Generalized System of Preference GSP)があります。
※一般化特恵関税の詳細は以下も参照
ただし、その適用には「原産地規則」を満たした製品であることという条件
があるのですが、ここで紹介する事例は、EUによるカンボジア向けの一般化特恵関税の原産地規則緩和による輸出創出効果を計測するものです。
原産地規則とは、迂回輸出による特恵関税の利用を制限する制度です。たとえば、カンボジアの隣国のタイの企業が、タイで生産した製品をカンボジアに持ち込んで、パッケージングだけをカンボジアで行い、Made in Cambodiaというラベルをつけて輸出したとします(迂回輸出)。

この製品は実質的にはタイで生産された製品ですが、カンボジア製として関税の支払いが免れるのであれば近隣国の企業は生産国を偽るためにカンボジアに進出すると考えらえます。しかし、これではカンボジアの輸出産業振興にはつながりませんし、むしろ生産国を偽っている企業を支援することになります。そこで、迂回輸出を特恵関税の適用除外にするための仕組みが原産地規則で、低減税率適用のために輸出業者は原産地証明を取得する必要があります。
※原産地規則については、以下の財務省の資料がわかりやすいです。https://www.customs.go.jp/roo/origin/roo.pdf
EUのカンボジア向け一般特恵関税の原産地規則の緩和
EUは、カンボジアのアパレル産業の輸出振興のため、EUが輸入するカンボジア産アパレル製品に低減税率を適用する制度を用意していました。しかし、原産地規則が厳しく、その利用率が低迷していたこともあり、2010年に原産地規則を緩和することを決めました。
具体的には、2009年までの原産地規則は、繊維生産→縫製→パッケージングまでを一貫してカンボジアで行うことが一般特恵関税の利用条件だったのですが、2010年からは縫製→パッケージングがカンボジア国内で行われていれば一般特恵関税が適用されるように改められました。
2010年ごろのアジア地域の繊維産業は、資本集約的な中国企業が台頭していました。労働集約的な産業に比較優位をもつカンボジアの縫製産業は輸入した繊維製品を使ってアパレル製品を生産し輸出を行うというビジネスモデルをもっていましたが、これには一般特恵関税を利用できないという問題がありました。しかし、2010年のEUによる原産地規則の見直しにより、輸入繊維を用いて縫製を行うカンボジア企業も一般特恵関税を利用できるようになり、EUへの輸出を拡大することができるようになりました。
Tanaka (2021)は、差の差の分析により、EUによる原産地規則の変更による輸出拡大の因果効果の測定を試みています。
固定効果モデルの推計
推定式は、以下の通りです。
$${ lnExp_it =\alpha +\beta Post_{t}*EU_{i} +\gamma X_{it} +\mu_i + \delta_t +\epsilon_{it} }$$
ここで、${ lnEXP}$はカンボジアから各国への輸出額、$${Post_{t}*EU_{i}}$$は、EU向け輸出で2010年以降なら1をとるダミー変数で、この係数が処置効果を示します。${X_{it}}$ はGDPや一人あたりGDP、関税率、FTAダミーなどの説明変数、${\mu_i, \delta_t}$は個体固定効果と時間固定効果を示します。
xtreg,feコマンドによる推計
Stataでxtreg,feで推計してみましょう。コードは以下の通りです。
cd c:\data
use tanaka2021.dta,clear
gen lex61=log(exp61)
gen lex62=log(exp62)
gen lex64=log(exp64)
gen lex10=log(exp10)
gen lgdp=log(gdp)
gen lgdpc=log(gdppc)
xtset ctyid year
xtreg lex61 eu_post lgdp lgdpc tariff fta i.year,fe robust
推計結果は以下の通りです(年次固定効果の結果は省略しています)。

xtdidregressコマンドによる推計
次にxtdidregressコマンドを使って推計してみましょう。上記の結果と同じ結果を得るためには、
xtdidreg (lex61 lgdp lgdpc tariff fta) (eu_post),group(ctyid) time(year)
と入力します。

係数、標準誤差、t値が等しくなっていることが確認できます。また、xtdidregでは、オプションなしで個体固定効果と時間固定効果を導入し、頑健な標準誤差を計算してくれます。
並行トレンドの仮定の検証
xtdidregコマンドの実行後に並行トレンドの仮定を検証するためのコマンドが用意されています。一つは、
並行トレンドの妥当性をグラフで確認する方法として、estat trendplotsコマンドがあります。ただし、このコマンドは、すべての個体について同じ年数のデータが用意されている、いわいるバランス・パネルになっていること、処置期間がすべての固定で同じこと、という2つ条件が満たされていないとエラーが出力されますので、あまり使い勝手が良いとは言えません。
今回の例でestat trendplotsを実行すると、
. estat trendplots
treatment assignment times vary; not allowed with estat trendplots
というエラーメッセージが出ます。そこで、以下のようにバランス・パネルにしてから実行してみました。
*被説明変数が欠損値のサンプルを削除
keep if lex61!=.
*バランス・パネルにする(9年間のデータがそろっている国だけに限定)
gen dum=1
egen dum1=sum(dum),by(ctyid)
keep if dum1==9
xtdidreg (lex61 lgdp lgdpc tariff fta) (eu_post),group(ctyid) time(year)
estat trendplots
出力されたパラレルトレンドのグラフは以下の通りです。

参考文献
Kiyoyasu Tanaka, 2021, The European Union's reform in rules of origin and international trade: Evidence from Cambodia, The World Economy,
Volume44, Issue10, October 2021, Pages 3025-3050
https://doi.org/10.1111/twec.13108