如何消除日常用电需求的季节性

机器算法验证 r 时间序列 有马
2022-04-14 05:12:48

我想从日常电力需求(时间序列)中消除季节性。我的理解是每周(周二、周三需求量大,周六、周日需求量低)和年度季节性(冬季需求量高,夏季需求量低)。我试图建立一个模型来预测 R 中的每日电力需求,并绘制我的数据,如下所示: 日用电量

我尝试使用以下方法消除季节性:

demand.xts.diff<-diff(demand.xts,lag=1,difference=1)
demand.xts.diff<-diff(demand.xts,lag=7,difference=1)

我也尝试使用lag=365and lag=366(由于闰年问题,我不确定要使用什么滞后),但它们都没有成功消除季节性。ACF 和 PACF 如下所示:

ACF PACF

任何建议表示赞赏。

2个回答

对日常电力需求进行建模是一项数据密集型工作。为了简化这一点,更容易开始“缩小”,估计每月负载。这是一篇文章(带有 Youtube 视频),描述了一个简单易懂的月度模型。文章包括R代码:

http://revgr.com/2012/11/06/all-forecasts-are-wrong-but-some-generate-fewer-complaints/

当你“放大”到更短的时间框架时,问题变得越来越复杂。例如,每月模型包括整数 12 个月/年并从第 1 个月的开始开始,而每周模型包括非整数 52.18 周/年并且可能从一周开始、周中开始,周末等(即您不能直接将一年的“第 1 周”与下一年的“第 1 周”进行比较,它们从不同的日子开始)。当您下降到每天或每小时的时间范围时,它会变得更加复杂。

时间框架的层次结构,从最长的时间框架开始,通常是:

1) 人口增长和经济活动。

2) 长期季节性温度条件(夏季、冬季等)。

3) 星期几(星期二、星期三和星期四通常是相似的工作日;其余的日子有各自的“星期几”值)。

4) 节假日,节假日的前一天和后一天(许多节假日的值与典型的星期日“星期几”值相似)。

5) 由于一天中的时间、较冷的夜晚、较温暖的白天、是否阳光普照、是否下雨等而产生的温度(这是对上述第 2 项的改进)。

6) 白天的工作量。人们通常晚上在家,白天工作,所以很多用电的工作场所在晚上关闭。

7) 其他术语,如湿度、夏令时等。

底线是,在每日和每小时的时间范围内,需要大量数据(和复杂性)。

你可以谷歌“每日电力负荷模型”(或每小时模型),各种论文都会出现。有些是基于神经网络、支持向量机等的。这是 Rob Hyndman 的一篇论文的链接,该论文解释了另一种技术。

http://www.tandfonline.com/doi/abs/10.1198/jasa.2011.tm09771#.UrNTUtJDuyw

该论文中使用的方法在“预测”包中:

http://robjhyndman.com/software/forecast/

我和 ucm 一起玩得很开心。您可以将其建模为每日季节性和年度周期。你也有一个非常明显的趋势。

如果您成功使用 ucm (proc ucm),请在此处发帖