数模(7):灰色预测模型

介绍

灰色预测模型是对少量数据进行拟合确定方程的一种模型,通过累加的方式减少数据中的不确定因素。

原始序列 x ( 0 ) = ( x ( 0 ) ( 1 ) , x ( 0 ) ( 2 ) , . . . , x ( 0 ) ( n ) ) x^{(0)}=(x^{(0)}(1),x^{(0)}(2),...,x^{(0)}(n)) x(0)=(x(0)(1),x(0)(2),...,x(0)(n))一次累加生成序列 x ( 1 ) = ( x ( 0 ) ( 1 ) , x ( 0 ) ( 1 ) + x ( 0 ) ( 2 ) , . . . , ∑ i = 1 n x ( 0 ) ( i ) ) x^{(1)}=(x^{(0)}(1),x^{(0)}(1)+x^{(0)}(2),...,\sum_{i=1}^{n}x^{(0)}(i)) x(1)=(x(0)(1),x(0)(1)+x(0)(2),...,i=1nx(0)(i)),则可以视原始序列为一次累加生成序列对i的微分序列

设微分方程 d x d i + a x = b \frac{dx}{di}+ax=b didx+ax=b,即 x ( 0 ) + a x ( 1 ) = b x^{(0)}+ax^{(1)}=b x(0)+ax(1)=b,可以利用最小二乘法估计a和b的数值。

解微分方程得 x ( 1 ) = ( x 0 ( 1 ) − b a ) e − a i + b a x^{(1)}=(x^{(1)}_0-\frac{b}{a})e^{-ai}+\frac{b}{a} x(1)=(x0(1)ab)eai+ab,再将其每一位减去前一位还原为 x ( 0 ) = ( x 0 ( 1 ) − b a ) ( e − a i − e − a ( i − 1 ) ) x^{(0)}=(x^{(1)}_0-\frac{b}{a})(e^{-ai}-e^{-a(i-1)}) x(0)=(x0(1)ab)(eaiea(i1)),既可以得到原始序列关于i的拟合方程。

实例

下表是2000-2006年宁波市房地产价格的统计数据,试拟合模型。

年份2000200120022003200420052006
宁波市105.5107.2116.4116.6113.9106.5102.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,其拟合结果是一条几乎将散点一分为二的直线
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值