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
Published online Oct 26, 2015. doi: 10.13105/wjma.v3.i5.215
Scenario | Endpoint distribution | |
Treatment group | Control group | |
Normal | Mean = 5 and SD = 2 | Mean = 7 and SD = 2 |
Standard normal | Mean = 0 and SD = 1 | Mean = 0 and SD = 1 |
Gamma | Alpha = 2 and beta = 5 | Alpha = 2 and beta = 7 |
Exponential | Mean = 5 and lambda = 0.2 | Mean = 7 and lambda = 0.14 |
Bimodal | 50% Normal distribution with mean = 5 and SD = 2 and 50% standard normal distribution | 50% Normal distribution with mean = 7 and SD = 2 and 50% standard normal distribution |
ICU stay | Real-life data | Real-life data |
Hospital stay | Real-life data | Real-life data |
* 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; |
Methodnumber | Method name | Mean imputation | Standard Deviation imputation1 |
0 | Reference | Mean | SD |
1 | Conservative SD | Median | max[(3rd quartile - median)/0.6745; (median - 1st quartile)/0.6745] |
2 | Less Conservative SD | Median | min[(3rd quartile - median)/0.6745; (median - 1st quartile)/0.6745] |
3 | Mean SD | Median | (3rd quartile - 1st quartile)/(2 × 0.6745) |
4 | IQR | Median | (3rd quartile - 1st quartile) |
Distributionscenario | Dataset | Conservative SD | Less Conservative SD | Mean SD | IQR |
Normal | 15 | -0.310 | 1.274 | 0.149 | 0.110 |
Normal | 30 | 0.029 | -1.483 | -0.109 | -0.081 |
Normal | 50 | -0.434 | -0.946 | -0.599 | -0.444 |
Normal | 100 | 0.340 | 0.095 | 0.243 | 0.180 |
Normal | 500 | -0.336 | -0.357 | -0.353 | -0.261 |
Normal | 1000 | 0.754 | 0.989 | 0.860 | 0.638 |
No. of times of beginning first in the ranking1 | 2 | 1 | 0 | 3 | |
Standard normal | 15 | -0.335 | 1.072 | 0.062 | 0.046 |
Standard normal | 30 | -0.101 | -1.710 | -0.290 | -0.215 |
Standard normal | 50 | -0.535 | -1.013 | -0.690 | -0.511 |
Standard normal | 100 | 0.502 | 0.281 | 0.416 | 0.308 |
Standard normal | 500 | -0.306 | -0.314 | -0.317 | -0.235 |
Standard Normal | 1000 | 0.814 | 1.054 | 0.923 | 0.684 |
No. of times of beginning first in the ranking1 | 1 | 1 | 0 | 4 | |
Gamma | 15 | -0.283 | 0.054 | -0.119 | -0.088 |
Gamma | 30 | 1.441 | 2.229 | 1.846 | 1.368 |
Gamma | 50 | 1.795 | 2.929 | 2.218 | 1.644 |
Gamma | 100 | 4.915 | 8.193 | 6.070 | 4.500 |
Gamma | 500 | 24.081 | 35.799 | 28.753 | 21.314 |
Gamma | 1000 | 49.089 | 71.072 | 58.012 | 43.002 |
No. of times of beginning first in the ranking1 | 0 | 1 | 0 | 5 | |
Exponential | 15 | -0.150 | -0.163 | -0.157 | -0.116 |
Exponential | 30 | 1.880 | 2.958 | 2.301 | 1.706 |
Exponential | 50 | 2.948 | 4.975 | 3.707 | 2.748 |
Exponential | 100 | 10.213 | 19.490 | 13.493 | 10.002 |
Exponential | 500 | 39.546 | 74.955 | 51.913 | 38.481 |
Exponential | 1000 | 80.605 | 157.083 | 106.593 | 79.016 |
No. of times of beginning first in the ranking1 | 0 | 0 | 0 | 6 | |
Bimodal | 15 | 1.142 | 4.114 | 1.751 | 1.298 |
Bimodal | 30 | 0.079 | 0.356 | 0.096 | 0.071 |
Bimodal | 50 | 0.545 | 3.051 | 1.110 | 0.823 |
Bimodal | 100 | 2.405 | 6.849 | 3.650 | 2.706 |
Bimodal | 500 | 19.156 | 41.495 | 26.212 | 19.431 |
Bimodal | 1000 | 38.825 | 81.301 | 52.527 | 38.938 |
No. of times of beginning first in the ranking1 | 5 | 0 | 0 | 1 | |
ICU stay | 15 | 0.076 | -2.816 | 2.667 | 1.977 |
ICU stay | 30 | -3.011 | -6.341 | -4.201 | -3.114 |
ICU stay | 50 | -1.361 | -3.162 | -2.163 | -1.603 |
ICU stay | 100 | -0.58 | -2.205 | 1.393 | 1.032 |
ICU stay | 500 | -6.218 | -21.788 | -6.462 | -4.790 |
ICU stay | 1000 | 3.162 | -5.020 | 6.801 | 5.042 |
No. of times of beginning first in the ranking1 | 5 | 0 | 0 | 1 | |
Hospital stay | 15 | 1.437 | 8.948 | 2.777 | 2.058 |
Hospital stay | 30 | 2.603 | -1.088 | 2.595 | 1.924 |
Hospital stay | 50 | 0.297 | -0.839 | -0.055 | -0.041 |
Hospital stay | 100 | -4.674 | -13.063 | -6.734 | -4.992 |
Hospital stay | 500 | -29.239 | -55.703 | -37.170 | -27.554 |
Hospital stay | 1000 | -52.720 | -85.673 | -63.453 | -47.038 |
No. of times of beginning first in the ranking1 | 2 | 1 | 0 | 3 | |
1st quartile | 0.337 | 1.023 | 0.368 | 0.273 | |
Median | 1.399 | 2.944 | 2.190 | 1.624 | |
3rd quartile | 4.855 | 12.034 | 6.666 | 4.942 | |
Total number of times of beginning first in the ranking1 | 15 | 4 | 0 | 23 |
No. of firstranking | No. of second ranking | No. of third ranking | No. of fourth ranking | |
Conservative SD | 15 (35.7) | 20 (47.6) | 3 (7.1) | 4 (9.5) |
Less Conservative SD | 4 (9.5) | 1 (2.4) | 1 (2.4) | 36 (85.7) |
Mean SD | 0 | 3 (7.1) | 37 (88.1) | 2 (4.8) |
IQR | 23 (54.8) | 18 (42.9) | 1 (2.4) | 0 |
- Citation: Greco T, Biondi-Zoccai G, Gemma M, Guérin C, Zangrillo A, Landoni G. How to impute study-specific standard deviations in meta-analyses of skewed continuous endpoints? World J Meta-Anal 2015; 3(5): 215-224
- URL: https://www.wjgnet.com/2308-3840/full/v3/i5/215.htm
- DOI: https://dx.doi.org/10.13105/wjma.v3.i5.215