Matlab多变量间相关性分析和选取相关性强的变量

2025-11-06 03:00:57

1、首先,将样本数据表格读入到MATLAB中矩阵中保存,便于后续处理,注意表格样本数据的第一列建议放因变量。接着为自变量。

读取表格MATLAB程序如下:

ys_data=xlsread('样本数据.xlsx');  

读入的样本数据可以在工作区查看,如下图所示。

Matlab多变量间相关性分析和选取相关性强的变量

2、然后计算读入的样本数据表格矩阵的大小。

计算表格矩阵大小(维数即n行×p列)的程序如下:

[n,p]=size(ys_data);                  % n行,p列

计算结果如下图所示。

Matlab多变量间相关性分析和选取相关性强的变量

3、接下来将因变量赋值给Y,逐个将自变量赋值给X,将相关性系数数组的第一行添加变量所在列位置标记1:p。逐个计算自变量与因变量间的Pearson相关性,保存至xs数组第二行。

具体用MATLAB编写的程序如下:

for i=2:p

Y=ys_data(:,1);                       % 将因变量赋值给Y

X=ys_data(:,i);                     % 逐个将自变量赋值给X

xs(1,i-1)=i;                            % 将相关性系数数组的第一行添加变量所在列位置标记1:p

xs(2,i-1)=corr(X,Y,'type','Pearson');       %逐个计算自变量与因变量间的Pearson相关性,保存至xs数组第二行

end

计算结果如下图所示。

Matlab多变量间相关性分析和选取相关性强的变量

4、再将变量间相关性系数按大到小降序排列,存储在n_xs矩阵中。是后续重要变量挑选的依据。

程序如下:

[n_xs,id]=sort(xs(2,:),'descend');

运算结果如下图所示。

Matlab多变量间相关性分析和选取相关性强的变量

5、然后将相关性系数降序排列的id存储于nid_xs中,即保存变量所在位置随着相关性系数降序排列保存。

程序如下:

nid_xs=xs(1,id);

运算结果如下图所示。

Matlab多变量间相关性分析和选取相关性强的变量

6、接下来保存相关性系数位于前10的变量,并和因变量组成新的样本数据表。

程序如下:

for i=1:10 

xyb(:,i+1)=ys_data(:,nid_xs(i));            

end

xyb(:,1)=Y; 

运算结果如下图所示。

Matlab多变量间相关性分析和选取相关性强的变量

7、然后将新样本数据(共11个变量,第一列为因变量,接下来10个变量为与因变量相关性最强的10个自变量)xyb写到新样本数据表格。

程序如下:

xlswrite('新样本数据.xlsx',xyb);       

运算结果如下图所示。 

这样Matlab多变量间相关性分析和选取相关性强的变量程序就编写完成了。

Matlab多变量间相关性分析和选取相关性强的变量

8、下面是完整程序及截图:

ys_data=xlsread('原始数据.xlsx');  %读入原始数据,第一列放因变量

[n,p]=size(ys_data);                  % n行,p列

for i=2:p

Y=ys_data(:,1);                       % 将因变量赋值给Y

X=ys_data(:,i);                     % 逐个将自变量赋值给X

xs(1,i-1)=i;                            % 将相关性系数数组的第一行添加变量所在列位置标记1:p

xs(2,i-1)=corr(X,Y,'type','Pearson');       %逐个计算自变量与因变量间的Pearson相关性,保存至xs数组第二行

end

[n_xs,id]=sort(xs(2,:),'descend');         %将变量间相关性系数按大到小降序排列,存储在n_xs矩阵中

nid_xs=xs(1,id);                             %将相关性系数降序排列的id存储于nid_xs中,即保存变量所在位置随着相关性系数降序排列保存。

for i=1:10 

xyb(:,i+1)=ys_data(:,nid_xs(i));            %保存相关性系数位于前10的变量,并和因变量组成新的样本数据表

end

xyb(:,1)=Y; 

xlswrite('新样本数据.xlsx',xyb);            %将新样本数据(共11个变量,第一列为因变量,接下来10个变量为与因变量相关性最强的10个自变量)xyb写到新样本数据表格。

Matlab多变量间相关性分析和选取相关性强的变量

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