如何使用人口规模、比例和误差向量计算 R 中的加权平均值

How to compute a weighted average in R using vectors of population sizes, proportions and errors

我正在尝试复制 Gelman 的 Multilevel/Hierarchical 模型书中的一个问题。

他说:

Given N, p, se -- the vectors of population sizes, estimated proportions of Yes responses and standard errors -- we can compute the weighted average and its 95% confidence interval in R

他提供了这个代码:

w.avg <- sum(N*p)/sum(N)
se.w.av <- sqrt (sum ((N*se/sum(N))^2))
int.95 <- w.avg + c(-2,2)*se.w.avg

我不明白如何构造向量 N、Se 和 p。

他说 N 应该是一个向量,例如:N1、N2、N3... 是一个国家(例如,法国、德国、意大利)的成年人总数。 Ntot 是欧盟的总数。加权平均的标准误差为√ ((N1/Ntot)N1error)² + ((N2/Ntot)N2error)² + ((N3/Ntot)N3error)²

我正在努力构建向量 N、se 和 p。

我知道如何构造一个简单的比例向量:

y <- 700
n <- 1000
estimate <- y/n
se <- sqrt (estimate*(1-estimate)/n)

以及如何构建离散量向量:

y <- rep (c(0,1,2,3,4), c(600,300,50,30,20))
n <- length(y)
estimate <- mean(y)
se <- sd(y)/sqrt(n)

我对如何构建多个离散比例的向量感到困惑,每个比例都有自己的 SE 和置信区间?

对于数字向量,R 将逐个元素地进行计算,因此您计算一个示例的比例和标准误差的代码也适用于多个示例。例如

y <- c(700, 500)
n <- c(1000, 1000)
estimate <- y/n
se <- sqrt (estimate*(1-estimate)/n)

estimate 具有值 0.70.5,因为 y/n 使用相应的数字对 700/1000500/1000 进行计算。元素按位置对应——y 中的第一个元素与 n 中的第一个元素,依此类推。

se 同样有两个元素使用 estimaten 向量的对应元素。