首页 > 编程知识 正文

蒙特卡洛模拟真值(蒙特卡洛模拟分析法)

时间:2023-05-05 07:42:32 阅读:91985 作者:2191

从一开始就实施强大的统计工具

蒙特卡罗模拟是一种强有力的工具,在难以导出准确分布的情况下可以进行近似估计。 如果对随机变量(RV )应用复杂的变换(已知分布),就会发生这种情况。 有各种各样的APP交流。 从期权定价到缩小海岸警卫队搜救工作的地理范围。 但是怎么工作呢?

概率分布

的独特之处在于其分布。 在连续RV的情况下,概率密度函数(PDF )表示规定值下的连续RV的密度。 因为任意值出现的概率为零,所以为了找出RV进入指定范围的概率,需要对一系列值进行积分。 对于离散RV,该函数称为概率质量函数(PMF ),返回特定值出现的概率。 他们说明了观察随机变量的模式和频率。

CDF只是PDF或PMF的累积值。 随机变量取曲线/阶函数正下方值以下的概率。 因为概率必须在0到1之间,所以CDF的范围在0到1之间。 用f表示。

逆变换采样

除了是概率论的基础知识外,还与蒙特卡罗模拟有什么关系? 以下命题(注意:大写表示RV,小写表示RV的实现。

这意味着可以向x的逆CDF提供均匀分布的最小值0和最大值1的随机变量,从而生成x的随机值。

以指数分布的CDF为例。 在下面。

CDFofanexponential(lambda )分布

通过将u定义为f(x )并求解x,可以找到反向CDF。

inversecdfofanexponential (lambda )分布

现在可以将u uniform (0,1 ) RV提供给该反向CDF,并基于指数分布生成随机提取。 选择1作为我的lambda参数。 我使用的代码如下。 (注意:效率低下,可以通过矢量化加快速度,也可以使用scipy.stats模块。 这是为了清楚地展示逆变换采样结构的基础。 )

thecodeusedtogenerateexponential (lambda ) RVs

在10,000个模拟随机变量下,该模拟与理论分布非常接近。

现在,让我们尝试转换。

近似于RV的变换

现在,我们生成平方标准的普通随机变量。 这实际上是chi-square(1) RV,通过检查正确的分布可以很容易地检查近似值的好坏。

gc-image/be54adc6211545e8b25fab68ef9bb5ce?from=pc">

如您所见,该近似值相当合理。

在绘制了这些RV之后,我计算出低于1的比例(近似概率)为0.6857。 然后,我通过使用评估为1的Chi-Square(1)CDF将其与确切概率进行比较。确切概率为0.6826894921370859。 在10,000次模拟中,这种近似效果非常好

现在,我们用它来近似估算RV的分布,而其确切分布将需要一些求解。

近似我的任意RV

我定义了一些任意的RV。 让我们将其称为A并在下面进行定义。

找到确切的发行版本需要一些工作,而我不喜欢工作。 幸运的是,我可以编写一个函数来近似A的分布。

现在我们有了A的分布的近似值,并且可以找到用于推断目的的近似概率。

现在,我们已经完成了对任意RV的近似处理,让我们看一个假设的用例。

正回报的可能性

假设我们知道某些证券的收益是分布(0.05,0.07),而下一个周期的收益并不取决于该周期的收益(这是一个随机游动的例子)。 在第5期,我们的投资回报率是正的概率是多少?

5000 Random Walks of our hypothetical security and the distribution of final returns

通过计算最终收益大于0的比例并除以模拟次数,我们发现在5个周期结束时证券价值增加的可能性约为0.85。 在构建投资组合时,这是有用的信息(尽管在现实生活中我们从来没有像这样干净的案例)。

奖金申请:蒙特卡洛积分

除了近似分布外,还可以使用蒙特卡洛模拟法对难以解析或无法解析的定积分进行数值近似。 这称为蒙特卡洛积分。 它是通过评估从(,)生成的随机变量实现时的函数来执行的,其中a是定积分的下限,b是上限。 然后将这些结果取平均值,然后乘以-即可得到从到的积分的近似值。

使用以下功能:

它的积分无法通过分析得出,因此让我们在0到1的区间内对其进行近似。

运行10,000次仿真得出的近似值约为0.244,这与Wolfram给出的近似值0.244十分接近,因此该函数按预期工作。

结论

如果您坚持了这么长时间,谢谢阅读。 我希望您能学到一些有关蒙特卡洛模拟如何在后台进行的知识。 希望这些知识将在您继续学习蒙特卡洛模拟的应用程序(例如Markov Chain Monte Carlo)时为您提供帮助。 再次提醒您使用scipy.stats中优化的.rvs()方法进行采样,以获取感兴趣的分布。 它比重复追加到列表要快一个数量级。

(本文翻译自John Clements的文章《Understanding Monte Carlo Simulation》,参考:https://towardsdatascience.com/understanding-monte-着急的黑裤-simulation-eceb4c9cad4)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。