数学建模社区-数学中国

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

作者: 浅夏110    时间: 2020-5-28 10:03
标题: 灰色系统理论及其应用 (七) :道路交通事故灰色 Verhulst 预测模型
灰色预测是通过原始数据的处理和灰色模型的建立,发现和掌握系统发展规律,对 系统的未来状态作出科学的定量预测。目前应用较多的灰色预测模型是 GM(1,1)模型、 灰色马尔可夫预测模型等,可用于预测交通事故发生次数、死亡人数、受伤人数和财产 损失等指标。GM(1,1)模型适用于具有较强指数规律的序列,只能描述单调的变化过程。但是道路交通系统是一个动态的时变系统,道路交通事故作为道路系统的行为特征量, 具有一定的随机波动性,它的发展呈现某种变化趋势的非平稳随机过程,因此可建立交 通事故灰色马尔可夫预测模型,以提高预测精度。但灰色马尔可夫预测模型的应用难点 是如何进行状态划分,故对于非单调的摆动发展序列或具有饱和状态的 S 形序列, Verhulst 模型,GM(2,1)模型等更适用。; c9 H  }/ {0 Z6 @
  E; r. q% d: e8 G" U
Verhulst 模型主要用来描述具有饱和状态的过程, 即 S 形过程,常用于人口预测、生物生长、繁殖预测及产品经济寿命预测等。今年来 中国道路交通事故表现为具有饱和状态的 S 形过程,故可采用 Verhulst 模型对其进行预 测。0 R- _( ~+ n: f9 L+ i
; t0 l+ m2 u  m% [- H
1 Verhulst 模型简介
1 d/ P  i! J: W( Z' b& t: E) L+ B0 |Verhulst 模型的基本原理和计算方法简介图下
; t4 |/ C- @( R: Z* _! J- {7 H% t' O$ O' v1 J

* T" p" A# c5 Q
- |6 y! P  m, F% N% C. q3 T参数列的最小二乘估计4 d4 D' X! h% I+ L' q$ [' {: _

0 k" {. c+ l8 T2 y( k; Y% }
$ Z: }  y9 [6 `# B0 }5 w; Y5 [0 z4 ~2 U2 e
! V5 e8 c% e! {* P# W8 n! f8 j! R
定理 2       设灰色 Verhulst 模型如上所述,则白化方程的解(时间响应函数)为
# D3 _" K, w6 i4 E+ F- o  ?  Z2 W, |# N/ A% \$ D- T0 D: Y
1 [# Y2 _3 J0 f; S4 W
" @/ l& y, a6 ~0 Y+ B, J! p- y6 }
灰色 Verhulst 模型的时间响应序列为
) n( H; G' P4 L
; h: K/ n# Y* V, V$ n0 f: L8 g( @- v% B5 W* z! S: y! r+ D
9 r0 v9 ^+ Z- c. D8 ~0 Q, y- f
累减还原式为! L- L" P& E1 ~: W% P% g& R
6 A% K) x; @$ G7 |. N" i

) Q' Z) l$ j9 Q# M9 U" y2 t' {9 Q6 y  w1 y# a! |) H  S
2 道路交通事故 Verhulst 预测模型: w# O. O  N* j/ l; H

* n0 z; }% r# Z& k! G5 r! m! M" s, Z6 b0 ]+ e

) l  M2 }9 w% c- w! C, n1990~2003 年中国道路交通事故死亡人数曲线见图 2,可见曲线呈 S 形,故可建立 Verhulst 模型进行预测,其建模过程如下。: P) B# U, A8 C) i' B! ^
* q/ T, J8 B& v( t3 P. e: \

; ]: v# r! z0 ], Z
  V: N& V) c6 H4 o" N' J
0 L! D' u1 u; ^
. [: g- _7 v" W+ p; a( [
" ^0 [: D# t9 A4 [# S1 Q% P2 |& _) b0 v& N8 _. x

- g4 ?; M) ^* f, o1 E
" j# x% H( R' `! A. G(7)模型精度检验。5 k; P* {" I% N% r. l, X  N( T* _
5 v: L9 Z, P: F6 p" M1 F5 B+ f
一个灰色模型要经过检验才能判定其是否合理。只有通过检 验的模型才能用来进行预测。检验方法有以下几种。$ i! q8 d, }; ^. J
9 p% N0 ~, V0 F, t0 ^+ t. b
① 残差合格模型6 J+ x* V: ]+ K' u' `5 g7 }
; O! Y  c6 j- j* e- l9 a2 {. L1 k

# P& e5 @3 B  s8 a
1 j0 O& x5 e7 N+ O8 c; W' V, a
% y9 b' s7 g- `  R+ x# I# q$ \9 ?0 v' Y. T4 B
② 关联度合格模型/ u2 R% I9 `& c+ H6 A  U

( Y2 _) S. B4 @& j
& c: J: A& A# c6 H, l, j0 t; z
! Y# j$ X( i: k. t: e' d  x' K ③ 均方差比合格模型" E' [1 a" P- J1 ?8 O: R

) C- d9 n& E; U+ S8 D: H% M9 j. d* H9 v6 f4 p: C7 |/ n& [
; N3 T4 X* n+ S1 w( f; I% |
④ 小误差概率合格模型& q/ A4 V. C! s% V# B
# J' \* Y+ @- `
! d: ]% X( b$ R3 R' t  q

+ ?8 t) ]& r1 w7 w: P- j由上可知,给定一组取值,就确定了检验模型精度的一个等级。常用的精度等级见 表 15,可供检验模型参考。一般情况下,最常用的是相对误差检验指标。
" T& E8 f* ]7 b" n6 ]: p
% C2 U! v5 d- v8 y1 U' y8 c4 a) @/ h: o7 e6 W) p! V3 _
6 Z2 @5 _+ @. g# W4 \2 l% m
由以上检验方法,可得 1990~2003 年中国道路交通事故死亡人数 Verhulst 模型误 差检验值见表 16。2 t$ x3 P; C* {: K/ [/ ^1 q0 y

7 q) h% I  x$ N% Y+ D% @: o1 P0 I" P& Z; B
/ S2 r1 |; y7 v
9 [! n% ~- ~: ?4 }

6 u& v/ v: j9 |, L计算的 MATLAB 程序如下:9 q! d" V6 @; \# a

2 @8 J; e( K6 M6 D& H  t) {clc,clear; k+ @4 q% c! ^4 G6 E
x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35
! m5 E" b( g: ?8 x( P9.39 10.59 10.94 10.44];" k  \. ^) |0 F* X
n=length(x1);
4 H$ T" R7 M2 I, \& Y+ ynian=1990:2003;
/ G: h" s* c7 M0 k+ ^  X5 wplot(nian,x1,'o-');
: X5 C% s" v/ h! ox0=diff(x1);4 U) N& D: A% ?, c6 _3 Y
x0=[x1(1),x0]0 j; g( n1 k7 B. R" o
for i=2:n
" F3 N  ~1 F- _0 D& w" u7 a, b0 j    z1(i)=0.5*(x1(i)+x1(i-1));0 h8 Q+ m2 _: x. H
end' S* e0 p4 H1 p* e9 Z
z1+ S6 i% k. m" F, [
B=[-z1(2:end)',z1(2:end)'.^2]
6 n/ `6 T+ I! ?6 _' H2 }Y=x0(2:end)'+ [$ m" [* v1 B3 p) ^/ _; f
abhat=B\Y %估计参数 a,b 的值
9 \5 ^# \2 s& J) [x=dsolve('Dx+a*x=b*x^2','x(0)=x0'); %求解常微分方程7 b5 a$ h1 L. f' ^( J
x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)}); %代入参数值
* y3 X; ^% ^2 F, |yuce=subs(x,'t',0:14) %计算预测值4 R9 S; P+ A: O5 R: c1 E
digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测值之后,或者不使用该语句* Q+ O& S% ~/ R5 N- u5 W5 ^
yuce(16)=yuce(15);: l  O4 O5 `6 A/ B4 |
x1_all=[x1,9.92,10.71];
7 I, r0 z5 a3 B: \2 P. c% Gepsilon=x1_all-yuce %计算残差: A% M) f4 U( ]" l
delta=abs(epsilon./x1_all) %计算相对误差# R* ?/ |! L' {
delta_mean=mean(delta) %计算平均相对误差
% s! x$ X& S9 m2 qx1_all_0=x1_all-x1_all(1); %数据列的始点零化像
6 d! f+ Y6 x1 m1 A0 _! l: u6 o- byuce_0=yuce-yuce(1); %数据列的始点零化像. V2 a7 W2 X0 Q+ A9 Z
s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
2 U7 H2 F, c# @' e/ d/ `s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));! A/ K8 }% n/ b! _2 p+ S4 R
tt=yuce_0-x1_all_0;5 R  ]7 U7 v7 X- P1 z
s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));. T! Z% \/ U" u$ Q& X
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度
' y  \8 @: N( M# F- j1 |1 ~7 I- }c=std(epsilon,1)/std(x1_all,1) %计算标准差比值9 V# T( R5 w) o4 C
: m8 q5 \! p. ?& S0 X2 n; Y; t6 q
3 预测结果比较
  P& H; ~$ e1 o/ l4 \& d0 x( z. G# j: U

5 M" |  k5 S4 Z4 {
" R  H. Y- s% j! I* [. T% i  Y2 M, J6 C
比较表 16 和表 17 可知,Verhulst 模型预测精度与 GM(1,1)模型几乎没有差别。 计算的 MATLAB 程序如下:, m5 @5 I7 P; r9 s) f

+ d+ a' ?- d; V+ X! bclc,clear
2 |6 u9 l  k) o6 w( y; n$ o! hx1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35. s5 Z) ~; \* K3 [# K) A! E8 m
9.39 10.59 10.94 10.44]; % O, O3 {: Z9 r* S  |) J5 W
n=length(x1);9 A: T# x* B- ]
x0=diff(x1);
) j/ c0 P3 x  L% l! x# Wx0=[x1(1),x0]  B  p1 k! U/ l6 w
for i=2:n
  T; q: m$ Q6 u. T7 y    z1(i)=0.5*(x1(i)+x1(i-1));
