提取 ARIMA 系数以用于自定义函数

Extracting ARIMA coefficients for use in custom function

我想运行一个基于ARIMA模型的自定义函数。该函数从 ARIMA (2, 0, 3) 模型 运行 中调用一年的每日数据的 ma3 系数,并从每个公司的 2 中减去 ma3 系数。我有五家公司 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 

我知道可以手动估计结果,但我的数据集足够大,手动处理时会造成混淆。请建议修改以解决此问题。

有两种方法可以获得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) 给了您一个 table,您不能对其应用 $ 运算符:

x <- arima(df, c(2,0,3))
class(summary(x))
[1] "summaryDefault" "table"