从 auto.arima 中提取系数而不截取
extract coefficient from auto.arima without intercept
我想从我用 auto.arima
创建的几个模型中提取 AR 系数。问题是我想取 AR 系数的总和但没有 intercept/mean。
bsp_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp_auto <- auto.arima(bsp_ts, max.p = 12, max.q = 0, seasonal = FALSE, d=0)
summary(bsp_auto)
sum(coef(bsp_auto))
如何才能只访问 AR 系数?我知道系数保存在 auto.arima
的列表中,因此我认为解决方案是使用相应的 "list language" 访问系数,但我对列表仍然没有经验。有人可以帮忙吗? :) 提前致谢...
编辑:多个模型
bsp1_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp2_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp3_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp_ts <- list(bsp1_ts, bsp2_ts, bsp3_ts)
bsp_auto <- lapply(bsp_ts, function(x) auto.arima(x, max.p = 12, max.q = 0, seasonal = FALSE, d=0))
多个模型的系数提取,像这样:
ARcoef_li <- lapply(ARpers_li, function(x) sum(ARpers_li$x$coef)
单一模型
library(forecast)
bsp_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp_auto <- auto.arima(bsp_ts, max.p = 12, max.q = 0, seasonal = FALSE, d=0)
你可以这样做:
my_coefficients = bsp_auto$coef
my_coefficients[!names(my_coefficients) == 'intercept']
请注意,当您键入 bsp_auto$
时,RStudio 将为您提供有关从模型中提取的可用对象的建议。这些信息可能会在将来帮助您完成类似的任务。 bsp_auto$coef
returns 命名向量:
ar1 intercept
0.7877316 3.6909753
所以我回答中的第二行用于 'discard' 我们矢量中的 intercept
。
希望对您有所帮助!
多个模型
bsp1_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp2_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp3_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp_ts <- list(bsp1_ts, bsp2_ts, bsp3_ts)
bsp_auto <- lapply(bsp_ts, function(x) auto.arima(x, max.p = 12, max.q = 0, seasonal = FALSE, d=0))
lapply(bsp_auto,function(x){ x$coef[!names(x$coef)=='intercept']} )
我想从我用 auto.arima
创建的几个模型中提取 AR 系数。问题是我想取 AR 系数的总和但没有 intercept/mean。
bsp_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp_auto <- auto.arima(bsp_ts, max.p = 12, max.q = 0, seasonal = FALSE, d=0)
summary(bsp_auto)
sum(coef(bsp_auto))
如何才能只访问 AR 系数?我知道系数保存在 auto.arima
的列表中,因此我认为解决方案是使用相应的 "list language" 访问系数,但我对列表仍然没有经验。有人可以帮忙吗? :) 提前致谢...
编辑:多个模型
bsp1_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp2_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp3_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp_ts <- list(bsp1_ts, bsp2_ts, bsp3_ts)
bsp_auto <- lapply(bsp_ts, function(x) auto.arima(x, max.p = 12, max.q = 0, seasonal = FALSE, d=0))
多个模型的系数提取,像这样:
ARcoef_li <- lapply(ARpers_li, function(x) sum(ARpers_li$x$coef)
单一模型
library(forecast)
bsp_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp_auto <- auto.arima(bsp_ts, max.p = 12, max.q = 0, seasonal = FALSE, d=0)
你可以这样做:
my_coefficients = bsp_auto$coef
my_coefficients[!names(my_coefficients) == 'intercept']
请注意,当您键入 bsp_auto$
时,RStudio 将为您提供有关从模型中提取的可用对象的建议。这些信息可能会在将来帮助您完成类似的任务。 bsp_auto$coef
returns 命名向量:
ar1 intercept
0.7877316 3.6909753
所以我回答中的第二行用于 'discard' 我们矢量中的 intercept
。
希望对您有所帮助!
多个模型
bsp1_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp2_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp3_ts <- ts(c(1,2,1,2,3,2,3,2,4,3,4,3,4,5,4,3,5,6,5,4,5,6,7,6))
bsp_ts <- list(bsp1_ts, bsp2_ts, bsp3_ts)
bsp_auto <- lapply(bsp_ts, function(x) auto.arima(x, max.p = 12, max.q = 0, seasonal = FALSE, d=0))
lapply(bsp_auto,function(x){ x$coef[!names(x$coef)=='intercept']} )