我想基于ARIMA模型运行自定义功能。该函数调用ARIMA(2,0,3)模型中的ma3系数运行一年的每日数据,并从每个公司减去ma3系数。我有5年公司的5年每日数据,因此每家公司应该有5年的价值。我的代码:
>Stressy =function(x) 2-summary(arima(x, order=c(2,0,3)))$coefficients[1, "ma3"]
>Funny = aggregate(cbind(QQ) ~ Year + Firm , df, FUN = Stressy)
运行我的代码会出现以下错误:
Error in summary(arima(x, order = c(2, 0, 3)))$coefficients : $ operator is invalid for atomic vectors
我知道结果可以手动估算,但我的数据集足够大,在手动处理时会让人感到困惑。请建议编辑以解决此问题。
答案 0 :(得分:1)
有两种方法可以获得ma3系数:
Stressy <- function(x) 2-coef(arima(x, order=c(2,0,3)))["ma3"]
或
Stressy <- function(x) 2-arima(x, order=c(2,0,3))$coef["ma3"]
您的原始自定义功能无效,因为summary(arima_object)
为您提供了一个表格,您无法应用$
运算符:
x <- arima(df, c(2,0,3))
class(summary(x))
[1] "summaryDefault" "table"