程式

R - 在 yuima 中繪製 3 維樣本路徑?

  • May 14, 2021

抱歉,如果這不是發布此內容的合適位置 - 這是我對 Quantitative Finance Stack Exchange 的第一個貢獻。我希望有人可以幫助我解決以下問題。我yuima用來模擬 3 維擴散過程:

model <- setModel(drift = c("((-1)/(2-x1))-1/2","0","0"),                    
                 diffusion = matrix(c("1","0","0","0","1","0","0","0","1"), 3, 3),
                 solve.variable = c("x1","x2","x3"))

然後模擬它並繪製它:

sampling <- setSampling(Initial = 0, Terminal = 10, n = 1000)
yuima <- setYuima(model = model, sampling = sampling)
simulation <- simulate(yuima,xinit = 1)
plot(simulation)

這似乎有效。但是:這會生成每個時間序列、和隨著時間的,而實際上我真正想要想像的是三維路徑(帶有極座標、和)的樣子。x1``x2``x3``x1``x2``x3

除非有一個版本plot3D或類似的版本yuima(我沒有運氣用Google搜尋它),否則如果有一種方法可以將(三個)時間序列simulation轉換為矩陣或列表,那麼真正對我有幫助的是,在這種情況下我很確定我能得到想要的情節。

任何幫助將不勝感激。一切順利。

編輯:我選擇的答案解決了我的問題,但為了將來參考,這些是以下內容simulate

   > print(str(simulate))
Formal class 'standardGeneric' [package "methods"] with 8 slots
 ..@ .Data     :function (object, nsim = 1, seed = NULL, xinit, true.parameter, space.discretized = FALSE, increment.W = NULL, increment.L = NULL, 
   method = "euler", hurst, methodfGn = "WoodChan", sampling = sampling, subsampling = subsampling, ...)  
 ..@ generic   : chr "simulate"
 .. ..- attr(*, "package")= chr "yuima"
 ..@ package   : chr "yuima"
 ..@ group     : list()
 ..@ valueClass: chr(0) 
 ..@ signature : chr [1:13] "object" "nsim" "seed" "xinit" ...
 ..@ default   : NULL
 ..@ skeleton  : language (function (object, nsim = 1, seed = NULL, xinit, true.parameter, space.discretized = FALSE, increment.W = NULL, i| __truncated__ ...
NULL

您可以通過欄位呼叫從 Yuima 模擬對像中恢復模擬

Ser1 <- simulation@data@zoo.data$"Series 1"
Ser2 <- simulation@data@zoo.data$"Series 2"
Ser3 <- simulation@data@zoo.data$"Series 3"

然後使用以下將上述轉換為矩陣cbind

Sims_to_matrix <- cbind(Ser1, Ser2, Ser3)

現在,您可以使用您最喜歡的 3d 繪圖工具(例如Plotly)來獲得您想要的東西。您還可以使用ggplot2. 我希望這有幫助!

引用自:https://quant.stackexchange.com/questions/63951