This version: 2025-07-08
fixest
パッケージを使用して、二元固定効果モデル(Two
way fixed effects model)を実行し、処置効果を推定する。fixest
パッケージのインストールは完了していることを前提とする。完了していない場合は、以下のコードをコンソールに入力してインストールすること。install.packages("fixest")
Titleは、R10などのように、適当な番号を入れること。
保存するファイルの名前は、R10などのように、適当な番号を入れること。
パッケージを読み込む。
library(fixest)
次に、サンプル・データbase_did
を読み込む。
data(base_did)
このデータには、以下の変数が含まれている。
id
: 個人識別子period
: 期間treat
: 処置群(1: 処置群、0: 対照群)y
: アウトカム変数x1
: コントロール変数post
: 処置後の期間(1: 処置後、0: 処置前)以下でデータのサンプルを表示する。
head(base_did)
## y x1 id period post treat
## 1 2.87530627 0.5365377 1 1 0 1
## 2 1.86065272 -3.0431894 1 2 0 1
## 3 0.09416524 5.5768439 1 3 0 1
## 4 3.78147485 -2.8300587 1 4 0 1
## 5 -2.55819959 -5.0443544 1 5 0 1
## 6 1.72873240 -0.6363849 1 6 1 1
期間構造を確認する:
table(base_did$period, base_did$post)
##
## 0 1
## 1 108 0
## 2 108 0
## 3 108 0
## 4 108 0
## 5 108 0
## 6 0 108
## 7 0 108
## 8 0 108
## 9 0 108
## 10 0 108
二元固定効果(TWFE)モデルは、政策効果を推定するための一般的な手法であり、個体と期間の両方の固定効果を考慮する。これは、個人ごとの不変な特性と時間ごとの共通のショックを制御することにより、処置効果をより正確に推定することを可能にする。
回帰分析としては、TWFE は本質的に、treat
変数と
period
変数の間の交互作用を推定することになる。この交互作用項は、i(fact_var, num_var, reference)
構文を使って実装できる。具体的には、i(period, treat, 5)
で交互作用項のセットを作成する。
上記では、各期間について1つのtreatダミーを設定するが、参照期間として期間5を除外する。期間5は、処置の直前の期間であり、処置効果を評価するための基準点として機能する。以下のコードは、fixest
パッケージを使用して二元固定効果モデルを推定する。
est_did = feols(y ~ x1 + i(period, treat, 5)
| id + period,
data = base_did)
etable(est_did)
## est_did
## Dependent Var.: y
##
## x1 0.9735*** (0.0457)
## treat x period = 1 -1.403 (1.110)
## treat x period = 2 -1.248 (1.093)
## treat x period = 3 -0.2732 (1.107)
## treat x period = 4 -1.796 (1.088)
## treat x period = 6 0.7845 (1.028)
## treat x period = 7 3.599** (1.102)
## treat x period = 8 3.812** (1.248)
## treat x period = 9 4.731*** (1.097)
## treat x period = 10 6.606*** (1.120)
## Fixed-Effects: ------------------
## id Yes
## period Yes
## ___________________ __________________
## S.E.: Clustered by: id
## Observations 1,080
## R2 0.54764
## Within R2 0.38963
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
処置効果をグラフに表示するには、iplot
関数を使用することができる。iplot
関数
は、i()
で作成された変数の係数を表示し、その係数のみを表示する。x1
を含むすべての係数を表示したい場合は、代わりに
coefplot
関数を使用することができる。
iplot(est_did)