【问题标题】:How do I calculate the probability for a given quantile in R?如何计算 R 中给定分位数的概率?
【发布时间】:2012-02-25 18:49:48
【问题描述】:

使用 R,计算采样分布中给定概率的分位数很简单:

x <- rnorm(1000, mean=4, sd=2)
quantile(x, .9) # results in 6.705755

但是,我找不到一种简单的方法来进行逆运算——计算样本x 中给定分位数的概率。我最接近的方法是使用pnorm(),其均值和标准差与创建样本时使用的相同:

pnorm(5, mean=4, sd=2) # results in 0.6914625

但是,由于这是根据完整的正态分布而不是样本 x 计算概率,因此并不完全准确。

是否有一个函数本质上与quantile() 相反?本质上可以让我做与pnorm() 相同的事情,但有一个样本?像这样的:

backwards_quantile(x, 5)

我找到了 ecdf() 函数,但无法找到一种方法让它产生单个概率而不是完整的方程对象。

【问题讨论】:

    标签: r probability


    【解决方案1】:

    ecdf 返回一个函数:你需要应用它。

    f <- ecdf(x)
    f( quantile(x,.91) )
    # Equivalently:
    ecdf(x)( quantile(x,.91) )
    

    【讨论】:

    • 在原始帖子中显示的示例中,您实际上必须运行 ecdf(x)(5) 才能找到给定x 的 5 的分位数(给定种子 123,大约为 0.697)。
    【解决方案2】:

    为了方便起见,这个函数有帮助:

    quantInv <- function(distr, value) ecdf(distr)(value)
    set.seed(1)
    x <- rnorm(1000, mean=4, sd=2)
    quantInv(x, c(4, 5, 6.705755))
    [1] 0.518 0.685 0.904
    

    【讨论】:

      【解决方案3】:

      你自己或多或少有答案。想写的时候

      backwards_quantile(x, 5)
      

      随便写

      ecdf(x)(5)
      

      这对应于 type=1 的 quantile() 的倒数。但是,如果您想要其他类型(我更喜欢 NIST 标准,对应 Excel 的 Percentile.exc,即 type=6),您还有更多工作要做。

      在后一种情况下,请考虑将其用于何种用途。例如,如果您只想绘制它,请考虑

      yVals<-seq(0,1,0.01)
      plot(quantile(x,yVals,type=6))
      

      但是如果你想要单个值的逆,比如 5,那么你需要编写一个求解函数来找到使 P 的值

      quantile(x,P,type=6) = 5
      

      例如this,它使用x的极值之间的二分查找:

      inverse_quantile<-function(x,y,d=0.01,type=1) {
        A<-min(x)
        B<-max(x)
        k<-(log((B-A)/d)/log(2))+1
        P=0.5
        for (i in 1:k) {
          P=P+ifelse((quantile(x,P,type=type)<y),2^{-i-1},-2^{-i-1})
        }
        P
      }
      
      

      因此,如果您想要数字 5 的集合 x 的类型 4 分位数,精度为 0.00001,那么您可以编写

      inverse_quantile<-function(x,5,d=0.00001,type=4)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-24
        • 2017-12-07
        相关资源
        最近更新 更多