R中的重要性抽样

R中的重要性抽样,r,R,我是统计学的初学者,目前正在学习重要性抽样。我在这里搜索过类似的问题,但仍然无法解决我的问题 如果我需要评估目标分布的E(x) f(x)=2 * x * exp(-x^2), x>0 通过使用重要性抽样,我得到了一个建议分布 g(x)=exp(-x) 然后 我的R代码是这样的 x=rexp(1000) w=4*x^2 y=exp(-w) mean(y) 我做得对吗? 非常感谢你的帮助 它只是加权样本平均值 非加权样本平均值平均值(x)给出建议密度的期望值;而加权样本平均值平均值(w

我是统计学的初学者,目前正在学习重要性抽样。我在这里搜索过类似的问题,但仍然无法解决我的问题

如果我需要评估目标分布的
E(x)

f(x)=2 * x * exp(-x^2), x>0
通过使用重要性抽样,我得到了一个建议分布

g(x)=exp(-x) 
然后

我的R代码是这样的

x=rexp(1000)
w=4*x^2
y=exp(-w)
mean(y)
我做得对吗?
非常感谢你的帮助

它只是加权样本平均值


非加权样本平均值
平均值(x)
给出建议密度的期望值;而加权样本平均值
平均值(w*x)
给出了目标密度的期望值。但是你用错了重量。我认为正确的方法是
w它只是加权样本平均值


非加权样本平均值
平均值(x)
给出建议密度的期望值;而加权样本平均值
平均值(w*x)
给出了目标密度的期望值。但是你用错了重量。我认为正确的方法是
w我认为您可能希望这样做:

x<-rexp(n=1000,r=1)
fx<-function(x){
  return(x^2*exp(-(x^2)))
}
gx<-function(x){
  return(exp(-x))
}

Ex=mean(x*fx(x)/gx(x))

x我想你可能想做这样的事情:

x<-rexp(n=1000,r=1)
fx<-function(x){
  return(x^2*exp(-(x^2)))
}
gx<-function(x){
  return(exp(-x))
}

Ex=mean(x*fx(x)/gx(x))

我想你首先需要理论上的建议。这个论坛是为那些知道需要算法步骤的人而设的。看起来你还没有完全做到。雪人认为你首先需要理论上的建议。这个论坛是为那些知道需要算法步骤的人而设的。你似乎不太清楚。是的,在这个例子中,x函数的选择会随着密度函数的使用而变化吗?如果是,我们如何确定?如果fx和gx是不同的函数,我们将如何选择x函数或均匀函数的变换?在本例中,x函数的选择是否随使用的密度函数而变化?如果是,我们如何确定?如果fx和gx是不同的函数,我们将如何选择x函数或一致函数的变换?
mean(w)
[1] 1.036482
mean(w * x) / mean(w)
[1] 0.9050671
x<-rexp(n=1000,r=1)
fx<-function(x){
  return(x^2*exp(-(x^2)))
}
gx<-function(x){
  return(exp(-x))
}

Ex=mean(x*fx(x)/gx(x))