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: RE: AW: RE: AW: Regressing and storing residuals in one line.
From
"Nick Cox" <[email protected]>
To
<[email protected]>
Subject
st: RE: AW: RE: AW: Regressing and storing residuals in one line.
Date
Mon, 28 Jun 2010 15:32:01 +0100
If you are doing this lots of times for real, you could end up with
storage problems with dozens of temporary variables. If that doesn't
bite, then OK.
Nick
[email protected]
Martin Weiss
The
*************
drop `foo'
*************
line could be safely omitted, btw. Stata just makes up new tempnames,
and
discards them all at the conclusion of the do-file.
Nick Cox
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
[email protected]
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/