You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

256 lines
8.0 KiB
Plaintext

7 months ago
/*
*! metatrim dialog version 1.0.2, 22 Jul 2003, T. J. Steichen, steichen@triad.rr.com
*! for metatrim version 1.0.5, 18 Oct 2002, T. J. Steichen, steichen@triad.rr.com
Nonparametric "trim and fill" analysis of publication bias in meta-analysis
---------------------------------------------------------------------------
syntax: metatrim varlist [if] [in]
[ , Vari CI REffect PRint Funnel EForm LEvel(real 95) ESTimat(R|L|Q)
GRaph IDvar(varname) FLIP MIXED SAve(filename [, REPLACE]) * ]
Install in User Statistics menu via Stata commands:
. window menu append item "stUserStatistics" "meta&trim ("Trim and Fill" Analysis)" "db metatrim"
. window menu refresh
To permanently install, place the commands in your -profile.do- file.
*/
VERSION 8.0
INCLUDE _std_small
DEFINE _dlght 230
INCLUDE header
HELP hlp1, view("help metatrim")
RESET res1, label("Reset")
DIALOG main, label(`"metatrim 1.0.5 - "Trim and Fill" Analysis"') tabtitle("Main")
BEGIN
GROUPBOX gb_data 10 5 330 85, ///
label("Type of Data")
RADIO r_se 15 20 100 ., ///
label("Theta, SE") first ///
onclickon(script main_se_on) ///
option(NONE)
RADIO r_var 115 @ 100 ., ///
label("Theta, Var") middle ///
onclickon(script main_var_on) ///
option("var")
RADIO r_ci 215 @ 110 ., ///
label("exp(Theta), CI") last ///
onclickon(script main_ci_on) ///
option("ci")
TEXT tx_se 15 40 320 ., ///
label("Vars for theta, se(theta), in that order")
VARLIST vl_se @ _ss @ ., ///
label("Vars for theta, se(theta)")
TEXT tx_var @ 40 320 ., ///
label("Vars for theta, var(theta), in that order")
VARLIST vl_var @ _ss @ ., ///
label("Vars for theta, var(theta)")
TEXT tx_ci @ 40 320 ., ///
label("Vars for exp(theta), CI_LL, CI_UL, in that order")
VARLIST vl_ci @ _ss @ ., ///
label("Vars for exp(theta), CI_LL, CI_UL")
GROUPBOX gb_estimat 10 95 90 80, ///
label("Estimate")
RADIO r_linear 15 110 80 ., ///
label("Linear") first ///
option(NONE)
RADIO r_run @ 130 @ ., ///
label("Run") middle ///
option("est(run)")
RADIO r_quadratic @ 150 @ ., ///
label("Quadratic") last ///
option("est(quadratic)")
GROUPBOX gb_pool 105 95 90 60, ///
label("Pooling")
RADIO r_fixed 110 110 80 ., ///
label("Fixed") first ///
option(NONE)
RADIO r_random @ 130 @ ., ///
label("Random") last ///
option("reffect")
CHECKBOX cb_eform 205 100 70 ., ///
label("Eform") ///
option("eform")
CHECKBOX cb_flip 205 120 70 ., ///
label("Flip") ///
option("flip")
CHECKBOX cb_mixed 205 140 70 ., ///
label("Mixed") ///
option("mixed")
CHECKBOX cb_graph 275 100 70 ., ///
label("Graph") ///
onclickon(program main_cb_graph_on) ///
onclickoff(program main_cb_graph_off) ///
option("graph")
CHECKBOX cb_funnel 275 120 70 ., ///
label("Funnel") ///
option("funnel")
CHECKBOX cb_print 275 140 70 ., ///
label("Print") ///
option("print") ///
onclickon(program main_cb_print_on) ///
onclickoff(program main_cb_print_off)
CHECKBOX cb_id 110 157 100 ., ///
label("ID Variable:") ///
onclickon(main.vn_id.enable) ///
onclickoff(main.vn_id.disable)
VARNAME vn_id 210 160 130 ., ///
label("ID Variable") ///
option("id")
CHECKBOX cb_fill_save 10 185 90 ., ///
label("Save filled:") ///
onclickon(main.fi_fill_save.enable) ///
onclickoff(main.fi_fill_save.disable)
FILE fi_fill_save 110 185 230 ., ///
save ///
label("File Name") ///
error("Save File Name") ///
dialogtitle("Save file") ///
filter("Stata Data|*.dta") ///
option("save")
CHECKBOX cb_gph_save 10 210 90 ., ///
label("Save gph:") ///
onclickon(main.fi_gph_save.enable) ///
onclickoff(main.fi_gph_save.disable)
FILE fi_gph_save 110 210 230 ., ///
save ///
label("File Name") ///
error("Saving File Name") ///
dialogtitle("Saving file") ///
filter("Stata Graphs|*.gph") ///
option("saving")
END
INCLUDE ifin
PROGRAM main_cb_graph_on
BEGIN
call main.cb_id.enable
if main.cb_id {
call main.vn_id.enable
}
END
PROGRAM main_cb_graph_off
BEGIN
if !main.cb_print {
call main.cb_id.disable
call main.vn_id.disable
}
END
PROGRAM main_cb_print_on
BEGIN
call main.cb_id.enable
if main.cb_id {
call main.vn_id.enable
}
END
PROGRAM main_cb_print_off
BEGIN
if !main.cb_graph {
call main.cb_id.disable
call main.vn_id.disable
}
END
SCRIPT main_se_on
BEGIN
main.tx_se.show
main.vl_se.show
main.tx_se.enable
main.vl_se.enable
main.tx_var.disable
main.vl_var.disable
main.tx_var.hide
main.vl_var.hide
main.tx_ci.disable
main.vl_ci.disable
main.tx_ci.hide
main.vl_ci.hide
END
SCRIPT main_var_on
BEGIN
main.tx_var.show
main.vl_var.show
main.tx_var.enable
main.vl_var.enable
main.tx_se.disable
main.vl_se.disable
main.tx_se.hide
main.vl_se.hide
main.tx_ci.disable
main.vl_ci.disable
main.tx_ci.hide
main.vl_ci.hide
END
SCRIPT main_ci_on
BEGIN
main.tx_ci.show
main.vl_ci.show
main.tx_ci.enable
main.vl_ci.enable
main.tx_se.disable
main.vl_se.disable
main.tx_se.hide
main.vl_se.hide
main.tx_var.disable
main.vl_var.disable
main.tx_var.hide
main.vl_var.hide
END
PROGRAM command
BEGIN
put "metatrim "
if main.r_se {
varlist main.vl_se
}
if main.r_var {
varlist main.vl_var
}
if main.r_ci {
varlist main.vl_ci
}
INCLUDE _ifin_pr
beginoptions
option radio(main r_se r_var r_ci)
option radio(main r_linear r_run r_quadratic)
option radio(main r_fixed r_random)
option main.cb_eform
option main.cb_flip
option main.cb_mixed
option main.cb_print
option main.cb_graph
option main.cb_funnel
optionarg main.vn_id
optionarg main.fi_fill_save
optionarg main.fi_gph_save
endoptions
END