R:估计Carma(2,1)参数(使用yuima包)

时间:2015-12-08 09:35:07

标签: r time-series

(这也发布在Quant.SX上,但我不确定这是否是一个更好的地方)

我是R的新手,尤其是yuima套餐,所以我希望有人可以帮助我。

我有一些数据(每日价格)我希望通过估算参数来适应Carma(2,1)模型。

假设我有

d <- read.csv("http://chart.yahoo.com/table.csv?s=IBM&g=d&x=.csv")

我认为我应该做的是

library(yuima)
y <- setYuima(data = setData(d$Close), model = setCarma(2,1))
x <- qmle(y, start = list(a1 = 1, a2 = 1, b0 = 1))

(但有一些其他参数)。

但是,当我这样做时,我在第一行(y <- ...)行中收到以下错误:

Error in if (dim(data@original.data)[2] == 1) { : 
  argument is of length zero

我不知道为什么会这样,以及setYuima函数所期望的。谁能告诉我怎么做?

1 个答案:

答案 0 :(得分:2)

也许:

library(xts)
library(yuima)
d <- read.csv("http://chart.yahoo.com/table.csv?s=IBM&g=d&x=.csv", stringsAsFactor = FALSE)
d$Date <- as.Date(d$Date)
d.xts <- xts(d[,-1], d[,1])
y <- setYuima(data = setData(d.xts$Close), model = setCarma(2,1))
y
# Carma process p=2, q=1 with Levy jumps
# Number of equations: 3
# Number of Wiener noises: 1
# Parametric model with 6 parameters

# Number of original time series: 3
# length = 13577, time range [1962-01-02 ; 2015-12-07]

# Number of zoo time series: 3
#     length   time.min   time.max delta note
# x.1  13577 1962-01-02 2015-12-07     7    *
# x.2  13577 1962-01-02 2015-12-07     7    *
# x.3  13577 1962-01-02 2015-12-07     7    *
# ================
# * : maximal mesh