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

时间:2016-03-08 05:59:02

标签: r function panel autoregressive-models

我想基于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 

我知道结果可以手动估算,但我的数据集足够大,在手动处理时会让人感到困惑。请建议编辑以解决此问题。

1 个答案:

答案 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"