データとしてパッケージplmに含まれるGrunfeldデータと呼ばれるアメリカの有名企業に関するパネルデータを用いる。
これは10の企業(\(N=10\))に関する20期分(\(T=20\))のデータで、次のような変数を含んでいる。
inv:総投資(単位:100万ドル)
value:企業価値(単位:100万ドル)
capital:有形固定資産(単位:100万ドル)
パッケージからデータを読み込む。
## firm year inv value capital
## 1 1 1935 317.6 3078.5 2.8
## 2 1 1936 391.8 4661.7 52.6
## 3 1 1937 410.6 5387.1 156.9
## 4 1 1938 257.7 2792.2 209.2
## 5 1 1939 330.8 4313.2 203.4
## 6 1 1940 461.2 4643.9 207.2
1行目は変数の名前、2列目は企業番号(\(i=1,\ldots,10\))、3列目は西暦(\(1935, \ldots, 1954\))を表す。
他のパネルデータをパッケージplmを用いて分析する際も、データをこのように並べておかなくてはならない。
つまり、まず\(i=1\)を固定し、\(i=1\)の\(t\)に関するデータを並べ、並べ終わったら次は\(i=2\)を固定し、\(i=2\)の \(t\)に関するデータを並べるというような並べ方を\(i=1,\ldots,N\)までやるということ。
ここで、\(N\)はクロス・セクションの個体数(企業や個人の数)を表す。
投資がどのような要因によって決定されるかを分析するために、以下のモデルを考える。
\[ inv_{it} = \alpha_{i} + \beta_{1} value_{it} + \epsilon_{it} \qquad (i=1,\ldots,10, \quad t = 1, \ldots, 20) \]
まず、\(\alpha_{1} = \alpha_{2} = \cdots = \alpha_{10}\)であると想定してOLSで係数\(\beta_1\)を推定する。
このような推定法をpooled OLSと呼ぶ。
関数plmのオプションでmodel = "pooling"と指定する。
## Pooling Model
##
## Call:
## plm(formula = inv ~ value, data = Grunfeld, model = "pooling")
##
## Balanced Panel: n = 10, T = 20, N = 200
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -344.0841 -36.8112 1.2994 33.8427 702.8197
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) -6.9762843 10.2727240 -0.6791 0.4979
## value 0.1413860 0.0060436 23.3944 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 9359900
## Residual Sum of Squares: 2486600
## R-Squared: 0.73433
## Adj. R-Squared: 0.73299
## F-statistic: 547.297 on 1 and 198 DF, p-value: < 2.22e-16
valueの係数\(\beta_{1}\)の推定値Estimateは正で、\(p\)値Pr(>|t|)はほとんど0であることから、企業価値valueが大きいほど総投資invが増加する傾向にあることがわかる。
ちなみに、これはただのOLS推定なので、lm関数を用いても同じ推定結果を得る。
次に、個別効果が企業間で異なるものとして、固定効果モデルを推定する。
具体的には、企業\(i=1,2,\ldots,10\)についてのダミー変数(企業\(i\)なら1、そうでなければ0となる変数)\(D_{i}\)の係数を個別効果\(\alpha_{1}, \alpha_{2}, \ldots, \alpha_{10}\)として推定する。
このような推定法をLSDV(least squares dummy variable)推定またはwithin推定と呼ぶ。
関数plmのオプションでmodel = "within"と指定する。
## Oneway (individual) effect Within Model
##
## Call:
## plm(formula = inv ~ value, data = Grunfeld, model = "within")
##
## Balanced Panel: n = 10, T = 20, N = 200
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -397.409491 -13.287065 -0.051989 12.538455 639.480792
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## value 0.189878 0.017994 10.552 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 2244400
## Residual Sum of Squares: 1412300
## R-Squared: 0.37072
## Adj. R-Squared: 0.33743
## F-statistic: 111.345 on 1 and 189 DF, p-value: < 2.22e-16
上記のpooled OLSの推定結果と同様に、係数\(\beta_{1}\)の推定値はどちらも有意に正である。
個別効果\(\alpha_{1}, \alpha_{2}, \cdots, \alpha_{10}\)の推定値を見るには関数fixef()を用いる。
## Estimate Std. Error t-value Pr(>|t|)
## 1 -214.880 80.345 -2.6745 0.0081406 **
## 2 36.070 40.405 0.8927 0.3731551
## 3 -266.324 39.924 -6.6707 2.733e-10 ***
## 4 -45.502 23.005 -1.9779 0.0493930 *
## 5 17.852 19.773 0.9028 0.3677720
## 6 -24.312 20.754 -1.1715 0.2428890
## 7 19.154 19.517 0.9814 0.3276439
## 8 -84.499 22.790 -3.7078 0.0002747 ***
## 9 -21.464 20.240 -1.0604 0.2903001
## 10 -10.382 19.372 -0.5359 0.5926369
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
1番左の番号は個体(企業)\(i\)を表す。
例えば、\(\alpha_{1}\)の推定値は-215、\(\alpha_{3}\)の推定値は-266である。
それぞれの\(i\)について\(\alpha_{i} = 0\)かどうかの\(t\)検定の\(t\)値t-valueと\(p\)値Pr(>|t|)も与えられる。
有意水準5%で企業\(i = 1, 3, 4, 8\)について有意な負の個別効果がある。
個別効果の平均は次のように確認できる。
## [1] -59.42872
場合によっては(例えば、企業間の比較を簡単にするために)、個別効果のその平均からの乖離を見たいときがある。
これは次のように確認できる。
## Estimate Std. Error t-value Pr(>|t|)
## 1 -155.451 80.345 -1.9348 0.0545076 .
## 2 95.498 40.405 2.3635 0.0191178 *
## 3 -206.895 39.924 -5.1822 5.601e-07 ***
## 4 13.927 23.005 0.6054 0.5456393
## 5 77.280 19.773 3.9083 0.0001294 ***
## 6 35.117 20.754 1.6921 0.0922778 .
## 7 78.582 19.517 4.0265 8.191e-05 ***
## 8 -25.071 22.790 -1.1001 0.2726988
## 9 37.965 20.240 1.8757 0.0622376 .
## 10 49.047 19.372 2.5319 0.0121585 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ここでの\(t\)値t-valueは、乖離が0かどうか、すなわち、それぞれの個別効果が個別効果全体の平均から異なるかどうかを検定していることに注意する必要がある。
平均からの相対的な効果を見ると、企業\(i=2,5,7,10\)は有意な正の個別効果が、企業\(i=3\)は有意な負の個別効果があることがわかる。
ここで、個別効果があるかどうかの\(F\)検定を行う。
帰無仮説を「全ての個別効果が同じ値」として、次のように設定する。
\[ H_{0}: \alpha_{1} = \alpha_{2} = \cdots = \alpha_{10} \]
帰無仮説のもとでのpooled OLS推定の結果poolと、そうでない(個別効果がある)LSDV推定の結果feをインプットとして、pFtest()関数を用いて\(F\)検定を行う。
feを、2番目にpooled OLS推定の結果poolと指定することに注意する。##
## F test for individual effects
##
## data: inv ~ value
## F = 15.974, df1 = 9, df2 = 189, p-value < 2.2e-16
## alternative hypothesis: significant effects
\(F\)値Fが15.97であり、これは第1自由度99、第2自由度189の\(F\)分布に従う。
\(p\)値p-valueが非常に小さいので、帰無仮説は棄却される。
つまり「個別効果はある」と考えられる。
\[ inv_{it} = \mu_{\alpha} + \alpha_{i} + \beta_{1} value_{it} + \epsilon_{it} \qquad (i=1,\ldots,10, \quad t = 1, \ldots, 20) \]
ただし、次のように仮定する。 \[ E(\alpha_{i}) = 0, \quad V(\alpha_{i}) = \sigma_{\alpha}^{2}, \quad E(\epsilon_{it}) = 0, \quad V(\epsilon_{it}) = \sigma_{\epsilon}^{2}, \quad Cov(\alpha_{i}, \epsilon_{it}) = 0 \]
また、\(\mu_{\alpha}\)は個別効果全体の平均を表す。
このモデルは、一般化最小2乗法(generalized least squares: GLS)によって推定できる。
関数plm()でオプションをmodel = "random"と指定する。
## Oneway (individual) effect Random Effect Model
## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = inv ~ value, data = Grunfeld, model = "random")
##
## Balanced Panel: n = 10, T = 20, N = 200
##
## Effects:
## var std.dev share
## idiosyncratic 7472.57 86.44 0.556
## individual 5977.20 77.31 0.444
## theta: 0.7574
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -392.040 -11.740 5.369 16.595 649.679
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) -34.135038 29.244485 -1.1672 0.2431
## value 0.166494 0.013439 12.3886 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 2663000
## Residual Sum of Squares: 1500100
## R-Squared: 0.43666
## Adj. R-Squared: 0.43382
## Chisq: 153.478 on 1 DF, p-value: < 2.22e-16
Effects:の部分におけるvarの列でidiosyncraticの横の数値が\(\sigma_{\epsilon}^{2}\)の推定値、individualの横の数値が\(\sigma_{\alpha}^{2}\)の推定値を表す。
Coefficients:の部分におけるEstimateの列の(Intercept)の横の数値が\(\mu_{\alpha}\)の推定値、valueの横の数値が\(\beta_{1}\)の推定値を表す。
\(\beta_{1}\)の推定値は正に有意であり、LSDVによる推定値より小さい。
GLS推定では、\(\alpha_{i}\)と説明変数の間に相関があると推定量が一致性を失う。
よって、この相関があるかないかを確かめることは重要である。
相関が0という帰無仮説を検定するための検定としてハウスマン検定がある。
この検定は、以下のようにLSDV推定の結果feとGLS推定の結果reの2つをインプットとして、phtest()関数を用いて行うことができる。
##
## Hausman Test
##
## data: inv ~ value
## chisq = 3.8188, df = 1, p-value = 0.05068
## alternative hypothesis: one model is inconsistent
\(p\)値p-valueが0.05068なので、有意水準5%では帰無仮説は棄却されないが、10%では棄却される。
つまり、GLS推定には(やや弱い意味で)問題があるということになる。