周期因子

更新时间: 2026-06-24 08:40:03

# 什么是"周期"

你可能听过"周期"这个词,但不知道具体啥意思。先把这个搞清楚。

周期就是"每隔一段时间就会重复"的规律。

生活中的例子:

春夏秋冬:每年春天暖和、夏天热、秋天凉、冬天冷,这就是一年的周期
日出日落:每天白天亮、晚上黑,24小时重复一次
星期几:周一到周五上班上学,周六周日休息,7天一个循环
涨潮退潮:海边每天涨潮两次,间隔大约12小时

这些都是"周期现象"。

# 时间序列数据也有周期

金融交易数据也有周期,之前做的蚂蚁金服比赛就是例子。

你想想:

周一到周五:大家要上班、有日常消费、有理财需求,所以申赎金额大
周六周日:银行不办公,很多人不上班,申赎金额就变小了

这就是"星期周期"——每隔7天,数据会重复类似的模式。

还有"月份周期":

月初发工资,很多人拿到钱会理财,金额高
月底钱花得差不多了,理财金额低

还有"年度周期":

年底大家要准备过年,取钱多
节假日、双十一,银行转账多

# 什么是周期因子

周期因子,就是用来描述"周期中每个位置高低"的数字。

还是用早餐店的例子,但这次数据多一点。

例子:早餐店30天营业额

你记录了一个月(30天)的营业额:

第1天(周一):100元
第2天(周二):100元
第3天(周三):100元
第4天(周四):100元
第5天(周五):100元
第6天(周六):50元
第7天(周日):50元
第8天(周一):100元
第9天(周二):100元
...一直重复这个模式...
1
2
3
4
5
6
7
8
9
10

每天的数据长这样:

周一:100
周二:100
周三:100
周四:100
周五:100
周六:50
周日:50
1
2
3
4
5
6
7

为什么要算"因子"

现在问题来了:

如果让你预测下周的营业额,你怎么预测?

你肯定会想:

周一到周五,每天大概100元左右 周六周日,每天大概50元左右

你是怎么得出这个结论的?

因为你观察了历史上每天的营业额,发现了规律:周几对应什么金额。

周期因子的思想就是这个,但它用数字更精确地表示这个规律。

# 周期因子怎么算——分步详解

  • 第一步:算出"基准值"

基准值,就是"平均水平"。

把一周所有天的营业额加起来,除以7天,得到每天的平均值。

一周总营业额 = 100+100+100+100+100+50+50 = 600元
每天平均 = 600 ÷ 7 ≈ 85.7元
1
2

这个85.7元,就是"基准值"。

它的意思是:如果没有周期波动,每天应该就是这个数。

  • 第二步:算出每个星期几的"因子"

因子 = 当天营业额 ÷ 基准值

为什么要除?

因为除完之后的数字,能告诉我们"这天比平均高多少或低多少"。

计算一下:

周一的因子 = 周一营业额 ÷ 基准值 = 100 ÷ 85.7 ≈ 1.17
周二的因子 = 周二营业额 ÷ 基准值 = 100 ÷ 85.7 ≈ 1.17
周三的因子 = 周三营业额 ÷ 基准值 = 100 ÷ 85.7 ≈ 1.17
周四的因子 = 周四营业额 ÷ 基准值 = 100 ÷ 85.7 ≈ 1.17
周五的因子 = 周五营业额 ÷ 基准值 = 100 ÷ 85.7 ≈ 1.17
周六的因子 = 周六营业额 ÷ 基准值 = 50 ÷ 85.7 ≈ 0.58
周日的因子 = 周日营业额 ÷ 基准值 = 50 ÷ 85.7 ≈ 0.58
1
2
3
4
5
6
7

整理成表格:

星期 营业额 因子 因子含义
周一 100元 1.17 比平均高17%
周二 100元 1.17 比平均高17%
周三 100元 1.17 比平均高17%
周四 100元 1.17 比平均高17%
周五 100元 1.17 比平均高17%
周六 50元 0.58 只有平均的58%,低42%
周日 50元 0.58 只有平均的58%,低42%
  • 第三步:理解因子大于1和小于1的意义

