Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: Panel with negative Hausman
From
sam sampton <[email protected]>
To
[email protected]
Subject
st: Panel with negative Hausman
Date
Wed, 20 Apr 2011 12:02:29 -0700 (PDT)
Dear Stata Users,
Dealing with negative Hausman in panel est. I'm trying to run a version of this
test (retrieved from the archive) under STATA 11 but got error:
---------------------------------- BEGIN --- foreric.do --- CUT HERE -------
local id myid local depvar lnuncs local varlist lngdp ecrise ecfall urban
lnhouse femalepa male1544 /* */ lndiscr lnfree lnpts latin ssa deathp
rulelaw protest cathol /* */ muslim transiti lnethv oecd war year89 year92
year95 xtreg `depvar' `varlist', re hausman, save xthaus xtreg `depvar'
`varlist', fe hausman, less tokenize `varlist' local i 1 while "``i''" != "" {
qui by `id': gen double mean`i' = sum(``i'') / _n qui by `id': replace
mean`i' = mean`i'[_n] qui by `id': gen double diff`i' = ``i'' - mean`i' local
newlist `newlist' mean`i' diff`i' local i = `i' + 1 } xtreg `depvar'
`newlist' , re qui test mean1 = mean1 , notest /* clear test */ local i 2
while "``i''" != "" { if `b'[1,colnumb(`b', "mean`i'")] != 0 & /* */
`b'[1,colnumb(`b', "diff`i'")] != 0 { qui test mean`i' = diff`i' , accum
notest } local i = `i' + 1 } test ---------------------------------- END
--- foreric.do --- CUT HERE -------
Resulting in (with my own varlist)
> /* Perform suest test rather than Husman test (negative CHI2!) */
> local id id;
. local `depvar' y1;
. local `varlist' x1 x2 x3 x4 x5;
>
> tokenize `varlist';
. local i 1
> while "``i''" != "" {
> qui by `id': gen double mean`i' = sum(``i'') / _n
> qui by `id': replace mean`i' = mean`i'[_N]
> qui by `id': gen double diff`i' = ``i'' - mean`i'
> local newlist `newlist' mean`i' diff`i'
>
> local i = `i' + 1
> }
> ;
. xtreg `depvar' `newlist' ;
Random-effects GLS regression Number of obs = 477
Group variable: id Number of groups = 9
R-sq: within = 0.6599 Obs per group: min = 53
between = 0.9421 avg = 53.0
overall = 0.8080 max = 53
Random effects u_i ~ Gaussian Wald chi2(5) = 884.81
corr(u_i, X) = 0 (assumed) Prob > chi2 = 0.0000
------------------------------------------------------------------------------
y1 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x1 | .7123138 .0892791 7.98 0.000 .53733 .8872977
x2 | .0226081 .0054684 4.13 0.000 .0118903 .033326
x3 | -.0399303 .0638208 -0.63 0.532 -.1650167 .0851561
x4 | -.3278316 .0913511 -3.59 0.000 -.5068766 -.1487867
x5 | .0297908 .0152927 1.95 0.051 -.0001824 .059764
_cons | 3.4797 .7820005 4.45 0.000 1.947008 5.012393
-------------+----------------------------------------------------------------
sigma_u | .13777146
sigma_e | .16628839
rho | .40703053 (fraction of variance due to u_i)
------------------------------------------------------------------------------
. tempname b
> matrix `b' = e(b)
>
> qui test mean1 = diff1 , notest /* clear test */
> local i 2
> while "``i''" != "" {
> if `b'[1,colnumb(`b', "mean`i'")] != 0 &
> `b'[1,colnumb(`b', "diff`i'")] != 0 {
> qui test mean`i' = diff`i' , accum notest
> }
> local i = `i' + 1
> }
> ;
_= invalid name
r(198);
end of do-file
r(198);
Thanks for your help understanding what's going on,
Sam
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/