2

我有一个包含半年(半年)数据点的时间序列。

似乎 ts() 函数无法处理,因为“频率 = 2”返回一个非常奇怪的时间序列对象,该对象远远超出实际时间段。

有没有办法在 R 中对这种时间序列对象进行时间序列分析?

编辑:这是一个例子:

dat <- seq(1, 17, by = 1)
> semi <- ts(dat, start = c(2008,12), frequency = 2)
> semi
Time Series:
Start = c(2013, 2) 
End = c(2021, 2) 
Frequency = 2 
[1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17

我期待:

> semi
      s1     s2
2008          1
2009   2      3
2010   4      5
2011   6      7
2012   8      9
2013  10     11
2014  12     13 
2015  14     15
2016  16     17
4

1 回答 1

2

首先让我解释一下为什么第一个 ts 元素从 2013 年而不是 2008 年开始。函数 start 和 end 使用周期/频率。如果您的频率为 2,您选择了 2008 年之后的第 12 个周期,即 2013 年的第二个周期。

这应该适用于以下时期:

semi <- ts(dat, start = c(2008,2), frequency = 2)

仍然 semi 给出正确的时间序列,但是,它不知道频率为 2 的名称。如果绘制时间序列,将显示正确的半年图。

plot.ts(semi) 

在这个问题中,有人解释了 ts() 知道的标准频率。

于 2017-09-26T09:26:49.337 回答