當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R arima 時間序列的 ARIMA 建模


R語言 arima 位於 stats 包(package)。

說明

將 ARIMA 模型擬合到單變量時間序列。

用法

arima(x, order = c(0L, 0L, 0L),
      seasonal = list(order = c(0L, 0L, 0L), period = NA),
      xreg = NULL, include.mean = TRUE,
      transform.pars = TRUE,
      fixed = NULL, init = NULL,
      method = c("CSS-ML", "ML", "CSS"), n.cond,
      SSinit = c("Gardner1980", "Rossignol2011"),
      optim.method = "BFGS",
      optim.control = list(), kappa = 1e6)

參數

x

單變量時間序列

order

ARIMA 模型非季節性部分的規範:三個整數分量 是 AR 階數、差分度和 MA 階數。

seasonal

ARIMA 模型的季節性部分的規範,加上周期(默認為 frequency(x) )。這可能是一個包含 orderperiod 組件的列表,或者隻是一個長度為 3 的數值向量,用於指定季節性 order 。在後一種情況下,使用默認期限。

xreg

(可選)外部回歸量的向量或矩陣,其行數必須與 x 相同。

include.mean

ARMA 模型是否應該包含均值/截距項?對於無差異序列,默認值為TRUE,對於有差異的 ARIMA 模型,它會被忽略。

transform.pars

邏輯性;如果為真,則對 AR 參數進行變換以確保它們保持在平穩區域內。不用於method = "CSS"。對於 method = "ML" ,在某些情況下設置 transform.pars = FALSE 是有利的,另請參見fixed

fixed

與要估計的係數總數相同長度的可選數值向量。它應該是這樣的形式

其中 是AR係數, 是MA係數, 是季節性AR係數, 是季節性MA係數, 是截距項。請注意,當且僅當 include.meanTRUE 時,才需要 條目。特別是,如果模型是具有差分的 ARIMA 模型,則不應出現該值。

fixed 向量的條目應包含用戶希望 “fix” 相應係數的值,或 NA(如果該係數不應固定而是估計)。

如果任何 AR 參數固定,則參數 transform.pars 將設置為 FALSE。如果 transform.pars 設置為(或保留默認值) TRUE ,則會發出警告。即使在固定 MA 參數時,設置 transform.pars = FALSE 也可能是明智的做法,尤其是在導致模型幾乎不可逆的值時。

init

初始參數值的可選數值向量。除回歸係數外,缺失值將用零填充。 fixed 中已指定的值將被忽略。

method

擬合方法:最大似然或最小化條件平方和。默認值(除非有缺失值)是使用 conditional-sum-of-squares 查找起始值,然後查找最大似然值。可以縮寫。

n.cond

僅在通過 conditional-sum-of-squares 擬合時使用:要忽略的初始觀測值的數量。如果小於 AR 項的最大滯後,它將被忽略。

SSinit

指定計算似然狀態空間初始化的算法的字符串;有關詳細信息,請參閱KalmanLike。可以縮寫。

optim.method

該值作為 method 參數傳遞給 optim

optim.control

optim 的控製參數列表。

kappa

差分模型中過去觀測值的先驗方差(作為創新方差的倍數)。不要減少這個。

細節

ARMA 模型的不同定義對於 AR 和/或 MA 係數具有不同的符號。這裏使用的定義有

因此MA係數的符號與S-PLUS的符號不同。此外,如果 include.mean 為 true(ARMA 模型的默認值),則此公式適用於 而不是 。對於具有差分的 ARIMA 模型,差分序列遵循 zero-mean ARMA 模型。如果包含 xreg 項,則線性回歸(如果 include.mean 為真且沒有差異,則使用常數項)將與誤差項的 ARMA 模型進行擬合。

估計的方差矩陣是從對數似然的 Hessian 矩陣中找到的,因此可能隻是一個粗略的指導。

優化由 optim 完成。如果 xreg 中的列粗略縮放至零均值和單位方差,則效果最佳,但會嘗試估計合適的縮放比例。

"Arima" 及其組件的列表:

coef

AR、MA 和回歸係數的向量,可以通過 coef 方法提取。

sigma2

創新方差的 MLE。

var.coef

係數的估計方差矩陣 coef ,可以通過 vcov 方法提取。

loglik

(差異數據的)最大對數似然,或所使用的近似值。

arma

規範的緊湊形式,作為向量給出 AR、MA、季節性 AR 和季節性 MA 係數的數量,以及周期以及非季節性和季節性差異的數量。

aic

對應於對數似然的 AIC 值。僅對 method = "ML" 配合有效。

residuals

適合的創新。

call

匹配的調用。

series

係列的名稱 x

code

optim 返回的收斂值。

n.cond

擬合中未使用的初始觀測值的數量。

nobs

用於擬合的 “used” 觀測值的數量也可以通過 nobs() 提取並由 BIC 使用。

model

表示擬合中使用的卡爾曼濾波器的列表。請參閱KalmanLike

裝配方法

