我是R的新手,想问一个基本问题。我有一个时间序列,我使用以下代码计算ARIMA:
#ARIMA Model Script
library(tseries)
tui <- read.csv("C:/Data.csv",header = TRUE, sep = ",")
tsData <- ts(data = tui[,3], frequency = 12) #converting into time series for 3rd time time series column
tsData.arima101 <- auto.arima(tsData) #automatic selection of best ARIMA model
tsData.arima101 # Results of the ARIMA model
现在,我从auto.arima得到了一些结果,这很好,但我想在其他地方使用它的拦截和其他重要统计数据。我可以用某种方式参考吗?例如,我得到以下结果:
Call:
arima(x = d.tsData, order = c(2, 0, 3))
Coefficients:
ar1 ar2 ma1 ma2 ma3 intercept
-0.4415 0.3401 -0.3630 -0.9994 0.3625 -0.6277
s.e.1.0198 0.8519 1.0238 0.1836 1.0126 0.5106
sigma^2 estimated as 754.2: log likelihood = -167.95, aic = 349.91
现在我想使用AIC,AR,MA并在代码中的某些其他位置截取术语但我不知道如何使用它。我真的需要你的帮助,非常感谢你。
答案 0 :(得分:0)
尝试:
library(tseries)
library(forecast)
tsData <- ts(data = rnorm(12), frequency = 12)
arima101 <- auto.arima(tsData)
这里的主要模型结果如下:
> arima101
Series: tsData
ARIMA(1,0,0) with non-zero mean
Coefficients:
ar1 intercept
-0.7112 -0.5140
s.e. 0.2635 0.1287
sigma^2 estimated as 0.5255: log likelihood=-13.52
AIC=33.04 AICc=36.04 BIC=34.49
当您查看对象的结构(str(arima101)
)时,您会看到可以引用的元素。以下显示更方便:
names(arima101)
[1] "coef" "sigma2" "var.coef" "mask" "loglik"
[6] "aic" "arma" "residuals" "call" "series"
[11] "code" "n.cond" "nobs" "model" "bic"
[16] "aicc" "x"
现在,您可以像引用列表一样引用这些元素。
arima101$coef
ar1 intercept
-0.7112331 -0.5140006
arima101$aic
[1] 33.03931
由于它就像访问列表元素一样,双括号也可以工作:
arima101[["coef"]]
ar1 intercept
-0.7112331 -0.5140006
如果您想将模型或各种模型的结果放入数据框中,broom
可能会有用。
library(broom)
tidy(arima101, conf.int = T)
term estimate std.error conf.low conf.high
1 ar1 -0.7112331 0.2635398 -1.2277617 -0.1947046
2 intercept -0.5140006 0.1287007 -0.7662494 -0.2617519
此处,tidy(arima101)
的输出是数据帧。可以使用glance
:
glance(arima101)
sigma logLik AIC BIC
1 0.7249358 -13.51966 33.03931 34.49403
这些函数的输出始终是一个数据框,因此您可以像访问数据一样访问它们。有关详细信息,请参阅vignette("broom")
。