因子 = 1:"这天和平均一样"

因子 > 1(比如1.17):"这天比平均高",高多少?高17%

因子 < 1(比如0.58):"这天比平均低",低多少?低42%

公式:

因子 = 当天数值 ÷ 平均值
1

反过来说:

当天数值 = 平均值 × 因子
1
  • 第四步:用因子来预测

假设你预测下周的"基准值"(平均每天)是80元。

那预测每天的营业额就是:

预测值 = 基准值 × 因子
下周一 = 80 × 1.17 ≈ 94元
下周二 = 80 × 1.17 ≈ 94元
下周三 = 80 × 1.17 ≈ 94元
下周四 = 80 × 1.17 ≈ 94元
下周五 = 80 × 1.17 ≈ 94元
下周六 = 80 × 0.58 ≈ 46元
下周日 = 80 × 0.58 ≈ 46元
1
2
3
4
5
6
7
8

这就是周期因子的预测方法。

核心公式只有两个:

因子 = 当天数值 ÷ 平均值  
预测值 = 基准值 × 因子  
1
2

# 实际数据更复杂怎么办

上面例子是一周完全重复,但现实中数据往往有噪音。

比如:

周一的营业额不一定每次都是100
可能是:105、98、102、95、101...
平均下来还是100左右
1
2
3

# 实际计算方法

  • 第一步:收集所有周一的营业额,求平均

把所有周一的营业额加起来,除以周一出现的次数:

周一营业额:[105, 98, 102, 95, 101, ...]
周一平均值 = (105+98+102+95+101+...) ÷ 周一出现次数
1
2
  • 第二步:同样方法算出周二、周三...周日的平均值

  • 第三步:算基准值

基准值 = 七天平均值加起来 ÷ 7

或者更简单:基准值 = 所有数据加起来 ÷ 总天数

  • 第四步:算因子
周一因子 = 周一平均值 ÷ 基准值
周二因子 = 周二平均值 ÷ 基准值
...
周日因子 = 周日平均值 ÷ 基准值
1
2
3
4

# 为什么叫"因子"

因为它是乘法中的一个"因子"。

预测值 = 基准值 × 周期因子
1

比如:

预测周一的营业额 = 基准值 × 周一因子
预测周二的营业额 = 基准值 × 周二因子
...
1
2
3

这个因子,是一个乘数,所以叫"因子"。

# 周期因子和ARIMA/SARIMA的区别

对比项 ARIMA/SARIMA 周期因子
原理 复杂的数学公式,用历史值推未来 很简单,用历史平均值推
周期捕捉 模型自动学,不用你管 手动算
计算量 大,需要迭代计算 小,直接求平均就行
适合场景 稳定规律的数据 有明显固定周期的数据
调参 需要调很多参数 不需要调参
上手难度 非常简单

周期因子的优点:

原理简单,高中生能完全理解
计算简单,不需要复杂公式
效果不差,对有明显周期的数据很有效
调参简单,核心就一个"用什么做基准值"

周期因子的缺点:

无法捕捉趋势(如果数据一直涨或一直跌,效果差)
无法捕捉复杂的非线性关系
如果周期本身不稳定(比如节日每年日期不同),需要额外处理

# 周期因子在蚂蚁金服比赛中的应用思路

你的数据有这样的规律:

周周期:周一到周五申赎金额高,周六周日低
可能还有月周期:月初高、月底低
可能有节日效应:节假日金额异常

用周期因子法的思路:

第一步:计算每个星期几的平均因子

收集历史上所有周一的数据,求平均 → 周一因子

收集历史上所有周二的数据,求平均 → 周二因子

...

第二步:计算每个月的平均因子

收集历史上所有1号的数据,求平均 → 1号因子

收集历史上所有2号的数据,求平均 → 2号因子

...

第三步:预测9月

9月1日是周一,基准值假设1亿:

预测 = 基准值 × 周一因子 × 月份因子
1

也可以更简单:只用周因子,因为申赎数据周周期最明显。