问题标签 [stochastic-process]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1455 浏览

r - 模拟马尔可夫链路径 1000 次

我有以下马尔可夫链代码:

我必须计算达到状态 7 之前的平均步数。

我知道我需要运行至少 1000 个路径样本,计算每个样本中的步数,然后计算平均值(尽管有些路径不会达到 7 状态)。

我这样做了,但仍然无法正常工作:

为什么这不起作用?如何在循环中包含循环以包含计算 os 步数的函数?提前感谢您的任何建议。

0 投票
1 回答
81 浏览

matlab - 从随机微分方程解中提取一些参数的值

我在matlab中求解随机微分方程。例如:考虑随机微分方程

其中 k 是常数,A 和 B 是函数,dW(t) 是维纳过程。

我绘制了 [0,20] 中所有 t 的解。我们知道 dW(t) 是随机生成的。我的问题是:我想知道 A(x,t)、B(x,t)、dW(t) 对于特定 t 值和特定子区间的值,例如 [3,6]。我可以使用 Matlab 中的什么命令?

这是我根据 D.Higham 的论文使用的代码:

假设我想知道每个特定时间点或任何时间间隔的所有参数(包括随机:布朗)。怎么做?

0 投票
1 回答
2386 浏览

matlab - ode45 用于朗之万方程

我有一个关于使用 Matlab 计算随机微分方程解的问题。方程是本文(PDF)中第 3 页的 2.2a,b 。

我的教授建议使用ode45小时间步长,但结果与文章中的不符。特别是时间序列和pdf。我对函数中白噪声的定义也有疑问。

这里是集成函数的代码:

主脚本:

如果您有任何建议,我将不胜感激。

这里是面对我的 EM 方法和“sde_euler”的新代码。

再次感谢您的帮助 !

0 投票
1 回答
310 浏览

r - 防止 Gillespie SSA 随机模型运行为负

