我正在尝试遵循本文第 3.2 节中给出的关于使用gmm
R
包的示例。所以我想估计一个稳定分布的参数。我正在使用以下代码
library(gmm)
library(stabledist)
library(StableEstim)
g1 <- function(theta, x){
tau <- seq(1, 5, length.out = 10)
pm <- 1
x <- matrix(c(x), ncol = 1)
x_comp <- x%*%matrix(tau, nrow = 1)
x_comp <- matrix(complex(imaginary = x_comp), ncol = length(tau))
emp_car <- exp(x_comp)
the_car <- charStable(theta, tau, pm)
gt <- t(t(emp_car) - the_car)
gt <- cbind(Im(gt), Re(gt))
return(gt)
}
x1 <- returns$log.return[2:6966]
t0 <- McCullochParametersEstim(x1)
res1 <- gmm(g1, x1, t0, optfct = "nlminb",
lower = c(0, -1, 0, -Inf),
upper = c(2, 1, Inf, Inf))
summary(res1)
请注意,这McCullochParametersEstim()
是一种基于分位数的参数估计方法,用于计算起始值。当我运行此代码时,我收到以下错误
Error in AA %*% t(X) : requires numeric/complex matrix/vector arguments
In addition: Warning message:
In ar.ols(x, aic = aic, order.max = order.max, na.action = na.action, :
model order: 1 singularities in the computation of the projection
matrix results are only valid up to model order 0
我的数据可以在这里找到。在数据集中,我有价格、对数价格、对数回报和非对数回报。当我对price
和return
列中的数据运行代码时,例如x1 <- returns.return[2:6966]
,没有问题。当我使用log
orlog.return
列中的数据运行代码时,会出现错误消息。我不确定对数变换是否会以某种方式改变数据类以导致错误。任何帮助表示赞赏。