数学建模社区-数学中国

标题: 时间序列模型 (五): 趋势外推预测方法 [打印本页]

作者: 浅夏110    时间: 2020-5-31 14:34
标题: 时间序列模型 (五): 趋势外推预测方法
趋势外推法是根据事物的历史和现时资料,寻求事物发展规律,从而推测出事物 未来状况的一种比较常用的预测方法。利用趋势外推法进行预测,主要包括六个阶段:: J* t' K" S( L: I' Q

- e; k! r1 I) F+ n2 i3 g# W(a)选择应预测的参数; (b)收集必要的数据;   (c)利用数据拟合曲线;  
; s2 _% Y# Z' J$ l
# z( }; J; z/ N1 J(d)趋势外 推;(e)预测说明;(f)研究预测结果在进行决策中应用的可能性。* I$ I  q2 @& E1 `" O
8 ^! b6 S0 N! @5 m) B
趋势外推法常用的典型数学模型有:指数曲线、修正指数曲线、生长曲线、包络 曲线等。
7 u, I: T  G2 V) O5 B8 Y: A
: T1 A4 q- _/ g) u& Y3 G& K3 z
+ }! t) W- t- M5 |2 e" t 指数曲线法 + t- A% C. |8 x
一般来说,技术的进步和生产的增长,在其未达饱和之前的新生时期是遵循指数 曲线增长规律的,因此可以用指数曲线对发展中的事物进行预测。 . [( _1 m/ q' x- s/ F, j7 _

# e4 W2 h2 c- C1 p  W9 m
# p6 t. h7 E2 @7 Q8 T
: b; h! ^7 p' p
1 x6 k, m1 T  |6 r& T' R4 G  k$ a5 P7 ~" }6 b- v4 t8 A

# G9 m  H" Z; ~; v1 ?9 E! e7 m! W0 ?% W* z: r& D
修正指数曲线法
+ B0 f  y  h0 R  v" j! D利用指数曲线外推来进行预测时,存在着预测值随着时间的推移会无限增大的情 况。这是不符合客观规律的。因为任何事物的发展都是有一定限度的。例如某种畅销产 品,在其占有市场的初期是呈指数曲线增长的,但随着产品销售量的增加,产品总量接 近于社会饱和量时。这时的预测模型应改用修正指数曲线。
4 R& L1 m& G/ Y( f: i  y# [) V; I7 t, `; p7 U' H6 J* g

: L6 R& E" u: x8 P7 O. C& C( T
0 y' D3 J  A. h2 s/ U$ e三和法
: o  p; O/ P- e' U2 F
, D" _$ U0 N$ t* N! z
9 ~: y: U/ L/ e6 z
" d* [: |3 W5 i" O6 P) X  i& Z4 C
8 {6 E+ ?* H4 K7 @/ Z7 f9 k# H( J7 }. `3 J+ S- _

$ h- Q- {/ z" k例 8  根据统计资料,某厂收音机连续 15 年的销售量如表 11。 试用修正指数曲线预测 1986 年的销售量。
8 a% l5 h  O  n  H' Q, E
- H' q) }+ p; B. E+ y) Y- l3 \, d$ Q8 ~; O7 r- F
8 A$ \- ?' W0 k

) L) i# v- ]) z' E
0 M: P) N9 V) ~7 a  [* {$ q
0 z  B# v6 G( [- v计算的 MATLAB 程序如下:
. x5 z3 [9 N. L3 i: \
) p; N& d5 ~5 l3 @5 k/ Hfunction chanliang
, `$ Z3 r! `5 Dclc,clear # P1 d0 Z4 ~, l, J/ k1 J7 L
global a b k & d( a' w5 `0 _$ @
load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中
" z* @  D0 ]/ Myt=xsh; n=length(yt);m=n/3 " \! N' f% U2 e  e. T6 y
cf=diff(yt); $ r4 J1 u. |( {$ ]2 P# K; ?
for i=1:n-2     ; c% p6 i/ f( d* V+ ~
    bzh(i)=cf(i+1)/cf(i);
4 f, O5 {1 q$ G) A/ _1 o' Send % H' S, o+ r' |2 e4 ~
range=minmax(bzh) 3 T/ V5 a& x7 N  N) g
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))
! i1 r8 {% ^( Nb=((s3-s2)/(s2-s1))^(1/m) a=(s2-s1)*(b-1)/(b*(b^m-1)^2)
0 z' t% _: l6 B6 j* Uk=(s1-a*b*(b^m-1)/(b-1))/m
" J* s4 e  U" k% iy=yuce(1:18)
3 R, p+ I0 a* W; ]%************************************ 4 \3 F2 i, ]" f* d2 |4 g& i
%定义预测函数
& Z0 o- N( [: f# z) l% c9 W9 K%************************************ 8 e1 C  G& m/ B! w
function
/ s$ i% z& D( k7 R9 ey=yuce(t)
0 L6 [8 W! S# M* q" cglobal a b k
/ T& F/ n' I: B' M0 H$ L6 Gy=k+a*b.^t;  
. e% c  B/ V: ?) e# c6 e% @6 b
9 j2 Y$ m* v5 ^* t' L5 O) K6 ^& o. }4 l2 P- ^, \
Compertz 曲线

  P% m1 C3 V5 t/ q/ q6 q

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

计算的 MATLAB 程序如下:

function chanliang2 3 N5 y- G- d) |  e
clc,clear : ?) z7 w, o0 J9 p: v: f$ A5 u0 j
global a b k
, }% a+ B4 I/ c) l' j7 {3 ^4 p, a! [load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中 * `5 w# |2 X  e
yt=log(xsh); n=length(yt);m=n/3; $ t9 W. B* y. q. t7 v! L1 G, @
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))
3 P1 C3 r; `6 s9 xb=((s3-s2)/(s2-s1))^(1/m) ( P7 d" m& x  \' P/ v2 u
a=(s2-s1)*(b-1)/(b*(b^m-1)^2) 5 g8 G7 W! O2 e
k=(s1-a*b*(b^m-1)/(b-1))/m a=exp(a)
( [. L& `, }/ `k=exp(k)
7 B8 ]  H5 }' L  a/ `y=yuce(1:18) 4 v2 X: P. F& ?
%************************************ %定义预测函数 %************************************ function y=yuce(t); . Q3 ?% _. y: a7 i! j
global a b k
% Q  D% n$ w. |" ^6 b& by=k*a.^(b.^t);
' }7 O: H8 v, }- ^6 j7 z' V6 o
# k5 Y" f0 ~! Z Logistic 曲线(生长曲线) 6 B- o: G2 c8 c, Q5 Q$ E. ~
生物的生长过程经历发生、发展到成熟三个阶段,在三个阶段生物的生长速度是不 一样的,例如南瓜的重量增长速度,在第一阶段增长的较慢,在发展时期则突然加快, 而到了成熟期又趋减慢,形成一条 S 形曲线,这就是有名的 Logistic 曲线(生长曲线),很多事物,如技术和产品发展进程都有类似的发展过程,因此 Logistic 曲线在预测中有 相当广泛的应用。 2 d8 g% j1 }6 a; `4 ~* p! W7 m

6 K. H9 l/ i$ P2 n) G! y
; ]( ?4 q1 c& l7 N% _% b: c) J2 d
) U5 K7 z5 ?2 \' w* O0 \0 F; F9 {; A
, S* U# q1 F) R% [

; g4 w2 t9 [% h' r1 S: G5 ^3 V
3 Y; m9 ^/ n9 w- h例 10(续例 8)  根据表 10 的数据,试确定收音机销售量的 Logistic 曲线方程, 求出各年收音机销售量的趋势值,并预测 1986 年的销售量。
, S4 G5 u! B* ^( e2 x
; I& K; I* a) G9 [6 ]% x; R4 n" g- W, {6 H3 _8 }
4 H* O/ q2 q; o5 s# Y

" d/ C) F3 B+ V* k9 D: M- M& R$ w' `% g
计算的 MATLAB 程序如下: * ?* x. E- e& ^
# F6 J" K) @" A
function chanliang3
- o: ~8 J2 J) t3 c4 Z- Pclc,clear
# t; r0 P/ }# T  E8 _1 P& R) bglobal a b k
7 ^- A, E7 g3 P1 a5 }& mload xsh.txt %原始数据存放在纯文本文件 xsh.txt 中 : d* y2 q8 C. _# C5 ?+ n6 O
yt=1./xsh; n=length(yt);m=n/3; : s+ Q: `# }$ I7 q) }' V% k) X
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))
# q+ K) U& l" X2 A: _$ zb=((s3-s2)/(s2-s1))^(1/m)
( G, A, q) {4 a# m* P- i0 q) _4 Sa=(s2-s1)*(b-1)/(b*(b^m-1)^2)
1 v# ^# T* J2 E9 O  |' |k=(s1-a*b*(b^m-1)/(b-1))/m * G/ K. f3 W9 }+ f. H
y=yuce(1:18)
0 H" P) G9 i6 S! h/ W4 \( |/ q, C%************************************ %定义预测函数 %************************************ function y=yuce(t);
  j8 S* I* |3 H- Q: G* y, e" ~global a b k
* \" F  {3 L4 y8 C' m* Qy=1./(k+a*b.^t);
& D( i4 o* }. Q5 W; ]  H* m  x0 A

1 W* E" |) G9 A% u# |9 O6 I& t6 X" j% _, P* u8 ~$ d0 c8 |6 `
趋势线的选择

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

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

2 N' f/ L7 d% Q

$ ], T4 p- y$ }: _- C+ m' l, ]1 O6 z7 s  j3 W5 \8 o% d
————————————————) M0 F& O1 a7 t
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。7 S- Y0 S; U4 v* g* I$ }4 P
原文链接:https://blog.csdn.net/qq_29831163/article/details/89448270) `: v! d/ T3 m' e; n
- \+ Y1 n& X( N- ]; B$ K! m: P

1 W/ x  x8 v: \! L* Z) ~




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5