计算加权平均估计中的标准误差

机器算法验证 标准错误 加权平均数
2022-02-11 02:36:44

假设w1,w2,,wnx1,x2,...,xn每个都是从某些分布中抽取的独立同分布,其中wi独立于xi. wi是严格积极的。你观察所有wi,但不是xi; 而是你观察ixiwi. 我有兴趣估计E[x]从这个信息。显然是估算器

x¯=iwixiiwi
是无偏的,并且可以根据手头的信息进行计算。

我如何计算这个估计器的标准误差?对于子情况xi只取值 0 和 1,我天真地尝试过

sex¯(1x¯)iwi2iwi,
基本上忽略了变化wi,但发现这对于小于 250 左右的样本量表现不佳。(这可能取决于wi.) 似乎我没有足够的信息来计算“更好”的标准错误。

3个回答

我最近遇到了同样的问题。以下是我发现的:

与具有相同权重的简单随机样本不同,加权平均值的标准误差没有被广泛接受的定义。这些天来,直接进行引导并获得均值的经验分布,并基于该估计来估计标准误差。

如果想用一个公式来做这个估计怎么办?

主要参考文献是Donald F. Gatz 和 Luther Smith 的这篇论文,其中将 3 个基于公式的估计器与 bootstrap 结果进行了比较。自举结果的最佳近似来自 Cochran (1977):

(SEMw)2=n(n1)(Pi)2[(PiXiP¯X¯w)22X¯w(PiP¯)(PiXiP¯X¯w)+X¯w2(PiP¯)2]

以下是来自此 R listserve 线程的相应 R 代码。

weighted.var.se <- function(x, w, na.rm=FALSE)
#  Computes the variance of a weighted mean following Cochran 1977 definition
{
  if (na.rm) { w <- w[i <- !is.na(x)]; x <- x[i] }
  n = length(w)
  xWbar = weighted.mean(x,w,na.rm=na.rm)
  wbar = mean(w)
  out = n/((n-1)*sum(w)^2)*(sum((w*x-wbar*xWbar)^2)-2*xWbar*sum((w-wbar)*(w*x-wbar*xWbar))+xWbar^2*sum((w-wbar)^2))
  return(out)
}

希望这可以帮助!

给定的估计方差wi

wi2Var(X)(wi)2=Var(X)wi2(wi)2.
因为您的估计对于任何wi,其条件均值的方差为零。因此,您估计的方差是
Var(X)E(wi2(wi)2)
根据观察到的所有数据,这很容易根据经验进行估计。但只有一个测量的位置Xi观察到的,而不是它们的传播,我看不出如何估计Var(X),而无需做出相当严格的假设。

@Ming K 的方程式对我不起作用。@Hugh 提到 Hmisc::wtd.var(x, w),但这是为了方差,如果您想知道加权标准误差,将很有用。但请在此处阅读假设和方程式,如下

σx=σi=1nωi2

为了您的方便,我把它们复制在这里。

wtd.stderror <- function(x, weights){
  var <- Hmisc::wtd.var(x, weights)
  weights <- sum( (weights / sum(weights))^2 )
  
  sqrt(var*weights)
}

但我不确定这是否适用于具有伯努利分布的日期集