1 效应大小
效应大小(effect sizes)+标准误
1.1 观察性研究
1.1.1 算术均值
\[ \bar x =\frac{\sum_{i=1}^n x_i}{n} \]
\[ SE_{\bar x} = \frac{s}{\sqrt{n}} \]
要对均值进行荟萃分析,我们的数据集至少应包含以下列:
n研究中观测值的数量 (样本量)。mean研究中报告的平均值。sd研究中报告的变量的标准差。
1.1.2 比例
\[ p=\frac{k}{n} \]
\[ SE_{p} = \sqrt{\frac{p(1-p)}{n}} \]
Show the code
k <- 25
n <- 125
p <- k/n
p
#> [1] 0.2
sqrt((p*(1-p))/n)
#> [1] 0.03577709logit 转换确保采样分布大致正态
\[ p_{\text{logit}} = \log_{e} \left(\frac{p}{1-p}\right) \]
\[ SE_{p_{\text{logit}}} = \sqrt{\frac{1}{np}+\frac{1}{n(1-p)}} \]
R 中使用的元分析函数会自动执行这种 logit 转换
我们的数据集至少应包含以下列:
n研究中的总样本量。k 研究中指定亚组的样本量。
1.1.3 相关性
1.1.3.1 Pearson Product-Moment Correlation
两个连续变量
\[ r_{xy} = \frac{\sigma^{2}_{xy}}{\sigma_x \sigma_y} \]
\[ SE_{r_{xy}} = \frac{1-r_{xy}^2}{\sqrt{n-2}} \]
r≈0.10:效果小。
r≈0.30:中等效果。
r≈0.50:大效果。
在元分析中,相关性通常转化为 Fisher’s z
\[ z = 0.5\log_{e}\left(\frac{1+r}{1-r}\right) \]
\[ SE_{z} = \frac{1}{\sqrt{n-3}} \]
Show the code
z <- 0.5*log((1+r)/(1-r))
z
#> [1] 0.2920831在 R 中对相关性进行荟萃分析时手动转换。我们在数据集中唯一需要的列是:
COR研究的(未转换的)相关系数。n. 研究的样本量。
1.1.3.2 Point-Biserial Correlation
y是连续变量,x是二分类变量
\[ {r_{pb}}= \frac{(\bar{y_1}-\bar{y_2})\sqrt{p_1(1-p_1)}}{s_y} \]
1.2 实验性研究
1.2.1 (Standardized) Mean Differences
1.2.1.1 组间均值差值
\[ \text{MD}_{\text{between}} = \bar{x}_1 - \bar{x}_2 \]
\[ SE_{\text{MD}_{\text{between}}} = s_{\text{pooled}}\sqrt{\frac{1}{n_1}+\frac{1}{n_2}} \]
其中,\(s_{pooled}\) 表示两组的合并标准差
\[ s_{\text{pooled}} = \sqrt{\frac{(n_1-1)s^2_1+(n_2-1)s^2_2}{(n_1-1)+(n_2-1)}} \]
对于均差的荟萃分析,我们只需要在数据集中准备以下列:
n.e. 干预/实验组中的观察值数量。mean.e. 干预/实验组的平均值。sd.e. 干预/实验组的标准差。n.c. 对照组中的观测值个数。mean.c. 对照组的均值。sd.c. 控制组中的标准差。
1.2.1.2 组间标准化均值差值
在文献中,标准化均值差也通常称为 Cohen's d 。
\[ \text{SMD}_{\text{between}} = \frac{\bar{x}_1 - \bar{x}_2}{s_{\text{pooled}}} \]
通常使用 Cohen (1988) 的约定进行解释:
SMD ≈ 0.20: small effect.
SMD ≈ 0.50: moderate effect.
SMD ≈ 0.80: large effect.
\[ SE_{\text{SMD}_{\text{between}}} = \sqrt{\frac{n_1+n_2}{n_1n_2} + \frac{\text{SMD}^2_{\text{between}}}{2(n_1+n_2)}} \]
Show the code
library(esc)
# This is just some example data that we made up
grp1m <- 50 # mean of group 1
grp2m <- 60 # mean of group 2
grp1sd <- 10 # sd of group 1
grp2sd <- 10 # sd of group 2
grp1n <- 100 # n of group1
grp2n <- 100 # n of group2
# Calculate effect size
esc_mean_sd(grp1m = grp1m, grp2m = grp2m,
grp1sd = grp1sd, grp2sd = grp2sd,
grp1n = grp1n, grp2n = grp2n)
#>
#> Effect Size Calculation for Meta Analysis
#>
#> Conversion: mean and sd to effect size d
#> Effect Size: -1.0000
#> Standard Error: 0.1500
#> Variance: 0.0225
#> Lower CI: -1.2940
#> Upper CI: -0.7060
#> Weight: 44.4444小样本校正,Hedges’g
要对标准化均数差进行荟萃分析,我们的数据集至少应包含以下列:
n.e. 干预/实验组中的观察值数量。mean.e. 干预/实验组的平均值。sd.e. 干预/实验组的标准差。n.c. 对照组中的观测值个数。mean.c. 对照组的均值。sd.c. 控制组中的标准差。
1.2.1.3 组内(标准化)均值差值
当在两个不同的时间点(例如,干预前和干预后)测量同一组人时,通常会出现这种情况。
\[ \text{MD}_{\text{within}} = \bar{x}_{\text{t}_2} - \bar{x}_{\text{t}_1} \]
1.2.2 (对数)风险比
| Event | No Event | ||
|---|---|---|---|
| Treatment | a | b | n treatntreat |
| Control | c | d | n control |
| n E | n¬E |
\[ {p_{E}}_{\text{treat}} = \frac{a}{a+b} = \frac{a}{n_{\text{treat}}} \]
\[ {p_{E}}_{\text{control}} = \frac{c}{c+d} = \frac{c}{n_{\text{control}}} \]
\[ \text{RR} = \frac{{p_{E}}_{\text{treat}}}{{p_{E}}_{\text{control}}} \]
Show the code
# Define data
a <- 46 # events in the treatment group
c <- 77 # events in the control group
n_treat <- 248 # sample size treatment group
n_contr <- 251 # sample size control group
# Calculate the risks
p_treat <- a/n_treat
p_contr <- c/n_contr
# Calculate the risk ratio
rr <- p_treat/p_contr
rr
#> [1] 0.6046292log-risk ratio
\[ \log \text{RR} = \log_{e}(\text{RR}) \]
\[ SE_{\log \text{RR}} = \sqrt{\frac{1}{a}+\frac{1}{c} - \frac{1}{a+b} - \frac{1}{c+d}} \]
continuity correction
treatment arm continuity correction
(fixed-effect) Mantel-Haenszel method
我们的数据集中应包含以下列:
event.e. 处理组或实验组中的事件数。n.e. 处理组或实验组的样本量。event.c. 控制组中的事件数。n.c. 对照组的样本量。
1.2.3 比值比
\[ \text{OR} = \frac{a/b}{c/d} \]
\[ \log \text{OR} = \log_{e}(\text{OR}) \]
\[ SE_{\log \text{OR}} = \sqrt{\frac{1}{a}+\frac{1}{b}+\frac{1}{c}+\frac{1}{d}} \]
Show the code
library(esc)
# Define data
grp1yes <- 45 # events in the treatment group
grp1no <- 98 # non-events in the treatment group
grp2yes <- 67 # events in the control group
grp2no <- 76 # non-events in the control group
# Calculate OR by setting es.type to "or"
esc_2x2(grp1yes = grp1yes, grp1no = grp1no,
grp2yes = grp2yes, grp2no = grp2no,
es.type = "or")
#>
#> Effect Size Calculation for Meta Analysis
#>
#> Conversion: 2x2 table (OR) coefficient to effect size odds ratio
#> Effect Size: 0.5209
#> Standard Error: 0.2460
#> Variance: 0.0605
#> Lower CI: 0.3216
#> Upper CI: 0.8435
#> Weight: 16.5263\[ \text{RR} = \frac{\text{OR}}{\left(1-\dfrac{c}{n_{\text{control}}}\right)+ \left(\dfrac{c}{n_{\text{control}}}\times \text{OR} \right)} \]
为了对 R 中的比值比进行荟萃分析,我们的数据集中应包括以下列:
event.e. 处理组或实验组中的事件数。n.e. 处理组或实验组的样本量。event.c. 控制组中的事件数。n.c. 对照组的样本量。
1.2.4 发病率比 Incidence Rate Ratios
1.3 校正
1.3.1 小样本偏倚
Hedges’g
\[ g = \text{SMD} \times (1-\frac{3}{4n-9}) \]
1.3.2 不可靠
reliability coefficient rxx test-retest-reliability
Hunter 和 Schmidt 方法 attenuation
计算相关性的校正版本
\[ {r_{xy}}_{c} = \frac{r_{xy}}{\sqrt{r_{xx}}} \]
\[ {r_{xy}}_{c} = \frac{r_{xy}}{\sqrt{r_{xx}}\sqrt{r_{yy}}} \]
当结果x在两组中观察到
\[ \text{SMD}_c = \frac{\text{SMD}}{\sqrt{r_{xx}}} \]
标准误的校正
\[ SE_c = \frac{SE}{\sqrt{r_{xx}}} \]
\[ SE_c = \frac{SE}{\sqrt{r_{xx}}\sqrt{r_{yy}}} \]
Show the code
# Define uncorrected correlation and SMD with their standard error
r_xy <- 0.34
se_r_xy <- 0.09
smd <- 0.65
se_smd <- 0.18
# Define reliabilities of x and y
r_xx <- 0.8
r_yy <- 0.7
# Correct SMD for unreliability in x
smd_c <- smd/sqrt(r_xx)
smd_c
#> [1] 0.7267221
se_c <- se_smd/sqrt(r_xx)
se_c
#> [1] 0.20124611.3.3 范围限制
\[ U = \frac{s_{\text{unrestricted}}}{s_{\text{restricted}}} \]
\[ {r_{xy}}_c = \frac{U\times r_{xy}}{\sqrt{(U^2-1)r_{xy}^2+1}} \]
\[ \text{SMD}_c = \frac{U\times \text{SMD}}{\sqrt{(U^2-1)\text{SMD}^2+1}} \]
\[ SE_{{r_{xy}}_c} = \frac{{r_{xy}}_c}{r_{xy}}SE_{r_{xy}} \]
\[ SE_{{\text{SMD}}_c} = \frac{{\text{SMD}}_c}{\text{SMD}}SE_{\text{SMD}} \]
Show the code
# Define correlation to correct
r_xy <- 0.34
se_r_xy <- 0.09
# Define restricted and unrestricted SD
sd_restricted <- 11
sd_unrestricted <- 18
# Calculate U
U <- sd_unrestricted/sd_restricted
# Correct the correlation
r_xy_c <- (U*r_xy)/sqrt((U^2-1)*r_xy^2+1)
r_xy_c
#> [1] 0.5091754
# Correct the standard error
se_r_xy_c <- (r_xy_c/r_xy)*se_r_xy
se_r_xy_c
#> [1] 0.1347817