- 在线时间
- 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)模型等更适用。
' K* x' s& L& k) E% q8 @' I/ [2 X& k: v: D8 R
Verhulst 模型主要用来描述具有饱和状态的过程, 即 S 形过程,常用于人口预测、生物生长、繁殖预测及产品经济寿命预测等。今年来 中国道路交通事故表现为具有饱和状态的 S 形过程,故可采用 Verhulst 模型对其进行预 测。
5 |& i. w8 l% l Y e8 \7 ]
7 b# O3 y5 D% s1 Verhulst 模型简介4 u% M* T5 f' j
Verhulst 模型的基本原理和计算方法简介图下5 Y9 q$ O: i$ N5 A& _: G$ w6 w
! E; s0 ?- x% }2 m6 O " B1 V9 H0 A+ |# D" p( W
6 H: t5 P/ A& J ]& U参数列的最小二乘估计
+ q# N/ G8 ]; G
& ~6 T% P: F7 P4 T! k![]()
0 z0 p( X- S/ H0 ?9 ~, Q3 Q5 Y
% e5 ~) I' D+ ^ U
* f! ]1 ]' u3 C& \7 C: K4 a0 D 定理 2 设灰色 Verhulst 模型如上所述,则白化方程的解(时间响应函数)为' ^. f- b7 P0 t V" M' o
. }1 n6 Q4 }) ~9 ^ ' t/ J9 S) P% [! @; C& U+ b5 m
- }. G# o1 u* l灰色 Verhulst 模型的时间响应序列为
9 I' H. J$ g% ~ ]! f4 V2 y0 |0 p! y( r9 q) K
![]()
- K$ k! h$ P2 U8 m( u
7 q: I8 l) F: x. N累减还原式为
0 k# D# `" @. l5 z
9 ~ e9 s$ x+ R0 S/ u; `3 k7 { 1 y! S5 B6 |! V% f
& Q ]$ i* R" z
2 道路交通事故 Verhulst 预测模型7 L7 l, ^- {' U1 \- O( R
) q1 j( r. W4 T* r, T _![]()
) O& M; ?" P" |, I/ l4 \0 f6 O1 J3 B5 r
1990~2003 年中国道路交通事故死亡人数曲线见图 2,可见曲线呈 S 形,故可建立 Verhulst 模型进行预测,其建模过程如下。
% q) _$ n" T* ?; l# w/ s `8 t
4 a& n, }: B+ K ! G- i0 q: [& f* { j0 N; S' |5 p
% n- @! B% ?7 U- G& j4 `
![]()
% y1 I8 {/ v7 R2 f: f* n8 E3 N7 w. ]+ f
![]()
; s1 O8 @8 o( U& I. [" @! [) X5 V4 V6 F# ~" G' J
+ i# R- y5 v* u* V5 ?* r) [7 U; I
( x# ]2 f" ?; s% l. }2 G
(7)模型精度检验。& J0 ], D& A& c8 {' r
+ N N, ^1 h4 f3 I
一个灰色模型要经过检验才能判定其是否合理。只有通过检 验的模型才能用来进行预测。检验方法有以下几种。
: g( y# [* C) O
5 o3 B2 C) r2 [& F5 W3 \8 {* e① 残差合格模型9 M# F8 H2 z/ K& a
5 V' [* y9 T' l+ M 2 \( J% I' k! c' [
" z2 O" Y6 X9 T- }! F3 v% ?![]()
( v1 j t/ Q5 o" Q9 b" M7 R
( a- U9 l+ W: ^/ G5 I: ?' X② 关联度合格模型" N/ q+ K( ]: `
3 q" L8 q; C, e4 U * k- n0 P% [% y2 r. E$ M
3 H8 @+ P$ H1 A; N) S0 w5 C; U0 A# ` ③ 均方差比合格模型
6 P3 R( Y2 w/ B* G/ z
4 C. g% C0 ~8 ~5 t + S, b& r) G7 d1 Y
5 L6 Y5 x) j2 Y* @4 L/ n" K- g④ 小误差概率合格模型
) L) o2 {$ F+ j; F: l3 W0 b' s7 ^, ^( h- @ I0 o% T
![]()
. _! F4 s2 w& V& K5 ~: j, z* Q, t) t/ t
由上可知,给定一组取值,就确定了检验模型精度的一个等级。常用的精度等级见 表 15,可供检验模型参考。一般情况下,最常用的是相对误差检验指标。1 b. Q9 m: G" T6 n
3 x& ?6 w/ U3 A) ?! X& H8 C![]()
$ ^7 y! b0 q6 J3 S" R2 ?5 @8 }# }6 o3 m& G' v: S7 U
由以上检验方法,可得 1990~2003 年中国道路交通事故死亡人数 Verhulst 模型误 差检验值见表 16。; t2 k( ?0 g# c0 L1 S) q
" r. y3 x/ C" D![]()
0 a+ Q5 r* b& W8 L4 u' n0 ~( H5 p/ v/ z: {: J' M/ G$ E. S' x9 g
" _2 j0 x7 s) j6 a" D( \ L
& Z% O& y$ q6 W! p2 I0 |计算的 MATLAB 程序如下:# L1 H6 n+ H7 W$ }# e# s
+ ~9 S; ^/ `' A2 x# Q7 Y
clc,clear
4 Y/ ?( S' r/ v4 }- j9 k2 I$ hx1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35
: r" K( E' f0 ^( c9.39 10.59 10.94 10.44];
6 A, d7 f* k9 [, j x, o1 Ln=length(x1);
3 l" m1 ^- b d |9 jnian=1990:2003;2 {7 Y! O: ^& L0 R R# |* R
plot(nian,x1,'o-');
! B' Z6 e& \$ d1 T0 ]x0=diff(x1);
0 s0 ~! v, o3 D7 x7 Sx0=[x1(1),x0]$ @4 k4 }% f5 O* }$ s
for i=2:n
, T" M/ H* _) h+ g7 H( z z1(i)=0.5*(x1(i)+x1(i-1));/ }/ f4 W2 Q: p2 E. L0 h- g' m$ i0 p
end! E# E: c( N8 K) ?& Z$ g5 b6 P
z1
' _! Z! A3 z, J. f$ [& m) cB=[-z1(2:end)',z1(2:end)'.^2]% R3 I S; u4 Y+ k
Y=x0(2:end)': v2 g# W. Z. S9 m7 W( h
abhat=B\Y %估计参数 a,b 的值7 G# w# p" d$ B% |
x=dsolve('Dx+a*x=b*x^2','x(0)=x0'); %求解常微分方程
( j" g) `3 r% Ox=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)}); %代入参数值
$ }! U0 x+ v- i6 a4 [( }& X0 zyuce=subs(x,'t',0:14) %计算预测值8 N; M) M# O. t0 Q: y
digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测值之后,或者不使用该语句
9 w- S6 Y: p+ h4 z! ]yuce(16)=yuce(15);
# e0 \" b5 W6 y. _4 mx1_all=[x1,9.92,10.71];0 p! I7 o4 |8 W5 v/ V# {* I
epsilon=x1_all-yuce %计算残差5 U1 o& E h4 \
delta=abs(epsilon./x1_all) %计算相对误差
: W, o6 U2 f5 Z$ n/ E# _4 A& v1 Qdelta_mean=mean(delta) %计算平均相对误差
/ ^9 P* e, A5 X @) Ux1_all_0=x1_all-x1_all(1); %数据列的始点零化像! b' M# g8 R% i- t
yuce_0=yuce-yuce(1); %数据列的始点零化像0 a! y& A2 o' S- C# o! w
s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));) o3 d7 w; A0 E- f
s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));" F) j; H' G/ r# k
tt=yuce_0-x1_all_0; |8 C8 D& l9 o, [
s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));
! d6 W9 W8 d4 l% e0 a& Zabsdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度 n6 Q8 \' q8 P7 }$ q6 ?6 v" u
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值2 ?/ M# q6 G; r8 R. [: B& U
' W9 F, W/ P9 W3 U/ z# q+ m# z" y* i/ x3 预测结果比较+ A0 N. H8 U( R6 \- |2 _2 S3 F& D2 k
( o: l* A: h* J( W
6 v: W- B1 V' H 6 W/ F: d/ a% Q/ `2 ^
; @* Z' f8 ~# O0 w( A3 U4 D, S. w- e比较表 16 和表 17 可知,Verhulst 模型预测精度与 GM(1,1)模型几乎没有差别。 计算的 MATLAB 程序如下:: w% o) q% C4 @. i+ I% c
2 g/ N4 X% |2 m% Pclc,clear
0 D" ~; T( o, p* |* F! B0 ?! V1 P5 Vx1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.356 `; l8 J" \4 U+ t" z/ c b+ \
9.39 10.59 10.94 10.44];
6 t' r8 o8 l% yn=length(x1);
+ A% @; I& R/ y; f8 m$ u, G" c8 f7 ^9 Jx0=diff(x1);
& B2 b. w( X @6 J' |& o% Fx0=[x1(1),x0]
2 P7 N, t+ m% n+ l# J( U3 Qfor i=2:n* ? \- _/ z" V% f
z1(i)=0.5*(x1(i)+x1(i-1));
7 L: Y1 o* C3 J9 ]end0 l, v1 b6 t5 t4 z
B=[-z1(2:end)',ones(n-1,1)];' ~9 g, U4 |5 v: A2 a
Y=x0(2:end)';" C% F% X# q ~+ T
abhat=B\Y %估计参数 a,b 的值9 [6 \0 H2 e* h; J9 e
x=dsolve('Dx+a*x=b','x(0)=x0');8 P2 L0 W1 g) ^4 M$ N
x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)});
$ G% g# |, j) syuce=subs(x,'t',0:14) %计算预测值
9 u; S( c9 r6 z0 `digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测
+ E- I# Z5 X$ Y% z4 p3 z值之后,或者不使用该语句
$ \5 M9 s( X: ^. F- b% O7 lyuce(16)=yuce(15);
8 s" ]& k) s( K/ gx1_all=[x1,9.92,10.71];0 o8 O! c0 _2 C* C) Y7 C3 m) V
epsilon=x1_all-yuce %计算残差& o3 n8 I2 H% S/ d0 z
delta=abs(epsilon./x1_all) %计算相对误差, R( M& D! K+ h% b
delta_mean=mean(delta) %计算平均相对误差
( F: \! _. b/ l$ {' W5 Z6 ox1_all_0=x1_all-x1_all(1); %数据列的始点零化像9 m2 f' w) _2 i l, e7 a$ J
yuce_0=yuce-yuce(1); %数据列的始点零化像
l6 p. d& a' X2 Y! e1 Ps0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
5 L9 ^& P/ h$ F$ G( Us1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
6 C1 e: |( ~$ g0 itt=yuce_0-x1_all_0;
1 U+ U" V! O; N B' ]s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));
" N9 m8 U; ]3 R; ~absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度
$ o" H7 F# E, w6 r% _4 Lc=std(epsilon,1)/std(x1_all,1) %计算标准差比值
4 u1 S9 t7 r7 u2 [9 z. ?+ [1 }. X+ ?% _& N* y" S L
4 结语
9 W8 ^' O+ s$ C9 U道路交通安全系统是一个灰色系统,可以应用灰色系统理论进行研究和分析,其中 灰色预测模型和方法简便易用,在交通事故预测中得到了较多应用。GM(1,1)模型适用 于具有较强指数规律的序列,只能描述单调的变化过程,而 Verhulst 模型则适用于非单 调的摆动发展序列或具有饱和状态的 S 形序列。' Q+ q4 ]0 |4 t, P2 z
————————————————4 m: T J! r+ M1 m0 j8 o' C1 v
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
! L3 r; J, D( W. O0 C: C原文链接:https://blog.csdn.net/qq_29831163/article/details/89715039
$ W' N5 k5 e: c( ?& l- ^
" |0 g7 {" D2 F3 k! N" \2 M: o% v+ Z2 Q
, `9 m+ \; `/ d1 r# e/ ?) i |
zan
|