This version: 2025-06-29


1 はじめに

  • Wooldridge (2023) のChapter 2: The Simple Regression Modelの賃金式の推定を行う。

2 Rマークダウンファイルの生成は以下の通り。

2.1 Step 1

  • イメージ:

2.2 Step 2

Titleは、R11などのように、適当な番号を入れること。

  • イメージ:

2.3 Step 3

  • イメージ:

2.4 Step 4

保存するファイルの名前は、R11などのように、適当な番号を入れること。

  • イメージ:

3 パッケージのインストール

  • まず、wooldridgeパッケージをインストールする必要がある。
  • コンソールに以下のコードを入力して、パッケージをインストールする。
install.packages("wooldridge")
  • イメージ:

4 データの読み込み

  • wooldridgeパッケージを読み込む: library(wooldridge)
  • wage1データセットを読み込む: data("wage1")
library(wooldridge)
data("wage1")
  • イメージ:

このデータは、1976年のCurrent Population Survey(現行人口調査)のデータであり、Henry Farberが1988年にMITでWooldridgeと同僚であった際に収集したものである。

educ:教育年数 wage:平均時給 lwage:平均時給の対数値

5 散布図

まず、plot()関数を用いて、wageeducの2つの変数の散布図を作成し、それらの関係にどのようなパターンがあるかを確認する。

plot(y = wage1$wage, x = wage1$educ)

平均的にみて、教育年数が多いほど賃金が高くなる傾向があるように見える。

6 線形回帰モデルの推定

6.1 モデル

このテキストの例では、「教育年数が1年増加したときのリターン」、すなわち教育年数が1年増加したときに賃金が何パーセント変化するかに関心がある。そのためには wage の対数を取った変数、すなわち $log($wage$)$ を使用する必要がある。

lwage(賃金の対数)と educ(教育年数)との関係を推定する線形モデルを構築する:

\[ \widehat{log(wage)} = \beta_0 + \beta_1 \cdot educ \]

6.2 推定

log_wage_model <- lm(lwage ~ educ, data = wage1)

イメージ

6.3 推定結果の表示

以下のコードで回帰結果を表示する:

summary(log_wage_model)
## 
## Call:
## lm(formula = lwage ~ educ, data = wage1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.21158 -0.36393 -0.07263  0.29712  1.52339 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.583773   0.097336   5.998 3.74e-09 ***
## educ        0.082744   0.007567  10.935  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4801 on 524 degrees of freedom
## Multiple R-squared:  0.1858, Adjusted R-squared:  0.1843 
## F-statistic: 119.6 on 1 and 524 DF,  p-value: < 2.2e-16

イメージ

7 Appendix: 複雑な散布図

  • pch = 21は、円形のマーカーを使用するために指定されている。
  • cex=1.25, xaxt="n", frame = FALSE,は、 プロットのサイズを調整し、x軸の目盛りを表示しないようにし、フレームを非表示にするために使用される。
  • axis(side = 1, at = c(0,6,12,18))は、x軸の目盛りを0, 6, 12, 18年に設定するために使用される。
  • rug(wage1$wage, side=2, col="darkgreen")は、 y軸の賃金の値に沿って、賃金の分布を示すために使用される。
plot(y = wage1$wage, x = wage1$educ, 
     col = "darkgreen", 
     pch = 21, 
     bg = "lightgrey",     
     cex=1.25, xaxt="n", frame = FALSE, 
     main = "Wages vs. Education, 1976", 
     xlab = "years of education", 
     ylab = "Hourly wages")
axis(side = 1, at = c(0,6,12,18))
rug(wage1$wage, side=2, col="darkgreen")

  • イメージ: