【问题标题】:how to sample from an upside down bell curve如何从倒置的钟形曲线中采样
【发布时间】:2020-11-18 03:02:00
【问题描述】:

我可以使用下面的代码生成均匀分布的数字:

runif(1,min=10,max=20)

如何对更频繁地接近最小和最大边界的随机生成的数字进行采样? (又名“倒挂钟形曲线”)

【问题讨论】:

  • 正态分布没有最小值和/或最大值
  • @Gregor-reinstateMonica Ha-ha-ha-ha-ha,刚刚提出了这个解决方案
  • @SeverinPappadeux 随意拿一点我的参数解释,我可以删除评论。
  • @Gregor-reinstateMonica 完成!

标签: r statistics


【解决方案1】:

嗯,钟形曲线通常是高斯曲线,这意味着它没有最小值和最大值。您可以尝试Beta distribution 并将其映射到所需的时间间隔。顺势而为

min <- 1
max <- 20
q <- min + (max-min)*rbeta(10000, 0.5, 0.5)

正如@Gregor-reinstateMonica 所指出的,Beta 分布在两端都有界,[0...1],因此它可以很容易地通过比例和移位映射到任何有界区间。它有两个参数,如果这些参数相等,则对称。高于 1 的参数使其成为钟形分布,但低于 1 的参数使其成为逆钟形,您正在寻找什么。你可以和他们一起玩,输入不同的值而不是 0.5,看看它是怎么回事。参数等于 1 使其一致。

【讨论】:

  • 谢谢@Severin,在0.5 - 0.6之间调整后,我达到了我的实际意图。
【解决方案2】:

从 beta 分布中抽样是个好主意。另一种方法是采样一些统一的数字,然后取它们中的最小值或最大值。

根据顺序统计理论,最大值的累积分布函数是F(x)^n,其中F是从中提取样本的cdf,n是样本数,而对于最小值为1 - (1 - F(x))^n。对于均匀分布,cdf 是从 0 到 1 的一条直线,即F(x) = x,因此最大值的 cdf 为x^n,最小值的 cdf 为1 - (1 - x)^n。随着n 的增加,它们变得越来越弯曲,大部分质量都靠近末端。

在网络上搜索“订单统计”会找到一些资源。

【讨论】:

    【解决方案3】:

    如果您不关心小数位,一个 hacky 方法是使用 rnorm() 生成大量正态分布数据点样本,然后计算每个给定舍入值出现的次数 (n),然后然后从 n (max(n)) 的最大值中减去 n 得到倒数。

    然后您可以使用逆计数来创建一个新向量(您可以从中采样),即:

    
    library(tidyverse)
    
    x <- rnorm(100000, 100, 15)
    
    x_tib <- round(x) %>%
      tibble(x = .) %>%
      count(x) %>%
      mutate(new_n = max(n) - n)
    
    new_x <- rep(x_tib$x, x_tib$new_n)
    
    qplot(new_x, binwidth = 1)
    
    
    

    【讨论】:

      【解决方案4】:

      可以使用以下算法对与正态分布相比的“倒置钟形曲线”进行采样。我用伪代码编写它,因为我不熟悉 R。请注意,此采样器以截断间隔(此处为间隔 [x0x1])进行采样,因为它不可能扩展倒置的钟形曲线到无穷大积分到 1(这是概率密度的要求之一)。

      在伪代码中,RNDU01() 是一个统一的(0, 1) 随机数。

      x0pdf = 1-exp(-(x0*x0))
      x1pdf = 1-exp(-(x1*x1))
      ymax = max(x0pdf, x1pdf)
      while true
        # Choose a random x-coordinate
        x=RNDU01()*(x1-x0)+x0
        # Choose a random y-coordinate
        y=RNDU01()*ymax
        # Return x if y falls within PDF
        if y < 1-exp(-(x*x)): return x
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-28
        • 2019-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多