繁体   English   中英

将数据帧转换为适合auto.arima的时间序列

[英]Convert data frame to time series suitable for auto.arima

我有以下数据框:

read.csv(file="CNY % returns.csv",head=TRUE,sep=",")
    DATE LOG...RETURNS
1   03/09/13    -6.9106715
2   04/09/13    -6.9106715
3   05/09/13    -4.5839582
4   06/09/13     1.7554592
5   07/09/13    -0.8808549
6   08/09/13     4.1842420 


DATE: obviosuly date; format dd/mm/yyyy.
LOG RETURNS: compounded returns from a bitcoin CNY exchange. 

我希望将auto.arima函数用作选择合适模型的起点。

我已经尝试过:

cnyX <- read.zoo(text="        DATE LOG...RETURNS
1   03/09/13    -6.9106715
2   04/09/13    -6.9106715
3   05/09/13    -4.5839582
4   06/09/13     1.7554592
5   07/09/13    -0.8808549
6   08/09/13     4.1842420")


index(cnyX) <- as.Date(as.character(index(cnyX)),format="%D%m%y") 

这将产生:

<NA>        <NA>        <NA>        <NA>        <NA>        <NA>
0.2144527  -9.2553228  -0.8519708  -4.2074340  14.0817672   1.2212485 ....                

我意识到as.character分隔符不正确,但不确定应如何解决或更正。 我已经阅读了有关创建XTS和TS对象的信息,但也无法使它们起作用。 我还提到过: 将带有日期列的数据框转换为时间序列,但是发现这不合适。

我应该如何将数据帧转换为适用于auto.arima格式? 我可能存在重复的值。

问题源于传递给as.Date format参数不正确。 实际上,如果您尝试将charactercharacter转换为Date并获得所有NA的向量,则几乎可以肯定没有正确指定format

这是一个可比较的数据集:

Df <- data.frame(
  Date = format(Sys.Date() - (729:0), "%d/%m/%y"),
  LogReturns = log(rgamma(730, .25)),
  stringsAsFactors = FALSE
)

使用正确的format

ln_ret <- zoo::zoo(Df[,2], as.Date(Df[,1], format = "%d/%m/%y"))

ln_ret[1:4]
#2014-01-05 2014-01-06 2014-01-07 2014-01-08 
# -2.268443  -3.562711  -4.546391  -0.707788 

这将与auto.arima一起auto.arima

forecast::auto.arima(ln_ret)
#Series: ln_ret 
#ARIMA(0,0,0) with non-zero mean 
#
#Coefficients:
#    intercept
#      -4.0742
#s.e.   0.1454
#
#sigma^2 estimated as 15.43:  log likelihood=-2034.46
#AIC=4072.93   AICc=4072.94   BIC=4082.11 

如果您只想将ARIMA模型适合对数返回数据,则无需担心正确的日期格式。 也就是说,您知道ts的开始和结束时间,并且如果最终需要这些日期,则跟踪任何预测的日期很简单。

这也将起作用。

tt <- read.csv(file="CNY % returns.csv",head=TRUE,sep=",")
# assuming default options for orders p, d, q, etc
forecast::auto.arima(x=tt[,2]) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM