【问题标题】:How to I transform half-hourly data that does not span the whole day to a Time Series in R?如何将不跨越一整天的半小时数据转换为 R 中的时间序列?
【发布时间】:2021-09-27 04:18:43
【问题描述】:

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

我目前正在开发一个项目,我可以预测一个人每天喝多少。我目前的数据如下所示:

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

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

  1. 数据每半小时一次
  2. 数据是每天8:00到20:00(不跨越全天)

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

【问题讨论】:

    标签: r time-series forecasting intermittent


    【解决方案1】:

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

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

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

    【讨论】:

    • 这很有帮助。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多