当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。