我正在尝试实施蒙特卡罗与重要性抽样的整合。我创造了一个微不足道的例子 - 我希望整合h(x),它有一个学生t分布(mu = 1,sigma = 1,df = 100),但我们按比例放大了4倍 - 我希望整合区间[-2,2] - f(x),我的h(x)的pdf,则为t(1,1,100) - 我的提案分布是g(x)和普通(0,1)
我无法完成这项工作......我对如何实现重要性采样以及对h(x)和提案分布g(x)使用概率密度函数感到困惑。我确定我的实施是错误的。我希望有人能帮助我吗?
xtemp<-rnorm(100000)
x<-xtemp[which(xtemp>=-2 & xtemp<=2)]
hx<-dt(x,100)*4
fx<-dt(x,100)
gx<-dnorm(x)
IntMC<-sum(hx*fx/gx)/length(hx)
IntAn <-(pt(2,100)-pt(-2,100))*4
答案 0 :(得分:2)
由于您是从截断的正态分布中提取样本,因此不应使用正态分布的概率密度函数(在您的示例中为dnorm
),而应使用截断的法线分发(例如,来自包dtnorm
的{{1}})用于计算权重。
尝试以下操作,它会为您提供预期的结果:
msm