首页 > 其他分享 >R语言蒙特卡罗Monte Carlo方法进行数值积分和模拟可视化

R语言蒙特卡罗Monte Carlo方法进行数值积分和模拟可视化

时间:2023-12-14 23:26:22浏览次数:25  
标签:Monte 曲线 近似 蒙特卡罗 pi Carlo 我们 模拟

全文链接:https://tecdat.cn/?p=34556

原文出处:拓端数据部落公众号

蒙特卡罗方法的常见用途是对可能难以通过解析积分的函数执行数值积分。这可能看起来很奇怪,但直觉是相当简单的。关键是几何思维问题,并将其与概率连接。让我们采取一个简单的多项式函数,用y = x ^ 2来说明这个想法。

假设我们想要找到这个函数的积分,但是我们不知道如何从分析中得到它。 现在,如果我们随机地将米粒(理想地点)投入箱中,则曲线下方的谷物数量与箱的总面积的比将收敛于积分。直观地来说,这是有意义的,因为如果框中的每个点具有相等的被计数的概率,则事件(点在曲线下方)的总概率与曲线下面积相同是合理的。实际上,绘制10000个随机点似乎填满了盒子。

   
n <- 10000  
f <- fnton(x) x^2  lot(rni(n),ruif(n) ol='be',h20)  
cue(f, 0,1, n=100, col'he'addTRUE)

image.png

