介绍
灰色预测模型是对少量数据进行拟合确定方程的一种模型,通过累加的方式减少数据中的不确定因素。
记原始序列为 ,一次累加生成序列为 ,则可以视原始序列为一次累加生成序列对i的微分序列。
设微分方程 ,即 ,可以利用最小二乘法估计a和b的数值。
解微分方程得 ,再将其每一位减去前一位还原为 ,既可以得到原始序列关于i的拟合方程。
实例
下表是2000-2006年宁波市房地产价格的统计数据,试拟合模型。
年份 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 |
---|---|---|---|---|---|---|---|
宁波市 | 105.5 | 107.2 | 116.4 | 116.6 | 113.9 | 106.5 | 102.2 |
设2000年为第1年,python代码如下:
import numpy as np
from scipy import optimize
from matplotlib import pyplot
lis=np.array([105.5,107.2,116.4,116.6,113.9,106.5,102.2])
lis1=lis.cumsum()
z1 = np.polyfit(lis1, lis, 1)
a=-z1[0]
b=z1[1]
print(a,b)
i=np.arange(1,8)
x1=(lis1[0]-b/a)*(np.exp(-a*i)-np.exp(-a*(i-1)))
pyplot.plot(i,x1)
pyplot.plot(i,lis,".")
pyplot.show()
计算出a值为0.004,b值为111.54,其拟合结果是一条几乎将散点一分为二的直线