广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

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

    来源:网络收集  点击:  时间:2024-02-29
    【导读】:
    Matlab多变量间相关性分析和选取相关性强的变量方法属于“属性约减”范畴。即进行各变量间的相关性分析,选取相关性强的变量。可以使用皮尔逊Pearson相关性系数r进行衡量,如果其绝对值越接近1,则变量X,Y的相关性越强。对相关性系数进行排序,保留相关性强的变量,剔除相关性差的变量。工具/原料more电脑matlab多变量样本数据表格,空白新样本数据表格方法/步骤1/8分步阅读

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

    读取表格MATLAB程序如下:

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

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

    2/8

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

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

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

    计算结果如下图所示。

    3/8

    接下来将因变量赋值给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

    计算结果如下图所示。

    4/8

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

    程序如下:

    =sort(xs(2,:),descend);

    运算结果如下图所示。

    5/8

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

    程序如下:

    nid_xs=xs(1,id);

    运算结果如下图所示。

    6/8

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

    程序如下:

    for i=1:10

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

    end

    xyb(:,1)=Y;

    运算结果如下图所示。

    7/8

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

    程序如下:

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

    运算结果如下图所示。

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

    8/8

    下面是完整程序及截图:

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

    =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

    =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程序置于同一文件夹。

    提前新建好空白数据表格新样本数据Excel表格放到程序文件夹内。

    MATLABPEARSON相关性多变量间相关性
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_173640.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-04 19:22:27  耗时:0.026
    0.0261s