二次移动平均法预测交通量实例及代码
时间: 2023-06-25 18:06:10 浏览: 97
基于Python实现二次移动平均法(源码+数据).rar
二次移动平均法是一种常用的时间序列预测方法,可以应用在交通量预测中。这种方法的基本思想是把历史上连续的若干个数据点作为一个窗口,计算这个窗口内数据点的平均值,然后再对这些平均值再次进行平均,得到预测值。下面是一个简单的二次移动平均法的实例和代码:
假设我们有一组交通量数据,包括每个小时的交通量,如下所示:
| 时间 | 交通量 |
| ---- | ------ |
| 1 | 100 |
| 2 | 110 |
| 3 | 120 |
| 4 | 130 |
| 5 | 140 |
| 6 | 150 |
| 7 | 160 |
| 8 | 170 |
| 9 | 180 |
| 10 | 190 |
我们想要预测第11个小时的交通量,使用二次移动平均法进行预测。
首先,我们需要选择窗口的大小,假设我们选择窗口的大小为3。然后,我们计算出窗口内每个小时的交通量的平均值,并把这些平均值作为新的数据点,如下所示:
| 时间 | 交通量 | 平均值 |
| ---- | ------ | ------ |
| 1 | 100 | |
| 2 | 110 | |
| 3 | 120 | 110 |
| 4 | 130 | 120 |
| 5 | 140 | 130 |
| 6 | 150 | 140 |
| 7 | 160 | 150 |
| 8 | 170 | 160 |
| 9 | 180 | 170 |
| 10 | 190 | 180 |
接下来,我们再次使用窗口大小为3,计算出每个窗口的平均值,并且把这些平均值作为最终的预测值,如下所示:
| 时间 | 交通量 | 平均值 | 预测值 |
| ---- | ------ | ------ | ------ |
| 1 | 100 | | |
| 2 | 110 | | |
| 3 | 120 | 110 | |
| 4 | 130 | 120 | |
| 5 | 140 | 130 | 120 |
| 6 | 150 | 140 | 123.3 |
| 7 | 160 | 150 | 136.7 |
| 8 | 170 | 160 | 150 |
| 9 | 180 | 170 | 163.3 |
| 10 | 190 | 180 | 176.7 |
可以看到,使用二次移动平均法预测第11个小时的交通量为176.7。
下面是使用Python实现二次移动平均法的代码:
```python
import numpy as np
# 数据
traffic = np.array([100, 110, 120, 130, 140, 150, 160, 170, 180, 190])
# 窗口大小
window_size = 3
# 第一次平均
average1 = np.zeros(traffic.shape[0] - window_size + 1)
for i in range(average1.shape[0]):
average1[i] = traffic[i:i+window_size].mean()
# 第二次平均
average2 = np.zeros(average1.shape[0] - window_size + 1)
for i in range(average2.shape[0]):
average2[i] = average1[i:i+window_size].mean()
# 预测值
prediction = average2[-1]
print('预测值为:', prediction)
```
阅读全文