数学建模社区-数学中国

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

作者: 浅夏110    时间: 2020-5-31 14:34
标题: 时间序列模型 (五): 趋势外推预测方法
趋势外推法是根据事物的历史和现时资料,寻求事物发展规律,从而推测出事物 未来状况的一种比较常用的预测方法。利用趋势外推法进行预测,主要包括六个阶段:
4 @$ S. l; ~  A) [7 L0 w8 P$ X! y' T* H! J' ?% y1 t
(a)选择应预测的参数; (b)收集必要的数据;   (c)利用数据拟合曲线;  
/ H- x3 B) l, n+ H0 r% o/ z/ h
(d)趋势外 推;(e)预测说明;(f)研究预测结果在进行决策中应用的可能性。
% W2 f' t' v; R& |2 k8 k! x) @3 B1 B, F2 d
趋势外推法常用的典型数学模型有:指数曲线、修正指数曲线、生长曲线、包络 曲线等。 4 M8 m6 A2 V- U

7 F& ]/ y3 ]- ]' Z/ L% p9 Z6 `- c) [: G  Y8 v8 N2 Y
指数曲线法 : d4 i) E5 c& j
一般来说,技术的进步和生产的增长,在其未达饱和之前的新生时期是遵循指数 曲线增长规律的,因此可以用指数曲线对发展中的事物进行预测。 7 Y8 }0 f, [4 N  e; q% G4 I
, d0 h* w2 I7 d! Z

+ n2 \: v3 m+ M1 [) ?: O% t- m# A2 ^* y# ?. `/ ]

& [: L! Z) x# V9 H- }& y% x5 a( F% h) c4 }4 ]; j
" o+ B" y' X! ]; C

. a: M; z; S6 }* ]" m3 D$ X3 m4 u 修正指数曲线法 4 Q+ M' U7 W- }" z. Z3 A
利用指数曲线外推来进行预测时,存在着预测值随着时间的推移会无限增大的情 况。这是不符合客观规律的。因为任何事物的发展都是有一定限度的。例如某种畅销产 品,在其占有市场的初期是呈指数曲线增长的,但随着产品销售量的增加,产品总量接 近于社会饱和量时。这时的预测模型应改用修正指数曲线。 7 G' l+ r% D" M  K% }* Z5 E( |
( K2 R/ A9 @- x  e& F

4 }; f9 }( x: P5 l
) G) O& `3 k7 m: `. m4 r( q9 E% e三和法: F. }- o: L; e) A+ P3 O2 X! `5 K

- T+ L! u+ V0 x/ o# o! v6 ^# ]' a; c/ H2 T- b  b) x6 R0 `

+ E) ~7 F& d) d; v* j4 R+ n" I: j" B) n& Z' L9 e
3 n5 `0 e7 u) e4 }  g

3 P7 o+ P1 T- E8 X0 i; A: B例 8  根据统计资料,某厂收音机连续 15 年的销售量如表 11。 试用修正指数曲线预测 1986 年的销售量。 ; `* j. S& T! g4 y8 g
) z/ }* v8 Q1 }4 h

