This version: 2025-06-30
fixest
パッケージを使用して、操作変数法(2段階最小二乗法)を実行し、賃金関数を推定する。fixest
パッケージのインストールは完了していることを前提とする。完了していない場合は、以下のコードをコンソールに入力してインストールすること。install.packages("fixest")
wooldridge
パッケージをインストールする必要がある。以下のコードをコンソールに入力してインストールすること。install.packages("wooldridge")
その上で、パッケージを読み込む。
library(wooldridge)
library(fixest)
次に、賃金データmroz
を読み込む。
data(mroz)
このデータには、女性の賃金や教育年数、経験年数などの情報が含まれている。
以下でデータのサンプルを表示する。
head(mroz)
## inlf hours kidslt6 kidsge6 age educ wage repwage hushrs husage huseduc
## 1 1 1610 1 0 32 12 3.3540 2.65 2708 34 12
## 2 1 1656 0 2 30 12 1.3889 2.65 2310 30 9
## 3 1 1980 1 3 35 12 4.5455 4.04 3072 40 12
## 4 1 456 0 3 34 12 1.0965 3.25 1920 53 10
## 5 1 1568 1 2 31 14 4.5918 3.60 2000 32 12
## 6 1 2032 0 0 54 12 4.7421 4.70 1040 57 11
## huswage faminc mtr motheduc fatheduc unem city exper nwifeinc lwage
## 1 4.0288 16310 0.7215 12 7 5.0 0 14 10.910060 1.21015370
## 2 8.4416 21800 0.6615 7 7 11.0 1 5 19.499981 0.32851210
## 3 3.5807 21040 0.6915 12 7 5.0 0 15 12.039910 1.51413774
## 4 3.5417 7300 0.7815 7 7 5.0 0 6 6.799996 0.09212332
## 5 10.0000 27300 0.6215 12 14 9.5 1 7 20.100058 1.52427220
## 6 6.7106 19495 0.6915 14 7 7.5 1 33 9.859054 1.55648005
## expersq
## 1 196
## 2 25
## 3 225
## 4 36
## 5 49
## 6 1089
mroz2 <- subset(mroz, mroz$wage > 0)
賃金は、経験年数や教育年数などの要因の影響を受けると考えられるが、教育年数は、内生的な変数である可能性がある。
つまり、観測されない能力が、教育年数と賃金の両方に影響している可能性がある。その場合、通常のOLSでは、教育年数が賃金に与える影響を正確に推定できない。
そこで、教育年数にのみ影響を与える変数を操作変数(instrumental variable, IV)として使用することで、教育年数の効果を正確に推定することができる。
##
## Attaching package: 'ggdag'
## The following object is masked from 'package:stats':
##
## filter
まず、教育年数の決定要因を推定する。
従属変数は、教育年数educ
である。
説明変数は、以下の通りである。
exper
expersq
さらに、操作変数(instrumental variables, IV)として、母親の教育年数、父親の教育年数、夫の教育年数を使用する。
motheduc
fatheduc
huseduc
以下のコードを実行して、第1段階目の回帰を行う。
stage1 <- feols(educ ~ exper + expersq + motheduc + fatheduc + huseduc, data = mroz2)
etable
関数を使用して、結果を表示する:
etable(stage1)
## stage1
## Dependent Var.: educ
##
## Constant 5.538*** (0.4598)
## exper 0.0375 (0.0343)
## expersq -0.0006 (0.0010)
## motheduc 0.1142*** (0.0308)
## fatheduc 0.1061*** (0.0295)
## huseduc 0.3753*** (0.0296)
## _______________ __________________
## S.E. type IID
## Observations 428
## R2 0.42859
## Adj. R2 0.42182
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
推定の従属変数は、女性の賃金wage
の対数である。
説明変数は、以下の通りである。
educ
の第1段階目の回帰から得られた予測値educ_hat
exper
expersq
Rのfixest
パッケージでは、第1段階と第2段階の回帰を同時に行うことができる。以下のコードを実行して、2段階最小二乗法を実行する。
stage2 <- feols(log(wage) ~ exper + expersq
| educ ~ motheduc + fatheduc + huseduc,
data = mroz2)
etable
関数を使用して、結果を表示する:
etable(stage2)
## stage2
## Dependent Var.: log(wage)
##
## Constant -0.1869 (0.2854)
## educ 0.0804*** (0.0218)
## exper 0.0431** (0.0133)
## expersq -0.0009* (0.0004)
## _______________ __________________
## S.E. type IID
## Observations 428
## R2 0.14952
## Adj. R2 0.14351
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1