数学建模社区-数学中国

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

作者: 浅夏110    时间: 2020-5-31 14:34
标题: 时间序列模型 (五): 趋势外推预测方法
趋势外推法是根据事物的历史和现时资料,寻求事物发展规律,从而推测出事物 未来状况的一种比较常用的预测方法。利用趋势外推法进行预测,主要包括六个阶段:
  Y- g' v, x* c$ H( a
2 F( Q* |( H& S( c(a)选择应预测的参数; (b)收集必要的数据;   (c)利用数据拟合曲线;  
0 d: _. z& x/ j, w; R, X5 x' n5 u# ]
(d)趋势外 推;(e)预测说明;(f)研究预测结果在进行决策中应用的可能性。
; I# E6 {8 b7 f! Z% v6 e5 F$ n# d2 u5 h- m& M
趋势外推法常用的典型数学模型有:指数曲线、修正指数曲线、生长曲线、包络 曲线等。
$ y7 y0 W; q. D) E$ C; D) t" F" A" Z5 {
+ h8 q/ N9 b' J8 A- |+ v. L5 q& _
指数曲线法 2 K  N$ w  |5 _" G6 y0 h
一般来说,技术的进步和生产的增长,在其未达饱和之前的新生时期是遵循指数 曲线增长规律的,因此可以用指数曲线对发展中的事物进行预测。 % S) R! j: i# r7 J; o9 o

- ]% J% ]3 v6 Q- l1 x, r" t2 T: e- Y- X# h' A# J

' I8 N: A- s/ S0 C. i* F3 P" t. g$ {$ {- O! y

