GM11预测模型代码
时间: 2023-08-06 16:26:32 浏览: 98
下面是Python实现的GM11预测模型代码,其中包括灰度化处理、参数估计、模型预测等步骤:
```python
import numpy as np
def GM11(data):
# 灰度化处理
x1 = data.cumsum()
z1 = (x1[:len(x1)-1] + x1[1:])/2.0
z1 = z1.reshape((len(z1),1))
B = np.append(-z1, np.ones_like(z1), axis=1)
Y = data[1:].reshape((len(data)-1,1))
[[a],[b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Y)
# 模型预测
f = lambda k: (data[0]-b/a)*np.exp(-a*k) + b/a
delta = np.abs(data - np.array([f(i) for i in range(len(data))]))
C = delta.std()/data.std()
P = 1.0*(np.abs(delta - delta.mean()) < 0.6745*data.std()).sum()/len(data)
# 预测结果
result = []
for i in range(len(data)+1, len(data)+13):
result.append(int(f(i)))
return result
```
该代码中的data为输入的原始数据序列,返回的是一个长度为12的预测结果序列result。需要注意的是,该模型对数据的要求比较高,需要满足一定的规律性和趋势性。如果数据太过随机或噪声较大,预测效果可能会降低。
阅读全文