*** Multivariate meta-analysis webinar *** webuse metaset, clear list study es se studylab in 1/5 **# Example 1 webuse periodontal, clear rename (y1 y2 v11 v22 v12 s1 s2) (depth attachment v_d v_a cov_da se_d se_a) label variable v_d "Variance of depth" label variable se_d "Standard error of depth" label variable v_a "Variance of attachment" label variable se_a "Standard error of attachment" label variable cov_da "Covariance of depth and attachment" generate study = _n label variable study "Study number" list study depth v_d attachment v_a cov_da, ab(10) describe meta mvregress depth attachment, wcovvariables(v_d cov_da v_a) nolog estat heterogeneity meta mvregress depth attachment = pubyear, /// wcovvariables(v_d cov_da v_a) nolog meta mvregress depth attachment, /// wcovvariables(v_d cov_da v_a) random(jwriley, se(jriley)) predict double fit1, fitted depvar(depth) predict double fit2, fitted depvar(attachment) twoway (scatter fit1 depth, mlabel(trial)) /// (function y = x , range(depth)), /// name(graph1, replace) legend(off) /// xtitle(Observed values: depth) ytitle(Fitted values) twoway (scatter fit2 attachment, mlabel(trial)) /// (function y = x , range(attachment)), /// name(graph2, replace) legend(off) /// xtitle(Observed values: attachment) ytitle(Fitted values) graph combine graph1 graph2 **# Example 2 webuse smokecess, clear describe y* v* meta mvregress yb yc yd, /// wcovvariables(vbb vbc vbd vcc vcd vdd) random(mle) nolog noheader estat heterogeneity estat heterogeneity, jwriley(yb yd) meta mvregress y*, wcovvariables(v*) random(mle, covariance(independent)) nolog misstable pattern yb, frequency meta mvregress y*, wcovvariables(v*) random(mle, covariance(identity)) nolog misstable pattern yb yd, frequency **# Sensitivity analysis estimates drop _all matrix drop _all matrix Sigma1 = (1,0,0\0,1,0\0,0,1) matrix Sigma2 = (1,0.4,0\0.4,1,0\0,0,1) matrix Sigma3 = (1,0.8,0\0.8,1,0\0,0,1) matrix list Sigma1 // no correlation matrix list Sigma2 // moderate correlation (0.4) matrix list Sigma3 // high correlation (0.8) meta mvregress y*, wcovvariables(v*) /// random(mle, covariance(fixed(Sigma1))) noheader estimates store corr0 meta mvregress y*, wcovvariables(v*) /// random(mle, covariance(fixed(Sigma2))) noheader estimates store corr4 meta mvregress y*, wcovvariables(v*) /// random(mle, covariance(fixed(Sigma3))) noheader estimates store corr8 estimates table corr0 corr4 corr8, /// keep(yb:_cons yc:_cons yd:_cons) b(%8.3f) se(%8.3f) **# Also new in Stata 17 * Galbraith plot with radial axis for risk ratios webuse bcgset, clear local opts legend(cols(1) symxsize(*0.4) position(8) ring(0)) meta galbraith, radial(xyratio(2)) `opts' scheme(s1color) * Note that option -radial- is undocumented * Leave-one-out meta-analysis meta forestplot, rr leaveoneout