时间序列模型 (五): 趋势外推预测方法

时间序列的其它博文系列:

时间序列模型 (一):模型概述

时间序列模型 (二):移动平均法

时间序列模型 (三):指数平滑法

时间序列模型 (四):差分指数平滑法、 自适应滤波法v

时间序列模型 (五): 趋势外推预测方法

时间序列模型 (六):平稳时间序列模型 :自回归AR 、移动平均 MA 、ARMA 模型

时间序列模型 (七): 时间序列建模的基本步骤

趋势外推法是根据事物的历史和现时资料,寻求事物发展规律,从而推测出事物 未来状况的一种比较常用的预测方法。利用趋势外推法进行预测,主要包括六个阶段:

(a)选择应预测的参数; (b)收集必要的数据; (c)利用数据拟合曲线;

(d)趋势外 推;(e)预测说明;(f)研究预测结果在进行决策中应用的可能性。

趋势外推法常用的典型数学模型有:指数曲线、修正指数曲线、生长曲线、包络 曲线等。

目录

指数曲线法

修正指数曲线法

三和法

Compertz 曲线

Logistic 曲线(生长曲线)

趋势线的选择

指数曲线法

一般来说,技术的进步和生产的增长,在其未达饱和之前的新生时期是遵循指数 曲线增长规律的,因此可以用指数曲线对发展中的事物进行预测。

修正指数曲线法

利用指数曲线外推来进行预测时,存在着预测值随着时间的推移会无限增大的情 况。这是不符合客观规律的。因为任何事物的发展都是有一定限度的。例如某种畅销产 品,在其占有市场的初期是呈指数曲线增长的,但随着产品销售量的增加,产品总量接 近于社会饱和量时。这时的预测模型应改用修正指数曲线。

三和法

例 8 根据统计资料,某厂收音机连续 15 年的销售量如表 11。 试用修正指数曲线预测 1986 年的销售量。

计算的 MATLAB 程序如下:

function chanliang

clc,clear

global a b k

load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中

yt=xsh; n=length(yt);m=n/3

cf=diff(yt);

for i=1:n-2

bzh(i)=cf(i+1)/cf(i);

end

range=minmax(bzh)

s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))

b=((s3-s2)/(s2-s1))^(1/m) a=(s2-s1)*(b-1)/(b*(b^m-1)^2)

k=(s1-a*b*(b^m-1)/(b-1))/m

y=yuce(1:18)

%************************************

%定义预测函数

%************************************

function

y=yuce(t)

global a b k

y=k+a*b.^t;

Compertz 曲线

例 9(续例 8) 根据表 11 的数据,试确定收音机销售量的 Gompertz 曲线方程, 求出各年收音机销售量的趋势值,并预测 1986 年的销售量。

计算的 MATLAB 程序如下:

function chanliang2

clc,clear

global a b k

load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中

yt=log(xsh); n=length(yt);m=n/3;

s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))

b=((s3-s2)/(s2-s1))^(1/m)

a=(s2-s1)*(b-1)/(b*(b^m-1)^2)

k=(s1-a*b*(b^m-1)/(b-1))/m a=exp(a)

k=exp(k)

y=yuce(1:18)

%************************************ %定义预测函数 %************************************ function y=yuce(t);

global a b k

y=k*a.^(b.^t);

Logistic 曲线(生长曲线)

生物的生长过程经历发生、发展到成熟三个阶段,在三个阶段生物的生长速度是不 一样的,例如南瓜的重量增长速度,在第一阶段增长的较慢,在发展时期则突然加快, 而到了成熟期又趋减慢,形成一条 S 形曲线,这就是有名的 Logistic 曲线(生长曲线),很多事物,如技术和产品发展进程都有类似的发展过程,因此 Logistic 曲线在预测中有 相当广泛的应用。

例 10(续例 8) 根据表 10 的数据,试确定收音机销售量的 Logistic 曲线方程, 求出各年收音机销售量的趋势值,并预测 1986 年的销售量。

计算的 MATLAB 程序如下:

function chanliang3

clc,clear

global a b k

load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中

yt=1./xsh; n=length(yt);m=n/3;

s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))

b=((s3-s2)/(s2-s1))^(1/m)

a=(s2-s1)*(b-1)/(b*(b^m-1)^2)

k=(s1-a*b*(b^m-1)/(b-1))/m

y=yuce(1:18)

%************************************ %定义预测函数 %************************************ function y=yuce(t);

global a b k

y=1./(k+a*b.^t);

趋势线的选择

趋势线的选择有以下几种方式

当有几种趋势线可供选择时,应选择S 小的趋势线。

时间序列的其它博文系列:

时间序列模型 (一):模型概述

时间序列模型 (二):移动平均法

时间序列模型 (三):指数平滑法

时间序列模型 (四):差分指数平滑法、 自适应滤波法v

时间序列模型 (五): 趋势外推预测方法

时间序列模型 (六):平稳时间序列模型 :自回归AR 、移动平均 MA 、ARMA 模型

时间序列模型 (七): 时间序列建模的基本步骤