【问题标题】:Importance sampling on mixed normal distribution混合正态分布的重要性抽样
【发布时间】:2020-07-21 06:00:16
【问题描述】:

如何通过重要性采样计算高斯混合模型的均值?假设我有一个模型,有 60% 的机会从 N(-1,1) 分布中抽样,有 40% 的机会从 N(2,1/9) 分布中抽样。以下是我从 g*f(x)/h 的标准重要性采样格式中得到的内容;但我认为我的函数 f 不正确,因为我使用了求和混合函数,而不是真正通过概率抽样。关于我应该改变什么有什么建议吗?谢谢!

set.seed(100)
N = 100
x = rnorm(N,mean=0,sd=0.6) # Sample x samples from the proposal distribution h(x)
h = dnorm(x,mean=0,sd=0.6) # Evaluate h(x)
g = rep(0,N)
g=x


f = function(x) {        # Evaluate f(x)
  f = 0.6*rnorm(x,-1,1)+0.4*rnorm(x,2,1/9)
  return(f)
} 

mean(g*f(x)/h)

【问题讨论】:

    标签: r distribution gaussian sampling mixed-models


    【解决方案1】:

    对于重要性抽样,我想您应该在代码中更改几点:

    1. 您可能需要足够大的N
    2. 你应该在你的函数f中使用dnorm,而不是rnorm

    一个例子如下:

    N = 1e8
    X = rnorm(N) # Sample x samples from the proposal distribution h(x)
    h = dnorm(X) # Evaluate h(x)
    
    
    f = function(x) 0.6*dnorm(x,-1,1)+0.4*dnorm(x,2,1/9)      # Evaluate f(x)
    
    mean(X*f(X)/h)
    # [1] 0.2002296
    

    如您所见,混合正态分布的理论均值为0.6*(-1) + 0.4*2 = 0.2,与重要性采样的结果一致。

    【讨论】:

    • 当我们只使用给定的 0.6 和 0.4 时,它真的是采样吗?因为我们需要使用 prob=60% 的 sample() 进行采样,看看实际观察到了多少百分比?
    • @jamesblack 是的,因为混合正态分布的均值是所有分量均值的加权和
    猜你喜欢
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 2016-04-17
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多