预测/估计每日酒店客房需求

机器算法验证 时间序列 预测 有马
2022-04-12 11:55:52

假设我们有一家酒店,并且我们知道过去五年的所有预订情况。我们希望每天预测/估计来年的房间需求。

我是数学家,但不是统计学家,如果我说一些琐碎或愚蠢的事情,我很抱歉。

我想知道是否存在针对此类问题的“标准模型”(如 ARMA、ARIMA、SARIMA)。我的主要疑问是关于变量“# of reservations”的规律性。它是可预测的吗?

作为一名数学家,我可以理解预测模型,但我并不真正了解这种模型的应用领域。

让我们以圣诞节为例。这是一个“常规事件”,因为它每年都是同一天,所以我想我可以很容易地做出预测,但是复活节呢?显然我无法用我所拥有的数据来估计它,因为复活节的实际日期每年春天都会变化,我需要一个非凡的信息。

  1. 这是一个时间序列分析问题吗?
  2. 标准模型适用于这个问题?(我刚刚阅读了有关 ARMA、ARIMA、SARIMA 和线性模型的信息,正在寻找时间序列)
  3. 如果没有,是否存在其他模型来处理这种情况?
  4. 或者基本上我们需要调用在酒店工作的人的经验?:)

在网上我发现了很多关于“预测旅游需求”的东西,但所有这些分析都试图估计每月的游客数量(通过谷歌查询,过去几年的数据等)。但也许我错了。

谢谢。

更新 20/01/17

我试图从迄今为止发布的评论中得到一个想法。我知道,即使是圣诞节,它也会更加复杂,因为它取决于日子(“例如,星期四的圣诞节将导致星期五被用来创建一个为期四天的周末”,引用。@Wayne)。但重点是一样的:这些并发症是否“可以治疗”?

@AnscombesGimlet 说它们是可以治疗的,但我想知道:我需要做多少手动更正才能获得合适的模型?如果我必须做很多更正,当然我仍然使用“模型”,但我不会说它是“标准”,我会对 2 回答“否”。据我所知(我认为这是@IrishStat的同一点),每个“酒店”都有自己的历史和自己的变量/系数:不存在理解这些特性的机制(好吧,我们称之为经验或savoir-faire)。

如果我错了,请告诉我。假设我是受过时间序列魔法训练的最好的统计学家之一,我会怎么做才能解决这个问题?这是我的设置列表:

  1. 准备好我酒店的所有数据
  2. 开始绘制不同时间尺度的数据年/(季节)/月/(周)/天
  3. 找到可能不同的“时间尺度”(而不是绘制 1 月至 2 月等,可能是 1 月 15 日至 2 月 15 日等,因为数据看起来更统一)
  4. 开始使用我最喜欢的方法(比如说 ARIMA)并开始对我的数据进行一些投影,我认为参数更适合我已经研究过的数据
  5. 让模型成为一个好模型。

我不会: 1. 准备好我酒店的所有数据 2. 以我认为可行的“标准参数”为例,因为我或多或少认为我会在夏天和假期中选择 3. 发布然后尝试了解 ARIMA 的参数看看模型与现实的距离有多远 4. 将模型逼近到一个好的模型。

在此示例中可以看出这两种方法之间的区别:

如果换酒店怎么办?如果我选择不同的酒店(我会花很多时间在上面),则必须重新应用第一种技术(我称之为“非标准”)。第二个(我称之为“标准”)可以(或多或少)为每家酒店实施。

所以现在的问题是:这两种方法都可以吗?两者都可靠吗?

2个回答
  1. 是的
  2. 是的 - 但您错误地认为 ARIMA 是“标准”。没有标准模型。我强烈建议阅读时间序列书籍(其中有许多优秀的在线免费书籍)。它们通常会涵盖使用 ARIMA 模型使用外部回归器、动态回归、ETS 模型等。
  3. 不适用
  4. 也许; 取决于您的数据是什么样的。

根据您使用数据的目的以及预测准确性的重要性,您需要使用时间序列交叉验证和/或测试集保留来测试多种方法。但本质上,您应该查看包含复活节外部回归变量的 ARIMA 模型。由于闰年,假期并不总是在同一索引日/周。

