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

Matlab多变量间相关性分析和选取相关性强的变量方法属于“属性约减”范畴。即进行各变量间的相关性分析,选取相关性强的变量。可以使用皮尔逊Pearson相关性系数r进行衡量,如果其绝对值越接近1,则变量X,Y的相关性越强。对相关性系数进行排序,保留相关性强的变量,剔除相关性差的变量。

操作方法

  • 01

    首先,将样本数据表格读入到MATLAB中矩阵中保存,便于后续处理,注意表格样本数据的第一列建议放因变量。接着为自变量。 读取表格MATLAB程序如下: ys_data=xlsread('样本数据.xlsx'); 读入的样本数据可以在工作区查看,如下图所示。

  • 02

    然后计算读入的样本数据表格矩阵的大小。 计算表格矩阵大小(维数即n行×p列)的程序如下: [n,p]=size(ys_data);                  % n行,p列 计算结果如下图所示。

  • 03

    接下来将因变量赋值给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 计算结果如下图所示。

  • 04

    再将变量间相关性系数按大到小降序排列,存储在n_xs矩阵中。是后续重要变量挑选的依据。 程序如下: [n_xs,id]=sort(xs(2,:),'descend'); 运算结果如下图所示。

  • 05

    然后将相关性系数降序排列的id存储于nid_xs中,即保存变量所在位置随着相关性系数降序排列保存。 程序如下: nid_xs=xs(1,id); 运算结果如下图所示。

  • 06

    接下来保存相关性系数位于前10的变量,并和因变量组成新的样本数据表。 程序如下: for i=1:10 xyb(:,i+1)=ys_data(:,nid_xs(i)); end xyb(:,1)=Y; 运算结果如下图所示。

  • 07

    然后将新样本数据(共11个变量,第一列为因变量,接下来10个变量为与因变量相关性最强的10个自变量)xyb写到新样本数据表格。 程序如下: xlswrite('新样本数据.xlsx',xyb); 运算结果如下图所示。 这样Matlab多变量间相关性分析和选取相关性强的变量程序就编写完成了。

  • 08

    下面是完整程序及截图: 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写到新样本数据表格。

(0)

相关推荐

  • excel如何做相关性分析

    excel做相关性分析教程1:输入我们要分析的数据,这里以分析促销和营业额的关系为例进行.数据如下图. excel做相关性分析教程2:点击工具---数据分析,如下图. excel做相关性分析教程3:在 ...

  • excel2016的相关性分析功能使用方法

    excel作为我们日常工作使用的图标类软件,完全可以方便快捷的处理我们的数据,小编在这里给大家介绍一下excel的相关性分析功能是这么使用的具体如下:1. 首先我们在我们的电脑桌面找到excel表格的 ...

  • SPSS做相关性分析并将结果导出为excel文件

    利用spss做相关性分析,手动录数据比较麻烦,可以将结果直接导出为excel,再进行处理,得到想要的结果. 操作方法 01 将数据导入spss后,点击菜单栏[分析]-[相关]-[双变量],出现如图所示 ...

  • spss如何进行相关性分析(Pearson相关分析)

    spss如何进行相关性分析,相关性分析首先要看两变量的情况,符合正态分布,样本量大于30-50,线性关系,而且是连续变量,可以用Pearson分布 操作方法 01 样本数据能用Pearson相关就用这 ...

  • 提高 WordPress 搜索的相关性

    操作方法 01 实在扛不住 Google 自定义搜索的速度了,把之前的搜索换回了 WordPress 自带的搜索,但是 WordPress 的默认搜索结果是按照文章的发布时间来排序的,这样的搜索结果的 ...

  • 拿到一份数据怎么去分析(如何在一堆数据中找到想要的)

    "如果你不能量化它,你就不能理解它,如果你不能理解就不能控制它,不能控制也就不能改变它."做数据分析经常会遇到一个问题:从一堆海量数据,不知道怎么分析,怎么得出结论:经常空有一堆数 ...

  • 利用spss进行问卷调查数据的效度分析

    信效度是衡量一份问卷测试结果的准确性和稳定性的依据.问卷设计完成之后到分析结束,一般要经过两次信效度分析.一次是预调查时,一次是正式分析. 操作方法 01 定义 信度分析用于测量样本回答结果是否可靠, ...

  • Spss软件使用教程:[9]交叉表分析描述

    下面介绍的是数据分析描述中的交叉表分析描述. 主要用于非数值行变动的相关性分析,在理论分析和实际运用中起着广泛的应用. 操作方法 01 首先,新建或者打开一组数据.我这里使用的是案例中的数据,直接进行 ...

  • Excel中如何数据处理并绘制成分析图形

    Execel是office其中一个部件,除了数据表格功能以外,还有通过图线进行相关性分析或者趋势预判的强大功能.例如:如何通过历年销售预估明年销售额计划.如何分析消费额与消费者年龄关系.如何对正交试验 ...