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/ |
Free forum by Nabble | Edit this page |