二次移动平均法交通量预测实例及代码
时间: 2023-06-25 07:06:04 浏览: 105
二次移动平均法是一种时间序列预测方法,常用于交通量、销售量等数据的预测。它是基于一阶移动平均法的基础上,再对一阶移动平均法的结果做一次移动平均,从而提高预测的准确性。
下面是一个简单的交通量预测实例及代码:
假设某城市的交通量数据如下:
| 月份 | 交通量 |
| ---- | ------ |
| 1 | 100 |
| 2 | 110 |
| 3 | 120 |
| 4 | 130 |
| 5 | 140 |
| 6 | 150 |
| 7 | 160 |
| 8 | 170 |
| 9 | 180 |
| 10 | 190 |
| 11 | 200 |
| 12 | 210 |
首先计算一阶移动平均值:
```
MA1(2) = (100 + 110) / 2 = 105
MA1(3) = (100 + 110 + 120) / 3 = 110
MA1(4) = (100 + 110 + 120 + 130) / 4 = 115
MA1(5) = (110 + 120 + 130 + 140) / 4 = 125
MA1(6) = (120 + 130 + 140 + 150) / 4 = 135
MA1(7) = (130 + 140 + 150 + 160) / 4 = 145
MA1(8) = (140 + 150 + 160 + 170) / 4 = 155
MA1(9) = (150 + 160 + 170 + 180) / 4 = 165
MA1(10) = (160 + 170 + 180 + 190) / 4 = 175
MA1(11) = (170 + 180 + 190 + 200) / 4 = 185
MA1(12) = (180 + 190 + 200 + 210) / 4 = 195
```
然后对一阶移动平均值再做一次移动平均:
```
MA2(3) = (105 + 110) / 2 = 107.5
MA2(4) = (110 + 115) / 2 = 112.5
MA2(5) = (115 + 125) / 2 = 120
MA2(6) = (125 + 135) / 2 = 130
MA2(7) = (135 + 145) / 2 = 140
MA2(8) = (145 + 155) / 2 = 150
MA2(9) = (155 + 165) / 2 = 160
MA2(10) = (165 + 175) / 2 = 170
MA2(11) = (175 + 185) / 2 = 180
MA2(12) = (185 + 195) / 2 = 190
```
最终得到的预测值为:
| 月份 | 交通量 | 预测值 |
| ---- | ------ | ------ |
| 1 | 100 | |
| 2 | 110 | |
| 3 | 120 | 107.5 |
| 4 | 130 | 112.5 |
| 5 | 140 | 120 |
| 6 | 150 | 130 |
| 7 | 160 | 140 |
| 8 | 170 | 150 |
| 9 | 180 | 160 |
| 10 | 190 | 170 |
| 11 | 200 | 180 |
| 12 | 210 | 190 |
下面是Python代码实现:
```python
import numpy as np
# 数据
data = np.array([100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210])
# 一阶移动平均
ma1 = np.convolve(data, [1/2, 1/2], mode='valid')
# 二阶移动平均
ma2 = np.convolve(ma1, [1/2, 1/2], mode='valid')
# 输出预测值
print(ma2)
```
阅读全文