数学建模社区-数学中国

标题: 灰色系统理论及其应用 (七) :道路交通事故灰色 Verhulst 预测模型 [打印本页]

作者: 浅夏110    时间: 2020-5-28 10:03
标题: 灰色系统理论及其应用 (七) :道路交通事故灰色 Verhulst 预测模型
灰色预测是通过原始数据的处理和灰色模型的建立,发现和掌握系统发展规律,对 系统的未来状态作出科学的定量预测。目前应用较多的灰色预测模型是 GM(1,1)模型、 灰色马尔可夫预测模型等,可用于预测交通事故发生次数、死亡人数、受伤人数和财产 损失等指标。GM(1,1)模型适用于具有较强指数规律的序列,只能描述单调的变化过程。但是道路交通系统是一个动态的时变系统,道路交通事故作为道路系统的行为特征量, 具有一定的随机波动性,它的发展呈现某种变化趋势的非平稳随机过程,因此可建立交 通事故灰色马尔可夫预测模型,以提高预测精度。但灰色马尔可夫预测模型的应用难点 是如何进行状态划分,故对于非单调的摆动发展序列或具有饱和状态的 S 形序列, Verhulst 模型,GM(2,1)模型等更适用。
) ]: W! |1 N- a4 Z. C* [- \6 E6 c# L( E4 \
Verhulst 模型主要用来描述具有饱和状态的过程, 即 S 形过程,常用于人口预测、生物生长、繁殖预测及产品经济寿命预测等。今年来 中国道路交通事故表现为具有饱和状态的 S 形过程,故可采用 Verhulst 模型对其进行预 测。+ c' w% H* G* u! T1 Q$ |5 o
7 S  h# h* B. C+ a3 Y, ~
1 Verhulst 模型简介
4 V2 ^* @3 Q5 [2 N2 n% ^' jVerhulst 模型的基本原理和计算方法简介图下! E3 x1 X' L7 P$ C! e
3 D& h# ]9 F; k. b/ t9 @7 W6 m
' w9 \0 \- i  o5 s6 o
* p$ E4 O, c% ]
参数列的最小二乘估计) G! s2 l' b2 |* j& i. K5 D5 Q7 S
1 w2 z, p: M8 [3 [. M
5 r4 v+ I  Z( Q4 x

5 ?) ~4 M% |* ~' b$ R9 p  @
% f& U- ^  p* F& |, H7 a7 n8 [ 定理 2       设灰色 Verhulst 模型如上所述,则白化方程的解(时间响应函数)为* T( t1 S3 o* w. E. m

1 z; i& t0 Y9 ~: E% x4 R7 M' }3 X/ P6 O% u2 P' ^4 q5 W5 W  B  P

* I- e7 H1 j- m# H灰色 Verhulst 模型的时间响应序列为
  M" Y* A0 Q4 |' `0 A
& g. G( [, O; c# y- G0 G" f% Z/ G5 a/ V  y
' ~- H. |6 e. R
累减还原式为+ A7 J/ v& Y, ~0 G- P7 R
/ A; @# s% O( T) ]$ k! G
8 u* W0 ], A: H

3 P" Y  B* ^: j  ?4 \( l. M2 道路交通事故 Verhulst 预测模型
6 E9 \1 C5 y3 S, ?! S! a: v) |. ?6 ]/ M, n4 }5 e5 m

$ J5 {# f7 p& I  H! [
+ G+ o) ]/ @2 h# P6 B+ G, r1990~2003 年中国道路交通事故死亡人数曲线见图 2,可见曲线呈 S 形,故可建立 Verhulst 模型进行预测,其建模过程如下。
8 s* m: z/ y' \2 d4 S
- p' K: O& v. @% W
. ]/ b- ^" S4 ^+ p3 x
4 L3 s- |+ [4 A8 V! U0 {+ m# Q
. h+ F8 o' d8 A' C) {5 k* _& {% s# E4 k. V

/ H9 N6 V7 @1 \' z
2 U- C" M6 t5 o) F3 V2 U; I/ g
2 |3 U! G! m9 U% n5 b
(7)模型精度检验。
4 o" n5 W# j, H) \, m% g
7 T: N& Y9 o9 ~一个灰色模型要经过检验才能判定其是否合理。只有通过检 验的模型才能用来进行预测。检验方法有以下几种。
1 _% C/ Y4 C; a! n- @# h
8 S: _+ s$ b( D/ }  p$ ?① 残差合格模型1 A' l0 R* Z* T2 R2 v" {
' F5 j$ t2 w8 g* V3 @/ [1 m% h
  F9 z* ]( Z* B8 t( r

! b, [7 R7 d; i+ y
! i; [, g3 j5 V4 V, A. h- c6 Z
4 m$ o. l3 F1 D- ?1 p4 g# ]4 k# r② 关联度合格模型8 @. g* I- P( m2 N
, |8 T- q# Q: k

* g! P6 y$ ~( |, A) i3 |' }* O1 e! I' D
③ 均方差比合格模型
( u" X, M( w% Z
, L4 h, s% y  P( h% J& I& {8 K
: y$ T6 y% Z9 ?& p
④ 小误差概率合格模型
- a2 K0 L" o2 p6 _+ b" z- V. I4 O; g1 s% ?; q2 L3 j
9 F& [$ t: p8 W4 _

7 a( T8 @  A' D9 e9 K8 D由上可知,给定一组取值,就确定了检验模型精度的一个等级。常用的精度等级见 表 15,可供检验模型参考。一般情况下,最常用的是相对误差检验指标。5 ^- x( x6 _  V

! a* d3 k  Z( g6 ^6 w* _# i
1 w2 H5 z6 h7 v) e2 b- G: [, y" c3 [( z
由以上检验方法,可得 1990~2003 年中国道路交通事故死亡人数 Verhulst 模型误 差检验值见表 16。) n2 A& m) _7 O8 u. P

; |( h, n" P0 g* i; r! V" y1 x; }* J- E3 }, F! V
, L/ l- f4 C7 g8 G, u* H$ a. ^
9 u$ Q- l( S7 y& Y8 u  I5 a

+ j( s  E3 v. m, A. R0 j计算的 MATLAB 程序如下:
0 U' @! Z1 f- k6 A& Z5 D
4 b: R6 c$ `3 K: q  o0 t/ Kclc,clear% I7 A% J& r" ~6 l+ w* T8 a
x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.357 Y1 `5 \' c* d& _- c# O# H
9.39 10.59 10.94 10.44];
1 A' [, b- o4 A" M; sn=length(x1);8 M& s! x  a. S9 j
nian=1990:2003;
7 E& T/ P/ |" K7 u4 R; [( oplot(nian,x1,'o-');
# f# x0 M$ }+ g1 Z$ D9 e. o4 kx0=diff(x1);
$ I% Y  f/ z, Rx0=[x1(1),x0]
# e$ g0 Q& Q( l( sfor i=2:n
* G( V  n2 |4 {) v    z1(i)=0.5*(x1(i)+x1(i-1));- c1 ~9 @7 l8 s& ?5 w
end$ X, p2 _" @4 e. Z0 T; W
z1- v8 j6 u" W% @( T
B=[-z1(2:end)',z1(2:end)'.^2]1 @3 T) I1 w3 p; Y2 D7 o
Y=x0(2:end)'
* k$ B, y, M) B, Aabhat=B\Y %估计参数 a,b 的值
% t* D; T; W9 Y. Ex=dsolve('Dx+a*x=b*x^2','x(0)=x0'); %求解常微分方程
4 F: f$ Z! `" fx=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)}); %代入参数值6 ~% i& v1 x& d7 Y* G: J
yuce=subs(x,'t',0:14) %计算预测值
# r/ [( h. P9 t4 Kdigits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测值之后,或者不使用该语句/ t# A4 H5 Q3 T: }3 u
yuce(16)=yuce(15);" M) R: h. r3 B9 Y' u0 u2 z3 B3 @0 }
x1_all=[x1,9.92,10.71];/ Q6 @' C5 K1 m: r& [1 e; h
epsilon=x1_all-yuce %计算残差; G3 u0 ~4 i0 x# q9 ]* T- n
delta=abs(epsilon./x1_all) %计算相对误差
; A( j( G# @# r3 e  G$ {( ~delta_mean=mean(delta) %计算平均相对误差% B5 C, ~& \7 N2 }. o/ C
x1_all_0=x1_all-x1_all(1); %数据列的始点零化像+ o& p0 K' L  C! k; j
yuce_0=yuce-yuce(1); %数据列的始点零化像2 P9 ?% i0 k. m- [& B; ?
s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
4 ^' V( |: C6 x: q9 f% `& v' j1 H1 Ss1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));1 q# c/ w0 P) y' n
tt=yuce_0-x1_all_0;) [: M' x! L/ Z( k: V7 F! N8 n
s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));
; E) ~* E! i6 I5 |/ c2 r/ Labsdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度
8 @% V' e4 c; p2 G' gc=std(epsilon,1)/std(x1_all,1) %计算标准差比值* Y) a: `: D, I# W0 g6 j- g7 }% {
' q3 |$ G1 j6 H3 Q7 e+ f
3 预测结果比较! J* m* w' k0 F+ I9 M) V# S0 |
5 u/ d9 w' x0 z  D8 U

4 ~8 l3 j% X; ?
" w/ a. K- k9 O6 e; R
" Y# U+ G  O& Z* S" X4 J比较表 16 和表 17 可知,Verhulst 模型预测精度与 GM(1,1)模型几乎没有差别。 计算的 MATLAB 程序如下:
# z. S0 o' w7 J0 t: {" _/ N  g& ^7 b8 D
& d0 m8 N/ ^9 o+ c' yclc,clear
! K2 v% l; g; I' Q5 cx1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35+ i8 ]7 c% G. m1 L% Q$ P  v! C9 v
9.39 10.59 10.94 10.44];
) ]" m; ^- D" b5 n. A) Un=length(x1);
1 `# u9 A& N* ~. I! |1 s5 xx0=diff(x1);
+ u/ p4 T9 R1 _" Y% X/ Nx0=[x1(1),x0]
3 U( K- U( Q9 Afor i=2:n: j( [4 V& I" W: Z
    z1(i)=0.5*(x1(i)+x1(i-1));8 t) B- [6 g& k7 [
end( O4 ]0 C/ k% f% ?# a
B=[-z1(2:end)',ones(n-1,1)];. @% h' \7 Y- l, c2 K6 s# u, W
Y=x0(2:end)';
3 t9 U3 b8 h: n6 m8 r# `abhat=B\Y %估计参数 a,b 的值- e3 M; N8 W9 s# h
x=dsolve('Dx+a*x=b','x(0)=x0');
5 B+ d& G- [' F& Dx=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)});8 K! |7 A3 w$ I3 R! d( m: i
yuce=subs(x,'t',0:14) %计算预测值
5 t+ D2 V1 [- C# Q" M) J+ zdigits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测
4 q1 j  w2 V: M( E/ C值之后,或者不使用该语句
% |. _: [) [8 s5 Y' h2 X$ o$ ~. v, }yuce(16)=yuce(15);0 b$ m; s2 p, X* c9 H- T
x1_all=[x1,9.92,10.71];4 A( n+ |, G; i& b: e
epsilon=x1_all-yuce %计算残差' V: w2 I2 W: Q; L4 l
delta=abs(epsilon./x1_all) %计算相对误差
  d" r9 y3 @" D0 |delta_mean=mean(delta) %计算平均相对误差
1 J/ k  b3 y* l! W6 ^" D( ^+ [x1_all_0=x1_all-x1_all(1); %数据列的始点零化像/ c( o& r. e3 G' I
yuce_0=yuce-yuce(1); %数据列的始点零化像$ R2 e' {# m9 M  \
s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
& S- L3 k% |1 o/ es1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
/ z9 Q) @4 G% Jtt=yuce_0-x1_all_0;. J( v$ g' O1 t3 a2 O! v8 v
s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));
4 N3 x& o/ J: ]3 r7 g' z) u* ~absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度# Q1 Z. C  q4 Z
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值, H5 I% W, N0 `* E9 s

' H- G+ S3 G" s5 E' h 4 结语1 ?1 h2 T; c2 z2 `
道路交通安全系统是一个灰色系统,可以应用灰色系统理论进行研究和分析,其中 灰色预测模型和方法简便易用,在交通事故预测中得到了较多应用。GM(1,1)模型适用 于具有较强指数规律的序列,只能描述单调的变化过程,而 Verhulst 模型则适用于非单 调的摆动发展序列或具有饱和状态的 S 形序列。3 n# f4 m! Z" {* _( ]
————————————————
! Z& @/ F9 i) |( x版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
2 a- ?  V0 v1 Z$ `; [# F9 Y* G: L原文链接:https://blog.csdn.net/qq_29831163/article/details/89715039
4 w/ r. i4 P$ O8 f! {- m1 W3 i2 K: ?( d" j" _6 [' K
/ o# C- s1 c1 D$ _5 O$ J  u/ M
" M2 t8 N- b& ~; P( l% k7 V/ t





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