6 N, c2 {  s4 C2 |4 P  r+ Wend! a5 j2 L/ h- H3 z" U
B=[-z1(2:end)',ones(n-1,1)];
1 }  H% v% B5 ^  m+ f% J) m9 e. Z( |* vY=x0(2:end)';" g2 A& t2 \! A8 [, o7 Y7 a& C
abhat=B\Y %估计参数 a,b 的值
; u8 c1 V: G0 I9 |( Sx=dsolve('Dx+a*x=b','x(0)=x0');
+ G" U& d, J7 e! Kx=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)});/ l* g* |( u  y8 m$ T" Q9 l
yuce=subs(x,'t',0:14) %计算预测值
9 O* G4 `8 ?( {2 ydigits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测( X: S  A; g8 T$ [3 T
值之后,或者不使用该语句
5 j/ `- ^: |# V; H8 a6 d/ oyuce(16)=yuce(15);! V3 ?3 B2 i" h6 C  M) K# s* o
x1_all=[x1,9.92,10.71];4 E4 W7 ]! p& g  L0 {( `7 |9 ]% p6 Y
epsilon=x1_all-yuce %计算残差
/ |* B) {$ R) q) l' _/ ]0 q' e3 Sdelta=abs(epsilon./x1_all) %计算相对误差
# q+ w& [: b. i! V# D* f+ ^: u1 cdelta_mean=mean(delta) %计算平均相对误差
$ a! J( _# R: Z  U9 g$ Mx1_all_0=x1_all-x1_all(1); %数据列的始点零化像8 h( Q) b4 Q% Z, t% }! U$ W
yuce_0=yuce-yuce(1); %数据列的始点零化像
+ B! N* ~$ K: f7 b& m. ns0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));$ M0 h9 e; K0 o  z( m' G4 N: @
s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
: ?1 {  V/ _& b/ A5 A" h0 S# ttt=yuce_0-x1_all_0;1 e# s2 K, x6 A! q  w9 E
s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));, D# V7 b% S3 O5 Q5 G; o
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度
8 P) z" O% Y3 ^- Z$ ?& k9 r2 ec=std(epsilon,1)/std(x1_all,1) %计算标准差比值
& \' M4 b, u$ |5 w% d- R8 K3 w4 A, w: o+ ]
4 结语6 o+ f+ B- r: H6 L( }- s( u
道路交通安全系统是一个灰色系统,可以应用灰色系统理论进行研究和分析,其中 灰色预测模型和方法简便易用,在交通事故预测中得到了较多应用。GM(1,1)模型适用 于具有较强指数规律的序列,只能描述单调的变化过程,而 Verhulst 模型则适用于非单 调的摆动发展序列或具有饱和状态的 S 形序列。- ^( z. B# n& Z  _" ]; x
————————————————- P- h& |) L# P
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。' o6 H5 ]9 ]5 Q$ S
原文链接:https://blog.csdn.net/qq_29831163/article/details/89715039- ~7 v; k" L  S5 g$ ?+ {& a

1 z7 @5 Q. o" T: y/ Q1 m  ?$ w( q8 Q
0 }, M# K: b9 y( O/ F- |$ N" g
- O$ F$ j3 |5 S4 x4 f4 [




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