Basically - I want to pull in and output regression results for models running on exposure (xvars), outcome (yvars) and a GROUP of covariates. I have done this with global and locals, but the problem I am having is that for the covariates Stata want's to run a regression for EACH INDIVIDUAL covariate in globals cov2 cov3 cov4 (rather than run each global as a GROUP of covariate). I thought having as a $global would help, but wondered if anyone knew how to run the regression loop so it would work on a GROUP of covariates?
Thanks in advance - example below.
Code:
clear all
use "$data\analysis.dta", clear
local row = 2
global cov1 //unadjusted
global cov2 age_acc i.sex i.Eth2_v1 whitecell_count
global cov3 $cov2 i.ed3_acc i.emp townsenddi i.par_hist_dis i.Smok i.alc_cat3 i.ofish2 i.fruitveg prmeat i.salt2
global cov4 $cov3 i.BMI_cat
global xvars enmo_accel_ad ig_ad
global yvars telo_l telo_z
global covars $cov1 $cov2 $cov3 $cov4
foreach x of global xvars{
foreach y of global yvars{
foreach model of global covars{
regress `y' `x' `model'
matrix b = r(table)'
matrix list b
matselrc b c, c(1 5 6 4) r(1) // select columns 1,5,6,4 of matrix b & store in new matrix c
matrix list c
putexcel A`row'="`x'"
putexcel B`row'="`y'"
putexcel D`row'=mat(c)
putexcel C`row'="`model'"
putexcel D`row'=mat(c)
matrix drop c
local row =`row' + 1
}
}
}
0 Response to Regression models with exposure, outcome, and GROUP of covariates in one loop
Post a Comment