This is my blog.
灰色预测貌似是数模中的很重要的一部分
然后 我知道就一个模版之后
嗯,敲了一遍,大概就是之后改数据就行
突然觉得编程很水
主要还是靠思路取胜的
果然我还是适合打酱油
不过,干这事估计我的英语阅读能提高吧!
哎,为什么我一个女孩子
英语可以那么弱啊
唔,不开心
灰色不是黑也不是白。。。
基本理论
灰色关联度的本质是依据曲线态势相近程度来分辨数列的相关度。
灰色模型是基于常微分理论的,其记号为\(GM(M,N)\)。其中,N
表示变量的个数,M
表示常微分方程的阶数。
适用范围
灰色模型只适用于连续、平滑的事件趋势中。且只有符合一阶线性常微分方程的数列或矩阵才能用灰色模型来预测,否则会有很大的误差。
经典灰色模型 GM(1,1)
求解步骤
- 数据的累加(AGO)
不仅可以降噪,还可以加强数据规律的显露
\(x^{(1)}(k)=\sum_{i=1}^kx^{(0)}(i),k=1,2,3,\cdot\cdot\cdot,n\) - 求出数列\(x^{(1)}\)的导数
\(\left. \frac{dC}{dt} \right| _k=x^{(1)}(k)- x^{(1)}(k-1)=x^{(0)}(k)=d(k)\) - 定义数列\(x^{(1)}(k) \)的紧邻均值(背景值)
\(z^{(1)}(k)=\frac{x^{(1)}(k)+x^{(1)}(k-1)}{2},k=2,3,4\cdot\cdot\cdot\)
称新数列\(z^{(1)}=(z^{(1)}(2),z^{(1)}(3),z^{(1)}(4),\cdot\cdot\cdot,z^{(1)}(n))\)为\(x^{(1)}\)的紧邻均值数列。 - 定义\(GM(1,1)\)灰微分方程
\(x^{(0)}(k)+az^{(0)}(k)=b\)a
称为“发展系数”,b
称为“灰作用量”。
令\(Y=(x^{(1)}(2),x^{(1)}(3),x^{(1)}(4),\cdot\cdot\cdot ,x^{(1)}(n))^T,u=(a,b)^T,B=\)
即可表示为\(Y=Bu\)
\(\breve{u}=(\breve{a},\breve{b})^T=(B^TB)^{-1}B^TY\)
这里所得到的\(\breve{u}\)是近似值
- 白化GM(1,1)模型
离散到连续的过程
白化模型
\(\frac{dx^{(1)}}{dk}+ax^{(1)}=b\) - 求解模型
将5
中的数据变形可得
连续函数表达式 \(X=(x^{(0)}(1)-\frac ba)e^{-ak},k=0,1,2,3,\cdot\cdot\cdot\)
具体数学表达式 \(\breve{x}^{(1)}(k+1)=x^{(0)}(1)-\frac ba)e^{-ak}+\frac ba\)
将数据累减(IAGO)从而还原为
\(\breve{x}^{(0)}(k+1)=\breve{x}^{(1)}(k+1)-\breve{x}^{(1)}(k),k=1,2,3,\cdot\cdot\cdot,n\) - 模型检验
1)相对残差Q检验(越小越好)
\(\varepsilon_k=x^{(k)}-\breve{x}^{(k)}\)
\(Q=\frac 1n\sum_{k=1}^n\frac {\varepsilon_k}{x^{(0)}(k)}\)
2)方差比C检验(越小越好)
\(\varepsilon^{(0)}=(\varepsilon_1,\varepsilon_2,\varepsilon_3,\cdot\cdot\cdot,\varepsilon_n)\)
\(\overline{x}=\frac 1n\sum_{k=1}^nx^{(0)}(k)\)
\(\overline{\varepsilon}=\frac 1n\sum_{k=1}^n\varepsilon^{(0)}(k)\)
\(S1^2=\frac 1n\sum_{(k=1)}^n(x^{(0)}(k)-\overline{x})\)
\(S2^2=\frac 1n\sum_{(k=1)}^n(\varepsilon^{(0)}(k)-\overline{\varepsilon})\)
3)小误差概率p的检验(置信水平取0.5时)(p越大越好)
\(p=P(\left|\varepsilon_k-\overline{\varepsilon} \right| <0.6745S1)\) - 模型的预测
通过计算数列的“级比”来判断是都可用GM(1,1)来预测
\(\lambda(k)=\frac {x^{(0)}(k-1)}{x^{(0)}(k)},k=2,3,4,\cdot\cdot\cdot\)
如果\(\lambda(k)\)能够落入到\(\left[e^{-\frac{2}{n+1}},e^{\frac{2}{n+1}}\right]\)区间内,则可用GM(1,1)来预测。
Matlab
|
|
也可以直接用6
中的具体数学公式:\(\breve{x}^{(1)}(k+1)=x^{(0)}(1)-\frac ba)e^{-ak}+\frac ba\)来编写程序;
|
|
灰色Verhulst模型
曲线为S
型
步骤
- IAGO
\(x^{(0)}(k)=x^{(1)}(k)-x^{(1)}(k-1),k=2,3,4,\cdot\cdot\cdot,n\) - 对原始数列\(x^{(1)}\)作紧邻均值
\(z^{(1)}(k)=\frac{x^{(1)}(k)+x^{(1)}(k-1)}{2},k=2,3,4\cdot\cdot\cdot\) 定义数据矩阵
B =
Y =计算参数
\(\breve{u}=(\breve{a},\breve{b})^T=(B^TB)^{-1}B^TY\)- 定义Verhulst模型白化矩阵
\(\frac{x^{(1)}}{dk}+ax^{(1)}=b(x^{(1)})^2\) - 求解Verhulst模型白化矩阵
\(\breve{x}^{(1)}(k+1)=\frac{\breve{a}x^{(0)}(1)}{\breve{b}x^{(0)}(1)+\breve{a}-\breve{b}x^{(0)}(1))e^{\breve{a}k}}\) - 检验模型
Matlab
|
|
结束语
一般用灰色模型的时候,都用经典型的,且可直接用上述代码,只需把数据更换一下即可。(解法中一般较多使用公式法的那种)
灰色模型也是一种拟合。
后记
早上踩着白雪
估计是没有人踩出路来
也估计是自己走路的时候总是爱想别的事的缘故
(突然想到,中午上课的时候,如果看到我们班的人,就很开心,
看着他鞋子走路,既不会迷路,也不会迟到,还可以乱想事情
hhhhh,感觉自己是个猥琐狂- -
直接单膝跪地 摸到了软软的雪
看了琅琊榜2-36集,超级燃,大爱孙淳老师
重温了琅琊榜1,其实我觉得2拍的不烂
都超级好看呢!!!
感觉那才是大爱大情大义
bgm超级入境
找到了《月亮与六便士》
不过不是英版的,打算先看看
其实本来打算翻译这本的
偶然看到的片段觉得很美
嘻嘻嘻
打算上午出门,下午就窝宿舍了
最近偷懒一会咯
转载请注明出处,谢谢。
愿 我是你的小太阳