最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx

上传人:b****6 文档编号:7308365 上传时间:2023-01-22 格式:DOCX 页数:16 大小:87.52KB
下载 相关 举报
最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx_第1页
第1页 / 共16页
最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx_第2页
第2页 / 共16页
最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx_第3页
第3页 / 共16页
最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx_第4页
第4页 / 共16页
最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx

《最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx》由会员分享,可在线阅读,更多相关《最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx(16页珍藏版)》请在冰豆网上搜索。

最新R语言马尔科夫链蒙特卡洛MCMC分析报告 附代码数据.docx

最新R语言马尔科夫链蒙特卡洛MCMC分析报告附代码数据

R语言马尔科夫链蒙特卡洛MCMC简介

MCMC采样器

方法1:

逆累积分布函数

∙Aim:

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

rm(list=ls())#clearmemory

#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='n',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="blue");abline(h=u0,lty=2,col="blue")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

curve(pnorm,-5,5,ylab="CDF",xlab="z",xaxt='n',yaxt='n',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="blue");abline(h=u0,lty=2,col="blue")points(z0,u0,col="red",pch=20,cex=2)

MCMC简介

MCMC采样器

方法1:

逆累积分布函数

∙Aim:

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

rm(list=ls())#clearmemory

#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='n',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="blue");abline(h=u0,lty=2,col="blue")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

curve(pnorm,-5,5,ylab="CDF",xlab="z",xaxt='n',yaxt='n',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="blue");abline(h=u0,lty=2,col="blue")points(z0,u0,col="red",pch=20,cex=2)

 

MCMC简介

MCMC采样器

方法1:

逆累积分布函数

∙Aim:

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

rm(list=ls())#clearmemory

#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='n',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="blue");abline(h=u0,lty=2,col="blue")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

curve(pnorm,-5,5,ylab="CDF",xlab="z",xaxt='n',yaxt='n',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="blue");abline(h=u0,lty=2,col="blue")points(z0,u0,col="red",pch=20,cex=2)

 

MCMC简介

MCMC采样器

方法1:

逆累积分布函数

∙Aim:

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

rm(list=ls())#clearmemory

#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='n',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="blue");abline(h=u0,lty=2,col="blue")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

curve(pnorm,-5,5,ylab="CDF",xlab="z",xaxt='n',yaxt='n',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="blue");abline(h=u0,lty=2,col="blue")points(z0,u0,col="red",pch=20,cex=2)

 

MCMC简介

MCMC采样器

方法1:

逆累积分布函数

∙Aim:

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

rm(list=ls())#clearmemory

#Generateoneuniformandmapittoanormalrand

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1