由于你的数据是非平衡面板,导致theta不是一个单一的值,而是一个分布函数
e(theta)不在是一个scalar了,而是matrix 矩阵,存储了几个关键的theta的值。
因此,你用原来的命令无法赋值。
. xtreg rca3 pro_adj human investment2 journal3 lnwage_2005 lnresourcesrent institution2 train2_10000 roads2
> _10000 phone2_10000 internet mobile power banking2,re theta
Random-effects GLS regression Number of obs = 321
Group variable: reporter Number of groups = 36
R-sq: within = 0.2719 Obs per group: min = 7
between = 0.2733 avg = 8.9
overall = 0.2717 max = 9
Wald chi2(14) = 114.26
corr(u_i, X) = 0 (assumed) Prob > chi2 = 0.0000
------------------- theta --------------------
min 5% median 95% max
0.9100 0.9158 0.9206 0.9206 0.9206
---------------------------------------------------------------------------------
rca3 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------------+----------------------------------------------------------------
pro_adj | -.0056251 .0035549 -1.58 0.114 -.0125925 .0013424
human | -18.87636 9.411122 -2.01 0.045 -37.32182 -.4308994
investment2 | 10.0031 14.26139 0.70 0.483 -17.94872 37.95492
journal3 | .019662 .01352 1.45 0.146 -.0068368 .0461608
lnwage_2005 | -306.689 252.0772 -1.22 0.224 -800.7513 187.3732
lnresourcesrent | -284.8157 118.1214 -2.41 0.016 -516.3294 -53.302
institution2 | 1215.538 166.6293 7.29 0.000 888.9508 1542.126
train2_10000 | .5679309 1.818069 0.31 0.755 -2.995419 4.131281
roads2_10000 | .0932056 .0417015 2.24 0.025 .0114722 .1749389
phone2_10000 | -.000161 .0007364 -0.22 0.827 -.0016043 .0012824
internet | .1264485 .0730626 1.73 0.084 -.0167516 .2696486
mobile | .0117274 .034493 0.34 0.734 -.0558776 .0793325
power | -.0743867 .0639151 -1.16 0.244 -.199658 .0508845
banking2 | 2.010544 4.237543 0.47 0.635 -6.294887 10.31598
_cons | 4837.56 2267.667 2.13 0.033 393.0143 9282.105
----------------+----------------------------------------------------------------
sigma_u | 2915.2261
sigma_e | 696.61165
rho | .94598419 (fraction of variance due to u_i)
---------------------------------------------------------------------------------
*回归结束,用下面的命令可以看到一些保留的值。*下面蓝色标出的部分就是theta的值
. ereturn list
scalars:
e(rank) = 15
e(df_m) = 14
e(chi2) = 114.2622510945879
e(p) = 8.30623399432e-18
e(sigma_u) = 2915.226080767561
e(sigma_e) = 696.6116478137005
e(sigma) = 2997.300600516591
e(rho) = .9459841938104913
e(rmse) = 710.567035530356
e(N) = 321
e(Tbar) = 8.898479646885729
e(Tcon) = 0
e(N_g) = 36
e(g_min) = 7
e(g_avg) = 8.916666666666666
e(g_max) = 9
e(thta_min) = .9100491333671547
e(thta_5) = .9158160864982854
e(thta_50) = .9205993775518484
e(thta_95) = .9205993775518484
e(r2_w) = .2718741999732975
e(r2_b) = .2732543752521467
e(r2_o) = .2716755391342357
e(thta_max) = .9205993775518484
macros:
e(cmdline) : "xtreg rca3 pro_adj human investment2 journal3 lnwage_2005 lnresourcesrent inst.."
e(cmd) : "xtreg"
e(marginsnotok) : "E U UE SCore STDP XBU"
e(predict) : "xtrere_p"
e(model) : "re"
e(ivar) : "reporter"
e(vce) : "conventional"
e(depvar) : "rca3"
e(chi2type) : "Wald"
e(properties) : "b V"
matrices:
e(b) : 1 x 15
e(V) : 15 x 15
e(theta) : 1 x 5
e(VCEf) : 15 x 15
e(bf) : 1 x 15
functions:
e(sample)
*对样本进行描述统计
* internet | 323
* banking2 | 322
*这两个变量有问题,如果剔除这两个变量,就是平衡面板了,原先的命令就可以用了
. sum rca3 pro_adj human investment2 journal3 lnwage_2005 lnresourcesrent institution2 train2_10000 roads2_1
> 0000 phone2_10000 internet mobile power banking2
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
rca3 | 324 8566.545 3699.121 237.69 15848.18
pro_adj | 324 26822.86 18793.2 6251.42 141935.8
human | 324 48.13435 23.61037 2.06 95.07
investment2 | 324 22.68725 5.753438 11.69 57.71
journal3 | 324 31791.23 37283.21 179 123437
-------------+--------------------------------------------------------
lnwage_2005 | 324 8.798781 1.422244 5.687755 11.4656
lnresource~t | 324 9.466232 1.595493 6.499922 13.70592
institution2 | 324 6.872222 .9987763 4.2 8.7
train2_10000 | 324 276.642 267.1823 4 905
roads2_10000 | 324 7512.855 7803.087 437 40324
-------------+--------------------------------------------------------
phone2_10000 | 324 320807.6 470207.2 4716 2936070
internet | 323 3052.133 2736.139 14.8 9060
mobile | 324 5997.938 3822.962 21.2 13900
power | 324 5545.171 5655.268 342.78 31848.6
banking2 | 322 63.50857 48.34157 4.12 208.14
*如果不剔除那两个变量
*加入用 e(thta_max) 代替原来的e(theta),则后面就可以运行
. scalar theta= e(thta_max)
.
. global yandxforhausman rca3 pro_adj human investment2 journal3 lnwage_2005 lnresourcesrent institution2 tr
> ain2_10000 roads2_10000 phone2_10000 internet mobile power banking2
. sort reporter
*这里的错误时引号的问题,
.
. foreach x of varlist $yandxforhausman{
2. by reporter: egen mean`x' =mean(`x')
3. gen md`x'=`x'-mean`x'
4. gen red`x'=`x'-theta*mean`x'
5. }
(1 missing value generated)
(1 missing value generated)
(2 missing values generated)
(2 missing values generated)
.
. quietly xtreg redrca3 redpro_adj redhuman redinvestment2 redjournal3 redlnwage_2005 redlnresourcesrent red
> institution2 redtrain2_10000 redroads2_10000 redphone2_10000 redinternet redmobile redpower redbanking2 md
> pro_adj mdhuman mdinvestment2 mdjournal3 mdlnwage_2005 mdlnresourcesrent mdinstitution2 mdtrain2_10000 mdr
> oads2_10000 mdphone2_10000 mdinternet mdmobile mdpower mdbanking2, vce (cluster reporter)
.
. test mdpro_adj mdhuman mdinvestment2 mdjournal3 mdlnwage_2005 mdlnresourcesrent mdinstitution2 mdtrain2_10
> 000 mdroads2_10000 mdphone2_10000 mdinternet mdmobile mdpower mdbanking2
( 1) mdpro_adj = 0
( 2) mdhuman = 0
( 3) mdinvestment2 = 0
( 4) mdjournal3 = 0
( 5) mdlnwage_2005 = 0
( 6) mdlnresourcesrent = 0
( 7) mdinstitution2 = 0
( 8) mdtrain2_10000 = 0
( 9) mdroads2_10000 = 0
(10) mdphone2_10000 = 0
(11) mdinternet = 0
(12) mdmobile = 0
(13) mdpower = 0
(14) mdbanking2 = 0
chi2( 14) = 97.31
Prob > chi2 = 0.0000