Dear all,

First of all, I would like to say that, previous to posting on this

list, I have checked internet (not much out there, though), help files

of -ereturn and -estimates. I also use "get trace on" to study what

some stata commands do to display results. Section 18.10 (Saving

Revults) in the User's Guide was the most useful material available. I

manage my way but my general feeling is that I hope it would have been

easier. Any other material you think may be useful would be welcomed.

Back to business, I would like to have some comments from people of

this list with more knowledge of Stata and statistics than me: what

kind of results you should make available after you use a user written

command. Since it is very likely your answer would be that it depends,

let me present you with my particular case. I am working with some

three-step procedure that requires to make some transformation of the

original variable. I developed an ado-file command and I am struggling

to present the coefficient table and make available results in e().

Lets say you create an ado file such as

program define mycommand, eclass

version 9

syntax varlist , i(panel)

tokenize `varlist'

local yvar="`1'"

macro shift

local xvarlist="`*'"

...

*Step 3

xtreg `yvar_hat' `xvarlist_hat', i(`panel') fe

ereturn local cmd mycommand

...

end

You have three local that group the information the user must provide:

the dependent variable (yvar), independent variable list (xvarlist)

and panel id variable (panel). I do a three step procedure (which is

basically a GLS estimator) where the "_hat" locals contain the

transformation of the original data.

You have different results in e(): scalars, macros, matrices,

functions. My programme makes available the results saved in e() by

-xtreg and only changes

e(cmd)

which is the name of the estimation command ("mycommand" in this

case). I think it is reasonable to keep the scalars and matrices from

e() but I am particularly concerned about one of the macro ereturn,

which is

e(predict) : "xtrefe_p"

Here, -xtrefe_p was created for -xtreg. It is unlikely it would be

useful for my command. I use transformation of the original variables

with xtreg and these auxiliary varaibles are not available any more.

Other macro ereturn look fine to me.

If the best option is to eliminate e(predict), the problem is how to

do this which should be straightforward. The only way around I found

was to use "ereturn post". The code becomes

program define mycommand, eclass

...

*Step 3

xtreg `yvar_hat' `xvarlist_hat', i(`panel') fe

tempvar b vb esample

mat `b'=e(b)

mat `vb'=e(V)

mat colnames `b' = `xvar' _cons

mat colnames `vb' = `xvar' _cons

mat rownames `vb' = `xvar' _cons

gen byte `esample' = e(sample)

local r2b e(r2_b)

...

ereturn post `b' `vb', depname(`yvar') esample(`esample')

ereturn local r2_b r2b

...

ereturn local cmd mycommand

...

end

I can introduce additional scalar ereturn from xtreg such as e(r2_b)

quite easily. My question is whether there is an easier way to get rid

of "e(predict)" than using "ereturn ...post" which erase all other

ereturns.

Thank you for your time

Paulo

*

* 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/