程式
R - 在 yuima 中繪製 3 維樣本路徑?
抱歉,如果這不是發布此內容的合適位置 - 這是我對 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
. 我希望這有幫助!