ryj的个人博客分享 http://blog.sciencenet.cn/u/ryj

博文

时间序列数据灰色模型的拟合与预测预报中的应用

已有 2984 次阅读 2015-1-25 20:29 |系统分类:科研笔记

时间序列数据灰色模型的拟合与预测预报中的应用
1. 灰色模型简介
一般的数学模型是对原始数列建模,且要求有足够的样本量和特定的分布。(grey model)不受这些条件的约束,适用性较强。灰色模型的建模过程是将无规律的原始数列,经过累加及求均值等生成过程,使其成为较有规律的生成数列后再建模。本节介绍的灰色模型是为1个变量的1个阶微分方程GM(1,1)。以灰色模型拟合进行预测预报,由于简便易行,在管理工作中有很广泛的应用。
灰色模型的一阶线性微分方程为:
          dx(t)
         ─── + ax (t) = u
           dt
   其中a 和 u 为灰色模型的待定参数。
   程序中以下列一个语句计算预测值(ext):
COMPUTE ext=((x1-u/a)*EXP(0-(a*t))+u/a) -((x1-u/a) * EXP(0-(a*(t-1)))+u/a).
2. 灰色模型 GM(1,1) 预测实例
以下是某单位“保健开支”占事业经费的比重(xt, %)增长情况的数据(刘作浚:中国卫生统计,8 (2):25, 1991),请预测该数列往前预测一年(1989 年)的比重(ext)。
   所用的程序文件名为 GM11-Model.sps。
   在程序文件的 BEGIN DATA 与 END DATA 间,录入表中第 (2) 列、第 (3) 列的数据。
     表 7-2    某单位“保健开支”占事业经费的比重的增长情况
------------------------------------------------------------------------------
   年份    过几年(t)   比重(xt)    预测值(ext)  误差(d)
  (1)        (2)          (3)            (4)            (5)
------------------------------------------------------------------------------
1979        0          19.36          19.36            .00
   1980        1          22.77          26.23          -3.46
   1981        2          33.51          29.19           4.32
   1982        3          37.96          32.49           5.47
   1983        4          38.16          36.16           2.00
   1984        5          38.33          40.24          -1.91
   1985        6          38.09          44.79          -6.70
   1986        7          45.45          49.85          -4.40
   1987        8          58.64          55.48           3.16
   1988        9          64.99          61.74           3.25
------------------------------------------------------------------------------
   1989       10                         68.72
------------------------------------------------------------------------------
3.灰色模型预测程序文件的使用方法
   打开程序文件后,请注意按如下计算步骤:
① “第一个年份”意为“当年”即“t”为“0”年;“第二个年份”意为“过1年”即“t”为“1”年,余类推。程序文件中有“Note”一句予以说明。
② 利用此程序文件拟合新的时间序列数据时,“COMPUTE First”一句要录入用户时间序列的第一年的年份值(本例为 1979 年)。
③ 先从头运行至 “LIST VARIABLES=D a u” 一句为止, 得到拟合灰色模型所需参数 D、 a、 和 u 值(实际上仅“a”值与“u”值为灰色模型公式所需的参数)。可见 D = 915175.92875, a = -.10702, u = 22.77710。
④ 将所得的 D值、 a值、 和u 值对其下的三句赋值(“COMPUTE D”、“COMPUTE a”和“COMPUTE u”),用于灰色模型预测公式的计算。
x(t)的估计值 ext 算式是:
ext=((x1-u/a)*EXP(0-(a*t))+u/a)-((x1-u/a) * EXP(0-(a*(t-1)))+u/a)
要预测该数列往前一年(1989 年)的比重(ext),只要代入 x1 = 19.36 (数列的第一个数值),u = 22.77710, a = -.10702,t = 10(即 1989 年),即可算得 ext = 68.72 %。
⑤ 由此再往下计算到最后一句,即可得到表中第 (4) 列的预测值(ext)与第 (5) 列的误差值(d),可见误差合计仅 1.75 %。随后还可得到“向前一步”(one step ahead)的预测值,即 “1989” 年的预测值(68.72%)的输出结果。
TITLE 'A example of GM(1,1) Model; Filename: GM11-Model.sps'.
*----------------------------------------------------------------------.
*1. From CHN J. of Health Statistics. 1991; 8(2):25.
*Note: The following value t begins at 0, please!.
DATA LIST FREE /t xt.
BEGIN DATA.
0 19.36 1 22.77 2 33.51 3 37.96 4 38.16 5 38.33 6 38.09 7 45.45
8 58.64 9 64.99
END DATA.
COMPUTE First=1979.
COMPUTE x1=19.36.
COMPUTE n=10.
CREATE yk=CSUM(xt).
CREATE yk1=LAG(yk,1).
COMPUTE Year=t+First.
COMPUTE zt=(yk+yk1)/2.
COMPUTE z2t=zt**2.
COMPUTE xtzt=xt*zt.
VARIABLE LABELS xt 'value, %'
              /yk1 'lag value of yk'
              /zt 'zt'
              /z2t 'z2t'
              /xtzt 'xt*zt'.
