- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36352 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13866
- 相册
- 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)模型等更适用。
( G% a: ~2 n& F7 t( E
' o( ~' I2 G0 KVerhulst 模型主要用来描述具有饱和状态的过程, 即 S 形过程,常用于人口预测、生物生长、繁殖预测及产品经济寿命预测等。今年来 中国道路交通事故表现为具有饱和状态的 S 形过程,故可采用 Verhulst 模型对其进行预 测。* e. d* s. l: L# T: M* m
6 G( ~5 m6 S% Q$ R1 Verhulst 模型简介
1 E0 n( E9 G, P" O" |Verhulst 模型的基本原理和计算方法简介图下: x! ^) R5 A8 e3 e3 C' o- e# Z2 Y
, w3 D# ], I& T9 p8 |
![]()
5 S' g1 Z+ O& o( s5 r
; z% K1 W( }0 {) o( ^1 r参数列的最小二乘估计- h1 i7 n1 l. C
1 d; W1 z0 N; n/ | H- u * A' f+ w- N, [: u$ m
9 O+ t' K7 \) o1 s/ t! q
8 ]* p: I" p, Y
定理 2 设灰色 Verhulst 模型如上所述,则白化方程的解(时间响应函数)为
% O1 d+ u* v7 ~# s) b
, u, | S: }1 j% Y) _ 5 P' _4 u+ f8 J. t% ^
/ i& w2 E: ~- p7 i1 r灰色 Verhulst 模型的时间响应序列为
7 O2 J. V/ q9 P0 P7 I1 c! I7 k0 z. g$ Z7 h1 D' U4 T' H, M& O C
![]()
7 t1 A1 V' g; y7 b
; { @4 x& P- x% f$ C9 W累减还原式为9 b0 v$ P; _7 s& ~- \% J! V
1 d+ k% E4 _& K
![]()
% m8 t+ K8 j- @6 t6 \ y9 t k j0 O2 H
2 道路交通事故 Verhulst 预测模型" |- E; X$ V( M) o2 ?3 L
1 V6 t5 ]& ?8 i1 _
% A. |. o+ Z" s. y( ~6 P
$ h. D; }. a, b3 ^; B& Q
1990~2003 年中国道路交通事故死亡人数曲线见图 2,可见曲线呈 S 形,故可建立 Verhulst 模型进行预测,其建模过程如下。
* C, E' ~0 @/ Y% \* V
; g1 D$ s! U1 f1 s; n 3 v, Q8 C4 v( Y" y
6 W+ n7 L2 d5 a) W: d* W
/ x$ g/ A- @" d" L
! a; Y8 u" y. ^0 p: G/ ~ + C; {0 x/ R0 o4 {# |5 h6 r% \
1 k. \9 e- ~+ I0 s9 H$ J2 U1 F
; m- @( e2 h# W E
1 C; ^, z. @7 B$ _( ~5 h: Y. T2 }(7)模型精度检验。- X2 D# V- d# T' F ]0 R7 l
- k" F+ e& ^ F2 w u/ i% a8 a一个灰色模型要经过检验才能判定其是否合理。只有通过检 验的模型才能用来进行预测。检验方法有以下几种。/ q/ Z, z7 T3 p0 U( [. r1 c- }
( Z; E0 w* Q1 Z l
① 残差合格模型- i( x- A1 ]- H' N1 D' U! |# y
5 n4 s" o Q0 ^1 k! E
![]()
$ F! o. o7 Q1 ]4 F5 S" W% k/ @: Q& d& C+ c4 E0 f8 i P
![]()
6 E" }- D5 d: z+ H. m2 f4 U
: P# e) c. Q, c5 a4 ~# u- ~② 关联度合格模型
9 a: U2 e& w4 d, W& e
" n4 ~1 a$ ?; q; t; e![]()
+ X! D& M D' {' E. J) z
8 }2 s3 ]8 W: D* \8 o ③ 均方差比合格模型9 S2 w& R* P5 s% P% R) g
. A* W. n6 ?9 o # ? L* J" ^! k7 K- O9 E: j
& y( I! `7 f- D2 z+ ]5 P `) b
④ 小误差概率合格模型
! r: k* ^! C/ b9 N3 l
/ P: C2 T4 d! @$ G8 S. O : `7 f: e0 V# e8 J+ B( `
4 y/ a0 w( N' s9 L
由上可知,给定一组取值,就确定了检验模型精度的一个等级。常用的精度等级见 表 15,可供检验模型参考。一般情况下,最常用的是相对误差检验指标。
; ?6 F6 _( H# f. L+ o# I+ ]
* Z* z+ C( W$ L6 P![]()
( }( G1 _( `% m" |8 \1 \/ d
6 b4 \5 r. q a$ S- U) g由以上检验方法,可得 1990~2003 年中国道路交通事故死亡人数 Verhulst 模型误 差检验值见表 16。# w3 \. L A& Q0 `" r. O8 N7 ^
+ L6 [) f$ D3 H' H! r9 k- Y![]()
l7 ^5 ] D" Z8 Y( U) R( \: A3 C N
![]()
; z: X) x* M3 `8 _3 V3 E4 t/ W: n8 ~! D; r! T
计算的 MATLAB 程序如下:
6 N3 R3 z) V% p; Y% k: Q* m2 E& z( \/ s' E5 C+ R
clc,clear! N5 T/ ^2 ^: o5 d7 c
x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35# O, V" j3 X' z. T) {% {
9.39 10.59 10.94 10.44];
+ E9 t L7 h( f# r% w. q+ u5 P F' s+ zn=length(x1);9 E; k6 i [7 i) D# ^ B5 R
nian=1990:2003;7 I+ h& o: r! _+ x, R
plot(nian,x1,'o-');. k* G7 i7 T6 J) ^+ m$ y8 `
x0=diff(x1);: x: j* D/ u; [% L
x0=[x1(1),x0]! D4 Q+ E1 o4 C8 V7 [
for i=2:n9 t% s: D5 ~7 X2 q
z1(i)=0.5*(x1(i)+x1(i-1));
0 J) Z, G# ^% j) c8 b5 [end5 H2 `: e8 C) f9 W' g5 I* Y! w
z1$ v7 F5 t Q2 y& b
B=[-z1(2:end)',z1(2:end)'.^2]& {3 v3 t4 z. q3 h! P. D2 ?
Y=x0(2:end)'
) ?% Q' y+ z5 c; p4 I% o7 Wabhat=B\Y %估计参数 a,b 的值6 w% n% z" c8 k! {
x=dsolve('Dx+a*x=b*x^2','x(0)=x0'); %求解常微分方程+ |; a C/ Q+ O& P0 n
x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)}); %代入参数值3 V6 ? h. T4 H: L
yuce=subs(x,'t',0:14) %计算预测值
) X; @: ]0 Y" Z) Zdigits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测值之后,或者不使用该语句, M: O! y# X6 W$ m
yuce(16)=yuce(15);* Z9 z9 ? S% G; @/ C3 ?
x1_all=[x1,9.92,10.71];9 k3 b- W* D/ c% a' I: c( l
epsilon=x1_all-yuce %计算残差3 \. o$ g, j* I1 h$ d; v3 |
delta=abs(epsilon./x1_all) %计算相对误差
- g% V1 ^2 c. E" L3 {" T. M' ydelta_mean=mean(delta) %计算平均相对误差2 s t4 `7 R, b2 c' p: x% P
x1_all_0=x1_all-x1_all(1); %数据列的始点零化像
; V$ V p: E; \& oyuce_0=yuce-yuce(1); %数据列的始点零化像
4 J3 }2 R4 f; ] L6 h% Ts0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
7 ~& e, v( Q. Z( E0 ^/ \s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
; U5 x: h( P0 \* B4 ltt=yuce_0-x1_all_0;
& |( p% f* N2 @) d$ O7 Fs1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));0 a: a, n: C G2 o; [- O8 K
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度 r% X% F1 v( I6 p
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值5 w- i" }- V% P, U
P& J4 \4 `, A2 u$ ?+ t, j
3 预测结果比较# q3 O) L! M2 u, J" y
3 h1 w, k0 S3 N% W9 S; S
6 N7 w/ c: i2 P1 `5 `2 D+ q. f # i; w; W9 N' I. u
) z3 o7 T( ~, V/ V比较表 16 和表 17 可知,Verhulst 模型预测精度与 GM(1,1)模型几乎没有差别。 计算的 MATLAB 程序如下:. n z! }! h2 x: X, _& M; e7 w m
8 t" ?% K5 f, Q) j
clc,clear3 H( F( Q; ?$ [
x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35
9 v1 ?& Q9 |6 K6 V$ r; W1 L9.39 10.59 10.94 10.44]; ( d5 c0 I, H9 w0 }& k) |( s, C
n=length(x1);
6 E2 h+ F |5 q3 z5 B* S7 _x0=diff(x1);
. g0 s* v1 F: q# Z H+ Ix0=[x1(1),x0]8 T% M( x2 u$ f+ S8 o$ j+ W2 j
for i=2:n
+ q+ H0 u, f8 z: s8 [" R z1(i)=0.5*(x1(i)+x1(i-1));
! P' L0 d! Q, g" D, ~" x# mend
# }/ u. o5 R- eB=[-z1(2:end)',ones(n-1,1)];# e$ h6 g( K( I/ V2 `
Y=x0(2:end)';
6 B3 B! {' G# ]' d% y9 U; cabhat=B\Y %估计参数 a,b 的值: i$ s& H6 M! u! x$ f
x=dsolve('Dx+a*x=b','x(0)=x0');
9 Q" |& z* M5 w& i/ C! j% {x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)});
2 N+ |8 K7 s7 m* @yuce=subs(x,'t',0:14) %计算预测值: h% O" }# a+ r5 Y
digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测1 k- N6 P* V! Y0 y! o
值之后,或者不使用该语句 n: O8 ^4 j! q9 P: O& Y( N- l
yuce(16)=yuce(15);! X2 v5 Y; ^9 }, }+ @2 Z- o4 B8 M
x1_all=[x1,9.92,10.71];
/ d1 I* x3 A0 Z, e2 vepsilon=x1_all-yuce %计算残差
, ]% O: I3 A- p- Mdelta=abs(epsilon./x1_all) %计算相对误差& W5 B; F* ]7 B" d
delta_mean=mean(delta) %计算平均相对误差9 L& r6 k3 v$ z$ l. W! m, s
x1_all_0=x1_all-x1_all(1); %数据列的始点零化像
5 N* |$ v6 ~7 r0 cyuce_0=yuce-yuce(1); %数据列的始点零化像
# V9 i/ O& w! e& Is0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
& r6 a* R# y; x. }7 Ds1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
2 X! g7 ~4 y4 T" ?tt=yuce_0-x1_all_0;/ C* c( _6 y% m# e# n2 ?2 [
s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));
: Q8 l2 K! I: Z9 x) J' X% }) Eabsdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度; j# I. D: U, @# w0 P( D, N& t
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值0 c4 u/ }6 |/ a
( @+ t8 R1 m) W+ K7 Z- [ 4 结语
E5 I$ y+ d$ ?. H道路交通安全系统是一个灰色系统,可以应用灰色系统理论进行研究和分析,其中 灰色预测模型和方法简便易用,在交通事故预测中得到了较多应用。GM(1,1)模型适用 于具有较强指数规律的序列,只能描述单调的变化过程,而 Verhulst 模型则适用于非单 调的摆动发展序列或具有饱和状态的 S 形序列。
% y) n# I7 o& L, Z1 v# \————————————————& B% ^0 X# G" ^# O5 Q! d
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
: r" C8 k; e$ d! o* X( k原文链接:https://blog.csdn.net/qq_29831163/article/details/89715039/ V) _9 m/ ^' ]1 S. Y1 a; h+ f
* R9 ~" B& l( \8 l0 f
7 t$ W/ Q( N( i4 T
& ]& d% p% R. R; z/ f" d |
zan
|