zoukankan      html  css  js  c++  java
  • 拓端tecdat|R语言中的模拟过程和离散化:泊松过程和维纳过程

    原文链接:http://tecdat.cn/?p=17303 

    本文中,我们讨论了一个将Poisson过程与Wiener过程结合在一起的最佳算法的问题。实际上,为了生成泊松过程,我们总是习惯于模拟跳跃之间的持续时间。我们使用给定时间间隔内跳跃的均匀性,该条件取决于跳跃的次数。

    首先,我们可以生成一个可能具有漂移的维纳过程,然后在其旁边,我们可以生成指数定律(这将对应于跳跃之间的时间),还可以生成跳跃幅度 。我们在这里

    要么 。我们首先通过注意

    其中增量是高斯(均值和方差),并且彼此独立。至于跳跃之间的持续时间,它们是独立的平均指数定律。这是代码,

    1.  
      n=1000
    2.  
      h=1/n
    3.  
      lambda=5
    4.  
      set.seed(2)
    5.  
      W=c(0,cumsum(rnorm(n,sd=sqrt(h))))
    6.  
      W=rexp(100,lambda)
    7.  
      N=sum(cumsum(W)<1)
    8.  
      T=cumsum(W[1:N])
    9.  
      X=-rexp(N)

    问题是对于维纳过程,我们必须离散化,而对于复合泊松过程,我们不能离散化。但是,他们有相同的时间范围。第一种方法是建立trunc函数 

    1.  
       
    2.  
      W[trunc(n*t)+1]+sum(X[T<=t])+lambda*t
    3.  
       

    然后可视化

    1.  
      L=Vectorize(Lt
    2.  
       
    3.  
      plot(u,L(u),type="l

     

    另一种可能性是使用我在引言中提到的泊松过程的均匀性。因为泊松过程满足一个特性:如果是第i个跳跃发生的日期,则有条件基于以下事实: ,变量 

     对应于的订单统计  独立变量,是均匀分布

    该属性可在 Wolff(1982)中找到。我们从一个(单个)跳跃开始,

    即我们找到一个统一的分布函数。然后,我们进行2跳,3跳等迭代。

    这个想法的R翻译很简单

    N=rpois(1,lambda)
    

    然后,一种策略是离散化Poisson过程,与Wiener过程的时间步长相同,

    1.  
      indice=trunc(T*n
    2.  
      processus=W+cumsum(saut)+lambda*u

    我们发现与以前相同的轨迹

    通过此过程,我们不能在同一时间间隔内有两次跳跃。泊松过程的特征是

    因此,极少有机会同时进行两次跳跃,尤其是在时间步长较小的情况下。如果我们生成数千条轨迹,那么一次出现问题的可能性就可以忽略不计。

    有一个主意是采用离散均匀分布,

    T=c(0,sort(sample((1:(n-1)/n),size=N,replace=FALSE)))

    以避免同时发生两次跳跃。

    为此,我们可以做一些测试。例如,生成一些模拟以具有一百次跳跃(因此两次跳跃之间的持续时间为一百次),然后进行指数定律检验。

    1.  
      VT=0
    2.  
      for(ns in 1:20){
    3.  
      N=rpois(1

    我们在这里做了20个循环

    lambda=5

    我想进行一百次观察来进行检验。然后,我们可以进行指数拟合检验,

    ks.test(VT[-1],"pexp",lambda)$p.value

    如果我们重复很多次,则通过更改时间步长(或时间间隔的细分数),实际上,如果时间步长很大(在左下方),我们将通常拒绝,指数定律也是如此。但是很快,这是一个不成立的假设,

     

    我们有两个不错的算法来生成莱维过程。


     

    最受欢迎的见解

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

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

    3.r语言泊松回归分析

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

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

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

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

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

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

    ▍关注我们 【大数据部落】第三方数据服务提供商,提供全面的统计分析与数据挖掘咨询服务,为客户定制个性化的数据解决方案与行业报告等。 ▍咨询链接:http://y0.cn/teradat ▍联系邮箱:3025393450@qq.com
  • 相关阅读:
    codeforces-1194 (div2)
    单链表1(悲剧文本)
    迷宫(深度搜索)
    皇后问题
    关键路径
    [NOI2015]软件包管理器
    [USACO13JAN]岛游记Island Travels
    仓鼠找sugar
    [SHOI2012]魔法树
    [HEOI2016/TJOI2016]树
  • 原文地址:https://www.cnblogs.com/tecdat/p/13850969.html
Copyright © 2011-2022 走看看