最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据Word文档格式.docx
《最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
wewanttosimulatefrom
FF,a(cumulative)distributionfunction.
∙Ingredients:
目标:
我们想要从FF中模拟一个(累积)分布函数。
成分:
1.累积分布函数FF的倒数F-1F-1,又名分位数函数。
2.从统一(0,1)分布产生随机数,这是(0,1)(0,1)上的随机数。
想法:
如果我们在(0,1)(0,1)上生成数字uiui,那么变换的数字F-1(ui)F-1(ui)根据FF分配。
这是一个被称为“概率积分变换”的理论结果,抽样方法被称为“逆变换抽样”。
下面的R代码包含一个关于使用这种方法从N(0,1)中产生10,000万个数字的R。
##############################################################################################################################示例1:
逆CDF方法##############################################################################################################################3
rm(list=ls())#clearmemory
#Generate10,000uniformnumbersu=runif(10000)#Applythequantilenormalfunction
z=qnorm(u)#histogramhist(z,breaks=100,probability=T)curve(dnorm,-5,5,add=T,col="
blue"
lwd=2)box()
#Summarystatisticsmedian(z)#median
##[1]-0.02004848
quantile(z,c(0.025,0.975))#95%probabilityinterval
##2.5%97.5%
##-1.9339691.936913
mean(z)#mean
##[1]-0.01259031
sd(z)#standarddeviation
##[1]0.9970053
#Generateoneuniformandmapittoanormalrandomnumber
set.seed(123)u0=round(runif
(1),digits=2)
#Generateasingleuniformon(0,1)
print(u0)
##[1]0.29
z0=round(qnorm(u0),digits=2)#Transformitusingthenormalquantilefunction
print(z0)
##[1]-0.55
curve(pnorm,-5,5,ylab="
CDF"
xlab="
z"
xaxt='
n'
yaxt='
lwd=2,cex.lab=1.5)
#plot
axis(side=2,at=c(u0,0,1),cex.axis=1.5)axis(side=1,at=c(z0,-5,5),cex.axis=1.5)
abline(v=z0,lty=2,col="
);
abline(h=u0,lty=2,col="
)points(z0,u0,col="
red"
pch=20,cex=2)
#Generateoneuniformandmapittoanormalrandomnumber(againwithadifferentseed)
set.seed(12345)u0=round(runif
(1),digits=2)
#Generateasingleuniformon(0,1)print(u0)
##[1]0.72
z0=round(qnorm(u0),digits=2)#Transformitusingthenormalquantilefunctionprint(z0)
##[1]0.58
axis(side=2,at=c(u0,0,1),cex.axis=1.5)axis(side=1,at=c(z0,-5,5),cex.axis=1.5)abline(v=z0,lty=2,col="
MCMC简介
#Generateoneuniformandmapittoanormalrand