微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将不跨越一整天的半小时数据转换为 R 中的时间序列?

如何解决如何将不跨越一整天的半小时数据转换为 R 中的时间序列?

这是我关于 stackoverflow 的第一个问题,如果问题提得不好,请见谅。

我目前正在开发一个项目,用于预测一个人每天的饮酒量。我目前的数据如下所示:

1-day sample.

menge 列表示一个人在 30 分钟内实际喝了多少水(所以第一个值表示从 8:00 到 8:30 之前的量等等)。这是来自 3 个月数据的 1 天样本。一天从早上 8 点开始,到晚上 8 点结束。

我正在尝试预测每天的时间序列。例如,给定前一两个时间步长,我们将预测一整天,然后我们知道这个人在晚上 8 点之前总共喝了多少。 我正在尝试将此数据建模为 R(Google Colab)中的时间序列对象,以便使用 Croston 的方法进行预测。使用 ts() 函数,我应该如何设置频率才能知道:

  1. 数据为半小时一次
  2. 数据为每天 8:00 至 20:00(并非全天)

我是否需要通过添加 0 个值来使数据跨越一整天?可能有更好的方法吗?提前致谢。

解决方法

在使用 ts() 函数时,frequency 用于定义给定时间段内(通常是规则间隔的)观察的数量。对于您的示例,您的观察是在上午 8 点到晚上 8 点之间每 30 分钟一次,您的时间段是 1 天。 1 天的时间段假设这里最感兴趣的是每天的模式,您也可以在这里使用 1 周。

因此,在数据的每一天(上午 8 点至晚上 8 点)内,您有 24 次观察(24 个半小时)。所以这个数据的合适频率是 24。

您也可以用 0 值填充数据,但这不是必需的,并且会使模型复杂化。如果您填充数据以使其具有一天中所有半小时的观测值,则频率将为 48。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。