ミンサー方程式をどう解釈すべきか?(賃金・学歴・社会人歴)

 計量経済学や労働経済学で言及されるミンサー方程式(ミンサー型賃金関数)をどう解釈すべきでしょうか?

要約

(1)問い

 ミンサー方程式をどう解釈すべきでしょうか?

(2)答え

 次のミンサー方程式

$$\log_e(賃金率)$$

$$=\beta_0 + \beta_1 教育年数 $$

$$+\beta_2 社会人歴+ \beta_3 社会人歴^2+誤差項$$

を考えるとき、回帰係数は次のように解釈できます。

$$教育の収益率≒\beta_1$$

$$賃金率が最大になる社会人歴=-\frac{\beta_2}{\beta_3}$$

(3)意義

 計量経済学で最も有名な重回帰モデルが理解できます。

前提

 問いを「ミンサー方程式をどう解釈すべきでしょうか?」とします。

 この記事では以下の定義、仮定、事実を用います。

(1)定義

ミンサー方程式

 ミンサー方程式とは、目的変数が対数賃金率、説明変数が教育年数と社会人歴の重回帰モデルです。具体的には、下式で表されます。

$$\log_e(賃金率)$$

$$=\beta_0 + \beta_1 教育年数 $$

$$+\beta_2 社会人歴+ \beta_3 社会人歴^2+誤差項$$

$$e:ネイピア数、2.718281・・・$$

ミンサー方程式(変形後)

 なお、ミンサー方程式の目的変数を賃金に書き換えると、下式になります。

$$賃金率=e^{(\beta_0 +\beta_1 教育年数 + \beta_2 社会人歴 +\beta_3 社会人歴^2 +誤差項)}$$

$$e:ネイピア数、2.718281・・・$$

 この場合は、ミンサー型賃金関数と言えそうです。

重回帰モデル

 重回帰モデルとは、k種類の説明変数によって目的変数を説明できると考えるモデルのうち、

$$目的変数=\beta_0 + \beta_1 説明変数_1+\beta_2 説明変数_2 +$$

$$ \cdots + \beta_k 説明変数_k + 誤差項$$

という式で表されるモデルです。

賃金率

 賃金率とはある単位あたりの賃金です。時間単位あたり、成果単位あたりなどあります。この記事では時給と考えていただいて構いません。

教育年数

 教育年数を「小学校、中学校、高等学校、高等専門学校、大学、大学院などで教育を受けた年数」と定義します。

社会人歴

 社会人歴を「最終学歴の学校を卒業してから現在までの、潜在的には就業していた期間」と定義します。潜在経験年数、就業経験年数と呼ばれたりもします。

教育の収益率

 教育の収益率とは「1年教育年数を増やすと、増える賃金の割合」です。

$$教育の収益率=\frac{F(t+1)-F(t)}{F(t)}$$

$$F(t):教育年数tのときの賃金$$

(2)仮定する条件

 ミンサー方程式は次を仮定しています。

・教育の収益率は一定

・(上に)凸の賃金カーブが存在する

(3)事実

ミンサー方程式における教育の収益率の公式

 ミンサー方程式において教育の収益率は

$$教育の収益率=e^{\beta_1}-1$$

であることが知られています。証明はこの記事の最後(付録)に載せました。

