数学建模社区-数学中国

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

作者: 浅夏110    时间: 2020-5-28 10:03
标题: 灰色系统理论及其应用 (七) :道路交通事故灰色 Verhulst 预测模型
灰色预测是通过原始数据的处理和灰色模型的建立,发现和掌握系统发展规律,对 系统的未来状态作出科学的定量预测。目前应用较多的灰色预测模型是 GM(1,1)模型、 灰色马尔可夫预测模型等,可用于预测交通事故发生次数、死亡人数、受伤人数和财产 损失等指标。GM(1,1)模型适用于具有较强指数规律的序列,只能描述单调的变化过程。但是道路交通系统是一个动态的时变系统,道路交通事故作为道路系统的行为特征量, 具有一定的随机波动性,它的发展呈现某种变化趋势的非平稳随机过程,因此可建立交 通事故灰色马尔可夫预测模型,以提高预测精度。但灰色马尔可夫预测模型的应用难点 是如何进行状态划分,故对于非单调的摆动发展序列或具有饱和状态的 S 形序列, Verhulst 模型,GM(2,1)模型等更适用。/ S. ?- w0 k. d  ~( d4 e

  Z9 B; ~' c2 H$ V' Z# w% `8 aVerhulst 模型主要用来描述具有饱和状态的过程, 即 S 形过程,常用于人口预测、生物生长、繁殖预测及产品经济寿命预测等。今年来 中国道路交通事故表现为具有饱和状态的 S 形过程,故可采用 Verhulst 模型对其进行预 测。
8 l4 K! A2 W$ r# B7 j0 A
$ _) U9 ^, V) ?0 w5 f+ j1 Verhulst 模型简介, Q" D$ S  ~3 G
Verhulst 模型的基本原理和计算方法简介图下
: N' R( B1 M1 G/ F0 |0 M* J
& V1 M) ]  t, ?- {; t' d; y" @- \( y2 R
2 h$ v" l8 N9 `6 D# D1 b
参数列的最小二乘估计
0 d" n/ l) M8 l4 f! u1 Y( V
* j1 M1 N4 `; w
) e" ~# {% ^  V& O: X$ U& n# d4 g+ e5 P% }" X( ~* x7 ^9 e2 L# T
2 F' M+ L4 {8 M3 U# J
定理 2       设灰色 Verhulst 模型如上所述,则白化方程的解(时间响应函数)为
9 j! r8 E; F. [' ]% b5 j5 Q8 h" N6 I" d2 D" k
1 ^" @  P) S' L; N& K7 K) E
% c4 `" R* R& ]" C! g8 p/ E! \
灰色 Verhulst 模型的时间响应序列为
& n7 Q; Z# Z5 b7 m# g* R7 J9 G  Q- s9 @6 h- |) @
! [( @2 T  Z/ ~- K0 [9 L1 z% P
+ Z3 `. U, h/ D. p/ K
累减还原式为- K. e$ q! u+ W, K5 d7 {9 h3 |8 d% ^; _

  I6 _1 k! ^$ Q7 G9 h3 s: ]! y6 }. `* Q" z( C- b
9 G: \4 C( o7 i! h7 U: K+ o
2 道路交通事故 Verhulst 预测模型' ~1 H$ s, H+ X% @
& R5 z( d& `$ W. t" X1 J+ E, ^

3 g( z, X7 A1 p/ r$ M& x' }/ I' o" B, S, }! b$ @
1990~2003 年中国道路交通事故死亡人数曲线见图 2,可见曲线呈 S 形,故可建立 Verhulst 模型进行预测,其建模过程如下。' m) S3 W) t# k4 J; r( t

( j2 O8 _* N) u- d& }, u, z9 j- F
8 j, a3 p7 u4 @$ u' y) D3 Q
! V% L6 `" k; ]; ^2 e9 J! o5 p9 b; J; J3 r' G) L( g' `0 d$ n
7 Z1 D4 X! ~" r
, r* L4 p5 F1 J4 R3 a7 d
6 X7 I# y) Q; C0 w# y

9 a" p, g. L- e$ S; [
0 S# ~( w1 w/ Y1 U(7)模型精度检验。; f9 V( K) f6 E
; h: J( S: X# s3 g  r# i
一个灰色模型要经过检验才能判定其是否合理。只有通过检 验的模型才能用来进行预测。检验方法有以下几种。: M3 w' e1 t( ~3 \5 F
% O( r6 a7 [* r5 i$ K
① 残差合格模型( r' ^$ ]& v) U; n6 _

" s, i8 ~1 z" R$ H' v
- {; S/ I& K6 H9 s  ]8 t
* N2 s) C6 t. a% x$ A
8 h. T8 k( i# z3 u8 K
: k; G1 j, G! F" _② 关联度合格模型
# a9 I2 j5 g  R4 ~/ i
' o3 j! ]# [8 y  ]6 n% v" D% n1 P, g+ }4 R' ]0 `! r8 J
% H7 {2 Y% x% @1 s. t. `
③ 均方差比合格模型9 z6 h7 M% J# e+ P/ J8 {
$ i6 g- ^. e! H8 z& L
! H2 R2 w) K# j6 F& v- f1 E
% W7 L# t3 ?3 ^. ^* H
④ 小误差概率合格模型$ i% Q, r4 ^1 _1 N' @' Z
& t7 u& ]/ o2 r! u0 W, o5 W
+ z: d9 Z, [: Z

7 `4 D  o; ?1 F$ y# V- I由上可知,给定一组取值,就确定了检验模型精度的一个等级。常用的精度等级见 表 15,可供检验模型参考。一般情况下,最常用的是相对误差检验指标。
! y: d9 b6 D! b5 B' _; X$ `1 J. \8 d& q! z$ ~4 e0 Y' a

* D! W) w* Q0 B5 \& q" b
9 t0 j5 h: c. B4 L由以上检验方法,可得 1990~2003 年中国道路交通事故死亡人数 Verhulst 模型误 差检验值见表 16。
" C" \+ x6 T+ S0 r: }+ x
- {3 J; Q' _& }  b. B% _' {& p& N: z2 X0 h. @: a: Q+ ]
1 f1 v$ n% ^/ f( U( Y
0 d2 ?2 z' j4 R# Q+ L! }& L
3 U9 N) T' b% @& `' ^  Z" b
计算的 MATLAB 程序如下:
2 Y$ ~  s! d! ]0 ^
; r3 i$ ~- v0 e9 ^clc,clear3 A5 F3 Z( K, i) }% H) p; ]" ]/ L
x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35; B6 ?( L+ p1 @
9.39 10.59 10.94 10.44];
. d9 S7 c1 |, Y7 ~* Hn=length(x1);) X' |  @) @" F6 \5 b7 q7 \& r; s- o
nian=1990:2003;
- Y. |& P7 s6 [( k4 L, @plot(nian,x1,'o-');# y! ~' n2 V  Z. K- N
x0=diff(x1);: ?! T* j: Z/ M1 _: e$ F
x0=[x1(1),x0]3 P- Z& s0 w; P( \
for i=2:n; S$ H) d, H4 S/ f* N, B, M. u
    z1(i)=0.5*(x1(i)+x1(i-1));! L# w# o- ?/ u  [) R1 [
end: A6 j! E% G* R6 H1 w% a) J! j
z1
2 s* h8 |  G2 a" L' `B=[-z1(2:end)',z1(2:end)'.^2]
/ L2 D6 |: G9 M: x1 q! \$ MY=x0(2:end)'
" R1 @1 C' t* g  L* E6 A+ Vabhat=B\Y %估计参数 a,b 的值3 ]/ E# f/ m1 J) V" w9 f" k
x=dsolve('Dx+a*x=b*x^2','x(0)=x0'); %求解常微分方程4 S4 D( W& f, l2 L3 d6 M  o0 H
x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)}); %代入参数值
6 Q7 q8 p, k& _4 D% B) V; b% M& ~yuce=subs(x,'t',0:14) %计算预测值, B# r; k% x2 E1 i; |3 ]  B
digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测值之后,或者不使用该语句
1 {; s, m: t2 Y6 x' s( {yuce(16)=yuce(15);5 T. x# U8 }  ?+ U  y2 T% c  P
x1_all=[x1,9.92,10.71];
" ?+ Y: m1 A, S! a4 \6 C  gepsilon=x1_all-yuce %计算残差# O& Y% ~8 r0 l! a1 x6 W# Z
delta=abs(epsilon./x1_all) %计算相对误差: F, |* I+ |8 P8 `2 I( [
delta_mean=mean(delta) %计算平均相对误差
: X) U' @, A  C$ V4 Yx1_all_0=x1_all-x1_all(1); %数据列的始点零化像! ]) M! @( g+ f: `0 P' E+ l
yuce_0=yuce-yuce(1); %数据列的始点零化像6 ^( W' U* Y+ @# Q% r' \3 F
s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));2 Z' |5 ?& E" _6 K" d; p$ [
s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
$ O# i3 ]3 {  ^' q1 a0 m" ptt=yuce_0-x1_all_0;
1 \6 U$ }8 [0 v- ds1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));, w" o9 t8 Q2 [5 t
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度2 M& w# v; ?" n7 u! }" S8 r: x" C$ A
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值
  U* |$ A. V  {8 R
' w) j: }8 I- g4 e, P3 预测结果比较
1 K- x6 x, |" l$ @1 B5 c" ~2 T2 A3 W8 X! U' A

( H9 q, ]" e8 ?) m$ [; Q, J% i& v5 h
9 H- s" b" d& Q0 Q+ ]: t' r
比较表 16 和表 17 可知,Verhulst 模型预测精度与 GM(1,1)模型几乎没有差别。 计算的 MATLAB 程序如下:' d# \7 H' {8 t4 r
) H+ E* O4 ^1 O& H4 B5 d# w
clc,clear- y: L( Q4 W0 O+ \- ~; X
x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.356 R: D3 l% C, H- l
9.39 10.59 10.94 10.44]; 5 n8 {1 v0 y1 y# F7 h, x  w! ^
n=length(x1);
3 a) y: o8 H4 p% I: l2 S& g  }x0=diff(x1);5 p, q8 h) S& a4 s* o; P9 T
x0=[x1(1),x0]
4 y* ^- Y% c6 y1 |5 Ifor i=2:n
) y! ^) P# P1 C1 Z' H    z1(i)=0.5*(x1(i)+x1(i-1));
2 B) h& p" }/ G8 W7 ]% Mend* G: e) e) h4 t/ q9 z
B=[-z1(2:end)',ones(n-1,1)];
* N+ o2 j- R6 _1 E9 ^2 fY=x0(2:end)';4 ]/ F( ~5 B3 _' [: W
abhat=B\Y %估计参数 a,b 的值
- z0 `0 I) W& o4 D8 Bx=dsolve('Dx+a*x=b','x(0)=x0');
) J/ D0 N! B0 k0 Z* J) ?% b; N9 ix=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)});1 ~- Z! ?! h5 X9 S% m1 m; q
yuce=subs(x,'t',0:14) %计算预测值1 A6 T/ J; a* M
digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测
' ]; E# A" g+ o6 J3 m* e- Z值之后,或者不使用该语句
; p8 @8 p" y5 V  xyuce(16)=yuce(15);0 w) d6 _! l  ]+ I4 x
x1_all=[x1,9.92,10.71];+ h- i) D' U$ I4 ]$ q& @2 w
epsilon=x1_all-yuce %计算残差, R( }! E' T9 w. i$ U$ G1 W
delta=abs(epsilon./x1_all) %计算相对误差
$ }2 I" B1 S6 `' v7 L8 e3 h* ]& xdelta_mean=mean(delta) %计算平均相对误差
1 H8 S6 B: T. Y$ Z: q6 px1_all_0=x1_all-x1_all(1); %数据列的始点零化像% |" d7 s" m. z# k% h  T
yuce_0=yuce-yuce(1); %数据列的始点零化像
! d9 R2 @7 t9 w" C/ as0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));6 {1 L/ \8 U% J4 F1 x1 C+ c
s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));0 v, E" k# |3 M4 t' `2 t
tt=yuce_0-x1_all_0;
+ @3 B8 }7 O3 G% |s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));2 Z; h, e( P0 Z% Y
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度3 N( i. Q, }- K) z# n# E
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值  i/ o" `1 G. F, f2 N/ \4 y$ d

+ s( ?3 {2 l4 O' v* n2 F4 f 4 结语7 c" ]  W6 T1 \. d! C3 S
道路交通安全系统是一个灰色系统,可以应用灰色系统理论进行研究和分析,其中 灰色预测模型和方法简便易用,在交通事故预测中得到了较多应用。GM(1,1)模型适用 于具有较强指数规律的序列,只能描述单调的变化过程,而 Verhulst 模型则适用于非单 调的摆动发展序列或具有饱和状态的 S 形序列。
  D3 ]) K1 e0 Z1 X" X$ q* |" n————————————————2 q2 _% m: k! p+ i' ^5 _, [/ n! L/ c
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。( n# m: b2 `$ h$ j
原文链接:https://blog.csdn.net/qq_29831163/article/details/89715039. o) B$ `' j4 u  P

3 T6 U7 \8 g5 w3 ]* `* U! {9 y' S& N  |0 o* ^1 n1 I! g

) a: C( W* h& i3 o' b




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