如何将R中的结果保存为列表并将其用于进一步计算?

时间:2016-03-24 14:11:47

标签: r

我是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并在代码中的某些其他位置截取术语但我不知道如何使用它。我真的需要你的帮助,非常感谢你。

1 个答案:

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