引导 ChiSq 中值估计的 R 代码检查

R code check for bootsrapping ChiSq Median Estimation

我有一个家庭作业问题要编写一个函数来引导其找到 df = 2 Chisq 分布中位数的 95% CI。我的函数似乎有效,但从 wiki 中我得到中位数的公式为 k(1 - 2/9k)^3,对于 k = 2,它产生 .343。我函数的 CI 估计为 (1.28, 1.51 ) 具有足够大的分布、样本大小和模拟次数 (100000)。所以理论上的答案不在那个区间的任何地方。有人可以告诉我我的代码哪里出错了吗?

ChisqMedian_CI <- function(chiN, nsim, sampleN){
y <- rchisq(n=chiN, df=2)
medy_resample <- NULL
for (i in 1:nsim) {
  y_resample <- sample(y, replace=TRUE, size=sampleN)
  medy_resample[i] <- median(y_resample)
}
  LB <- quantile(medy_resample, probs=c(0.025))
  UB <- quantile(medy_resample, probs=c(0.975))
  return(c(LB, UB))
}

这里有两个问题:

  1. 卡方分布随机变量的中位数约为 k * (1 - 2 / (9k))^3。对于 k = 2,这大约是 1.4。这与您的结果一致。

  2. 对于(标准)bootstrap,bootstrap 样本始终与原始样本一样大。所以 chiN 不是必需的,将设置为 sampleN.