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 |
Phil Schumm <pschumm@uchicago.edu> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: using foreach in regression models |

Date |
Tue, 25 Oct 2011 04:44:42 -0500 |

On Oct 25, 2011, at 4:03 AM, Tim Evans wrote: > I am running a number of logistic regression models (Stata 11.2), using the same dependant variable, but cycling through a number of independent variables to obtain 'unadjusted' regressions like such: > > xi: logit treatmentinsccnetre2 i.agegrp, iterate(10) or > xi: logit treatmentinsccnetre2 i.NRCENT, iterate(10) or > xi: logit treatmentinsccnetre2 i.id07, iterate(10) or > xi: logit treatmentinsccnetre2 i.site_4, iterate(10) or > > I can condense this down to the following > > foreach v of varlist agegrp id07 NRCENT site_4 { > xi: logit treatmentinsccnetre2 i.`v', iterate(10) or > } > > This is fine, however, I also do want to run the analysis by introducing a range of other variables in order to 'adjust' for their effect. The list of variables will always be the same, but although the list is the same, some variables move around the list - if they are the variable of interest i.e: > > > xi: logit treatmentinsccnetre2 i.agegrp i.NRCENT i.site_4 i.sex i.id07 i.yydx, iterate(10) or > xi: logit treatmentinsccnetre2 i.NRCENT i.site_4 i.sex i.agegrp i.id07 i.yydx, iterate(10) or > xi: logit treatmentinsccnetre2 i.id07 i.NRCENT i.site_4 i.sex i.agegrp i.yydx, iterate(10) or > xi: logit treatmentinsccnetre2 i.site_4 i.sex i.agegrp i.id07 i.NRCENT i.yydx, iterate(10) or > > What I would like to do is use the loop I employ for the unadjusted model, but be able to use something like `v' in order to condense the code from the above. No need to do anything fancy here: loc covariates "i.x3 i.x4 i.x5" foreach var of varlist x1 x2 x4 { logistic y i.`var' `covariates' } Note that in my example, x4 is both a "covariate of interest" and a "control variable." In the third model, x4 will appear at the top of the results table. To wit: repeating covariates in the varlist is not a problem; only the first instance of each will be used. Also, a couple of additional comments: 1) Use factor variables (the xi: prefix is no longer necessary) 2) Consider using -logistic- if you want odds ratios 3) I'm not sure why you're using the -iterate()- option above; if your model is failing to converge then you've got a problem -- Phil * * 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: R: variable not found?***From:*"Carlo Lazzaro" <carlo.lazzaro@tin.it>

**Re: st: R: variable not found?***From:*Christian Otchia <bensamen@gmail.com>

**RE: st: R: variable not found?***From:*Nick Cox <n.j.cox@durham.ac.uk>

**st: using encode to order string distances***From:*Tim Evans <Tim.Evans@wmciu.nhs.uk>

**st: RE: using encode to order string distances***From:*Nick Cox <n.j.cox@durham.ac.uk>

**st: using foreach in regression models***From:*Tim Evans <Tim.Evans@wmciu.nhs.uk>

- Prev by Date:
**Re: st: graph line, line(...)** - Next by Date:
**Re: st: using foreach in regression models** - Previous by thread:
**Re: st: using foreach in regression models** - Next by thread:
**RE: st: using foreach in regression models** - Index(es):