加权中位数引导

时间:2016-05-16 08:00:55

标签: r bootstrapping median

目前,我使用此

获得中位数的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

现在的问题是我需要为加权中位数做这个。我使用weightedMedian包中的matrixStats函数:matrixStats::weightedMedian

所以我不只有x和数字,但y也有权重(runif(100)) - 所以现在我计算

weightedMedian(x,runif(100))

但上述引导程序的等价物怎么样?

1 个答案:

答案 0 :(得分:0)

...函数的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))