【问题标题】:For loops regression in RR中的循环回归
【发布时间】:2014-12-09 06:35:47
【问题描述】:

我正在将 GARCH 模型拟合到 ARIMA 和 ARIMA 的残差,并尝试将 ARCH(p) 应用于从 1 到 10 的 p 来比较适应度。这是我的代码。在 for 循环部分返回错误,但我无法弄清楚原因。任何人都可以提供一些提示吗?

所以对于单个值 p=1,代码如下所示,没有问题。

fitone<- garchFit(~garch(1,0),data=logprice)
coef(fitone)
summary(fitone)    

对于 for 循环,我的代码如下所示

for (n in 1:10) {
  fit [[n]]<- garchFit(~garch(n,0),data=logprice)
  coef(fit[[n]])
  summary(fit[[n]])
} 

Error in .garchArgsParser(formula = formula, data = data, trace = FALSE) : 
  Formula and data units do not match. 

我以前从未写过循环代码。有人可以帮我写代码吗?

【问题讨论】:

    标签: r for-loop regression


    【解决方案1】:

    问题在于,通常人们会尝试在data= 参数的上下文中评估公式中的所有变量,但您的n 变量不是来自logprice,而是来自全局环境。您将需要动态创建公式。这是使用 lapply 而不是 for 运行所有模型的一种方法

    library(fGarch)
    #sample data
    x.vec = as.vector(garchSim(garchSpec(rseed = 1985), n = 200)[,1])
    
    fits <- lapply(1:10, function(n) {
        garchFit(bquote(~garch(.(n),0)), data = x.vec, trace = FALSE)       
    })
    

    然后我们可以得到系数

    lapply(fits, coef)
    

    【讨论】:

    • 这真的很有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多