2017-09-05 52 views
1

我創建幾何布朗運動的各種模擬中的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對它進行編碼是正確的嗎?

回答

0

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

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

生成以下圖形

enter image description here

+0

這完美的作品,它也很簡單,非常感謝你! – Kolmogorovwannabe

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

+0

美麗的情節代碼,非常感謝你! – Kolmogorovwannabe