6 q1 U5 x/ k& p" u6 ?
4 p3 @( O4 b) _7 e- ?0 x" {
2 f. w. A) }( J# ^) Y1 j) @ 修正指数曲线法
& D/ W* S, K5 f. O8 b利用指数曲线外推来进行预测时,存在着预测值随着时间的推移会无限增大的情 况。这是不符合客观规律的。因为任何事物的发展都是有一定限度的。例如某种畅销产 品,在其占有市场的初期是呈指数曲线增长的,但随着产品销售量的增加,产品总量接 近于社会饱和量时。这时的预测模型应改用修正指数曲线。 , Y/ O8 _# }: v- R" q5 N/ h& b

3 g5 `- y/ K$ ?
& ~) k+ {7 E; R' S5 @( ^, K; L+ f# n7 j/ j0 B, y9 {/ A
三和法
+ T/ \) L: U# Z& e7 L: f5 R% F7 M0 l& x( r

  K+ Y3 t: [5 W- z, n/ R& p: m! p
* \$ _9 w; r" v9 y. S) W4 ?2 m* m2 c: `% K

! i+ Z8 J" k: z$ O; A1 [' A0 _- N) t. o, _' t* o* a$ g1 W& Y
例 8  根据统计资料,某厂收音机连续 15 年的销售量如表 11。 试用修正指数曲线预测 1986 年的销售量。 6 h) @' v  ?. h2 A9 d8 F
  H( O# _! S1 f# b, n* T$ t) l- e" h% ^6 U
4 J9 L; F- Q# L, s; v
9 ~2 `" j4 V8 Q8 Y3 K% S0 y7 D
* ~8 f' X! Q1 i8 l0 W0 \) J; s
) I9 f' \) ?; v5 a
8 v& F1 e; ^. F3 o
计算的 MATLAB 程序如下:
! l7 [5 W5 V. k2 E- {" y, R
9 N( a0 y% Z2 O+ O/ I! ifunction chanliang 3 o- C% D5 c7 v$ N
clc,clear 3 t3 g$ E! n1 [: i+ G, [$ a
global a b k
- ?- s: G  i, I- q9 I1 i3 Z0 ]load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中 3 a7 H6 k* {- I  h% |# @
yt=xsh; n=length(yt);m=n/3
$ |  h" ], o5 b4 P  F$ i+ X: {cf=diff(yt);
% Q4 N- u; ^# Z, Zfor i=1:n-2     
2 r: f% H: J% A2 ]    bzh(i)=cf(i+1)/cf(i); ( \- l- @# j" [' U+ U% J
end
# U2 J! S0 a" V0 V/ t4 m0 e4 arange=minmax(bzh)
" H0 ~0 P% ^- R9 H9 R; E, x! ]s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))
# E1 M/ Q5 Y+ W; x6 Q- \7 |4 Qb=((s3-s2)/(s2-s1))^(1/m) a=(s2-s1)*(b-1)/(b*(b^m-1)^2) ! O) |$ d5 U( z
k=(s1-a*b*(b^m-1)/(b-1))/m 8 f$ w& g5 ]/ I* s* B( g
y=yuce(1:18)
# o/ t8 c% B# e' j' j0 T1 m2 L" a%************************************ 0 k4 g5 k9 |- T" J: Q2 ^6 q
%定义预测函数
: v# F) H  O  b: ]" G/ o# W%************************************
% x3 Z/ p( R" r) i" bfunction 5 ^9 K2 s* z" |" ]
y=yuce(t) 3 C/ c7 [/ \  G2 S
global a b k * p# y; M4 n, l) n3 ~5 }5 x. I- H
y=k+a*b.^t;  
$ a& m1 E5 u6 z; L$ p* k3 v/ w5 a& A
! ]4 F; k7 @% j& Y4 v  E
; |& z) q! y4 W+ m$ e7 fCompertz 曲线


2 a' d+ y4 M) E8 D

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

计算的 MATLAB 程序如下:

function chanliang2 , s1 F' C  h8 [, n
clc,clear
( v( L" a/ i# i" T! m, w/ o' s+ oglobal a b k
" O" l0 H/ O# E9 _load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中
9 {- o2 C6 s. N* Qyt=log(xsh); n=length(yt);m=n/3; 3 l  e' u, V+ x: Y/ X7 G
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))
) M! A. m% j8 b7 ^4 Ib=((s3-s2)/(s2-s1))^(1/m) & D3 p" [. o; V4 \, a
a=(s2-s1)*(b-1)/(b*(b^m-1)^2) 3 I" U  N( f& u9 f; ^
k=(s1-a*b*(b^m-1)/(b-1))/m a=exp(a) 7 F" V4 J$ [+ c  ^
k=exp(k)
; m4 t, ]9 s9 xy=yuce(1:18) % m, @( F$ W- @& `' K8 s+ q# ?
%************************************ %定义预测函数 %************************************ function y=yuce(t); # T! H( g& G! z, q( J0 Q$ c
global a b k - x0 K9 `  I3 L( }/ ]) X6 Q
y=k*a.^(b.^t);
, y5 z9 T4 D4 [( M( R! W  u& \8 H( [$ }: V& Y9 I
Logistic 曲线(生长曲线)
2 d1 k+ ]* ?, B) p( i# w! b7 J生物的生长过程经历发生、发展到成熟三个阶段,在三个阶段生物的生长速度是不 一样的,例如南瓜的重量增长速度,在第一阶段增长的较慢,在发展时期则突然加快, 而到了成熟期又趋减慢,形成一条 S 形曲线,这就是有名的 Logistic 曲线(生长曲线),很多事物,如技术和产品发展进程都有类似的发展过程,因此 Logistic 曲线在预测中有 相当广泛的应用。
$ u. \- q+ W) x5 H
  D. I- d. y3 B! ?) |: L
* x6 g& G4 R, l( X- j4 g' p  A' r4 c7 Z% U
3 P/ @' U. y' M

' k" o9 d4 a6 H7 Q3 r. l7 L/ {: p6 b
) T6 t5 w! b! @. h1 [% b
例 10(续例 8)  根据表 10 的数据,试确定收音机销售量的 Logistic 曲线方程, 求出各年收音机销售量的趋势值,并预测 1986 年的销售量。 8 ~; S% B% P, p, ~

& V$ ?% s+ P% {# C# b
- J) ]) ^6 ^9 r+ `
4 S* a( g. E( p. a
1 V0 ]( }7 x) V+ x2 A) T9 b  f
$ s. [7 p" T3 n$ @( P计算的 MATLAB 程序如下:
  ]. u7 Y  X. Y: `# r, M
, t# k6 r" C( y( T7 Gfunction chanliang3 ! t" F+ ?' g' }: ?/ `
clc,clear
& {8 u0 R. [7 f4 r+ w: Sglobal a b k ! \8 V- ~8 j: H
load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中
9 ~5 X1 D5 ~  Z" S- Y$ I! Jyt=1./xsh; n=length(yt);m=n/3;
; ~% n- N* Q% R8 y8 s) v: ys1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end)) - u# S5 p& q( ~. a( V  z
b=((s3-s2)/(s2-s1))^(1/m)
4 m* [& t, z# E  N# ~/ o7 ma=(s2-s1)*(b-1)/(b*(b^m-1)^2) , g6 |" W1 l4 n
k=(s1-a*b*(b^m-1)/(b-1))/m 1 c! J$ G/ J% _
y=yuce(1:18) ' P4 Q1 N" @, k2 G+ o/ O3 d
%************************************ %定义预测函数 %************************************ function y=yuce(t); + B( \0 {6 a* |& n2 l' B0 l" V& `9 i
global a b k
- P9 q, }. p7 @) v' d7 G* @5 w* Vy=1./(k+a*b.^t); , d+ T/ v+ x9 h
* R: n- k6 F5 L7 P0 |# X: i7 h
( ^9 W7 R4 C; h0 ^5 L$ k/ Y( n
/ t* }  Y( {2 z; `# k
趋势线的选择

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

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


$ W1 _6 N- M; r) |- K! b* H4 w/ c! V# J
$ w, ~6 Z9 M8 E
————————————————% L; z; _4 `4 H  U: H1 ]  D9 k
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。2 |8 j5 @# `% I
原文链接:https://blog.csdn.net/qq_29831163/article/details/89448270- a4 Q) t* C' K7 \1 S! N1 P+ `

+ A1 e; N7 `) y, q# u/ d, D' I
( f& g4 c9 K% ^, X. J




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