R语言中的模拟过程和离散化:泊松过程和维纳过程
原文链接:http://tecdat.cn/?p=17303
本文中,我们讨论了一个将Poisson过程与Wiener过程结合在一起的最佳算法的问题。实际上,为了生成泊松过程,我们总是习惯于模拟跳跃之间的持续时间。我们使用给定时间间隔内跳跃的均匀性,该条件取决于跳跃的次数。
首先,我们可以生成一个可能具有漂移的维纳过程,然后在其旁边,我们可以生成指数定律(这将对应于跳跃之间的时间),还可以生成跳跃幅度 。我们在这里
要么
。我们首先通过注意
其中增量是高斯(均值和方差),并且彼此独立。至于跳跃之间的持续时间,它们是独立的平均指数定律。这是代码,
n=1000h=1/nlambda=5set.seed(2)W=c(0,cumsum(rnorm(n,sd=sqrt(h))))W=rexp(100,lambda)N=sum(cumsum(W)<1)T=cumsum(W[1:N])X=-rexp(N)
问题是对于维纳过程,我们必须离散化,而对于复合泊松过程,我们不能离散化。但是,他们有相同的时间范围。第一种方法是建立trunc函数
W[trunc(n*t)+1]+sum(X[T<=t])+lambda*t
然后可视化
L=Vectorize(Ltplot(u,L(u),type="l
另一种可能性是使用我在引言中提到的泊松过程的均匀性。因为泊松过程满足一个特性:如果是第i个跳跃发生的日期,则有条件基于以下事实:
,变量
对应于的订单统计
独立变量,是均匀分布
该属性可在 Wolff(1982)中找到。我们从一个(单个)跳跃开始,
即我们找到一个统一的分布函数。然后,我们进行2跳,3跳等迭代。
这个想法的R翻译很简单
N=rpois(1,lambda)
然后,一种策略是离散化Poisson过程,与Wiener过程的时间步长相同,
indice=trunc(T*nprocessus=W+cumsum(saut)+lambda*u
我们发现与以前相同的轨迹
通过此过程,我们不能在同一时间间隔内有两次跳跃。泊松过程的特征是
因此,极少有机会同时进行两次跳跃,尤其是在时间步长较小的情况下。如果我们生成数千条轨迹,那么一次出现问题的可能性就可以忽略不计。
有一个主意是采用离散均匀分布,
T=c(0,sort(sample((1:(n-1)/n),size=N,replace=FALSE)))
以避免同时发生两次跳跃。
为此,我们可以做一些测试。例如,生成一些模拟以具有一百次跳跃(因此两次跳跃之间的持续时间为一百次),然后进行指数定律检验。
VT=0for(ns in 1:20){N=rpois(1
我们在这里做了20个循环
lambda=5
我想进行一百次观察来进行检验。然后,我们可以进行指数拟合检验,
ks.test(VT[-1],"pexp",lambda)$p.value
如果我们重复很多次,则通过更改时间步长(或时间间隔的细分数),实际上,如果时间步长很大(在左下方),我们将通常拒绝,指数定律也是如此。但是很快,这是一个不成立的假设,
我们有两个不错的算法来生成莱维过程。
最受欢迎的见解
9.R语言对巨灾风险下的再保险合同定价研究案例:广义线性模型和帕累托分布Pareto distributions
- 智能主题检测与无监督机器学习:识别颜色教程
- 如何下载安装Weka机器学习工作平台
- Dubbo 源码解析 —— LoadBalance
- 如何处理机器学习中类的不平衡问题
- 【死磕Java并发】—– Java内存模型之重排序
- Mask R-CNN源代码终于来了,还有它背后的物体检测平台
- 37个TOP实例命令,超过一半你肯定都没见过
- 利用TensorFlow生成图像标题
- 保存并加载您的Keras深度学习模型
- 简单、通用的JQuery Tab实现
- Dubbo源码解析 - 远程暴露
- 使用FastText(Facebook的NLP库)进行文本分类和word representatio...
- 声音分类的迁移学习
- 【死磕Java并发】—– J.U.C之AQS:CLH同步队列
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- istio的安全(概念)
- 面试题系列第5篇:JDK的运行时常量池、字符串常量池、静态常量池,还傻傻分不清?
- Go by Example 中文版: 互斥锁
- Idea初始化配置大全,以后重装再也不用各种百度了
- 使用这种技巧,可以大大地提高前端布局效率
- Element-UI表格组件实现行拖拽排序
- Vue自定义指令实现拖拽功能
- 小程序 Canvas 层级问题
- JDK 8 新特性之函数式编程 → Stream API
- golang 单元测试框架实践
- 想要成为前端Star 吗?一首歌时间将React/Vue 应用Docker 化
- 60亿次for循环,原来这么多东西
- 不要再问我 in,exists 走不走索引了...
- 知乎太可恶了,一言不合就封号?
- 5年Java开发经验,面试挂在MySQL InnoDB上!大厂究竟多看重MySQL?