现在我们如何从一个均匀分布在一个盒子中的点得到积分的近似值? 为了回答这个问题,让我们考虑一下这个 “曲线下面积”。 这是告诉我们,曲线下的点是重要的。 因此,对于给定的x值,y值必须小于同一点处的函数值。

   
ps <- mrunif(2*n), ncl=2)  
g <- funcx,y) y <= x^2  
z <- g([,1] ps[,2])  
plt(ps[!z,1], ps[!z,2], 
(f, 0,1, n=100, lE)

QQ截图20231128144503.png

简单的说,积分就是曲线下所有点的计数除以总点数,这是点落在曲线下的概率。 > length(z[z]) / n [1] 0.3325 注意,该方法不限于计算积分。 它甚至可以用于近似无理数如 pi。 稍后我们将探讨这种情况。

近似误差和数值稳定性

数值近似似乎有用,但我们如何知道近似是否好? 为了回答这个问题,我们需要考虑近似误差。 让我们先来看看随着我们增加点的数量,近似值是如何变化的。

   
ks <- 1:7  
g <- fcin(k) {  
  n <- 10^k  
  f <- fucin(x,y) y <= x^2  
  z <- f(ruif(n), rnif(n))  
  leth(z[z]) / n  
}  
a <- sapy(ks,g)
a

image.png

从这个特定的实现来看,似乎近似收敛,虽然有些缓慢。 请记住,上面的每个近似值都需要一个数量级的样本来产生结果。 有100万点,误差约为0.038%。 我们需要多少分才能达到0.01%以下? 从Grinstead和Snell,我们知道错误将在95%的时间内在 frac {1} { sqrt {n}}内,这意味着一百万个试验应该达到0.0003162278或0.032%的精度。 因此,我们需要运行1000万次试验,以达到95%概率的精度。 作为 检查,在我第一次尝试我得到0.009071%,这看起来不错。

当近似值随着迭代次数的增加而提高时,这被称为数值稳定性。 绘制理论极限和实际误差表明,使用足够的条件,两个似乎收敛。

   
ot(ks, 1/st(10^ks), ye='l')  
lis(ks, as(1/3 - a),)

image.png

然而,试图在抽象中回答这一点是一个错误。 对精度的需求是具体情况,因此没有固定的规则可以遵循。 它类似于病例特异性的显着性检验。 关键是要达到足够的精度,使您的结果不会在使用时产生噪音。

估计 pi 现在是时候把注意力转向 pi。 如前所述,可以使用蒙特卡罗方法来估计 pi。 对于这种情况,我使用圆的方程来定义面积。 由于单位圆具有 pi的面积,其四分之一将具有面积 frac { pi} {4}。 因此,最终结果将需要乘以4以获得最终近似。

   
g <- fnon(k) {  
  n <- 10^k  
  f <- fucon(x,y) sqrt(x^2 + y^2) <= 1  
  lgh(z[z]) / n  
}  
a <- sapply(1:7, g)

a*4

image.png

类似于 int_0 ^ 1 x ^ 2 dx的近似, pi的近似似乎跳转,尽管收敛到真实值。 对于给定次数的试验,值的跳跃量与近似误差有关。 除了知道必须模拟多少迭代以获得精确近似之外,知道给定近似可以偏离多少也是重要的。 我们可以通过反复运行相同迭代次数的模拟来观察这一点。

   
tils <- 4 * sply(rep(6,100), g)  
e <- 1/sqt(10^6)

ma(trils) 

leth(trals[bs(rils - pi)/pi <= e]) 

image.png

除了近似误差,关于蒙特卡罗方法有趣的是,许多问题可以通过将问题转换成蒙特卡罗方法的形式来解决。

模拟

蒙特卡罗方法的常见用途是用于模拟。 不是近似函数或数字,目标是基于模拟通过过程的多个路径来理解结果的分布或集合。 正如Grinstead&Snell所描述的,一个简单的模拟是多次掷硬币。 这里我们使用均匀分布并将实值输出转换为集合 left  {-1,1  right }。 (样本函数可以直接做到这一点,但这是更多的说明。)

   
r <- ruif(1000)  
s <- ese(r > .5, 1, -1)  
plot(cmm(toss), ='l')

image.png

掷硬币

这个模拟显示了我们在随机扔硬币1000次后发生了什么。 很难从这里收集很多信息,但如果我们做同样的实验1000次,现在我们可以看到可能结果的良好表示。 给定这组结果,可以计算统计特征来表征分布的属性。 当不遵循已知分布时,这是有用的。

   
oucos <- sppy(1:1000, fnon(i) sum(ifse(ruif(1000) > .5, 1, -1)))  
hist(otcmes)

image.png

CCUS-1536x15361.jpg

标签:Monte,曲线,近似,蒙特卡罗,pi,Carlo,我们,模拟
From: https://www.cnblogs.com/tecdat/p/17902426.html

相关文章

  • macOS Monterey 12.7.2 (21G1974) 正式版发布,ISO、IPSW、PKG 下载
    macOSMonterey12.7.2(21G1974)正式版发布,ISO、IPSW、PKG下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。macOSMonterey12.7.x如无特殊说明,......
  • matlab用Logistic逻辑回归建模和马尔可夫链蒙特卡罗MCMC方法分析汽车实验数据
    原文链接:http://tecdat.cn/?p=24103原文出处:拓端数据部落公众号 此示例说明如何使用逻辑回归模型进行贝叶斯推断。统计推断通常基于最大似然估计(MLE)。MLE选择能够使数据似然最大化的参数,是一种较为自然的方法。在MLE中,假定参数是未知但固定的数值,并在一定的置信度下进......
  • 使用蒙特卡罗模拟的投资组合优化
    在金融市场中,优化投资组合对于实现风险与回报之间的预期平衡至关重要。蒙特卡罗模拟提供了一个强大的工具来评估不同的资产配置策略及其在不确定市场条件下的潜在结果。我们的目标是开发一个蒙特卡罗模拟模型的投资组合优化。参与者将被要求构建和分析由各种资产类别(例如,股票,债......
  • 【视频】风险价值VaR原理与Python蒙特卡罗Monte Carlo模拟计算投资组合实例|附代码数
    原文链接:http://tecdat.cn/?p=22862 最近我们被客户要求撰写关于风险价值的研究报告,包括一些图形和统计输出。风险价值(VaR)是一种统计数据,用于量化公司、投资组合在特定时间范围内可能发生的财务损失程度什么是风险价值(VaR)?该指标最常被投资银行和商业银行用来确定其机构......
  • Python学习笔记(一)蒙特卡罗算法求圆周率π
    绪论\(\pi\)(圆周率)是数学和物理学普遍存在的常数之一,可以被定义为圆周长和直径之比或者圆的面积与半径平方之比(\(l=2\pir\)和\(S=\pir^2\))。\(\pi\)是一个无理数,下面将用蒙特卡罗算法求\(\pi\)的数值近似。要求1.要求能算到小数点后面越多越好‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫......
  • R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证
    全文链接:http://tecdat.cn/?p=31162最近我们被客户要求撰写关于SV模型的研究报告,包括一些图形和统计输出。本文做SV模型,选取马尔可夫蒙特卡罗法(MCMC)、正则化广义矩估计法和准最大似然估计法估计。模拟SV模型的估计方法:  sim<-svsim(1000,mu=-9,phi=0.97,sigma......
  • macOS Sonoma 14 RC2(23A344)/Ventura13.6/Monterey 12.7 三版系统同时更新
    以下是一篇黑果魏叔关于【macOSSonoma14RC2(23A344)/macOS13.6/macOS12.7同时更新】的文章,希望对您有所帮助。近日,苹果公司发布了macOSSonoma14RC2(23A344)版本更新,这标志着苹果公司继推出macOSBigSur和macOSMonterey之后,再次为macOS系统带来了新的升级。此次升级......
  • macOS Monterey 12.7 (21G816) 正式版 ISO、IPSW、PKG 下载
    macOSMonterey12.7(21G816)正式版ISO、IPSW、PKG下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月22日,Apple为macOS和iOS......
  • macOS Monterey 12.6.9 (21G726) 正式版发布,ISO、IPSW、PKG 下载
    macOSMonterey12.6.9(21G726)正式版发布,ISO、IPSW、PKG下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和......
  • macOS Monterey 12.6.9 (21G726) Boot ISO 原版可引导镜像
    macOSMonterey12.6.9(21G726)BootISO原版可引导镜像本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和iOS等......