Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | "Nick Cox" <n.j.cox@durham.ac.uk> |
To | <statalist@hsphsun2.harvard.edu> |
Subject | st: RE: AW: Regressing and storing residuals in one line. |
Date | Mon, 28 Jun 2010 11:55:54 +0100 |
Such residuals have rather poorly defined properties, but let's set that on one side. A single variable can be obtained through a minor variation on Martin's recipe: sysuse auto, clear qui levelsof rep78 gen residual = . foreach lev in `r(levels)'{ tempvar foo qui regress price weight length if rep78==`lev' predict `foo', res replace residual = `foo' if rep78 == `lev' drop `foo' } Nick n.j.cox@durham.ac.uk Martin Weiss Just loop through the thing: ************* sysuse auto, clear qui levelsof rep78 foreach lev in `r(levels)'{ qui regress price weight length if rep78==`lev' predict res`lev', res } ************* Dani Tilley I'm trying to run several regressions (one for each level of a categorical variable) and store the residuals from each regression in a local macro or new variable I could later manipulate. I figured I could use: bysort category: regress y x1 x2 to run the regressions, but I need a second line of code (predict name, residuals) to get the residuals when bysort allows only one. Is there a way around this? * * 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/