优势分析
当参考数列不止一个,被比较的因素也不止一个时,则需进行优势分析。
实现
数据:8个因素对3个目标变量的影响。
通过matlab编程:
clc,clear
load data.txt %把原始数据存放在纯文本文件 data.txt 中
data = data';
% data = zscore(x);
n=size(data,1); %求矩阵的行数,即求所有因素的个数
m=size(data,2); %求矩阵的列数,即求观测时刻的个数
%由于载入的数据已经进行了标准化,所以这里不用在数据处理
% for i=1:n
% data(i,:)=data(i,:)/data(i,1); %标准化数据
% end
m1=3;
m2=8; %m1 母因素的个数,m2 子因素的个数
ck=data(m2+1:n,:); %提出母因素数据
bj=data(1:m2,:); %提出子因素数据
for i=1:m1
for j=1:m2
t(j,:)=bj(j,:)-ck(i,:);
end
mn=min(min(abs(t'))); %求母因素 i 的小差
mx=max(max(abs(t'))); %求母因素 i 的大差
rho=0.5; %分辨系数设置
ksi=(mn+rho*mx)./(abs(t)+rho*mx); %求母因素 i 对所有因素的关联系数
rt=sum(ksi')/m; %求母因素 i 对所有因素的关联度
r(i,:)=rt;
end
r
结果:
此结果与单独对y做灰色关联度分析,结果是一样的。这里每一行表示,代表一个目标变量。
具体内容请参考建模书籍。