我使用 Gillespie SSA 制作了一个随机感染模型(寄生虫)。该模型使用“GillespieSSA”包(https://cran.r-project.org/web/packages/GillespieSSA/index.html)。简而言之,代码模拟了一组离散的隔间。隔间之间的移动取决于用户定义的速率方程。SSA 算法用于计算给定时间步长 (tau) 的每个速率方程产生的事件数量,并相应地更新总体,过程重复到给定时间点。问题是,假设事件的数量是泊松分布的 (Poisson(rate[i]*tau)),因此当比率为负数时会产生错误,包括当人口数变为负数时。

因此,计算速率并且模型更新每个时间步的总体值,将数据存储在数据框中,然后与之前的运行一起附加。但是,当人口水平变得非常低时,可能会发生事件,使得减少人口的事件数量大于隔间中的数量。一种方法是使时间步长非常小,但这会大大增加模拟的长度。

我的问题是有没有一种方法来增加代码,以便在每个时间步创建/计算数据时,任何负数的人口数值都转换为 0?

我已经尝试解决这个问题,但似乎只能想出在模拟完成后改变值的方法,而负值仍然会导致运行本身出现问题。例如
,如果 (sir.out$L < 0) sir.out$L == 0

任何帮助,将不胜感激

0 投票
1 回答
5976 浏览

r - 给定转移概率矩阵,如何获得马尔可夫链的平稳分布

我正在尝试写mpow(P, 18)向量形式和矩阵形式编写。任何人都可以帮助我吗?

另外,我试图找到每个州的平稳分布。

这是我写的代码:

0 投票
1 回答
100 浏览

r - 具有矩阵不同概率的赌场游戏

这是我的任务:

彼得带着 1 美元去赌场。在 p 的概率下,Peter 赢得 1 美元,在 (1-p) 的概率下,他损失 1 美元。该过程可以看作是一个马尔可夫链。

如果彼得达到 0 美元,他就会破产回家,如果他设法达到 5 美元,他就会高兴地回家。

求当 p=30%、40%、50%、60% 和 70% 时彼得带着 5 美元回家的概率。为每个概率构造矩阵,其中前 4 个状态是瞬态类别(1-4 美元),后两个状态是两个循环状态(0 和 5 美元)。

我的解决方案

使用 when_converged 查找每个单独的矩阵何时收敛(P^n = P^n+1)。

然后使用 mpow 中的 n 来查看从 1 美元到 5 美元的概率,也就是从状态 1 到 6。

这是我的代码:

从 Rstudio 我得知 P30 收敛于 35。

从 Rstudio 我得知 P40 收敛于 37。

从 Rstudio 我得知 P50 收敛于 47。

从 Rstudio 我得知 P60 收敛于 61。

从 Rstudio 我得知 P70 收敛于 79。

我需要什么帮助

我从 Rstudio 得到的是,对于 mpow(P60, 61) 和 mpow(P70, 79),与 mpow(P50, 47) 和 mpow(P40, 37) 相比,以 5 美元回家的可能性变得更低。赢得 1 美元的概率较小。这感觉不对。有什么我做错了吗?请尝试使用我的方法而不是使用完全不同的代码来解决它。

0 投票
1 回答
387 浏览

matlab - MATLAB中布朗运动增量的方差

我在 MATLAB 中模拟布朗运动,但是我得到了一个奇怪的结果,布朗运动增量的方差随着时间的推移而增长,而它应该保持不变。例如我构建了一个布朗运动系统,

然后我用时间步长 1 和长度 10 插入 1000 次试验

布朗运动的增量应该是独立的,所以如果我构造一个增量矩阵并取方差,它们应该都相同并且等于波动率参数的平方。

然而,它显然不满足简单理论的结果,即每个增量的方差应该为 0.2^2。看起来未来的每个增量都会将 2*0.2^2 添加到之前增量的方差中。当布朗运动似乎满足其他理论时,我似乎无法弄清楚为什么会发生这种情况,例如在给定时间的运动方差。我在这里有什么明显的遗漏吗?

0 投票
1 回答
294 浏览

matlab - 如果卡尔曼滤波器无法计算出稳定的卡尔曼增益,可能的原因是什么?

我有一个关于卡尔曼滤波器的问题。我正在将卡尔曼滤波器用于状态空间模型,如下所示:

其中状态空间矩阵(A(k),B(k),C(k),D(k))在每个采样时间更新,但 Q 和 R 矩阵被认为是恒定的。计算卡尔曼增益 (K(k)) 和协方差 P 矩阵 (P(k)) 的方程如下:

我面临的问题与(A(k)-K(k)*C(k)). 在某些采样时间,计算出的卡尔曼增益不能使(A(k)-K(k)*C(k))矩阵稳定,其特征值(A(k)-K(k)*C(k))在单位圆之外。

你能帮我找出这个问题的原因吗?我期待卡尔曼滤波器为我提供增益,使(A(k)-K(k)*C(k))矩阵在单位圆内的特征值保持稳定。

0 投票
1 回答
226 浏览

stochastic - 了解术语确定性和非随机性

我对下面这张幻灯片中呈现的情况感到困惑:

图片

最后几句话说:

重要的是要注意确定性并不意味着 xt 是非随机的。这是什么意思?如果A和B是随机变量,那么x一定是随机的吧?

0 投票
1 回答
427 浏览

r - 使用 JAGS 进行纯出生过程推断

我正在尝试使用 JAGS 来推断(随机)纯出生过程中的出生率。

用化学的语言来说,这个模型等价于反应:X->2X with rate alpha*X(也可以看成是链式反应的模型)

这是我用来生成过程的 R 代码(在固定时间)和用于推断参数 alpha 的 jags 代码。

当我运行代码时,我收到以下错误:

我尝试了不同的方法,例如将 alpha*y[i-1] 放入一个新变量(例如 lambda[i])或通过 New[i-1] 更改对 New[i] 的调用,但没有任何效果。知道为什么会失败吗?另一种更聪明的方法是什么?

先感谢您。