加权中位数 bootstrap

Weighted Median bootstrap

目前我通过使用这个

获得了 95% CI 的中位数
x<-rnorm(100)
        bootmed = apply(matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4), 1, median)
    quantile(bootmed, c(.025, 0.975))[1]->a1
    quantile(bootmed, c(.025, 0.975))[2]->a2

现在的问题是我需要为加权中位数执行此操作。我使用 matrixStats 包中的 weightedMedian 函数:matrixStats::weightedMedian

所以我不仅有 x 和权重 (runif(100)) - 所以现在我计算

weightedMedian(x,runif(100))

但是上面 bootstrap 的等价物如何去?

apply() 函数的 ... 参数允许您将可选参数传递给您的函数。或者,您也可以定义自定义函数。假设所有行的权重中位数都相同,则问题的答案如下所示:

x <- rnorm(100)
y <- rnorm(100)
M <- matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4)

bootmed = apply(M, 1, weightedMedian, w=y)
# Or, alternatively..
bootmed = apply(M, 1, function(x) weightedMedian(x,y))