用R进行多元时间序列建模

49

我想使用R来拟合某种多元时间序列模型。

以下是我的一些数据样本:

   u     cci     bci     cpi     gdp    dum1 dum2 dum3    dx  
 16.50   14.00   53.00   45.70   80.63  0   0    1     6.39 
 17.45   16.00   64.00   46.30   80.90  0   0    0     6.00 
 18.40   12.00   51.00   47.30   82.40  1   0    0     6.57 
 19.35   7.00    42.00   48.40   83.38  0   1    0     5.84 
 20.30   9.00    34.00   49.50   84.38  0   0    1     6.36 
 20.72   10.00   42.00   50.60   85.17  0   0    0     5.78 
 21.14   6.00    45.00   51.90   85.60  1   0    0     5.16 
 21.56   9.00    38.00   52.60   86.14  0   1    0     5.62 
 21.98   2.00    32.00   53.50   86.23  0   0    1     4.94 
 22.78   8.00    29.00   53.80   86.24  0   0    0     6.25 

数据是按季度计算的,虚拟变量用于描述季节性。

我想要做的是预测dx与其他一些变量之间的关系,同时(可能)考虑季节性。举个例子,假设我想要使用"u"、"cci"和"gdp"。

我应该如何做呢?

3个回答

118
如果您还没有这样做,请查看CRAN上的时间序列视图,特别是多元时间序列部分。
在金融领域,一种传统的方法是使用因子模型,通常使用BARRA或Fama-French类型模型。Eric Zivot的{{link2:“使用S-PLUS建模金融时间序列”}}对这些主题进行了很好的概述,但不立即可转换为R。Ruey Tsay的“金融时间序列分析”(在CRAN的TSA软件包中提供)在第9章中也对因子模型和主成分分析进行了良好的讨论。

R还有许多涵盖向量自回归(VAR)模型的包。特别是,我建议查看Bernhard Pfaff的VAR建模(vars)包和相关的vignette

我强烈推荐查看蔡瑞的主页,因为它涵盖了所有这些话题,并提供了必要的R代码。特别是,请看"应用多元分析", "金融时间序列分析""多元时间序列分析"课程。
这是一个非常大的主题,有许多好书涵盖了它,包括多元时间序列预测和季节性。以下是一些更多的书:
  1. Kleiber和Zeileis。 "应用计量经济学与R"没有特别涉及此问题,但它很好地涵盖了整个主题(另请参见CRAN上的AER软件包)。
  2. Shumway和Stoffer。 "时间序列分析及其应用:附带R示例"有多元ARIMA模型的示例。
  3. Cryer。 "时间序列分析:附带R应用程序"是该主题的经典著作,已更新以包括R代码。

6
在预测包中,尝试使用以下命令:
arima(df[,1:4], order=(0,0,0), xreg=df[,6:8])

用于预测uccigdp

要从中预测dx,可以尝试使用VAR模型。这里有一个很好的教程(PDF)。


2
很抱歉,这似乎无法正常工作;错误信息:“Error in arima(data[, 1:4], order = c(0, 0, 0), xreg = data[, 6:8]) : only implemented for univariate time series” - xhudik
2
是的,它只适用于单变量,并且不要忘记 order=c(0,0,0) - Oleg Melnikov

1

不知道在你第一次提问时是否已经有了这个功能,但现在使用基本的R语言中arima函数很容易实现,只需在函数中用xreg参数指定你的外部回归变量即可。尝试?arima,当你阅读文档时要特别关注xreg参数。这已经变得非常简单,祝好运。


8
根据文件,Arima仅支持单变量时间序列。OP有多变量时间序列。 - mhwombat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接