采取的方法的想法:

  1. 使用每日数据并包括节假日的季节性回归量,并指定多个季节性时段(每日、每年)。由于我们知道模型不知道的信息(假期),因此至少不使用它们进行测试是一个非常糟糕的主意。

  2. 您可以每周或每月汇总数据,预测这些数据,然后根据前几年该月交易量的移动平均值按月使用分布模式。例如,历史上 12 月 1 日的平均交易量为该月总交易量的 3%,第 2 天为 2.3%,等等。这种方法的价值在于每月预测通常比每天更准确,因为在每日分辨率。

  3. 我对时间层次预测的最新进展印象深刻。R thief 包中有这种方法的实现。这种方法可以很好地处理高频数据(每日、每周数据)。尽管如此,您仍希望将假期作为外部回归变量包含在此模型框架中,因为酒店的使用可能会受到假期的高度影响。

  4. 季节性天真,根据您的同比趋势使用向上/向下线性调整(通常适合坚持对趋势的天真方法)。您仍然需要考虑闰年和假期,因为使用此方法可能无法对齐。

阅读一本好的实用预测书可能是最好的起点。

编辑:免费在线实用预测书链接:

https://www.otexts.org/fpp

预测每日数据是表面上似乎是日常(双关语)标准问题的目标。这不是标准的!即使是免费的在线文本也可能不是很有帮助,因为“模型识别是问题/机会”。包含预测序列 (X) 的时间序列模型 (ARIMA) 是建议的答案,其中需要耐心地发现 X 的形式。它被称为传递函数,通常称为 ARIMA 动态回归 (XARMAX)。单独的 ARIMA 绝对不是标准,因为正如@anscombesgimlet 明智地建议的那样,还需要结合已知和未知的确定性效应(X)。以更高的频率水平进行平滑,例如几周或几个月或几个季度或几年,作为​​“软糖因素”通常是(总是!) 不充分,因为我认为假设的比例因素通常是一个不好的经验法则,因为它们经常(总是)随着时间而变化。开发包含记忆 (ARIMA)、每日影响、特定日期影响、假期前后的领先和滞后影响、每周和每月影响,甚至月中的一周影响、长周末影响,同时处理变化的每日模型一周中的一天的影响,水平/阶梯变化,本地时间趋势和趋势变化,用户建议的因果变量,如天气/价格/促销不适合心脏弱者或没有资源或大量编码时间的人在他们的手上。

此外,应该关注参数变化和误差方差随时间的变化,因为这两者经常被“坏数据”所违反,这些数据确实不错,但“现实生活”和未经处理/忽略可能会使猴子扳手变得不足(标准)分析。

当“圣路易斯有马的小型啤酒公司”要求预测(非常有策略的)600,000 个零售店的 50 种产品的每日销售额时,我开始参与理解和开发日常数据的基于数据的解决方案/软件的业务。任何和所有已知因素,例如预计价格和温度,同时包含可能的蚕食因素。没有什么比一个很好的现实世界的例子更能让果汁流动起来了!事实上,我发现现实世界的数据经常推动理论发展,这是一种不会消失的动力。

除了阅读您可以在 SE 等资源中找到的内容外,我建议您了解可能的解决方案提供商/本地统计人员,他们接受过时间序列黑魔法方面的培训,并为他们提供典型的数据集,让他们获得乐趣和乐趣以及您的教育。在 SE 中搜索字符串“DAILY DATA”并追踪一些线程。

您可以先在此处发布您的时间序列之一,并为成功的响应者提供奖励。数据不必是真实的,它可以是编码数据。它可以被制造/模拟以反映隐藏在等待被发现或最有可能被忽略的数据中的信息,视情况而定。

正如@whuber 曾经认为的那样,我从记忆中解释“有很多错误的方法可以解决一个难题,通常只有一种正确的方法”

这个问题在某些方面比将啤酒装载到超市货架上更复杂,因为酒店入住率预测应该/必须包含所有未来日期已知的“当前预订数量”,并且会随时间变化。这是一个有趣的转折,既是复杂的,也是机遇。确切地了解当前如何通过现有方法处理此问题以制定可行的解决方案,这对我来说会很有趣。

您不应该担心假期何时发生,因为大多数预测包通常会处理该会计。您应该担心的是“如何在假期前后检测适当的领先和滞后效应”以及之前提到的其他内容。

1/20 编辑

作为@darXider 建议的示例(包含固定效果),请查看 http://www.autobox.com/cms/index.php/afs-university/intro-to-forecasting/doc_download/53-capabilities-presentation.. 幻灯片 49-68 。将其用作原型,即使您解码以推出自己的解决方案,也要检查该方法。按照您的建议绘制数据可能非常耗时且效率非常低,并且永远不足以/具有成本效益来为您的每家酒店形成有用的模型。我会寻找生产力辅助工具,以便在我能找到它们的地方使用经过磨练的模型识别方案。正如我建议的那样,您可能希望从经验丰富的每日时间序列统计学家那里获得帮助,并让他们为您提供指导。我帮助开发的 AUTOBOX 有一个基于数据的解决方案,SAS 和 SPSS 作为其他两种可能性。