我的每日时间序列从星期六开始,到星期三结束。每周都有明显的周期。它存储在R中的向量a中。因此,我尝试将其转换为时间序列对象 -
ts(a,frequency=7)
这给了我 -
Time Series:
Start = c(1, 1)
End = c(13, 5)
(1,1)和(13,5)是什么意思?在这种情况下,指定开始和结束的最佳方法是什么。互联网上的所有示例都处理年度数据,而不是每天。
答案 0 :(得分:20)
让我们使用文档(ts
)探索?ts
如何使用不同频率工作
让我们说这是您的数据
dat <- data.frame(myts = sample(10, 24, replace = T),
Date = seq(as.Date("2008-10-11"), as.Date("2008-10-11") + 23, by = 1))
# myts Date
# 1 6 2008-10-11
# 2 9 2008-10-12
# 3 6 2008-10-13
# 4 9 2008-10-14
# 5 8 2008-10-15
# 6 6 2008-10-16
# 7 1 2008-10-17
# 8 9 2008-10-18
# 9 3 2008-10-19
# 10 5 2008-10-20
# 11 7 2008-10-21
# 12 4 2008-10-22
# 13 2 2008-10-23
# 14 9 2008-10-24
# 15 5 2008-10-25
# 16 9 2008-10-26
# 17 7 2008-10-27
# 18 8 2008-10-28
# 19 7 2008-10-29
# 20 2 2008-10-30
# 21 6 2008-10-31
# 22 6 2008-11-01
# 23 8 2008-11-02
# 24 1 2008-11-03
让我们比较相同数据和某个任意起点上不同频率的输出
print(ts(dat$myts, frequency = 7, start = c(1950, 3)), calendar = T)
# p1 p2 p3 p4 p5 p6 p7
# 1950 6 9 6 9 8
# 1951 6 1 9 3 5 7 4
# 1952 2 9 5 9 7 8 7
# 1953 2 6 6 8 1
print(ts(dat$myts, frequency = 12, start = c(1950, 3)), calendar = T)
# Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
# 1950 6 9 6 9 8 6 1 9 3 5
# 1951 7 4 2 9 5 9 7 8 7 2 6 6
# 1952 8 1
print(ts(dat$myts, frequency = 4, start = c(1950, 3)), calendar = T)
# Qtr1 Qtr2 Qtr3 Qtr4
# 1950 6 9
# 1951 6 9 8 6
# 1952 1 9 3 5
# 1953 7 4 2 9
# 1954 5 9 7 8
# 1955 7 2 6 6
# 1956 8 1
print(ts(dat$myts, frequency = 7), calendar = T)
# p1 p2 p3 p4 p5 p6 p7
# 1 6 9 6 9 8 6 1
# 2 9 3 5 7 4 2 9
# 3 5 9 7 8 7 2 6
# 4 6 8 1
我们可以从输出中学到3件事
1- ts
熟悉12和4频率,并将其标识为月份和季度,而它以不那么直接的方式打印7频率。
2- start
参数中的第一个数字是取决于频率的周期数,而第二个数字是该周期中的第一个事件(并非所有系列都从1月或周日开始)
3-当您未指定起点时,ts
函数假定您从第一个句点的开头开始(因此示例中为(1,1)
)
现在,为了使这个时间序列对您更有意义,您可以计算一年中的周数(因为我们通常每年约52周)和第一次观察的日期数(例如: 1 =星期日,2 =星期一等)并将其解析为start
参数(参见?strftime
)
startW <- as.numeric(strftime(head(dat$Date, 1), format = "%W"))
startD <- as.numeric(strftime(head(dat$Date, 1) + 1, format =" %w"))
print(ts(dat$myts, frequency = 7, start = c(startW, startD)), calendar = T)
# p1 p2 p3 p4 p5 p6 p7
#39 6
#40 9 6 9 8 6 1 9
#41 3 5 7 4 2 9 5
#42 9 7 8 7 2 6 6
#43 8 1
这意味着我们的第一次观察(发生在2008-10-11)是2008年第39周的周六