Meta-Analysis
Copyright ©The Author(s) 2015.
World J Meta-Anal. Oct 26, 2015; 3(5): 215-224
Published online Oct 26, 2015. doi: 10.13105/wjma.v3.i5.215
Table 1 Distributions of the continuous endpoint for treatment and control groups
ScenarioEndpoint distribution
Treatment groupControl group
NormalMean = 5 and SD = 2Mean = 7 and SD = 2
Standard normalMean = 0 and SD = 1Mean = 0 and SD = 1
GammaAlpha = 2 and beta = 5Alpha = 2 and beta = 7
ExponentialMean = 5 and lambda = 0.2Mean = 7 and lambda = 0.14
Bimodal50% Normal distribution with mean = 5 and SD = 2 and 50% standard normal distribution50% Normal distribution with mean = 7 and SD = 2 and 50% standard normal distribution
ICU stayReal-life dataReal-life data
Hospital stayReal-life dataReal-life data
Table 2 Example of SAS code to simulate a meta-analysis on 15 datasets with 15 records generated from a Gamma distribution (alpha = 2 and beta = 5 vs alpha = 2 and beta = 7 for the treatment and control groups, respectively)
* q is the assigned library;
**************************************************;
* SIMULATIONS;
**************************************************;
%let s = gamma;
%let ndset = 15;
* Simulation of n = 15 dataset using the Gamma distributions;
%macro simul;
%do q = 1 %to &ndset;
%let seed = %sysevalf(1234567 + &q);
%let num_i = %sysevalf(&ndset);
%let v = %sysevalf(0 + &q);
data s&q;
k = &q;
%do i = 1%to &num_i;
var1 = 5*rangam(&seed,2);
var2 = 7*rangam(&seed,2);
output;
%end;
run;
%end;
* Dataset combining;
data simul_&s;
set
%do w = 1%to &ndset;
s&w
%end;
;
run;
%mend;
%simul;
* Descriptive statistics for each dataset;
ods trace on;
ods output summary = summary_&s;
proc means data = simul_&s mean std median q1 q3;
class k;
var var1 var2;
run;
ods trace off;
data summary_&s;
set summary_&s;
l1 = (var1_Median-var1_Q1)/0.6745;
l2 = (var2_Median-var2_Q1)/0.6745;
u1 = (var1_Q3-var1_Median)/0.6745;
u2 = (var2_Q3-var2_Median)/0.6745;
if l1 > u1 then MeSD_v1_cons=l1; else MeSD_v1_cons=u1;
if l2 > u2 then MeSD_v2_cons=l2; else MeSD_v2_cons=u2;
if l1 > u1 then MeSD_v1_prec=u1; else MeSD_v1_prec=l1;
if l2 > u2 then MeSD_v2_prec=u2; else MeSD_v2_prec=l2;
MeSD_v1_mean=(var1_Q3-var1_Q1)/1.349;
MeSD_v2_mean=(var2_Q3-var2_Q1)/1.349;
* Median difference;
MeD = var1_Median-var2_Median;
*1 conservative estimate of standard deviation;
a1sd = ((MeSD_v1_cons)**2)/NObs;
b1sd = ((MeSD_v2_cons)**2)/NObs;
MeSD_cons=sqrt(a1sd + b1sd);
*2 less conservative estimate of standard deviation;
a2sd = ((MeSD_v1_prec)**2)/NObs;
b2sd = ((MeSD_v2_prec)**2)/NObs;
MeSD_prec = sqrt(a2sd + b2sd);
*3 mean estimate of standard deviation;
a3sd = ((MeSD_v1_mean)**2)/NObs;
b3sd = ((MeSD_v2_mean)**2)/NObs;
MeSD_mean = sqrt(a3sd + b3sd);
*4 Interquartile range;
a4sd = ((var1_Q3-var1_Q1)**2)/NObs;
b4sd = ((var2_Q3-var2_Q1)**2)/NObs;
MeSD_iqr = sqrt(a4sd + b4sd);
* Mean difference and pooled standard deviation;
MD = var1_Mean-var2_Mean;
asd = ((var1_StdDev)**2)/NObs;
bsd = ((var2_StdDev)**2)/NObs;
SD = sqrt(asd + bsd);
drop l1 l2 u1 u2 asd bsd a1sd b1sd a2sd b2sd a3sd b3sd a4sd b4sd;
run;
*************************;
* Meta-analyses;
data sum_&s;
set summary_&s;
keep k NObs MeD MeSD_cons MeSD_prec MeSD_mean MeSD_iqr MD SD qq;
run;
*1 Median and conservative estimate of standard deviation;
data meta_&s.1;
set sum_&s;
model = "Conservative SD";
MDz = MeD;
SDz = MeSD_cons;
w = 1/(SDz**2);
MDw = MDz*w;
keep model k NObs MDz SDz w MDw;
run;
*2 Median and less conservative estimate of standard deviation;
data meta_&s.2;
set sum_&s;
model = "Less Conservative SD";
MDz = MeD;
SDz = MeSD_prec;
w = 1/(SDz**2);
MDw = MDz*w;
keep model k NObs MDz SDz w MDw;
run;
*3 Median and mean estimate of standard deviation;
data meta_&s.3;
set sum_&s;
model = "Mean SD";
MDz = MeD;
SDz = MeSD_mean;
w = 1/(SDz**2);
MDw=MDz*w;
keep model k NObs MDz SDz w MDw;
run;
*4 Median and interquartile range;
data meta_&s.4;
set sum_&s;
model = "IQR";
MDz = MeD;
SDz = MeSD_iqr;
w = 1/(SDz**2);
MDw = MDz*w;
keep model k NObs MDz SDz w MDw;
run;
*Mean and standard deviation (reference);
data meta_&s.5;
set sum_&s;
model = "Reference";
MDz = MD;
SDz = SD;
w = 1/(SDz**2);
MDw = MDz*w;
keep model k NObs MDz SDz w MDw;
run;
proc format;
value model
1 = "conservative SD"
2 = "Less Conservative SD "
3 = "Mean SD "
4 = "IQR"
5 = "Reference"
;
run;
*** Fixed effect model meta-analysis - Inverse of Variance method;
%macro meta_iv;
%do i = 1%to 5;
ods output Summary = somme&i;
proc means data = meta_&s&i sum;
var MDw w;
run;
data somme&i;
set somme&i;
model = &i;
format model model.;
theta = MDw_Sum/w_Sum;
se_theta = 1/(sqrt(w_sum));
lower = theta - (se_theta*1.96);
upper = theta + (se_theta*1.96);
mtheta = sqrt(theta**2);
CV = se_theta/mtheta;
keep model theta se_theta lower upper cv;
run;
%end;
data aaMeta_&s;
set
%do w = 1% to 5;
somme&w
%end;
;
run;
title "distr = &s - k = &ndset";
proc print; run;
%mend;
%meta_iv;
Table 3 Method for imputing the study-specific standard deviation
MethodnumberMethod nameMean imputationStandard Deviation imputation1
0ReferenceMeanSD
1Conservative SDMedianmax[(3rd quartile - median)/0.6745; (median - 1st quartile)/0.6745]
2Less Conservative SDMedianmin[(3rd quartile - median)/0.6745; (median - 1st quartile)/0.6745]
3Mean SDMedian(3rd quartile - 1st quartile)/(2 × 0.6745)
4IQRMedian(3rd quartile - 1st quartile)
Table 4 Comparison of results obtained from the four methods of approximation of study-specific means and standard deviations in a meta-analysis of a continuous outcome
Standardized pooled estimate, (standard error)P value1(unadjusted)P value1(Tukey-Kramer adjustment)P value1(Bonferroni adjustment)P value1(Scheffé adjustment)
Conservative SD4.5 (3.5)0.140.70.90.8
Less conservative SD7.8 (2.9)0.010.0560.070.12
Mean SD6.1 (3.3)0.040.30.60.5
IQR4.5 (2.2)0.130.20.40.4
Table 5 Absolute differences between standardized estimates, θstandijk, calculated by means of one of the four methods (conservative SD, less conservative SD, mean SD and interquartile range), and the reference
DistributionscenarioDatasetConservative SDLess Conservative SDMean SDIQR
Normal15-0.3101.2740.1490.110
Normal300.029-1.483-0.109-0.081
Normal50-0.434-0.946-0.599-0.444
Normal1000.3400.0950.2430.180
Normal500-0.336-0.357-0.353-0.261
Normal10000.7540.9890.8600.638
No. of times of beginning first in the ranking12103
Standard normal15-0.3351.0720.0620.046
Standard normal30-0.101-1.710-0.290-0.215
Standard normal50-0.535-1.013-0.690-0.511
Standard normal1000.5020.2810.4160.308
Standard normal500-0.306-0.314-0.317-0.235
Standard Normal10000.8141.0540.9230.684
No. of times of beginning first in the ranking11104
Gamma15-0.2830.054-0.119-0.088
Gamma301.4412.2291.8461.368
Gamma501.7952.9292.2181.644
Gamma1004.9158.1936.0704.500
Gamma50024.08135.79928.75321.314
Gamma100049.08971.07258.01243.002
No. of times of beginning first in the ranking10105
Exponential15-0.150-0.163-0.157-0.116
Exponential301.8802.9582.3011.706
Exponential502.9484.9753.7072.748
Exponential10010.21319.49013.49310.002
Exponential50039.54674.95551.91338.481
Exponential100080.605157.083106.59379.016
No. of times of beginning first in the ranking10006
Bimodal151.1424.1141.7511.298
Bimodal300.0790.3560.0960.071
Bimodal500.5453.0511.1100.823
Bimodal1002.4056.8493.6502.706
Bimodal50019.15641.49526.21219.431
Bimodal100038.82581.30152.52738.938
No. of times of beginning first in the ranking15001
ICU stay150.076-2.8162.6671.977
ICU stay30-3.011-6.341-4.201-3.114
ICU stay50-1.361-3.162-2.163-1.603
ICU stay100-0.58-2.2051.3931.032
ICU stay500-6.218-21.788-6.462-4.790
ICU stay10003.162-5.0206.8015.042
No. of times of beginning first in the ranking15001
Hospital stay151.4378.9482.7772.058
Hospital stay302.603-1.0882.5951.924
Hospital stay500.297-0.839-0.055-0.041
Hospital stay100-4.674-13.063-6.734-4.992
Hospital stay500-29.239-55.703-37.170-27.554
Hospital stay1000-52.720-85.673-63.453-47.038
No. of times of beginning first in the ranking12103
1st quartile0.3371.0230.3680.273
Median1.3992.9442.1901.624
3rd quartile4.85512.0346.6664.942
Total number of times of beginning first in the ranking1154023
Table 6 Absolute and relative frequencies of occurrence of the four methods to approximate study-specific means and standard deviations in a meta-analysis of a continuous outcome n (%)
No. of firstrankingNo. of second rankingNo. of third rankingNo. of fourth ranking
Conservative SD15 (35.7)20 (47.6)3 (7.1)4 (9.5)
Less Conservative SD4 (9.5)1 (2.4)1 (2.4)36 (85.7)
Mean SD03 (7.1)37 (88.1)2 (4.8)
IQR23 (54.8)18 (42.9)1 (2.4)0