首页 > 其他分享 >R语言布朗运动模拟股市、物种进化树状图、二项分布可视化

R语言布朗运动模拟股市、物种进化树状图、二项分布可视化

时间:2023-12-25 23:44:07浏览次数:47  
标签:语言 进化树 方差 布朗运动 二项分布 状图 模拟 随机

全文链接:http://tecdat.cn/?p=32393

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

本文模拟了在连续和离散时间布朗演化一些简单的方法。

布朗运动的数学模型(也称为随机游动)也可以用来描述许多现象以及微小颗粒的随机运动, 如股市的波动和在化石中的物理特性的演变。

布朗运动是随机模式,即改变了从一次到下一个是随机从正态分布绘制均值为0.0,方差为σ2×ΔT。换句话说,根据布朗运动的预期方差通过时间与瞬时差σ2线性增加。

股市模拟

首先,模拟股市一个实例为100的离散时间布朗运动,其中,扩散过程的方差为σ2=0.01。

   
## 首先模拟随机数  
x <- rnorm(n = length(t) - 1, sd = sqrt(sig2))  
## 计算累加和  
x <- c(0, cumsum(x))

image.png

画图

我们得出各t的时间间隔的随机正偏离改变;然后在每个时间间隔,我们计算累积总和。从而可以看出布朗运动的变化的分布是不变的,并且不依赖于时间的状态。

   
1)  
X <- cbind(rep(0, nsim), t(apply(X, 1, cumsum)))  
plot(t, X[1, ], xlab = "time", ylab = "phenotype", ylim = c(-2, 2), typ

image.png

为了看到这结果如何取决于σ2,我们比较除以10 的SIG2的结果:

   
X <- matrix(rnorm(n = nsim * (length(t) - 1), sd = sqrt(sig2/10)), nsim,

image.png

然后,我们使用for循环 :

   
e = "l")  
for (i in 1:nsim) lines(t, X[i, ])

image.png

如上所述,根据布朗运动的预期方差只是σ2。然后,我将使用模拟10000个相同的条件下的结果,以“理顺”我们的结果是:

   
v <- apply(X, 2, var)  
plot(t, v, type = "l", xlab = "time", ylab = "variance among simulation

image.png

物种进化

然后,我们尝试用布朗运动模拟物种进化树状图。查看数据的变化情况:

   
t <- 100  # 总时间  
n <- 30  # 总分支  
b <- (log(n) - log(2))/t

image.png

现在,来模拟树,我们只需要分别模拟在每个分支的所有分支,然后由最终状态“转向”每个子分支它的父节点。 因为在每个时间步布朗进化的结果是独立于其它所有时间步长。

沿着每条边模拟进化

   
yy <- sapply(yy, function(x, y) y[[x]][length(y[[x]])], y = X)  
text(x = max(H), y = yy, tree$tip.label)

image.png

在现实中,布朗运动的大部分模拟使用连续的而不是离散的时间进行。这是因为布朗运动意味着不同物种之间的协方差之间的预期差异。

关于布朗进化的一些其他特点:

在某些情况下,在树的不同部分的布朗进化有可能存在不同的速率。因此可以简单的模仿不同部门的不同的速率布朗运动。

   
tree <- sim.history(tree, Q, anc = "1")

image.png

   
els = TRUE,  
    spread.cost = c(1, 0))

1111.png 下面模拟不同的树从而通过散点图证实相同的父节点产生的树拥有相似的协方差。

   
plot(tree, edge.width = 2, direction = "downwards")

image.png

   
rplotMatrix(t(X))

image.png

布朗运动不假定在其下个体谱系移动的过程是高斯过程。其结果将服从高斯分布 - 和中心极限定理。

   
t <- 0:100    
sig2 <- 0.01  
nsim <- 1000

二项分布的布朗运动

我们模拟二项分布的布朗运动 并查看方差是否和之前一样等于1

   
apply(X[2:nsim, ], 1, function(x, t) lines(t, x), t = t)

image.png

image.png

image.png

布朗运动,一般认为是没有趋势;然而它(在某些情况下)可以模拟一个模型的趋势。这里是一个模拟(使用如上述相同的一般方法)趋势的一个例子。

   
X <- matrix(rnorm(mean = 0.02, n = nsim * (length(t) - 1), sd = sqrt(sig2/4)),  
    nsim, length(t) - 1)

image.png

对于布朗运动的数学模型的简单形式的形式: S_T= eS_t-1  其中e是从概率分布绘制。因此,后续还有更多的应用值得进一步研究。


thumb-gettyimages-1312389354.jpg 最受欢迎的见解

1.R语言泊松Poisson回归模型分析案例

2.R语言进行数值模拟:模拟泊松回归模型

3.使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

4.R语言对布丰投针(蒲丰投针)实验进行模拟和动态可视化

5.用R语言模拟混合制排队随机服务排队系统

6.GARCH(1,1),MA以及历史模拟法的VaR比较

7.R语言做复杂金融产品的几何布朗运动的模拟

8.R语言进行数值模拟:模拟泊松回归模型

9.R语言对巨灾风险下的再保险合同定价研究案例:广义线性模型和帕累托分布Pareto distributions

标签:语言,进化树,方差,布朗运动,二项分布,状图,模拟,随机
From: https://www.cnblogs.com/tecdat/p/17927218.html

相关文章

  • [LeetCode Hot 100] LeetCode84. 柱状图中最大的矩形
    题目描述思路:枚举+优化(单调栈)先固定矩阵的高。然后向左向右找到第一个比当前元素值小的元素,确定好左右边界。对于元素2来说:向左找到第一个比当前元素值小的元素:1的右边界向右找到第一个比当前元素值小的元素:3的右边界枚举每个元素的上边界,确定往左数最远到达哪个边界......
  • Highcharts 用SVGRenderer方法使柱状图连接列边​
    需求在Highcharts中,可以使用SVGRenderer方法来创建路径连接柱状图的列边,并根据具体的数据和需求进行适当的调整和扩展。分析要使用Highcharts的SVGRenderer方法来绘制柱状图并连接列边,可以按照以下步骤进行操作:创建柱状图:使用Highcharts的 chart 方法创建一个柱状图,并......
  • vue中echarts图表---正负轴柱状图
    一、安装npmiecharts--save二、引入//全局引入importechartsfrom'echarts'Vue.prototype.$echarts=echarts//局部【这里使用局部引入】importechartsfrom'echarts';三、代码1<!--容器-->2<divid="cylinderEcharts"ref="cyl......
  • 代码随想训练营第六十天(Python)| 84. 柱状图中最大的矩形
    84.柱状图中最大的矩形1、双指针classSolution:deflargestRectangleArea(self,heights:List[int])->int:n=len(heights)#左右第一个小于i的下标min_l,min_r=[0]*n,[0]*nres=0min_l[0]=-1......
  • 打工笔记----------------------------跨进程控制SysTreeView32树状图控件的问题
    跨进程控制SysTreeView32树状图控件的问题,啥也不说了,直接上代码:publicpartialclassForm1:Form{//定义常量publicconstintWM_LBUTTONDBLCLK=0x020B;//左键双击消息publicconstintWM_RBUTTONDOWN=0x0204;//右键按下消息......
  • matlab中绘制三维柱状图bar3函数的使用方法
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • HighCharts 极地图图表绘制及添加标示线+柱状图找最值
    需求:绘制极地图并给极地图图表加上标示线,在柱状图中找出最值分析:图表加上标示线在需要的轴上面用plotLines(标示线)属性来进行添加,极地图则是在chart(图表)属性里开启polar(极)属性然后进行绘制,找出最值需要在plotOptions属性里进行修改解决:源代码:示例:标示线总是垂直于它属于的轴。......
  • python Matplotlib库:根据excel生成各种柱状图
    我将向大家介绍如何使用Python和一些常见的库来根据Excel数据生成十种不同类型的图表。通过多维度的可视化,我们可以更全面地了解数据中的模式、趋势和关系。无论您是数据分析师、市场营销人员还是研究人员,这些图表将帮助您挖掘数据中更多的信息。1.准备工作 首先,我们需要安装一些......
  • 4-基因家族的系统进化树-基于Windows系统上的iqtree
    今天来讲如何构建系统进化树,使用的软件是iqtree,这是一个基于最大似然法估算的建树软件,可以在Windows系统上运行。1,于此网址“http://www.iqtree.org/”自行下载,并解压。2,将已经鉴定好的自己的基因家族蛋白序列(fasta格式),先用MAFFT网站做多序列比对。我的蛋白序列文件命名是“Ptb......
  • 二项分布
    数学之美今天你不看天气预报,不想昨天前天有没有下雨,不用任何知识去猜出明天是否会下雨,这是一个事件;如果你连续猜未来两天的,那就是两个事件,而且这两个事件是独立的如果说第一天你猜中会下雨的概率为\(P_0\),第二天你猜中下雨的概率为\(P_1\),则两天都猜中下雨的概率\(P_0\)*\(P_1\)......