Matlab计算皮尔逊相关系数corr、互相关系数xcorr

基本操作 专栏收录该内容
4 篇文章 0 订阅

计算皮尔逊相关系数——corr

%% 多变量间相关性分析和选取相关性强的变量方法属于“属性约减”范畴。
%即进行各变量间的相关性分析,选取相关性强的变量。
%可以使用皮尔逊Pearson相关性系数r进行衡量,如果其绝对值越接近1,则变量X,Y的相关性越强。
%对相关性系数进行排序,保留相关性强的变量,剔除相关性差的变量。
% 一般来说,取绝对值后,0-0.09为没有相关性,0.3-弱,0.1-0.3为弱相关,0.3-0.5为中等相关,0.5-1.0为强相关。
%但是,往往你还需要做显著性差异检验,即t-test,来检验两组数据是否显著相关,这在SPSS里面会自动计算的
%%
ys_data=xlsread('季度数据.xlsx');  %读入原始数据,第一列放因变量
[n,p]=size(ys_data);             % n行,p列
n=18;p=20;%直接指定
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
xyb=[ys_data;[1 xs(2,:)]];

xlswrite('季度数据pearson.xlsx',xyb); 

计算互相关系数——xcorr

%% 互相关分析(cross correlation)是利用互相关系
%数来估计整个时间序列中两个序列之间相关程度%的一种标准方法。
%其原理在于将被选指标相对于基%准指标前后移动若干个时间单位,
%然后对移动后的序列和基准指标序列求相关系数,最大的相关系数
%所对应的移动时间就是该指标领先或延迟的时间段

%%
n = 0:15;
x = 0.84.^n;
y = circshift(x,5);%x向右移动5个元素生成y,即y滞后x5阶
%求y相对于x的互相关系数,横轴为-5时对应相关系数最大为3.32,表示y滞后x5阶
%[c,lags] = xcorr(x,y);
%归一化相关系数,即使零滞后时的自相关等于1,并指定所求最大领先(滞后)阶数为10
[c,lags] = xcorr(x,y,10,'coeff');
stem(lags,c)

在这里插入图片描述

%%
%计算并绘制向量 x 的估计自相关。
%在零滞后时(此时 x 与自身完全匹配),出现最大峰值。
n = 0:15;
x = 0.84.^n;
[c,lags] = xcorr(x);
figure(2)
stem(lags,c)

在这里插入图片描述

  • 1
    点赞
  • 0
    评论
  • 19
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值