二次移动平均法交通量预测可视化及RMSE的代码
时间: 2024-01-25 07:05:10 浏览: 18
以下是使用二次移动平均法进行交通量预测并计算RMSE的Python代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('traffic_volume.csv', index_col='date', parse_dates=True)
data = data.dropna()
# 定义二次移动平均法函数
def quadratic_ma(data, n):
weights = np.array([i**2 for i in range(1, n+1)])
weights = weights / weights.sum()
ma = data.rolling(window=n, center=True).apply(lambda x: np.dot(x, weights))
return ma
# 计算预测值和RMSE
forecast = quadratic_ma(data['volume'], n=24)
rmse = np.sqrt(((forecast - data['volume']) ** 2).mean())
# 可视化结果
plt.figure(figsize=(12, 6))
plt.plot(data.index, data['volume'], label='Actual')
plt.plot(forecast.index, forecast, label='Forecast')
plt.title(f'Quadratic Moving Average Forecast (RMSE = {rmse:.2f})')
plt.legend()
plt.show()
```
其中,`traffic_volume.csv` 是一个包含交通量数据的CSV文件,每一行表示一个时间点的交通量。在代码中,使用`pandas`库读取数据,并使用`quadratic_ma`函数计算二次移动平均法的预测值。最后,使用`matplotlib`库绘制实际值和预测值,并计算RMSE。