我正在分析每小时的电力需求数据。为了让我的预测更准确,我应该如何处理数据中的国定假日?
特别是,我应该如何在 R 中对待它们?
我正在分析每小时的电力需求数据。为了让我的预测更准确,我应该如何处理数据中的国定假日?
特别是,我应该如何在 R 中对待它们?
这里有一个小细节,所以一个通用的答案。
首先,检查是否存在这个问题;查看假期期间的残差并测试那里的准确性是否存在任何重大问题。您的模型可能已经将假期考虑在内(例如通过其他一些预测变量),或者它们与您在当前准确度级别上尝试预测的内容无关。
如果存在差异,请尝试将有关假期的信息添加到模型中的变量中;您可以从二进制 isHoliday 开始,然后考虑如何将其扩展到更复杂的事情(即添加一些相邻的日子,以便获得休假以扩大休息时间,考虑一些连续的“假期”度量)。
如果您的模型太笨而无法使用此类变量,请考虑制作两个 - 用于正常日子和假期。
最后,如果发生这种情况,您将不必在假期处理预测,或者生成垃圾的问题较小,您可以直接扔掉这部分数据。
在处理电力数据时,我认为最简单的选择是将假期视为周末(例如,您有一个虚拟变量,其中 1 是正常工作日,0 是周末或假期)。一个更复杂的选择是为工作日与周末以及正常日与假期设置单独的虚拟变量 (0/1)。
timeDate包中的holidayNERC函数在这种情况下非常有用。 假日纽约证券交易所也很有用。
我对每小时数据做了很多工作,并得出结论,两管齐下的方法似乎可以提供有用的模型。首先,我们对每日总计进行建模,考虑到任何星期几的影响、任何可以识别的每月固定日期的影响以及任何假期影响。每个假期都可以有它自己的领先、同期和滞后结构,并且可能在周一假期之前的周五或周五假期之后的周一伴随。该模型还可能包括本地时间趋势、电平转换,当然还有一次性事件(脉冲),以及随时间变化或参数变化的可能需要。现在有了这个模型,我们可以对未来的时期进行每日预测。第二步是构建 24 个单独的小时模型,反映每日总序列的合并。使用 24 个单独的小时模型的原因是,白天(内部)的消费模式通常在各个(中间)天之间存在很大差异。每个小时模型都可以具有反映该小时历史使用情况的 ARIMA 结构,当然还有电平转换、局部趋势和脉冲效应。个人每小时需求可能会或可能不会反映每日总需求,因此需要注意这种可能性。由于存在每日总计的预测,因此可以使用它来预测每小时的值。每个小时模型都可以具有反映该小时历史使用情况的 ARIMA 结构,当然还有电平转换、局部趋势和脉冲效应。个人每小时需求可能会或可能不会反映每日总需求,因此需要注意这种可能性。由于存在每日总计的预测,因此可以使用它来预测每小时的值。每个小时模型都可以具有反映该小时历史使用情况的 ARIMA 结构,当然还有电平转换、局部趋势和脉冲效应。个人每小时需求可能会或可能不会反映每日总需求,因此需要注意这种可能性。由于存在每日总计的预测,因此可以使用它来预测每小时的值。
我一直发现很难使用时间序列方法处理电力负荷/价格数据的多个(每年、每周、每天)季节性。我使用了一种(非常)类似于 IrishStat 的方法,除了我使用机器学习方法(而不是时间序列)预测每日峰值 (MW) 和总能量 (MW/h),然后为每个小时构建一个线性回归模型(1-24) 天。预测的峰值/总能量是每个小时模型中的特征。所有 26 个模型的其余特征基本相同,星期、假日和季节表示为虚拟变量。显然,天气和滞后因变量值也是重要特征。
顺便说一句,无论您采用何种方法,六个月的数据都不是理想的,因为这显然是一个具有年度季节性因素的过程。通常我会说你需要三年时间来正确训练和测试你的模型。在不到一年的时间里,您甚至无法完全评估这些年度季节性影响。
如果您确实采用时间序列路线,那么如果您有每周的季节性术语,那么如果您尝试将下周四的负载解释为感恩节负载的函数,那么仅倾销假期将是一个问题。