【问题标题】:How to create a proper time series `ts()` object with weekly figures in R如何在 R 中使用每周数字创建适当的时间序列`ts()` 对象
【发布时间】:2013-04-24 15:01:53
【问题描述】:

我经常将ts() 对象用于年度、季度或月度时间序列,但现在我想将它用于每周。现在的挑战是,并非每年都有相同的周数(52 周或 53 周)。如何处理?

我通常将一周的第一天作为一周的标识符(例如 2013-05-20 或 2013-05-27)。

谁能告诉我如何为以下数据集 (x) 创建一个适当的每周时间序列。

Date            Qty
2013-05-20      25
2013-05-27      60
....

类似的东西:

ts <- ts(x$Qty, start=as.Date(x$Date), frequency=????)

感谢您的帮助。

【问题讨论】:

  • 据我所知,这个问题没有解决方案。我还定期处理每周销售数据,这在 R 中确实很难处理。尤其是在想要使用 stl 等进行季节性和趋势检测时。

标签: r time-series


【解决方案1】:
DF <- read.table(text="Date            Qty
2013-05-20      25
2013-05-27      60",header=TRUE)

DF$Date <- as.Date(DF$Date)

library(xts)
my.xts <- as.xts(DF[,-1,drop=FALSE],order.by=DF$Date)
as.ts(my.xts)
# Time Series:
# Start = 1 
# End = 8 
# Frequency = 0.142857142857143 
# [1] 25 60

【讨论】:

  • 这种方法的问题在于,例如在分解为季节性和趋势时,您无法使用这种时间序列。处理每周数据在任何地方都是一个主要问题,因为频率不会随着时间的推移而保持不变。有的年份有 53 周,有的年份有 52 周。2009 年在欧洲就是一个有 53 周的年份的例子。
  • 我认为这条评论应该在问题下方,而不是我的答案。
  • 我把它放在你的答案下面,因为我认为你的答案不能解决提到的问题:“谁能建议我如何创建一个合适的每周时间序列”。您的回答将数据强制转换为 ts 结构,在我看来这不是“适当的每周时间序列”。
  • 问题的责任是定义期望的结果。 “适当”是相当主观的。
  • 我同意这个问题应该更详细地说明正确的含义。但是,我想你可以同意我的观点,在处理每周数据时,0.1428 的频率是无稽之谈?
猜你喜欢
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-12
  • 2021-04-24
相关资源
最近更新 更多