绘制多个几何布朗运动

绘制多个几何布朗运动

问题描述:

我创建几何布朗运动的各种模拟中的R用以下代码:绘制多个几何布朗运动

m <- 10 
n <- 1000 
mu <- 0.15 
sigma <- 0.3 
s0 <- 10 
T1 <- 5 
set.seed(70967993) 
MotiBr <- matrix(rnorm(m*n, 0, sqrt(T1/n)), n, m) 
MotiBr <- apply(MotiBr, 2, diffinv) 
temp <- (0:n)/n*T1 
MotiBr <- (mu - sigma^2/2)*temp + sigma*MotiBr 
MotiBr <- t(s0*exp(MotiBr)) 

现在我要绘制在曲线图中的结果是这样的:

enter image description here

请注意,它不是GBM,我只是为了公开我想要得到的结果而发布的。有人可以在这里发布代码,使用我在MotiBr中的模拟来创建一个这样的情节? PS:我给T1的值为5,但我的意思是[0,5]的时间段,只是用T1 <- 5对它进行编码是正确的吗?

我相信你可能在寻找matplot的功能,例如:

matplot(temp, t(MotiBr), type = "l", col = "black") 

生成以下图形

enter image description here

+0

这完美的作品,它也很简单,非常感谢你! – Kolmogorovwannabe

下面是创建为您的数据曲线的方法。

首先,将矩阵转换为长格式的数据帧。

dat <- data.frame(val = as.vector(MotiBr), 
        idx = seq(nrow(MotiBr)), 
        time = rep(seq(ncol(MotiBr)), each = nrow(MotiBr))) 

一种绘制数据的方法是ggplot2包。

library(ggplot2) 
ggplot(dat, aes(x = time, y = val, group = idx)) + 
    geom_line() 

enter image description here

+0

美丽的情节代码,非常感谢你! – Kolmogorovwannabe