绘制多个几何布朗运动

时间:2017-09-05 07:06:13

标签: r data-visualization

我使用以下代码在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编码它是对的吗?

2 个答案:

答案 0 :(得分:0)

我相信您可能正在寻找matplot功能,例如

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

生成以下图

enter image description here

答案 1 :(得分:0)

这是一种为数据创建图表的方法。

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

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