使用 Metafor 提取分割队列的共同平均值

问题描述 投票:0回答:1

我想计算整个队列的变量 X 的平均值,该队列已分为几个子组;因此,我想编写一个固定效应模型,使用每个子组的 X 平均值、它们各自的 SD 和各自的样本量。 有什么方法可以做到这一点并获得合并集的共同平均值(X)和共同SD(X)? 优先使用 R 的 Metafor 或其他 R 包。

我尝试过使用函数 rma(yi = yi, sei = sei, method = "FE"),其中 yi 为mean(X) 的向量,但我无法找到函数或具有 rma 对象的元素引用池化 SD

r statistics metafor meta-analysis
1个回答
0
投票

如果您想要整个队列的平均值和标准差,请参阅:https://stats.stackexchange.com/a/384950/1934这些方程对两个以上组的推广应该是显而易见的。下面是一些 R 代码,表明这可以恢复整个组的平均值和 SD。

### simulate some data
n.total <- 100
grp <- sample(1:3, size=n.total, replace=TRUE, prob=c(.2,.3,.5))
y   <- rnorm(n.total, mean=ifelse(grp == 1, 1, 10), sd=2)

### means and SDs of the subgroups
ni  <- c(by(y, grp, length))
mi  <- c(by(y, grp, mean))
sdi <- c(by(y, grp, sd))

### want to get mean and SD of the total group
mean(y)
sd(y)

### mean = weighted mean (weights = group sizes)
m.total <- sum(ni*mi)/sum(ni)

### SD = sqrt((within-group sum-of-squares plus between-group sum-of-squares) / (n.total - 1))
sd.total <- sqrt((sum((ni-1) * sdi^2) + sum(ni*(mi - m.total)^2)) / (sum(ni) - 1))

### check that we get the right values
m.total
sd.total
© www.soinside.com 2019 - 2024. All rights reserved.