0

我正在从一本名为“使用 R 发现统计”的书中学习统计和 R……虽然它提供的信息非常丰富,但它似乎跳过了一些领域,即使它表明不需要统计或 R 的先验知识。那么问题来了:

如何使用二分法(或二分法)在 R 中计算标准正态分布的第 p 个分位数?(并假设不使用qnorm())。那是:

    pnorm(x)   = p
    pnorm(x)-p = 0
    f (x)      = 0

更新:

二分法是一种采用区间的方法,该区间[a,b]在区间的端点采用不同符号的值,并且x[a,b]. 然后你一半 if to find F(x1),如果f(x1) != 0它给你[a,x1]and [x1,b]... 序列x1, x2,...,收敛到的地方0

4

1 回答 1

1

笨拙,但这有效:

tolerance <- 1e-6
interval <- c(-1000,1000)
quantile <- 0.2

while(interval[2]-interval[1] > tolerance) {
  cat('current interval: ',interval,'\n')
  interval.left <- c(interval[1],mean(interval))
  interval.right <- c(mean(interval),interval[2])
  if(sum(sign(pnorm(interval.left)-quantile))==0) {
    interval <- interval.left
  } else {
    interval <- interval.right
  }
}
mean(interval)
qnorm(quantile)
于 2014-02-25T01:30:42.463 回答