在线时间 791 小时 最后登录 2022-11-28 注册时间 2017-6-12 听众数 15 收听数 0 能力 120 分 体力 36395 点 威望 11 点 阅读权限 255 积分 13879 相册 0 日志 0 记录 1 帖子 616 主题 542 精华 12 分享 0 好友 225
TA的每日心情 开心 2020-11-14 17:15
签到天数: 74 天
[LV.6]常住居民II
群组 : 2019美赛冲刺课程
群组 : 站长地区赛培训
群组 : 2019考研数学 桃子老师
群组 : 2018教师培训(呼伦贝
群组 : 2019考研数学 站长系列
灰色预测是通过原始数据的处理和灰色模型的建立,发现和掌握系统发展规律,对 系统的未来状态作出科学的定量预测。目前应用较多的灰色预测模型是 GM(1,1)模型、 灰色马尔可夫预测模型等,可用于预测交通事故发生次数、死亡人数、受伤人数和财产 损失等指标。GM(1,1)模型适用于具有较强指数规律的序列,只能描述单调的变化过程。但是道路交通系统是一个动态的时变系统,道路交通事故作为道路系统的行为特征量, 具有一定的随机波动性,它的发展呈现某种变化趋势的非平稳随机过程,因此可建立交 通事故灰色马尔可夫预测模型,以提高预测精度。但灰色马尔可夫预测模型的应用难点 是如何进行状态划分,故对于非单调的摆动发展序列或具有饱和状态的 S 形序列, Verhulst 模型,GM(2,1)模型等更适用。
5 K. ?; ^7 p8 H/ @! R; e Z/ r w; Q$ n
5 N. h# z) W. K. x$ \ Verhulst 模型主要用来描述具有饱和状态的过程, 即 S 形过程,常用于人口预测、生物生长、繁殖预测及产品经济寿命预测等。今年来 中国道路交通事故表现为具有饱和状态的 S 形过程,故可采用 Verhulst 模型对其进行预 测。, R% m* `2 [2 ^3 R1 r6 y4 h
1 F) O& K! ^4 {" K% S 1 Verhulst 模型简介
: e3 }1 {: l" l+ M2 Y( r9 s' [ Verhulst 模型的基本原理和计算方法简介图下
6 U" O# V5 ` {7 q A8 ?- K
* P0 R$ F( P( m5 `1 s) R, u ; X8 s0 v; ~" `
! q9 n% ]0 _* G+ P- C! k
参数列的最小二乘估计
6 ?/ V4 N' l: ^, V3 u3 D 7 w3 H& @9 }6 R$ d: ^. T5 d
; e& j2 T8 Q* V9 g, r # T! U8 L+ _- X
6 l+ B. u9 _* W: ]9 {7 g/ k/ Y; |
定理 2 设灰色 Verhulst 模型如上所述,则白化方程的解(时间响应函数)为
: u# C, m& }& e) L4 Y
. m" E5 K0 D: r }! q: E& _3 O , X" X3 D# N. \$ } R
' Y" }& t4 K7 ^6 L1 r& y 灰色 Verhulst 模型的时间响应序列为; L9 p) D9 \7 `5 o! c
, w' [9 h9 |6 Y 8 ~' g1 ?* ]% k2 _, V4 x
- b J! ?8 o8 x! S7 o; B; ?: ^' j; g 累减还原式为$ m, x) p, {/ R6 R, |( [4 j
' d g* r0 ?& x: }# S* j/ l% C7 a
/ J: ^8 u7 m& x7 l; o+ ]& U - j8 h* s7 w( b7 V1 w! K2 Q
2 道路交通事故 Verhulst 预测模型
9 [* s0 u$ [+ x) y8 f9 z; f
# x/ W" p1 n4 H/ F
+ `2 N: \! t; q: K5 q1 d- j ( D; S6 Y- d, M" i' ^$ `$ R
1990~2003 年中国道路交通事故死亡人数曲线见图 2,可见曲线呈 S 形,故可建立 Verhulst 模型进行预测,其建模过程如下。
( X- |/ R9 @ [+ j; b. D6 W - Y4 _/ Y# d, v
7 Z: b* f7 O( m6 d1 {( Z
% {- d6 E# b9 ~4 d
# O1 N* d8 b) {# L. q+ [ & t5 U9 J, t4 ]+ T1 _
' S* p9 Z& {, L( P9 q
) `; b# C6 T+ U7 {4 }8 R9 |. Q
& y2 e2 w4 S& y0 e) y& {+ m% y: T # S) C$ @7 ]' h) I* k
(7)模型精度检验。
% a" x6 T \1 n/ ~: ^
4 Q9 I' n) I/ i' J% M. I) F 一个灰色模型要经过检验才能判定其是否合理。只有通过检 验的模型才能用来进行预测。检验方法有以下几种。
- @, o2 j. \9 d6 }- g# A
+ v; D y& J4 \7 _ ① 残差合格模型
7 q d1 D5 G3 B* ]7 x2 A# } 4 b/ X. J. M% s2 I1 o1 L# h
9 [; y4 E* J: w r3 E. P
5 `+ q. y; V) ?/ z
5 z3 ?" T: M" }, h0 F 9 X7 d: ^% r8 E. q! Z6 z7 [1 q
② 关联度合格模型
6 Q0 z9 e1 h. m0 t* X" l) b; A & c1 E0 |1 u$ V
5 z8 x" U! c6 R5 j4 ]* U/ |+ J 8 C# _) _) m* u1 \) v, y
③ 均方差比合格模型
: I K; W3 A; n8 H
1 G1 z, I1 n* P" I& u 1 _/ ^8 h U3 G+ Z! |
! f/ Q& U3 Q0 |' I( ]2 \ ④ 小误差概率合格模型7 U& @8 J1 o0 b1 Y
7 A. i* ~5 `% |0 q9 k0 ~ . F1 D1 D% r6 m- f- s
, g- ]- I/ G8 O( D! O* ^
由上可知,给定一组取值,就确定了检验模型精度的一个等级。常用的精度等级见 表 15,可供检验模型参考。一般情况下,最常用的是相对误差检验指标。& R, F" C$ ^$ Q" E6 ?. U: ?: c! J
( Y# d9 V' e% F
" p9 U" U. F% h( M, o9 F
3 j0 n: S, B. F1 l
由以上检验方法,可得 1990~2003 年中国道路交通事故死亡人数 Verhulst 模型误 差检验值见表 16。
$ t3 ] a8 ~. w* U! ?; P6 Q
$ }# |6 o( _ K+ T9 i: R0 O 3 k) @+ H, h7 |0 o& R0 S$ j
! e$ Z: S/ f# H" |0 t8 l6 O8 w% F
9 U' e+ _- U8 e1 M) P6 t , c+ k7 V5 q* ]! ?# F% r. A
计算的 MATLAB 程序如下:& w/ C! {! y+ ]! W- g F
( ^# \. n. D" x$ ]- j clc,clear
6 R; D, ^/ Q* ^/ H+ O x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35$ j; l# E: N `9 x
9.39 10.59 10.94 10.44];, V* o8 s$ Y) K5 _6 @
n=length(x1);
* m+ t% N+ S0 N4 R4 F1 E7 T nian=1990:2003;3 b' f6 Z1 s) J
plot(nian,x1,'o-');& m5 I6 T2 s: w) b
x0=diff(x1);# K+ O' N9 J2 A2 e8 o! K
x0=[x1(1),x0]+ N$ g1 h) ]0 }) j( T
for i=2:n
$ _- d }( \! L# A z1(i)=0.5*(x1(i)+x1(i-1));
/ G8 n$ Y3 V+ D end
2 P$ a4 O# |2 I9 E% @& x z1' S% k( k; r& r' Q0 I# S
B=[-z1(2:end)',z1(2:end)'.^2]
( T# g& {& r. L4 Z6 q1 p0 R Y=x0(2:end)'# d+ M T% v- \. p1 \( `( A* L
abhat=B\Y %估计参数 a,b 的值6 l0 p+ Q) {3 k# d" q3 F
x=dsolve('Dx+a*x=b*x^2','x(0)=x0'); %求解常微分方程
4 ]/ V- m4 l1 Y% p+ d0 n x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)}); %代入参数值( T& U% R8 F( Z9 T
yuce=subs(x,'t',0:14) %计算预测值4 r% E% t' K, Q0 h
digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测值之后,或者不使用该语句
9 I! Z% t& w$ G8 @( x yuce(16)=yuce(15);
, i, k( t( z7 S( M1 C, a x1_all=[x1,9.92,10.71];1 V4 |3 d. M3 J/ d* O4 v" s
epsilon=x1_all-yuce %计算残差7 a4 r* x. r$ y5 k+ z' g" n
delta=abs(epsilon./x1_all) %计算相对误差
4 U" R1 z! |) i( Z- U delta_mean=mean(delta) %计算平均相对误差
) `; T4 k7 n1 l x1_all_0=x1_all-x1_all(1); %数据列的始点零化像
/ D: m! o" L# g5 G8 S9 v' T, o yuce_0=yuce-yuce(1); %数据列的始点零化像
& }: o. q+ o$ U( P J4 b s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));; D3 ^ g6 e3 B# D
s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
5 C+ Y( i% z3 R( } tt=yuce_0-x1_all_0;
. j5 e- y8 v+ m! S; T! {% S s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));; I1 q, Z* _) B( f0 P$ [$ h
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度9 }3 O: U6 G" K
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值% [8 ?/ m( G9 x5 a/ L
" [6 \; n0 u6 R9 N5 o( d 3 预测结果比较
9 i3 Y a5 S" N3 W/ M* X . q) Z( |6 ?7 ]; V0 I
' b$ N( C* X, ^ - N1 U4 b! ^: c: ^7 e" h
, Q+ X" n( h9 f" F, K 比较表 16 和表 17 可知,Verhulst 模型预测精度与 GM(1,1)模型几乎没有差别。 计算的 MATLAB 程序如下:
8 r9 |+ w$ c; C
% R' l! A: `$ P5 ? clc,clear
3 n% A& Z% A Y2 W x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35
' i' ^8 d8 W8 e2 m0 w) x6 V 9.39 10.59 10.94 10.44];
W. a( l# `8 ^) S n=length(x1);
- f9 a# u6 {- Q C% `, A x0=diff(x1); M& x* k9 G9 W6 q1 K
x0=[x1(1),x0] x# x5 K+ E& S5 G9 M B e+ L/ n8 V
for i=2:n3 W* C9 Z; l9 ~" P/ R
z1(i)=0.5*(x1(i)+x1(i-1));
9 \1 _7 u" z! y2 ?7 C+ } end& b# H8 N# h3 Y; n7 l' G$ W
B=[-z1(2:end)',ones(n-1,1)];
& ]9 J# Z; }5 ~, r+ z Y=x0(2:end)';: d* ]/ I% R. o4 W0 U" l5 a
abhat=B\Y %估计参数 a,b 的值
; b0 i" l5 y' d% a3 v# V7 i x=dsolve('Dx+a*x=b','x(0)=x0');6 m5 U" @' v& r
x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)});3 m: @% H5 k/ g1 I" ~) g/ K/ G
yuce=subs(x,'t',0:14) %计算预测值4 P P) Z# C, u! p w
digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测
8 l: z) t& Y9 _1 W" x5 n3 M! x 值之后,或者不使用该语句- U$ v9 `, h3 |3 r; c
yuce(16)=yuce(15);/ _" Q- h/ w- Q# u4 Z- G4 o7 ^8 L
x1_all=[x1,9.92,10.71];' F9 ]$ q3 y' z" w7 M1 [7 F
epsilon=x1_all-yuce %计算残差' A. [: g6 V" x0 H! Z% H
delta=abs(epsilon./x1_all) %计算相对误差) |# N8 q2 c' ?
delta_mean=mean(delta) %计算平均相对误差
- x# O0 l+ J0 G" i x1_all_0=x1_all-x1_all(1); %数据列的始点零化像: P. _. x5 i% u3 G
yuce_0=yuce-yuce(1); %数据列的始点零化像
) s0 u7 s" E6 p s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
- ?* b9 T5 W; a* N, n" G3 v s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
0 M) A* h* j/ n4 T+ A tt=yuce_0-x1_all_0;( S% n2 C) U9 y$ n- y
s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));
6 |9 E: l0 x/ P# D* ^ absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度
8 E) G6 n" z0 E- a: w2 n. ^! L2 O c=std(epsilon,1)/std(x1_all,1) %计算标准差比值0 E( c9 `( K' K1 S3 P
0 Z. h' `3 D& q7 i+ T$ C: o4 c7 M8 _ 4 结语
5 }5 f7 o" |1 P9 _" C5 I: O# {. j 道路交通安全系统是一个灰色系统,可以应用灰色系统理论进行研究和分析,其中 灰色预测模型和方法简便易用,在交通事故预测中得到了较多应用。GM(1,1)模型适用 于具有较强指数规律的序列,只能描述单调的变化过程,而 Verhulst 模型则适用于非单 调的摆动发展序列或具有饱和状态的 S 形序列。+ X. H% I8 t# Y5 S
————————————————
: K4 \* d# j I3 o8 v1 i! K 版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。8 \8 P5 G# A: P" @* v
原文链接:https://blog.csdn.net/qq_29831163/article/details/897150393 a* z- |9 N) `$ k& ~/ l
: P6 E; Z1 ^& C$ R* ~
4 h6 v" g' P% K8 Z' p* u & b3 I( f! P- Y: \
zan