【问题标题】:How to make an hourly time series in R with this data?如何使用这些数据在 R 中制作每小时时间序列?
【发布时间】:2018-09-17 13:45:05
【问题描述】:
times         booked_res
11:00         23
13:00         26
15:00         27
17:00         25
19:00         28
21:00         30

所以我需要使用 R 中的 ts() 函数将此帧转换为时间序列。右边一栏是每次预约的人数。我应该如何处理这个?我不确定这些参数,也不知道频率应该设置为 24(一天中的几个小时)还是 10(11:00 到 21:00),如上所示。任何帮助表示赞赏。

【问题讨论】:

  • 基本方法是在RStudio的命令行中输入?ts并查看示例。

标签: r time-series data-mining


【解决方案1】:

首先,通过注意您每两分钟采样一次来找出频率。频率是样本之间时间的倒数,即每分钟 1/2 个样本或每小时 30 个样本。您感兴趣的数据在右侧,因此您可以只使用该数据向量而不是整个数据框。将其转换为时间序列的代码很简单:

 booked_res <- c(23,26,27,25,28,30)
 ts(booked_res,frequency = 30)

您的数据的简单绘图可能会这样编码:

plot(ts(booked_res,frequency = 30),ylab='Number of people reserved',xlab='Time (in hours) since start of sampling',main='Time series chart of people reservations')

更新:

只有当时间序列平稳时,才能在 R 中创建时间序列模型。使用不同的采样率会使时间序列非平稳,因此您将无法在 R 中创建时间序列对象。

This page on Analytics Vidhya 很好地定义了平稳和非平稳时间序列,而this page on R bloggers 提供了一些与分析非平稳时间序列相关的资源。

【讨论】:

  • 问题是,我没有取样。右边的值是人们在那些时间预订的地方,所以它可以是任何时候的任何数字,30 可以而且肯定会改变。另外,我认为频率值是基于那个时间列的?我还需要在 x 轴上为每个预订数量留出时间
猜你喜欢
  • 2017-06-05
  • 2013-06-13
  • 2018-12-07
  • 1970-01-01
  • 2015-03-04
  • 2018-10-24
  • 2012-04-09
  • 1970-01-01
  • 2018-03-10
相关资源
最近更新 更多