Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Nick Cox <n.j.cox@durham.ac.uk> |

To |
"'statalist@hsphsun2.harvard.edu'" <statalist@hsphsun2.harvard.edu> |

Subject |
st: RE: loop over regressions per year and calculate variables |

Date |
Fri, 3 Dec 2010 17:42:24 +0000 |

You don't want to loop over the varlist -year-. That is one just variable, so one iteration of the loop. You want to loop over the distinct (some say unique) values of year. One approach starts with egen order = group(year), label su order, meanonly forval y = 1/`r(max)' { <regressions> } But set that aside, as there's no need to reinvent the wheel. Check out -statsby-. You can do most of the work in -statsby-. Nick n.j.cox@durham.ac.uk P.S. Also, the following are usually bad practices: 1. Storing single constants in variables. 2. Using -egen- to calculate standard deviation. That's the job of -summarize-. Léon Bueckins I'm having some trouble in calculating variables that are based on the coefficients from my regression, since I use the -by:- option. So my goal is to generate new variables that store the calculation of each regression. My basic setup is as follow: * get the year information from my date variable gen year=year(date) * regression should be ran for each year sort year by year: xtscc ln_csad return_ma absreturn_ma return2_ma * Calculate Standardized Betas (for each year), since this option is not available for -xtscc- regression gen b_return_ma = _b[return_ma] gen b_absreturn_ma = _b[absreturn_ma] gen b_return2_ma = _b[return2_ma] egen sd_return_ma = sd(return_ma) egen sd_absreturn_ma = sd(absreturn_ma) egen sd_return2_ma = sd(return2_ma) egen sd_ln_csad = sd(ln_csad) gen Z_return = b_return_ma * (sd_return_ma/sd_ln_csad) gen Z_absreturn = b_absreturn_ma * (sd_absreturn_ma/sd_ln_csad) gen Z_return2 = b_return2_ma * (sd_return2_ma/sd_ln_csad) * Calculate the variable that I actually need (should have one value per year) gen phi = abs(Z_return2/Z_absreturn) *************** I tried to change this setup into a foreach loop but could not get it to work properly, can somebody help me out? *************** foreach x of varlist year { display `x' * How can I now run the regression per year? xtscc ln_csad return_ma absreturn_ma return2_ma * And how to calculate the former variables and store them? } * * 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/

**References**:**st: loop over regressions per year and calculate variables***From:*Léon Bueckins <l.bueckins@zeppelin-university.net>

- Prev by Date:
**st: RE: complicated scatterplot with connected points** - Next by Date:
**st: Cholesky decomposition of residuals covariance matrix after xtmixed** - Previous by thread:
**st: loop over regressions per year and calculate variables** - Next by thread:
**st: complicated scatterplot with connected points** - Index(es):