FORMATS t(F3.0) Year(F5.0) xt yk yk1 zt z2t xtzt(F8.3).
LIST VARIABLES=t Year xt yk yk1 zt z2t xtzt /CASES=FROM 1 TO 10.

CREATE sxt=CSUM(xt).
CREATE szt=CSUM(zt).
CREATE sz2t=CSUM(z2t).
CREATE sxtzt=CSUM(xtzt).

COMPUTE sxt=sxt-x1.
COMPUTE szt2=(szt)**2.
VARIABLE LABELS sxt 'sum of x(t)'
              /szt 'sum of z(t)'
              /sz2t 'sum of sz(t)**2'
              /sxtzt 'sum of x(t)*z(t)'.

COMPUTE D=((n-1)*(sz2t)-(szt2)).
COMPUTE a=((n-1)*(0-(sxtzt))+(szt)*(sxt))/D.
COMPUTE u=((szt)*(0-(sxtzt))+(sxt)*(sz2t))/D.
VARIABLE LABELS D 'value D'
              /a 'value a in th model'
              /u 'value u in the model'.
FORMATS D a u(F12.5).
LIST VARIABLES=D a u /FORMAT=NUMBERED /CASES=FROM 10 TO 10.

COMPUTE D = 915175.92875.
COMPUTE a =  -.10702.    
COMPUTE u = 22.77710.

COMPUTE ceyt=(x1-u/a)*EXP(0-(a*t))+u/a.
VARIABLE LABELS ceyt 'cumulated value of y(t)'.
FORMATS xt yk zt ceyt(F9.3).
LIST VARIABLES=t Year xt yk zt ceyt /CASES=FROM 1 TO 10.

COMPUTE ext=((x1-u/a)*EXP(0-(a*t))+u/a) -((x1-u/a)*EXP(0-(a*(t-1)))+u/a).
IF (t=0) ext=x1.
COMPUTE d=xt-ext.
VARIABLE LABELS ext 'estim. value'
              /d 'x(t)-ex(t)'.
DESCRIPTIVES VARIABLES=d /STATISTICS=SUM.

FORMATS xt yk zt ceyt ext d(F8.2).
LIST VARIABLES=t Year xt ext d /CASES=FROM 1 TO 10.

TSPLOT /VARIABLES=xt ext.
GRAPH /LINE(MULTIPLE)=VALUE(xt) VALUE(ext) BY Year.

COMPUTE t=n-1.
COMPUTE Year=Year+n-1.

*For getting the forecasting values of forward s-steps,
You must run the following 5 commands s times repeatedly:.
COMPUTE t=t+1.
COMPUTE ceyt=(x1-u/a)*EXP(0-(a*t))+u/a.
COMPUTE ext=((x1-u/a)*EXP(0-(a*t))+u/a) -((x1-u/a)*EXP(0-(a*(t-1)))+u/a).
COMPUTE Year=Year+1.
LIST VARIABLES=t Year ext /FORMAT=NUMBERED /CASES=FROM 1 TO 1.




https://wap.sciencenet.cn/blog-2357639-862712.html

上一篇:土地利用与生态环境的耦合关系
下一篇:主要污染物总量
收藏 IP: 58.213.161.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-15 11:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部