*! metainf.ado AT version 3.0.0 March 2000 (STB-56: sbe26.1) * metainf.ado AT version 2.0.0 November 1998 * metainf.ado AT version 1.0.0 February 1998 program define metainf version 6.0 syntax varlist(min=2 max=2 numeric) [if] [in] [, id(varname) /* */ random eform t1(str) t2(str) Format(str) print `options' *] tokenize `varlist' local E `1' local SE `2' preserve * Dealing with if and in options if ("`if'"!="") { qui keep `if' } if ("`in'"!="") { qui keep `in' } * Overall estimates qui meta `E' `SE', `eform' if "`random'"=="random" { local ove=$S_7 local ll=$S_9 * Global macro should be updated if meta change it name local ul=$S_0 } else { local ove=$S_1 local ll=$S_3 local ul=$S_4 } * Meta-analysis estimate ommiting one study each step tempvar theta setheta ulth llth qui sum `E', detail local n=_result(1) qui { gen `theta'=. gen `setheta'=. gen `ulth'=. gen `llth'=. } local i=1 tempvar s qui gen `s'=_n while (`i'<=`n') { qui { meta `E' `SE' if `s'!=`i', `eform' if "`random'"=="random" { replace `theta'=$S_7 in `i' replace `llth'=$S_9 in `i' replace `ulth'=$S_0 in `i' } else { replace `theta'=$S_1 in `i' replace `llth'=$S_3 in `i' replace `ulth'=$S_4 in `i' } } local i=`i'+1 } * Maximum and minimum CI values qui sum `llth', detail local mnx=r(min) qui sum `ulth', detail local mxx=r(max) * Labeling plot if "`t2'" == "" { local t2 "Study ommited" } if "`t1'" == "" { if "`eform'"=="eform" & "`random'"=="" { local t1 "Meta-analysis fixed-effects estimates (exponential form)" } if "`eform'"=="" & "`random'"=="" { local t1 "Meta-analysis fixed-effects estimates (linear form)" } if "`eform'"=="eform" & "`random'"=="random" { local t1 "Meta-analysis random-effects estimates (exponential form)" } if "`eform'"=="" & "`random'"=="random" { local t1 "Meta-analysis random-effects estimates (linear form)" } } * Numeric format if "`format'" == "" { local format "%5.2f" } * Print option if "`print'"=="print" & "`eform'"=="" { dis dis in gre "`lab'" dis in gr "------------------------------------------------------------------------------" dis in gr _col(2) "Study ommited" _col(20) "|" _col(24) "Coef." _col(39) "[95% Conf. Interval]" dis in gr "-------------------+----------------------------------------------------------" local i=1 while `i'<=`n' { if "`id'"=="" { local a=`s' in `i' } else { local a=`id' in `i'} local b=`theta' in `i' local c=`llth' in `i' local d=`ulth' in `i' display _col(2) "`a'" _col(20) in gr "|" in ye _col(24) `b' _col(39) `c' _col(52) `d' local i=`i'+1 } dis in gr "-------------------+----------------------------------------------------------" dis _col(2) "Combined" _col(20) in gr "|" in ye _col(24) `ove' _col(39) `ll' _col(52) `ul' dis in gr "------------------------------------------------------------------------------" } else if "`print'"=="print" & "`eform'"=="eform" { dis dis in gre "`lab'" dis in gr "------------------------------------------------------------------------------" dis in gr _col(2) "Study ommited" _col(20) "|" _col(24) "e^coef." _col(39) "[95% Conf. Interval]" dis in gr "-------------------+----------------------------------------------------------" local i=1 while `i'<=`n' { if "`id'"=="" { local a=`s' in `i' } else { local a=`id' in `i' } local b=`theta' in `i' local c=`llth' in `i' local d=`ulth' in `i' display _col(2) "`a'" _col(20) in gr "|" in ye _col(24) `b' _col(39) `c' _col(52) `d' local i=`i'+1 } dis in gr "-------------------+----------------------------------------------------------" display _col(2) "Combined" _col(20) in gr "|" in ye _col(24) `ove' _col(39) `ll' _col(52) `ul' dis in gr "------------------------------------------------------------------------------" } * Displaying plot hplot `theta' `llth' `ulth', r sy(o||) l("`id'") t1(`t1') t2(`t2') f(`format') /* */ xline(`ove',`ll',`ul') xlab(`mnx',`ove',`ll',`ul',`mxx') xti(`ove',`ll',`ul') /* */ xscale(`mnx',`mxx') end