可以分析系统中哪个变量对系统影响最大
基本思想:根据序列曲线几何形状的相似程度来判断其联系是否紧密
应用一:进行系统分析
例:
![](https://i-blog.csdnimg.cn/blog_migrate/33f9a290a27fa7c854103f26a28489cd.png)
step1:画统计图
选中要画图标的数据➡
![](https://i-blog.csdnimg.cn/blog_migrate/5ace4271de41c24f977a45407d5f834c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9b22eae93e99ba082429d2f12fddf46f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fecb66df442e171d89f27f9b05d09a41.png)
为啥我做的表格年份不是横轴???
看更新1统计图绘制叭
step2:确定分析数列
母序列(参考数列,母指标):类似于因变量y(如,经济系统的GDP)
子序列:类似于自变量x(经济系统中的一、二、三产业,1+2+3=gdp)
step3:对变量进行预处理
方法:先求出每一个指标的均值,再用该指标中的每个元素除以其均值
![](https://i-blog.csdnimg.cn/blog_migrate/5e4d20550abd518399609a064000a3d9.png)
求均值用AVERAGE函数
一个省力小技巧:在求元素/平均值的操作时,只需要自己对一个元素写一个计算公式
即左上角的元素。按一次F4,是把行和列都锁定住,再按一次F4是把行锁定,列可以动。因此只要按两次F4就可以直接向右拉,然后每列的平均值也可以跟着变了。
step4:计算子序列中各个指标与母序列的关联系数
![](https://i-blog.csdnimg.cn/blog_migrate/2331b19e827563b098ba1b34bd395e15.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b64436e6ca3796100aa8a98fac079360.png)
要求两级最小差和两级最大差(注意相减的两个值已经预处理好了,也就是统一了量纲之类的),说白了就是把每一列的数据都与x(0)数据相减(注意是行元素要对应的),然后在相减后的数据中(也就是上边的图片),挑出一个最大值一个最小值。
然后把,最小值记为a,最大值记为b
解释一下下边这个y⬇
分母上那个带绝对值的就是上边那张图片表
ρ是分辨系数,一般取0.5,所以分子是个常数
i从1~m(列数,也是子序列数);k从1~n(行数,样本数)
为了运算简洁,最好把a,b,ρb,a+ρb都在表格中算出来
结果就是下边图片里的表了
![](https://i-blog.csdnimg.cn/blog_migrate/5bba30c6ff124687cafc0947fe6807fb.png)
求每一列平均值
p.s.
![](https://i-blog.csdnimg.cn/blog_migrate/da57c99ccbd33e189181be4404d45b34.png)
![](https://i-blog.csdnimg.cn/blog_migrate/057a7465313cf734cabb25b5ad0d6c7f.png)
比较三个列的数值哪个最大,谁就是关联度最大(就是上边图片彩色的数)
一些碎碎念:为啥明明画的图标是第二产业感觉影响最大但是得到的结论是第三产业?
![](https://i-blog.csdnimg.cn/blog_migrate/0b46abb3a3a52c788797bb7d05bad392.png)
据清风的意思是,绿色线有一个突变(绿色是三,黄色是二)http://cn.mathworks.com/login
不过我觉得按这个方法得到的结论emmmm我理解不了
参加美赛不要用灰色关联分析!!!(歪果仁不知道
matlab代码
mean的用法
M = mean(A) 返回 A 沿大小不等于 1 的第一个数组维度的元素的均值。
如果 A 是向量,则 mean(A) 返回元素均值。
如果 A 为矩阵,那么 mean(A) 返回包含每列均值的行向量。
repmat(A,1,size(A,2));
这时候取A列向量
repmat(A,size(A,1),1);
这时候取A行向量
min(min(A));求一个矩阵元素的最小值
max(max(A));
什么时候用标准化回归?什么时候用灰色关联分析?
样本数大用标准化回归
样本数小用灰色关联分析(美赛不可)
母序列中有多个指标怎么分析?
![](https://i-blog.csdnimg.cn/blog_migrate/ea79ff34dfaae3b3f3fde182e3a7debe.png)
应用二:综合评价
以河流评价为例
step1:对指标正向化
step2:对正向化的矩阵进行预处理
先求出每一个指标的均值,再用该指标中的每个元素除以其均值
step3:将预处理的矩阵每一行取出最大值构成母序列(虚构滴,因为相当于没有母序列也就是 因变量)
![](https://i-blog.csdnimg.cn/blog_migrate/0d7da7f9ac627788a06ecbea8ca09cc1.png)
x1 x2 x3 x4是子序列,x0是构造的母序列
step4:计算各个指标与母序列的灰色关联度
![](https://i-blog.csdnimg.cn/blog_migrate/ae8b6a2afb504f9c3fe6acf0400a5dd8.png)
step5:计算各个指标的权重
![](https://i-blog.csdnimg.cn/blog_migrate/d7990337c3d256dbfe558cf8f80d9b05.png)
step6:第k个评价对象的得分是:
![](https://i-blog.csdnimg.cn/blog_migrate/b9fad881559611c0ae91ea1225550571.png)
没戳,就是r,不是w
(反正r或者w都一样的
step7:对得分进行归一化
![](https://i-blog.csdnimg.cn/blog_migrate/832105f21e8419637cf575c0fff527f5.png)
matlab代码
求每一行/列的最大值
max(Z,[],2);
2表示按照行取最大值
如:A=[1 2 ;5 9] B=[-5 4;3 11]
max(A,B)=[1 4;5 11]
就是A和B中对应位置两两比较,将大的那一个选出来
那么把B置空
max(A,B,1)=[5 9]输出每一列的最大值
2就是每一行的最大值[5;9]
sum(A,2)按行相加得到列
记不住啊啊啊啊
最终得到的结果(mat)可以复制粘贴到excel中
![](https://i-blog.csdnimg.cn/blog_migrate/71b35cc233d216fc326551ceec67c93c.png)
然后弄个排序,再画个统计图