在R中,class ts和class timeSeries之间有什么区别?

时间:2010-10-02 19:46:22

标签: r time-series

在R中,班级ts和班级timeSeries之间有什么区别?我认为我在HoltWinters因此而遇到问题。我得到了:

data(LakeHuron)
x <- LakeHuron
before <- window(x, end=1935)
after <- window(x, start=1935)
a <- .2
b <- 0
g <- 0
model <- HoltWinters(before, alpha=a, beta=b, gamma=g)
  

“分解错误(ts(x [1L:wind],start = start(x),frequency = f),季节性):     时间序列没有或少于2个句号“

即使gamma=0

在Windows 7 x64计算机上运行R 2.11.1(win32 x86)。

3 个答案:

答案 0 :(得分:4)

ts来自基础R附带的stats软件包。对于常规时间序列非常有用,例如每月,每季度,每年,...系列常见政府统计。 ts使用arima()以及基本R及其stats包提供的其他时间序列方法。您在此处使用的HoltWinters就是一个这样的例子。

timeSeries是许多附加时间序列类之一;这一个来自Rmetrics。有几个CRAN Task Views更多地讨论了这些问题:TimeSeriesEconometrics以及Finance

尝试使用ts和/或HoltWinters上的文档来掌握所需的格式。 ts使用固定的 delta (例如,每月数据为1/12)或频率

答案 1 :(得分:4)

我发现了问题,研究了HoltWinters源代码。 事实证明,HoltWinters功能(对于gamma = 0,如果没有季节性组件),预计gamma是合乎逻辑的!! (零=假)

因此,输入gamma as.logical(0)可以解决错误。

乔瑞斯:谢谢你的回答,这很有启发性。

答案 2 :(得分:3)

这是两个单独的类。 ts包含在基本R安装中,函数HoltWinters()需要ts个时间序列。

timeSeries具有完全不同的结构。它还专门针对财务。与ts的最大区别在于它允许不规则的时间序列。类ts只能保存等间隔系列。

在内部,ts有一个插槽“tsp”,其中包含时间序列的开始,结束和频率。

> test <- ts(1:10, frequency = 4, start = c(1959, 2))
> slotNames(test)
[1] ".Data"    "tsp"      ".S3Class"
> slot(test,"tsp")
[1] 1959.25 1961.50    4.00

这是HoltWinters()需要但缺少timeSeries的插槽。在那里,关于时间的信息包含在两个槽中,即位置槽和格式槽。他们一起将时间定义为timeDate对象。

> data = as.matrix(MSFT[, 4])
>    charvec = rownames(MSFT)
>    Close = timeSeries(data, charvec, units = "Close")
> slotNames(Close)
[1] ".Data"         "units"         "positions"     "format"        "FinCenter"     "recordIDs"     "title"         "documentation"
> head(slot(Close,"positions"))
[1] 970012800 970099200 970185600 970444800 970531200 970617600
> slot(Close,"format")
[1] "%Y-%m-%d"