( x8 E( s$ B& g9 ^7 H5 c+ x2 H4 ^9 z, X0 h; n7 a& P- _+ A
4 @1 @; w: n  R' `7 y
8 l2 T" h: t- B& |( T2 Q$ p
6 d. @0 s  R0 U5 ]- h
计算的 MATLAB 程序如下:) }8 j' M# p# R3 a+ i) B3 e
8 Q. b7 s. q$ P! F! h* U: C
function chanliang 3 g( |5 \. i, {) I3 {9 p' J' V
clc,clear ( U& G, l" s+ d
global a b k
' Y& b1 I) p" V- q' Fload xsh.txt %原始数据存放在纯文本文件 xsh.txt 中
, @2 v2 j4 T$ b. K0 Y2 Q6 Vyt=xsh; n=length(yt);m=n/3 : ]% N4 K  x8 r1 O" V% c4 Y3 O
cf=diff(yt);
; ?5 m8 `1 E+ A, b. {8 Q3 A  a8 Ffor i=1:n-2     
" O" Y: N* Q* c8 W5 B    bzh(i)=cf(i+1)/cf(i);
9 B, L6 |. G, h* R, Jend
( G! q$ V8 r7 y1 }+ Frange=minmax(bzh) # ?2 I  m* L, Y; C7 ^% d! p
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end)) + i2 s( |$ ~' V3 Y; p$ C  @2 c
b=((s3-s2)/(s2-s1))^(1/m) a=(s2-s1)*(b-1)/(b*(b^m-1)^2)
+ P' K. v8 N: P# e4 T/ b* Gk=(s1-a*b*(b^m-1)/(b-1))/m
2 ^4 ?, E( D& Oy=yuce(1:18)
- v, Q4 J7 U0 F! h! P9 o# X1 E# Q%************************************ * ]* o6 q3 D. f& \0 d
%定义预测函数
' H9 u9 i' H& K2 t' D5 Q%************************************
; Z3 w- m, f2 h( ]6 ^$ X. bfunction
0 v. i5 [% t9 ^/ c" W. R8 }/ {! Gy=yuce(t) . U" m7 Z& E) _
global a b k
. V' ]6 R$ j5 G) M+ _. ?2 _, Vy=k+a*b.^t;  
5 A  O8 U2 T8 K( o  y7 \7 Q' l1 Z% E& j* _
2 n- [- [  U" K% x
Compertz 曲线

/ e$ P, A/ F. n3 j

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

计算的 MATLAB 程序如下:

function chanliang2 # |5 ]8 v6 @1 A! `
clc,clear 5 I6 N2 j$ R4 e2 U, p! E
global a b k
" C% r# h9 ?2 y* t' e# H* l. Sload xsh.txt %原始数据存放在纯文本文件 xsh.txt 中 $ o) l2 z; E( j1 ]- I
yt=log(xsh); n=length(yt);m=n/3; & ^. E' d- ?, }% I
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end)) 0 j$ T. H& Q4 Z0 y6 @
b=((s3-s2)/(s2-s1))^(1/m)
* I- _' f6 r3 r& l2 M  la=(s2-s1)*(b-1)/(b*(b^m-1)^2) # K/ l* I1 e# y: ~, M: i, L. `
k=(s1-a*b*(b^m-1)/(b-1))/m a=exp(a) 7 m" T) j# j$ q8 c% q1 s
k=exp(k) , }5 m4 D; C+ r+ {+ r3 f4 i' y
y=yuce(1:18)
9 a) D& j# R: o1 N8 g% W, L%************************************ %定义预测函数 %************************************ function y=yuce(t); ! l, G3 \) f  r- H) R9 [7 P  G
global a b k
0 L) n1 ]$ U2 ^7 Wy=k*a.^(b.^t);
! q- C) e0 W( X/ [
5 c' g8 Q2 C/ A+ w0 a Logistic 曲线(生长曲线) " v/ }0 p7 s0 @% q$ t
生物的生长过程经历发生、发展到成熟三个阶段,在三个阶段生物的生长速度是不 一样的,例如南瓜的重量增长速度,在第一阶段增长的较慢,在发展时期则突然加快, 而到了成熟期又趋减慢,形成一条 S 形曲线,这就是有名的 Logistic 曲线(生长曲线),很多事物,如技术和产品发展进程都有类似的发展过程,因此 Logistic 曲线在预测中有 相当广泛的应用。 . G  l: |* u! u* [$ U- Q

( r( G& d- U* ?9 i, c0 w5 V: T
4 c, k" E4 R- W8 C5 c, l  g- G( j
$ Y% g: N& I/ ^: T/ r" H' ~, n8 I3 ?8 k9 y! ~
9 {7 }0 u3 [3 y0 a7 r5 ~# F" j+ T

% K: [6 z+ p' l* E" v& H" p+ \# |& t5 x0 b9 F1 x
例 10(续例 8)  根据表 10 的数据,试确定收音机销售量的 Logistic 曲线方程, 求出各年收音机销售量的趋势值,并预测 1986 年的销售量。 ( C5 f* C7 I3 b. @. Q4 B; R

6 d/ L1 j3 Q9 o% z' Y
& y- \. O  E$ W# }+ |
1 z  ?( ]. b) k9 G- x  O' Q. ^2 ]9 }& l, \

& U* k$ P; ]# J" L* D, H$ C计算的 MATLAB 程序如下:
- Y. z8 }' Q; G2 `& v4 O( {2 ], t
  G4 o9 M& h( }/ X8 Q7 hfunction chanliang3
6 p1 x( j9 @! ?% }4 O" ?* z6 dclc,clear ( V6 \* W" @2 S
global a b k ! m* b3 \7 H/ Y. M
load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中 * {# M/ T: Z# e! R* u+ @
yt=1./xsh; n=length(yt);m=n/3; , I/ r1 a$ M3 [
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))
$ B- W  T! N, f" z/ Tb=((s3-s2)/(s2-s1))^(1/m)
- C; T% {" w) H1 v( i; G( ea=(s2-s1)*(b-1)/(b*(b^m-1)^2) # k6 K" P! S2 s& J/ H
k=(s1-a*b*(b^m-1)/(b-1))/m
* b' }0 z4 M$ G# {' r$ F& A8 @1 Cy=yuce(1:18)
+ R4 [4 ]7 f0 Z/ H! E: k%************************************ %定义预测函数 %************************************ function y=yuce(t);
8 Y5 B# X) _: x$ Z  y( H9 hglobal a b k
. m  ~3 E/ G5 i$ Ky=1./(k+a*b.^t); - W# M6 }3 z, |% ]& F8 e% }/ _

; a$ P# v; _% v& i! D* j
; a* c- T' L  G0 X3 s& a* ]% ~/ p$ S% p0 W6 C
趋势线的选择

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

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


; d+ H; B! a" q( w& Y% n; I4 O6 z; j/ C9 V( W0 H! D6 A& f& V
* e6 ?( a$ n, [. Q3 Z: b
————————————————9 o7 [* J( r0 W1 l: W/ m! x1 |" Z& y
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
# N& G: B2 ^9 g8 q原文链接:https://blog.csdn.net/qq_29831163/article/details/894482706 i  s3 t7 y4 e" O$ D) [) E4 P" c
( s7 o) w7 H$ @2 i3 D5 |( R0 W
2 W8 e0 k3 X9 {$ D





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