- 在线时间
- 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)模型等更适用。- j: e) K$ f7 I0 F' h; e
. R# [* O5 Q1 d! o
Verhulst 模型主要用来描述具有饱和状态的过程, 即 S 形过程,常用于人口预测、生物生长、繁殖预测及产品经济寿命预测等。今年来 中国道路交通事故表现为具有饱和状态的 S 形过程,故可采用 Verhulst 模型对其进行预 测。
6 W* I, ?+ P0 x1 y1 M! b! r- r! e( d4 v2 ^
1 Verhulst 模型简介6 n1 `' k6 m. p
Verhulst 模型的基本原理和计算方法简介图下) F- A- f, L& R9 J
6 C) ~+ D$ A7 I9 d2 s
![]()
* h7 ]7 n+ Z9 Q7 x. f, M% Y2 R# U1 g
参数列的最小二乘估计
: V- C5 D _' A8 w; d
$ S; X0 @3 R. _0 z5 J" n9 M ! Q8 d2 O1 W+ I$ Y7 J! q+ ]+ ]
7 v# w& A3 w$ _ K, y# k( E
, l- F4 t8 a9 P& l
定理 2 设灰色 Verhulst 模型如上所述,则白化方程的解(时间响应函数)为/ r* R* G& D3 G2 D7 a# @ m
+ f5 z3 L1 i" l; Q
![]()
3 R9 n1 v& n0 Q7 v( G6 n1 q0 s8 X+ X+ x8 m, P4 @
灰色 Verhulst 模型的时间响应序列为
$ K5 C# j3 X4 L" G
" d% A' z& h7 D4 O ; R8 w1 [' q9 A
: h( w2 O2 D4 H: }6 o累减还原式为7 t0 Q& V, i4 L I. @
3 b; \5 j& t/ f ` 0 b- m. H7 o: z- ~. u! j
: l- r7 M' S# L3 B8 s8 j2 道路交通事故 Verhulst 预测模型3 E9 `+ I' T# p- Q5 Y' e1 z" F
# U' o) S: Y% e9 n5 f
![]()
. a3 q2 w4 m5 d
/ p) w; o1 W1 b2 } E$ S" H; n: v1990~2003 年中国道路交通事故死亡人数曲线见图 2,可见曲线呈 S 形,故可建立 Verhulst 模型进行预测,其建模过程如下。
8 T+ s2 ?) x* I- U) o+ u$ f7 G! S3 C- z- }
![]()
3 v! b& y: Y8 O8 N c& H. j! I
4 V, q$ F# L, ~+ ~3 }: C![]()
. E# [2 h! o! o! |7 w( x- b$ K1 n/ J# k4 N% |1 j8 k# {
' A u( ^: M* Z0 Z* b
4 ~8 h1 @5 Q1 c p* H* C
2 U( b. }6 V x+ F7 m) Y9 H
% ?9 t* V. u3 g2 O4 w(7)模型精度检验。0 w3 y. y5 \" A {9 P: o8 l$ s
& ]) f2 p$ M$ L/ z1 C' I" f) v一个灰色模型要经过检验才能判定其是否合理。只有通过检 验的模型才能用来进行预测。检验方法有以下几种。8 }& G; }4 b/ \$ e. b8 }( i+ z' A
4 y" t8 d9 T* I① 残差合格模型
+ X/ j2 D) Y9 n/ ^. e T+ ~! Y
7 F) A- a6 A; b8 @ D
4 f" d }6 t& A
![]()
4 l) @0 A) E" W- n
% Q4 w' T$ v4 h! ?5 D. `& s0 f② 关联度合格模型4 F3 e3 v! n9 B- s' b4 K# Y
1 Y f# h6 ?4 Z7 s
+ Q0 ]- P( }; j( n& C, X
% d7 g W: w% F3 K0 P. {
③ 均方差比合格模型
/ k3 t, r2 S1 t. {& L* D2 ?0 r# U6 e% h' n' P4 y
' Y4 k4 ~" @1 Q2 P1 j
+ V! a; c" q9 U( |7 U7 B
④ 小误差概率合格模型% W/ h: \* I8 A' T! t+ x
& n# ]+ l* t+ B4 a c![]()
+ G7 {* _: b% j" h5 N0 `
" j+ ^ q8 j0 t2 E由上可知,给定一组取值,就确定了检验模型精度的一个等级。常用的精度等级见 表 15,可供检验模型参考。一般情况下,最常用的是相对误差检验指标。
% @1 r+ z' `5 K1 X8 F9 @. {+ M( |
" E( O2 Y6 y4 s0 ]1 t, U' Q![]()
/ |0 l U2 `) H9 P0 _
0 v3 d v0 O9 L9 ^. B0 C* {由以上检验方法,可得 1990~2003 年中国道路交通事故死亡人数 Verhulst 模型误 差检验值见表 16。: V/ V) t6 U4 Z( c
* B) S V1 d5 ^8 Q
+ |. _' d8 k4 h9 [; Q* |8 }
3 x0 ~4 @! y( J' q
![]()
5 j M1 G) w' j- r4 k" h/ ^+ h& D% M& _. q8 }8 [2 ^: S
计算的 MATLAB 程序如下:2 z) d7 T( R, U7 E
! J* U. a8 G, w& d0 V4 [
clc,clear
; h7 I2 W0 k( }# d# n- Z4 g& b) _x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35
; |$ o" q* y1 J1 V9.39 10.59 10.94 10.44];7 r$ x6 z8 D: w' [( }* [5 u$ V
n=length(x1);# D0 a) N7 k# a$ W+ I: O7 H9 G
nian=1990:2003;
; g; o. a- _. O; X( g/ x% M0 Cplot(nian,x1,'o-');
, f6 u* X& `( |! Hx0=diff(x1);& P) d# ?9 ~& Z$ _
x0=[x1(1),x0]
% w- X" [5 b* i0 zfor i=2:n
0 U; C+ H. f7 V$ j9 y) d z1(i)=0.5*(x1(i)+x1(i-1));. B* Y# y: M! \: i) k7 I
end6 p* H+ f$ Z7 Y4 J3 r
z1
% D/ @5 u, M' H: J+ x# e6 V6 [B=[-z1(2:end)',z1(2:end)'.^2]2 f& F0 N6 v) b. s1 G- Z5 J i
Y=x0(2:end)'- { X1 O3 E9 S8 m
abhat=B\Y %估计参数 a,b 的值
' m+ V2 r9 Q2 |, F% m$ f5 |x=dsolve('Dx+a*x=b*x^2','x(0)=x0'); %求解常微分方程
5 `) S: a x M1 r: |- ^x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)}); %代入参数值
# F! ?/ r5 _' G. H! `* _# q8 ayuce=subs(x,'t',0:14) %计算预测值
3 i& ]# m( Z( t' j. N4 edigits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测值之后,或者不使用该语句
) b8 R% v! `( F8 u2 Y U. I9 @/ b4 `yuce(16)=yuce(15);
( B7 V, `! m. [2 G, i% bx1_all=[x1,9.92,10.71];
# o9 E, |' P6 _0 nepsilon=x1_all-yuce %计算残差
* F; r& Q6 \( idelta=abs(epsilon./x1_all) %计算相对误差
. \" o: c1 r" d' D) Q+ ^5 G$ Vdelta_mean=mean(delta) %计算平均相对误差
0 S) M9 X6 E; b4 h- px1_all_0=x1_all-x1_all(1); %数据列的始点零化像
: p5 o" C. y7 ^yuce_0=yuce-yuce(1); %数据列的始点零化像6 ~( s: g4 z1 |( E4 |4 |9 P! V
s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));+ D( t4 l7 z6 H. o# y6 L# [! m1 d
s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
7 r: P2 w# T# E4 htt=yuce_0-x1_all_0;
! L0 I% Q# V, f+ W" `, a4 d6 @5 }s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));
0 Z. k( i; g3 v' cabsdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度7 ]. }7 `; U+ l! q6 @2 d+ ^
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值% R4 t9 H c9 |- J2 }8 j0 K
* D( q3 @% F8 B+ o8 j3 预测结果比较
& Q* ~3 m N4 n+ b/ ^: c# o6 a* n ( `8 o w: ?- H% D1 v! k& O6 y
( |* A8 v1 b* O" ~+ W: A/ d2 G: t
; i$ H& l8 u1 ]8 @% U
6 k4 ^# B o B6 [7 N" }
比较表 16 和表 17 可知,Verhulst 模型预测精度与 GM(1,1)模型几乎没有差别。 计算的 MATLAB 程序如下:/ n: [% N, x; |! Y. T
( v) j7 {% Z" a' V5 u! @/ b
clc,clear
) V2 w* m) }7 ]. l' b# Cx1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35. f3 u! g0 j$ f. n# K8 k
9.39 10.59 10.94 10.44]; & U5 m# d) N2 u+ K3 U9 `& c
n=length(x1);6 `& m# y2 U8 Y: a; V
x0=diff(x1);0 L! Q3 Y Z! |+ |
x0=[x1(1),x0]. b: r/ ^9 ?4 f4 r0 T, C5 x+ k p7 u
for i=2:n8 W/ y, t8 Z# u( @: G/ y5 c# k1 C
z1(i)=0.5*(x1(i)+x1(i-1));7 t' K' F5 G2 B2 x0 {
end6 ]2 ?! _& ^0 z7 M% g2 p; |) d
B=[-z1(2:end)',ones(n-1,1)];; k7 C7 B+ x& {: Y& y+ H6 {
Y=x0(2:end)';6 Q7 G& G; A) }5 ^6 n9 C
abhat=B\Y %估计参数 a,b 的值8 v4 L9 z' A3 z0 W
x=dsolve('Dx+a*x=b','x(0)=x0');
2 p, c5 X+ g9 E( ix=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)});
4 g6 }- i1 V/ \9 ]$ G2 t! ~* f! ~5 J3 @yuce=subs(x,'t',0:14) %计算预测值3 }0 c/ P$ f' `' M
digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测8 O& V9 e6 {; ?6 ~1 A. Q) _+ ]
值之后,或者不使用该语句1 c) I. _; s/ `% o
yuce(16)=yuce(15);
! k$ T0 |; n1 \' h7 P$ g4 I! Ax1_all=[x1,9.92,10.71];+ ?; g( F9 C, e; u
epsilon=x1_all-yuce %计算残差
# V* Q, z# {4 J7 E* e6 Ldelta=abs(epsilon./x1_all) %计算相对误差/ V5 Y* y5 ~2 R! t; ^0 K
delta_mean=mean(delta) %计算平均相对误差* ~) ?9 t, s+ G* ?' U& q1 F
x1_all_0=x1_all-x1_all(1); %数据列的始点零化像! R# O5 _* O5 A' T/ }; R& }- f$ A( k
yuce_0=yuce-yuce(1); %数据列的始点零化像* L4 a2 t4 A. o) H! M& n- ?2 I
s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
' u* J& i5 g2 Ps1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
# q, ~! j' f0 }8 k# H& att=yuce_0-x1_all_0;3 ~% t! A/ y9 Q6 q- j1 |, V% r7 {
s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));, G% ~5 [& ]: D' P
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度
2 n& i. ]& k2 }# N/ gc=std(epsilon,1)/std(x1_all,1) %计算标准差比值
! l% _0 x' F2 {* i/ G8 w. T: Y, F# ]: @0 I. K; a
4 结语
6 T" q. G7 K) N: Z% k道路交通安全系统是一个灰色系统,可以应用灰色系统理论进行研究和分析,其中 灰色预测模型和方法简便易用,在交通事故预测中得到了较多应用。GM(1,1)模型适用 于具有较强指数规律的序列,只能描述单调的变化过程,而 Verhulst 模型则适用于非单 调的摆动发展序列或具有饱和状态的 S 形序列。. O3 ~# L6 J4 w
————————————————* F( l5 ~4 w# K. }, E, A
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
( P1 b" O% u8 {4 ^# U! G: {- d原文链接:https://blog.csdn.net/qq_29831163/article/details/89715039
; J3 S. ]- o! {. K3 G' C
! w# W7 W! z$ N+ A
& m7 E1 U# ?1 Z2 s0 n
; i* J2 v4 X' O/ s. V- d2 H/ U4 h |
zan
|