確切的可能性是通過 ARIMA 過程的狀態空間表示以及卡爾曼濾波器發現的創新及其方差來計算的。差分 ARMA 過程的初始化使用平穩性,並且基於 Gardner 等人 (1980)。對於差分過程,非平穩組件被賦予擴散先驗(由 kappa 控製)。仍受擴散先驗控製的觀測值(通過至少 1e4 的卡爾曼增益確定)被排除在似然計算之外。 (在沒有缺失值的情況下,當排除的觀測值正是因差異而刪除的觀測值時,這給出了與 arima0 相當的結果。)

允許缺失值,並在方法 "ML" 中精確處理。

如果 transform.pars 為 true,則使用替代參數化來完成優化,該參數化是 Jones (1980) 建議的變體,並確保模型是平穩的。對於 AR(p) 模型,參數化是通過部分自相關的反正切函數進行的:相同的過程(分別)應用於 AR 和季節性 AR 項。 MA 項在優化期間不被限製為可逆,但如果 transform.pars 為 true,它們將在優化後轉換為可逆形式。

提供條件平方和主要用於說明目的。這將計算從觀察 n.cond 開始的擬合創新的平方和(其中 n.cond 至少是 AR 項的最大滯後),將所有早期創新視為零。參數 n.cond 可用於允許不同擬合之間的比較。 “部分對數似然”是第一項,即估計均方對數的一半。允許缺失值,但會導致許多創新缺失。

當指定回歸量時,除非任何係數是固定的,否則它們會在擬合之前正交化。將回歸量粗略縮放至零均值和單位方差可能會有所幫助。

注意

結果可能與 S-PLUS 的 arima.mle 不同,後者計算條件似然且不包括模型中的均值。此外,arima.mle 使用的約定反轉了 MA 係數的符號。

對於 ARMA 模型或沒有缺失值的差分模型,arimaarima0 非常相似,但可以準確處理有缺失值的差分模型。它比 arima0 稍慢,特別是對於季節性差異模型。

例子

arima(lh, order = c(1,0,0))
arima(lh, order = c(3,0,0))
arima(lh, order = c(1,0,1))

arima(lh, order = c(3,0,0), method = "CSS")

arima(USAccDeaths, order = c(0,1,1), seasonal = list(order = c(0,1,1)))
arima(USAccDeaths, order = c(0,1,1), seasonal = list(order = c(0,1,1)),
      method = "CSS") # drops first 13 observations.
# for a model with as few years as this, we want full ML

arima(LakeHuron, order = c(2,0,0), xreg = time(LakeHuron) - 1920)

## presidents contains NAs
## graphs in example(acf) suggest order 1 or 3
require(graphics)
(fit1 <- arima(presidents, c(1, 0, 0)))
nobs(fit1)
tsdiag(fit1)
(fit3 <- arima(presidents, c(3, 0, 0)))  # smaller AIC
tsdiag(fit3)
BIC(fit1, fit3)
## compare a whole set of models; BIC() would choose the smallest
AIC(fit1, arima(presidents, c(2,0,0)),
          arima(presidents, c(2,0,1)), # <- chosen (barely) by AIC
    fit3, arima(presidents, c(3,0,1)))

## An example of using the  'fixed'  argument:
## Note that the period of the seasonal component is taken to be
## frequency(presidents), i.e. 4.
(fitSfx <- arima(presidents, order=c(2,0,1), seasonal=c(1,0,0),
                 fixed=c(NA, NA, 0.5, -0.1, 50), transform.pars=FALSE))
## The partly-fixed & smaller model seems better (as we "knew too much"):
AIC(fitSfx, arima(presidents, order=c(2,0,1), seasonal=c(1,0,0)))

## An example of ARIMA forecasting:
predict(fit3, 3)

參考

Brockwell, P. J. and Davis, R. A. (1996). Introduction to Time Series and Forecasting. Springer, New York. Sections 3.3 and 8.3.

Durbin, J. and Koopman, S. J. (2001). Time Series Analysis by State Space Methods. Oxford University Press.

Gardner, G, Harvey, A. C. and Phillips, G. D. A. (1980). Algorithm AS 154: An algorithm for exact maximum likelihood estimation of autoregressive-moving average models by means of Kalman filtering. Applied Statistics, 29, 311-322. doi:10.2307/2346910.

Harvey, A. C. (1993). Time Series Models. 2nd Edition. Harvester Wheatsheaf. Sections 3.3 and 4.4.

Jones, R. H. (1980). Maximum likelihood fitting of ARMA models to time series with missing observations. Technometrics, 22, 389-395. doi:10.2307/1268324.

Ripley, B. D. (2002). “Time series in R 1.5.0”. R News, 2(2), 2-7. https://www.r-project.org/doc/Rnews/Rnews_2002-2.pdf

也可以看看

predict.Arimaarima.sim 用於從 ARIMA 模型進行模擬、tsdiagarima0ar

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 ARIMA Modelling of Time Series。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。