2016-03-24 14 views
0

R için yeni ve temel bir soru sormak istedim. Ben gayet auto.arima bazı sonuç var, ŞimdiR sonuçları bir liste olarak nasıl kaydedilir ve daha fazla hesap için nasıl kullanılır?

#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 

ama başka bir yerde onun yolunu kesmek ve diğer önemli istatistik kullanmak istiyorum: Ben aşağıdaki kodu kullanarak ARIMA hesaplanan hangi bir zaman serisi var. Bir şekilde ona başvurabilir miyim?

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 

Şimdi kodda başka bir noktada AIC, AR, MA ve kesişme terimleri kullanmak istiyorum ama nasıl kullanılacağını bilmiyorum: Mesela ben şu sonuç elde. Gerçekten yardımınıza ve Çok Teşekkürlerinize ihtiyacım var.

+0

'c (tsData.arima101)' tsData.arima101'de her şeyin nasıl referans gösterildiğini gösterecektir. Sonra kullanmak için 'tsData.arima101 $ ' kullanın. –

cevap

0

Dene: Burada

library(tseries) 
library(forecast) 
tsData <- ts(data = rnorm(12), frequency = 12) 

arima101 <- auto.arima(tsData) 

ana modeli sonuçları: nesnenin (str(arima101)) yapısına baktığımızda

> 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 

, sen başvurabileceğiniz unsurları görüyoruz. Aşağıdaki ekrana biraz daha uygundur:

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"   

Şimdi bu elemanların bir listesine başvurmak istiyorum aynı şekilde başvuruda bulunabilir. o liste elemanlarını erişme gibi olduğundan

arima101$coef 
     ar1 intercept 
-0.7112331 -0.5140006 

arima101$aic 
[1] 33.03931 

, çift parantez da işe:

arima101[["coef"]] 
     ar1 intercept 
-0.7112331 -0.5140006 

bir dataframe içine modelin veya çeşitli modellerin sonuçlarını koymak istiyorsanız, broom yararlı olabilir.

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 

Burada tidy(arima101) çıkışı bir dataframe olduğunu. İlgili özet istatistikleri glance ile erişilen alabilirsiniz: Eğer verilere erişmek kullandığınız yolla bunları erişebilmesi için bu fonksiyonların

glance(arima101) 
     sigma logLik  AIC  BIC 
1 0.7249358 -13.51966 33.03931 34.49403 

çıkışı, her zaman bir dataframe olduğunu. Daha fazla bilgi için bkz. vignette("broom").

+0

Teşekkürler ... çalıştı ama şimdi arima101 $ coef üzerinden gidersem, tüm katılımcıların listesini alırım ama ne olursa olsun, örneğin ar1 için belirli bir katsayı istiyorum. Bu yüzden tsData.arima101 $ coef $ ar1'i denedim ama işe yaramadı. Bunun için herhangi bir fikir. Çok teşekkürler – muazfaiz

+0

Bu, bir vektörün alt kümesini oluşturuyormuşsunuz gibi çalışır, aslında bunu yaparsınız. Ör. arima101 $ katsayısı [1]. – coffeinjunky

+0

Daha genel ve belki de daha pedagojik olmak için, nesnenin ne tür olduğunu söyleyen str veya class (your.object) çıktısına bakabilirsiniz. Daha sonra soru, "go-inert bir yazının nasıl yazılacağı" haline gelir. – coffeinjunky

İlgili konular