当前位置:   article > 正文

【时间序列预测实战】【规则与baseline】_预测数base uper

预测数base uper

前言

规则的好处是简单高效且可解释性强,有时候样本量不足时,使用有用的规则比建模更有效,面对问题的时候不能只想着建模,而是根据问题去寻找解决的方案有哪些,互相比较,找到最好的解决方案

时间序列预测的规则

简单的统计量

  • 中位数:很稳健
  • 均值:分布较符合正态分布时适用
  • 临近数据:指与待预测数据较近的数据,例如用8点的数据预测9点效果

周期因子

基于周的周期因子预测

周期通常有一周、一月、一年,支付行为、客流量、交通数据等时间序列都具有明显的周期性,缺点是不考虑特定日子和节假日。

若以周为周期,则如何计算周期因子?
第一种方式:除以周均值,然后按列取中位数
在这里插入图片描述
第二种方式:先获得列的均值(周内每日),再除以整体均值(整体均值就是所有值的平均值)
在这里插入图片描述
第二步就是预测,得到周期因子,就可以预测第四周的客流量,使用第一种方式,中位数直接乘以base,这里的base使用了第三周的均值。
在这里插入图片描述
base除了用最后一周的均值,我们可以使用去周期后取平均,即直接用第三周的原始客流量直接去除以中位数,中位数可以一定程度代表算数平均数。在这里插入图片描述

基于月的周期因子预测

在这里插入图片描述

  1. 对每日的申购总量和赎回总量都求均值
  2. 统计周一到周日的频次
  3. 使用基于周的周期因子作为加权均值
    在这里插入图片描述
  4. 根据因子和每日均值去计算预测值

规则应用到实战中

以星期为周期的中位数预测

train = data[(data['date']>=datetime.datetime(2014,3,31))&(data['date']<=datetime.datetime(2014,8,3))]

test = data[(data['date']>datetime.datetime(2014,8,3))&(data['date']<=datetime.datetime(2014,8,31))]

pred = pd.DataFrame(columns=['date','purchase','redeem'])
s = []
for i in range(4,32):
    a = datetime.datetime(2014,8,i)
    s.append(a)
    
pred['date'] = s

train.reset_index(inplace=True)
test.reset_index(inplace=True)

del train['index']
del test['index']


pred['purchase'] = test['total_purchase_amt']
pred['redeem'] = test['total_redeem_amt']
pred['date'] = pd.to_datetime(pred['date'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/1015841
推荐阅读
相关标签
  

闽ICP备14008679号