推計結果

 230万人ついてのミンサー方程式の推計結果として、次が報告されています。(川口(2011)

$$\log_e(賃金率)$$

$$=1.02 + 0.10 教育年数 $$

$$+0.06 社会人歴+ 0.0008 社会人歴^2+誤差項$$

方法

(1)問題の構造

 「ミンサー方程式をどう解釈すべきか」という問いは

・β1とは何か

・β2、β3とは何か

に分類できます。

(2)論点と判断基準

 理解を得るには、実際に推計されたミンサー方程式を解釈するのがよいでしょう。

 そこで、論点を「230万人について分析したミンサー方程式を解釈できるか?」としましょう。

 推計結果に書かれている回帰係数だけで解釈できれば、答えの要件を満たしたとします。

結果

 次のミンサー方程式①を解釈してみます。

$$\log_e(賃金率)$$

$$=1.02 + 0.10 教育年数 $$

$$+0.06 社会人歴+ 0.0008 社会人歴^2+誤差項$$

(1)教育年数

β1の解釈

 ミンサー方程式における教育の収益率の公式、ミンサー方程式①より

$$教育の収益率=e^{\beta_1}-1$$

$$=e^{0.10}-1=0.1051709・・・$$

です。したがって、β1=0.10のときの教育の収益率は10.5 %です。

 さて、次の仮説

$$教育の収益率≒\beta_1$$

が思い浮かびます。ここで

という数学的事実により、β1が0に近いとき

$$教育の収益率=e^{\beta_1}-1≒\beta_1$$

が言えます。

 したがって、β1は教育の収益率の近似値とみなせます。

図示

 解釈だけだとつまらないので図示してみます。ミンサー方程式①より

$$賃金率=e^{0.10 教育年数 +他}$$

です。ここで「高校卒業時の教育年数を0」「高卒の賃金率を1」と仮定すると、下図が描けます。

・中卒の賃金率は0.74(高卒の約4分の3)

・大卒の賃金率は1.49(高卒の約1.5倍)

と計算できます。

(2)社会人歴

β2、β3の解釈

 ミンサー方程式の右辺が最大値を取るときに、賃金率は最大値をとります。右辺の社会人歴のみに注目し、他の変数が一定とすると

$$\beta_2 社会人歴 + \beta_3 社会人歴^2 + 他$$

$$=0.06社会人歴-0.0008社会人歴^2 +他$$

$$=-0.0008(社会人歴-37.5)^2+1.125 +他$$

です。したがって、賃金率の最大値は、社会人歴37.5年で訪れます。

 平方完成または微分の性質より

$$賃金率が最大値を取る社会人歴=-\frac{\beta_2}{\beta_3}$$

です。

図示

 解釈だけだとつまらないので図示してみます。ミンサー方程式①より

$$賃金率=e^{0.06 社会人歴+ 0.0008 社会人歴^2 +他}$$

です。ここで「高校卒業時の賃金率を1000円」と仮定すると、下図が描けます。

 上図より

・10年目の賃金率は1682円

・50年目の賃金率は2718円

・最大値は38年目の3079円

です。

考察

(1)結論

 結論は

$$教育の収益率≒\beta_1$$

$$賃金率が最大になる社会人歴=-\frac{\beta_2}{\beta_3}$$

です。

(2)妥当性評価

 いくつかの批判ができます。論点は「教育年数が1年増えると、増加する賃金率が一定という仮定は正しいか」でしょう。

 「難関大学での1年」と「非難関大学で1年」が同じならば、がんばって受験する理由がありません。

 また、「高校での1年」「大学での1年」「修士での1年」「博士での1年」も同じとは思えません。もしかしたら、大学院の1年は賃金率にマイナスの影響を及ぼすかもしれません。

 そして、留年や浪人は教育年数を増やしますが、これはおそらく賃金率マイナス要因でしょう。

(3)意義

 教育がどれだけ賃金を増やすかという教育の意思決定に関わるデータ分析をする基本になります。

 また、計量経済学の教育現場ではたびたび取り上げられる有名なモデルです。

付録1:教育の収益率

 tを教育年数とし、社会人歴と誤差項が一定とすると、ミンサー方程式は

$$賃金率=e^{ \beta_1 t +他}$$

と書き換えられます。このとき、教育の収益率は

$$教育の収益率=\frac{e^{\beta_1(t+1) +他}-e^{\beta_1t +他}}{e^{\beta_1t +他}}$$

です。これを計算すると

$$教育の収益率=\frac{(e^{\beta_1} \times e^{\beta_1 t +他})-(1 \times e^{\beta_1t +他})}{e^{\beta_1t +他}}$$

$$=\frac{(e^{\beta_1}-1)(e^{\beta_1t +他})}{e^{\beta_1t +他}}$$

$$=e^{\beta_1}-1$$

 したがって、

$$教育の収益率=e^{\beta_1}-1$$

付録2:Rコード

 シミュレーションは、R言語を用いて行いました。R言語については「しまうまのRでデータ分析入門」をご覧ください。

 美しい図示のため、パッケージとしてggplot2を用いました。

#パッケージの呼び出し
library(ggplot2)

 入力コード①↓

data_0 <- data.frame(X = x <- seq(-1,1,0.1)) #0から4まで、0.1ずつ数字を作り、xに代入し、それをXとする

#関数の作成
func_1 <- function(x) (exp(x)-1)
func_2 <- function(x) (x)

#描画
ggplot(data = data_0, aes(x = X))+  #data0の範囲、横軸にXを表示
  stat_function(fun = func_1)+ #関数func_1を描画
  stat_function(fun = func_2)+ #関数func_1を描画
  scale_x_continuous(limits = c(-0.5, 0.5),breaks = seq(-0.5,0.5,0.1)) 

 出力結果①↓

 入力コード②↓

data_0 <- data.frame(X = x <- seq(-4,4,0.1))
func_1 <- function(x) (exp(1)^(0.1*x)) 
 
ggplot(data = data_0, aes(x = X))+ 
  stat_function(fun = func_1)+ 
  scale_x_continuous(limits = c(-4, 4),breaks = seq(-4,4,1)) 

 出力結果②↓

 入力コード③↓

data_0 <- data.frame(X = x <- seq(0,50,0.1))
func_1 <- function(x) (1000*exp(1)^(0.06*x-0.0008 *x^2))
 
ggplot(data = data_0, aes(x = X))+
  stat_function(fun = func_1)
  scale_x_continuous(limits = c(, 4),breaks = seq(-4,4,1))

 出力結果③↓

※サムネイルの画像→Unsplash

コメント欄 お気軽にコメントをお寄せください!

タイトルとURLをコピーしました