如何在forecast包的Arima()中指定AR/MA参数及提取AR系数?
R语言forecast包Arima函数问题解答
一、手动指定AR参数报错的解决办法
你尝试用Arima(yt, order = c(1, 0, 0), ar = c(0.8000))时报错,是因为forecast::Arima()函数并不通过ar参数直接固定系数。要手动设定AR或MA参数的固定值,需使用fixed参数:
fixed是一个向量,对应模型所有待估计参数的位置,固定值填具体数字,需自由估计的参数填NA- 对于ARIMA(1,0,0)模型,默认会包含均值项(除非指定
include.mean=FALSE),所以参数顺序是:AR系数在前,均值在后
正确示例代码:
# 固定AR(1)系数为0.8,不包含均值项 Arima(yt, order = c(1, 0, 0), fixed = c(0.8), include.mean = FALSE) # 若需保留均值项,让均值自由估计 Arima(yt, order = c(1, 0, 0), fixed = c(0.8, NA))
二、提取auto.arima模型的AR参数系数
从auto.arima()拟合的模型中提取AR参数,直接从模型对象的系数属性中筛选即可:
方法1:正则匹配筛选
auto_fit <- auto.arima(yt) # 获取所有系数 all_coefs <- coef(auto_fit) # 提取名称以"ar"开头的系数(即AR参数) ar_coefs <- all_coefs[grepl("^ar", names(all_coefs))] print(ar_coefs)
方法2:结合arimaorder定位
如果需要结合arimaorder()的结果,可先获取AR阶数,再提取对应数量的前序系数(适用于无MA项或均值项位置明确的情况):
order <- yt %>% auto.arima %>% arimaorder ar_order <- order[1] ar_coefs <- coef(auto_fit)[1:ar_order]
内容的提问来源于stack exchange,提问作者Daniel James
相关产品推荐
相关产品推荐

