在线时间 791 小时 最后登录 2022-11-28 注册时间 2017-6-12 听众数 15 收听数 0 能力 120 分 体力 36304 点 威望 11 点 阅读权限 255 积分 13852 相册 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)模型等更适用。* Y2 Y# l( N) ~' Z
; X! u. R; }4 a G1 u3 u Verhulst 模型主要用来描述具有饱和状态的过程, 即 S 形过程,常用于人口预测、生物生长、繁殖预测及产品经济寿命预测等。今年来 中国道路交通事故表现为具有饱和状态的 S 形过程,故可采用 Verhulst 模型对其进行预 测。 X% b0 p( x. f+ f1 C2 b m# w, w
" S; d! u$ r2 \4 t2 v3 w 1 Verhulst 模型简介
0 q% F8 g. G$ l1 H W Verhulst 模型的基本原理和计算方法简介图下
% G# a9 w1 e" e. i- U) h7 ]) j
: p6 ^: t' }3 a$ O) E
: I" `" q) T7 s5 {9 @* y6 a% n 4 D( q) ]* T( v: Q! R0 R
参数列的最小二乘估计0 ^4 u1 R7 ]7 Q8 j
6 s2 E. Q+ v/ N0 M0 @
+ r' C& \+ q& C% M, s
/ S2 s/ e6 X: U, z w# o
: D9 x# Q3 C' V, k; j3 [. p 定理 2 设灰色 Verhulst 模型如上所述,则白化方程的解(时间响应函数)为
3 ]9 t/ a# |& y + \/ r l6 i. C
/ a2 w: |) C' w; X1 s+ z9 E- W
0 L2 I: z" v- A, h6 I1 W
灰色 Verhulst 模型的时间响应序列为
$ V6 d+ J: t8 o. _
* |% L z1 S* s* j 3 l& E! {# {6 `- B9 q: j3 s, _
* n& h) b: O; o
累减还原式为7 q. Y6 H7 t9 v9 G
' ]) f, \ d- l! N : {# I- i! l1 F# P% k3 o! l0 D
$ f* P) K( Z! I3 E Z ^ 2 道路交通事故 Verhulst 预测模型+ _2 f; c; g6 x
, ]5 e8 D1 D$ ?( S, I% B' A
6 c% `$ U, [/ G; Y, d0 {/ u
; X5 A& R' @& p h* R1 ` 1990~2003 年中国道路交通事故死亡人数曲线见图 2,可见曲线呈 S 形,故可建立 Verhulst 模型进行预测,其建模过程如下。
$ _) F* a+ ]3 }" O
7 w% f& L* X* q
' Y9 {+ ]( k1 ~& U0 S 5 Y# U; D; @$ G" z# ]# { R
7 P1 g8 t7 c, _, Q
. R4 J2 V. G5 c1 J3 d
8 R. H& E- m7 w/ P 2 W' g; V% a# z* q
' R0 _3 _# H+ `: n( a
. p) n6 l$ t$ C3 Q0 }
(7)模型精度检验。
5 ]5 m/ Q- a/ Y# r6 {- \
) U/ s4 f# n8 L2 V 一个灰色模型要经过检验才能判定其是否合理。只有通过检 验的模型才能用来进行预测。检验方法有以下几种。: \* W# {0 G) X/ c6 _& w
q! B' D6 }6 K8 R
① 残差合格模型8 Y$ r% w0 d' t+ t' j$ p( w o
) b/ O2 m6 b: _3 |6 g' t" `
/ S* P( y n9 f4 X
- r9 T$ s! O: F. k2 {- p) d; y8 ?' ~
$ O. N. h3 [5 s+ g2 r & f1 o- p Y& `+ N! f' T
② 关联度合格模型! j% u* L! E" z; |7 M! A0 ^
" r h1 P1 C5 P7 p; H / P- P9 a# K, C9 F
. c# A# `$ R! H7 y# O4 u3 a ③ 均方差比合格模型
, @7 v, |7 u+ `$ Y
+ c2 g. P$ O' k& W, [ 6 O+ J' W2 y; i7 {/ F
, E: e4 P6 A) v) P
④ 小误差概率合格模型
7 Q; z1 I8 F0 j% [& d+ r- L
$ v; \' R& H6 h8 k5 z ( P% l/ P U# V
J8 b( K( A* }' z5 K 由上可知,给定一组取值,就确定了检验模型精度的一个等级。常用的精度等级见 表 15,可供检验模型参考。一般情况下,最常用的是相对误差检验指标。7 w/ ?* P2 c) _$ [2 C/ N
; P$ g ]9 D3 Y5 x b2 A; S3 M
$ X9 z1 g2 O+ A7 M, W
' J: Y; _" c# X: S! r 由以上检验方法,可得 1990~2003 年中国道路交通事故死亡人数 Verhulst 模型误 差检验值见表 16。" Z x, ~5 L/ G( r3 m
# f: z1 t6 K7 o7 a" L) i
6 I# d% M) |& Q9 p) Z4 b/ Z
8 [3 }7 o; B( Y
% I6 o: `) `( e4 W5 N
1 T( B+ n2 U% j6 n 计算的 MATLAB 程序如下:2 x4 \1 ? t6 C# Y
3 U1 h7 V8 X' C1 M$ b/ w5 D clc,clear
' C5 b4 W3 Y1 D4 r x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35. D9 E+ {% A5 ]6 C8 Z
9.39 10.59 10.94 10.44];, v/ p' k$ q# u) F @
n=length(x1);
# b8 F2 S% G" |+ y0 i nian=1990:2003;. w' y* x( k& w# P% o
plot(nian,x1,'o-');
8 e- @+ z: C, y, U x0=diff(x1);
; n8 }9 \# Y: A' P! `" r$ x7 x x0=[x1(1),x0]
- t7 X4 V8 [6 T for i=2:n
1 I0 G: M3 R1 y- n( h* ^3 | z1(i)=0.5*(x1(i)+x1(i-1));
# { c1 y2 T2 z1 T end
3 M. o1 S6 N2 }5 B$ A% n z1, O' D9 }; U8 `( q6 b( n, a
B=[-z1(2:end)',z1(2:end)'.^2]6 _* l6 q- H6 s8 n$ v
Y=x0(2:end)' f G. `/ A4 x% e2 B# h
abhat=B\Y %估计参数 a,b 的值
$ K8 U1 O, l! X$ `, _ x=dsolve('Dx+a*x=b*x^2','x(0)=x0'); %求解常微分方程1 Q9 ?+ @8 ~( T* X$ K
x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)}); %代入参数值6 J7 Q, F- O' `, w. k8 p
yuce=subs(x,'t',0:14) %计算预测值
7 u" k: g0 i* Z/ I digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测值之后,或者不使用该语句
- `9 u" s- ?3 H" D; s yuce(16)=yuce(15);' e+ t) w' s, @% i
x1_all=[x1,9.92,10.71];" c8 r3 [2 i( j* k
epsilon=x1_all-yuce %计算残差
5 h- _* P, y7 o. ^: u5 b delta=abs(epsilon./x1_all) %计算相对误差2 |8 U, h2 ?/ L' i9 d! ]% J
delta_mean=mean(delta) %计算平均相对误差
% N: d2 t9 y4 M. J$ ~5 h x1_all_0=x1_all-x1_all(1); %数据列的始点零化像
/ B/ o/ s8 q) a2 h yuce_0=yuce-yuce(1); %数据列的始点零化像; s4 ]! _$ ?. f% |; @2 u
s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
+ y% G7 \" s6 A% j6 B2 M4 m s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));
8 [8 S0 j6 \4 u& n( F" F3 k. ?2 o+ x tt=yuce_0-x1_all_0;
( D5 O% A4 _; J ^: M( b" h: t* h, U3 Z s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));
( K' u' g) R" \5 K/ u+ \" v absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度
& Q# V, u* e1 S+ {0 J& o* s8 l; p c=std(epsilon,1)/std(x1_all,1) %计算标准差比值, r- d9 k# Y- B' n7 }; \9 z
8 y% D) ^5 M* F Y+ r* x 3 预测结果比较
$ U/ x: ?) x" k7 t- t( J+ I7 ~ 7 d1 M: k" N5 f0 ~0 [
0 M7 ~) {" b1 L* O
* |6 b4 j) F& L + p5 @0 c. Q6 r6 R
比较表 16 和表 17 可知,Verhulst 模型预测精度与 GM(1,1)模型几乎没有差别。 计算的 MATLAB 程序如下:
2 t, M' G0 Y" f c# { M3 A / ?8 U- K5 q2 P- C) v7 \( f( g% `' A/ T
clc,clear# b6 w# K; z. ^: m* w5 ~4 R
x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37 7.39 7.81 8.35
5 b4 j1 z+ P$ T6 [ 9.39 10.59 10.94 10.44];
% m! a4 ?7 q$ Z/ x$ Y n=length(x1);
$ H3 X, m: q7 s- u) ~0 _9 C x0=diff(x1);
" X! A# d& B. ~6 g2 ?; O5 t/ t M x0=[x1(1),x0]+ i. O+ r7 r" x$ S# e! T
for i=2:n
+ j+ S. i/ J3 F0 b3 H, w0 C N z1(i)=0.5*(x1(i)+x1(i-1));
8 s6 |; ^# t8 f8 p1 G! Z2 f end3 {. a! J' S; k) D5 K, _% h, h
B=[-z1(2:end)',ones(n-1,1)];. }3 w4 b4 k! }) j8 [
Y=x0(2:end)';4 O" ^9 y4 \# x0 t# A! w
abhat=B\Y %估计参数 a,b 的值* n) c4 J4 L. h9 }: |# K
x=dsolve('Dx+a*x=b','x(0)=x0');5 L# }, i/ H4 }1 t3 O: @
x=subs(x,{'a','b','x0'},{abhat(1),abhat(2),x1(1)});
4 z2 [& F9 S3 `- m yuce=subs(x,'t',0:14) %计算预测值+ i) D3 V: s5 I% y& H8 Q6 \1 n1 L
digits(6); x=vpa(x) %显示微分方程的解,为了提高计算精度,把该语句放在计算预测
7 c+ U( k5 |" P$ F 值之后,或者不使用该语句
% D3 h, [/ _ X0 ~0 Q8 S/ x5 y! p yuce(16)=yuce(15);
6 {% Z: f9 H) t& X+ I7 H6 L x1_all=[x1,9.92,10.71];6 c- Z8 E$ @, {7 q/ j
epsilon=x1_all-yuce %计算残差7 J4 C# k2 s/ J6 o2 @+ o2 `% \
delta=abs(epsilon./x1_all) %计算相对误差. L6 i" d& {# m1 n) a! w
delta_mean=mean(delta) %计算平均相对误差
* D% ~# W; Z, s" u; s% D, ?5 w( @( G2 D x1_all_0=x1_all-x1_all(1); %数据列的始点零化像0 A. ?" U7 C; k: P1 s6 F& ^
yuce_0=yuce-yuce(1); %数据列的始点零化像
8 p S" c7 w6 ~. q s0=abs(sum(x1_all_0(1:end-1))+0.5*x1_all_0(end));
4 e. C* x1 f' T3 k8 t s1=abs(sum(yuce_0(1:end-1))+0.5*yuce_0(end));4 r. V s! P/ F+ ^% K
tt=yuce_0-x1_all_0;1 V! ^1 G% P8 I2 _" M+ N! B+ A" @
s1_s0=abs(sum(tt(1:end-1))+0.5*tt(end));& _$ H! u1 ?, N: a, P) \
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度 T$ \6 a0 S( M1 D0 I/ H( e
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值2 ^5 L- G# I- l
3 |- w5 M! r) X, G2 y 4 结语
, A2 A' \2 \: K5 o 道路交通安全系统是一个灰色系统,可以应用灰色系统理论进行研究和分析,其中 灰色预测模型和方法简便易用,在交通事故预测中得到了较多应用。GM(1,1)模型适用 于具有较强指数规律的序列,只能描述单调的变化过程,而 Verhulst 模型则适用于非单 调的摆动发展序列或具有饱和状态的 S 形序列。& y( w* g1 e, y* f/ z) r" o; ?
————————————————
/ U' V! Y3 `. ? 版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
{. g- T; w( o# [' u. L 原文链接:https://blog.csdn.net/qq_29831163/article/details/897150391 X- d1 U! w+ @
) a+ i- G; T" p- p! E# ?, F2 P
& X& V6 f( ]+ R) [+ D2 X' {$ T
$ a1 d5 t" b* j/ \! d
zan