You need modify the code that Richard suggested earlier.
gen r == .
levelsof region_code, local(levels)
foreach levl of local levels {
        reg migration t4 t2 t3 if region_code == `levl'
        predict x, resid
        replace r = x if region_code == `levl'
        drop x
}
______________________________________________
Kieran McCaul MPH PhD
WA Centre for Health & Ageing (M573)
University of Western Australia
Level 6, Ainslie House
48 Murray St
Perth 6000
Phone: (08) 9224-2140
Phone: -61-8-9224-2140
email: [email protected]
http://myprofile.cos.com/mccaul 
_______________________________________________
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Galina An
Sent: Friday, 8 August 2008 5:07 AM
To: [email protected]
Subject: st: How to 'predict' residual by region? Seasonal adjustment?
Dear stata users,
I have another related question. I need to 'predict' residual by region.
When I run the following code it only uses the coefficients from the 
last regression to predict residuals:
by region: reg  migration t2 t3 t4
predict  r,  resid
if I try to do the loop, it says that r is already defined:
levelsof region_code, local(levels)
foreach levl of local levels {
        reg migration t4 t2 t3 if region_code == `levl'
       predict r, resid
}
Also, does anybody know a good seasonal adjustment procedure in Stata?
Thank you!
-- 
Galina An
Assistant Professor
Economics Department
Kenyon College
*
*   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/
*
*   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/