加权中位数 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))
目前我通过使用这个
获得了 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))