对fArma中的armaFit函数感到困惑

时间:2015-08-09 03:16:26

标签: r

我正在尝试创建一个函数来测试所有组合并找到最低的AIC,类似于auto.arima函数。但似乎我不能在armaFit函数中使用变量。此代码按预期工作:

public void doSomething() {
    // Do it here
}

但是这段代码没有:

library(quantmod)
library(fArma)
library(PerformanceAnalytics)

getSymbols('SPY',from='1900-01-01')
spyRets=Return.calculate(Cl(SPY),method=c('log')) #log returns
spyArma=armaFit(~arma(1,1),data=spyRets)

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:3)

那是因为当你使用公式时,假设所有变量都来自你通过data=参数传递的data.frame。

在这种情况下,您最好动态地构建公式。一种方法是使用bquote()

p <- 1
q <- 1
f <- eval(bquote(~arma(.(p), .(q))))
spyArma <- armaFit(f,data=spyRets)