数学建模社区-数学中国

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

作者: 浅夏110    时间: 2020-5-31 14:34
标题: 时间序列模型 (五): 趋势外推预测方法
趋势外推法是根据事物的历史和现时资料,寻求事物发展规律,从而推测出事物 未来状况的一种比较常用的预测方法。利用趋势外推法进行预测,主要包括六个阶段:, T. h4 m; q/ P8 e- h7 Z
; K7 F! m+ z. u& |5 {2 J
(a)选择应预测的参数; (b)收集必要的数据;   (c)利用数据拟合曲线;  ! h9 O; G$ \) m

$ u2 ^/ K& R. f2 o(d)趋势外 推;(e)预测说明;(f)研究预测结果在进行决策中应用的可能性。3 J, k3 r( s* ~' N+ K

) O6 q9 p6 {7 z0 c9 a% c趋势外推法常用的典型数学模型有:指数曲线、修正指数曲线、生长曲线、包络 曲线等。 5 r+ @5 V8 R4 m& t1 O9 s. b

4 {. }, M5 o6 p
! d# k# r2 A. i4 G. F7 x 指数曲线法
& ?% m) e0 @# h+ s2 _, @2 R一般来说,技术的进步和生产的增长,在其未达饱和之前的新生时期是遵循指数 曲线增长规律的,因此可以用指数曲线对发展中的事物进行预测。
( y3 {8 Y+ n4 B4 s+ h% k
  f* G1 p9 J( F5 M4 F
/ C+ u) ~  O% V1 \' m6 X* w
/ [0 H% \- |/ b4 K' W5 p/ N: n
- m, r, Q) @( O0 F5 Z5 [" v: U

5 |2 W& Y) P  e; l3 G6 |, @# F3 D
! g9 i8 o, ~$ T% z! Q6 X 修正指数曲线法 - o2 u+ e" d) B( b3 c+ h/ K
利用指数曲线外推来进行预测时,存在着预测值随着时间的推移会无限增大的情 况。这是不符合客观规律的。因为任何事物的发展都是有一定限度的。例如某种畅销产 品,在其占有市场的初期是呈指数曲线增长的,但随着产品销售量的增加,产品总量接 近于社会饱和量时。这时的预测模型应改用修正指数曲线。
, p0 A- C8 U) L& z0 O. [; `
4 W! Y7 r6 Z* N) c4 p: {
* I5 O3 ]: ^5 A6 U# h1 ^) N4 f3 |+ n; o3 H6 \5 _! f+ v& [
三和法
2 x# B4 ]1 M3 O2 \! k) e% Z. G8 n& }, ^5 ^% D  r

9 J7 e8 A' }) o& n, J. L
  R& F9 R1 o9 m# a& e4 k$ a% ]5 X4 @0 i2 V4 M, T3 h6 a$ U7 S9 [

9 d+ M& \) v. a, i; r  f: B
9 `% F4 X+ \# w0 `, m- F( q& Y例 8  根据统计资料,某厂收音机连续 15 年的销售量如表 11。 试用修正指数曲线预测 1986 年的销售量。 & U5 J1 j* M& j" @

/ ~2 N- D+ U3 `8 {' P5 B# K; X5 v: d: O

# q0 M3 S. ?0 [7 }  O. H. j  D6 L! \5 r# b% ~9 _3 K& w
( B/ O0 a+ U2 b$ X! y: {/ Z1 |$ @

# V/ b2 ]2 c9 O; ?/ B& Y计算的 MATLAB 程序如下:
2 n! J0 f- d1 r' F4 O2 t+ |" K$ D9 D: q5 r
function chanliang
) _# c% b0 j0 t' S4 q- u: xclc,clear
& Q; b( U, y7 D- Y' lglobal a b k ; n% L5 Z8 ~) o2 ?! T( ~7 q+ m
load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中
* |- \/ w5 Z8 y7 g. Yyt=xsh; n=length(yt);m=n/3
9 j8 W; |" u7 u9 kcf=diff(yt);
% m8 u# }& D- m- g4 d7 M+ \2 Gfor i=1:n-2     
0 t: k1 ]: s) [1 U+ V    bzh(i)=cf(i+1)/cf(i);
+ F! J% U8 \# _1 ]0 |6 T/ iend
( ~# n3 V, j% rrange=minmax(bzh) $ B0 |3 `/ C8 w$ G3 [
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))
* n) x* e( {! z1 G7 \  nb=((s3-s2)/(s2-s1))^(1/m) a=(s2-s1)*(b-1)/(b*(b^m-1)^2) ' c; J- ]3 K4 ~& T* A
k=(s1-a*b*(b^m-1)/(b-1))/m & e# |+ q5 V, `3 K! U, r
y=yuce(1:18)
9 i+ N4 e& f# x* a8 j, P7 l%************************************
9 b3 N. [7 [5 p$ I: ?%定义预测函数 4 O; }% ]: l  ?0 s
%************************************ : O6 @' u$ R7 i
function
* L$ p* k% M- |: Ay=yuce(t)
- w  H6 w: y$ I7 N" cglobal a b k
# c5 r3 s1 S" Oy=k+a*b.^t;  
: w0 k4 w8 n6 k$ ^( [$ E, i. ^; p' y( v* b& Z4 ]4 g

1 y/ |0 F6 J4 T- M+ H  ]( v% ZCompertz 曲线


3 w- t6 b$ H- D+ }

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

计算的 MATLAB 程序如下:

function chanliang2 ; m$ R, D. Q# W4 D7 }5 ^
clc,clear 8 @) |! F- M0 D( I6 s
global a b k   F7 d5 v$ W6 C, e& J. K- r. N
load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中 % [" E$ F$ L- ?. h
yt=log(xsh); n=length(yt);m=n/3; / H) k/ Q7 W+ K( Z
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end)) " [) y6 X0 E6 `. _% {0 T# |' x
b=((s3-s2)/(s2-s1))^(1/m)
2 z( {3 o) [! |1 {- I3 q/ X, V# Xa=(s2-s1)*(b-1)/(b*(b^m-1)^2) 1 t# q+ N% k3 l6 |7 i7 u6 p
k=(s1-a*b*(b^m-1)/(b-1))/m a=exp(a)
/ k! Q) I3 h5 |) J  H% p3 }k=exp(k) & X8 F  e/ d  B+ s. S
y=yuce(1:18) $ e& L- F5 ^4 W% Y
%************************************ %定义预测函数 %************************************ function y=yuce(t); , J7 ~, d* w, s3 ^3 f* S" X
global a b k ! n+ [2 ?6 G$ J& W( v
y=k*a.^(b.^t);
$ i* J2 g" ^" G9 H4 w- [0 ], F6 I( B  c
Logistic 曲线(生长曲线)
, L" O( N5 {; e4 D- v生物的生长过程经历发生、发展到成熟三个阶段,在三个阶段生物的生长速度是不 一样的,例如南瓜的重量增长速度,在第一阶段增长的较慢,在发展时期则突然加快, 而到了成熟期又趋减慢,形成一条 S 形曲线,这就是有名的 Logistic 曲线(生长曲线),很多事物,如技术和产品发展进程都有类似的发展过程,因此 Logistic 曲线在预测中有 相当广泛的应用。
* h* g5 A( Y, A( ^! e+ i4 N0 Q- D+ x; K' w. G) @

# Z9 ?6 X  o6 o( }; e; Z) M. S: Z( B& f6 V7 P- P( I
5 {+ N" H4 n$ p& ]$ D; p6 Y5 A

% V0 K: W$ b5 L! X& U! V9 ~) y& {) J
3 G  Q- D2 k/ X1 Q9 j+ g- `) H# Y- q) ^8 T* T
例 10(续例 8)  根据表 10 的数据,试确定收音机销售量的 Logistic 曲线方程, 求出各年收音机销售量的趋势值,并预测 1986 年的销售量。 0 ]9 [1 W' g/ h( `0 Q) s( M5 o, N* n
$ W/ t1 v' Q" N: m5 U

. f. w5 L, j( b3 ]$ p! M
! J8 O4 ~* w0 j4 f5 h; B
" E, i% R( v. l0 n+ m
- K' ^" f2 F, F) g. Y" S1 J# `: l计算的 MATLAB 程序如下: ! i' D! v2 @3 Z4 O5 ~

. R7 \9 [1 Z, q4 u5 D, C+ b, q9 hfunction chanliang3 0 g& K& X9 d* v( ]* o% @; @! v2 J: G
clc,clear
/ u% |# M& T+ S, T9 K- Q8 P9 `- Yglobal a b k " h) p5 A7 |# s' Z$ I, r6 h
load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中
" K1 Y9 V' M3 t! K5 ~; G& Jyt=1./xsh; n=length(yt);m=n/3;
: R& d8 M% p/ z  K/ x" |s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end))
8 }2 R3 ]3 T% k. X6 I- Lb=((s3-s2)/(s2-s1))^(1/m)
( H2 `3 ?7 h& X6 k9 d+ L% ]a=(s2-s1)*(b-1)/(b*(b^m-1)^2) # n1 t: |$ T6 l3 ^
k=(s1-a*b*(b^m-1)/(b-1))/m
! r- H3 U( R7 [, L" M6 ?" Q* `y=yuce(1:18) * G( H( C3 U+ m+ C( ~
%************************************ %定义预测函数 %************************************ function y=yuce(t);
. g- Q7 a6 _2 D6 I  Tglobal a b k 3 W+ d) L' R' P0 n8 r
y=1./(k+a*b.^t);
( |, z% a; Y: A9 }  u- I
8 k) G! S. ?3 c- m
  F$ `1 ?$ M. U7 W& R; I2 N7 o, m: S- i5 o
趋势线的选择

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

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


1 i8 Z' B  ]1 m5 y7 N) Q% }- F8 F" V" m7 A4 \4 ^" E: N
$ S1 L" C5 w/ m9 S  c+ @
————————————————
$ M- _/ b7 c: Y' g/ ]版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
9 v: S0 }# Z9 X& Q原文链接:https://blog.csdn.net/qq_29831163/article/details/89448270: y' m% R% l' x0 O$ P/ i
; p  m, M0 B( K$ V1 G0 f
8 R0 L$ ^; M6 K, o* }4 ]





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