【问题标题】:sampling univariate gausssian with specific mean and standard deviation using jax.random.normal使用 jax.random.normal 对具有特定均值和标准差的单变量高斯分布进行采样
【发布时间】:2021-03-16 22:41:06
【问题描述】:

我正在尝试从具有特定标准偏差和均值的高斯中进行采样,我知道 following function 正在从均值为零且标准偏差等于 1 的高斯中进行采样:

import jax
from jax import random

key = random.PRNGKey(0)
mu = 20
std = 4

x1 = jax.random.normal(key, (1000,))

我可以通过x1 = x1 + mu 来调整平均值,但是如何调整标准差?

【问题讨论】:

    标签: python gaussian jax


    【解决方案1】:

    以这种方式创建您的示例:

    x1 = mu + std * jax.random.normal(key, (1000,))
    

    如果这样做,样本的直方图将遵循预期分布:

    import jax
    from jax import random
    from jax.scipy.stats import norm
    import matplotlib.pyplot as plt
    
    key = random.PRNGKey(0)
    mu = 20
    std = 4
    
    x1 = mu + std * jax.random.normal(key, (1000,))
    plt.hist(x1, bins=50, density=True)
    
    x = jnp.linspace(5, 35, 100)
    y = norm.pdf(x, loc=mu, scale=std)
    plt.plot(x, y)
    

    【讨论】:

      【解决方案2】:

      这个

      x1 = std * x1 + mu
      

      会给你想要的

      【讨论】:

      • 谢谢,我试过了,但是当我绘制x1 的直方图时,它看起来不对
      • @ValientProcess 这有点令人惊讶,因为这是高斯随机变量的基本属性。如果您将直方图添加到您的问题并解释为什么它看起来不适合您,这可能会有所帮助。也许还有其他事情发生
      猜你喜欢
      • 2012-11-10
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 2020-05-19
      • 2019-01-25
      • 2013-11-25
      • 1970-01-01
      相关资源
      最近更新 更多