精华内容
下载资源
问答
  • matlab相关性分析

    千次阅读 2020-11-14 21:52:22
    相关性分析 一、皮尔逊相关系数 (person) 计算公式: 样本协方差:Cov(x,y)=∑i=1n(Xi−Xˉ)(Yi−Yˉ)n−1{Cov(x,y)=\frac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})}{n-1}}Cov(x,y)=n−1∑i=1n​(Xi​−Xˉ)(Yi​...

    相关性分析

    一、皮尔逊相关系数

    (person)

    计算公式:

    样本协方差:Cov(x,y)=i=1n(XiXˉ)(YiYˉ)n1{Cov(x,y)=\frac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})}{n-1}}

    样本标准差Sx=i=1n(XiXˉ)2n1{S_x=\sqrt{\frac{\sum_{i=1}^n(X_i-\bar{X})^2}{n-1}}}

    样本Person相关系数:rxy=Cov(X,Y)SxSy{r_{xy}=\frac{Cov(X,Y)}{S_xS_y}}

    1.1 数据间的相关性检验

    这里的相关系数指皮尔逊相关系数。

    注意:要先进行描述性统计,即在matlab或spass中画出散点图,在线性的前提下进行检验其相关系数。

    (SPSS中:图形 - 旧对话框 - 散点图/点图 - 矩阵散点图)

    相关系数越接近于1,就越正相关;越接近于-1,则越负相关。

    [R,P]=corrcoef(Test)

    其中,

    1、Test是一个矩阵,每一列为同一指标的一组数据,每一行是不同的指标,

    2、R是皮尔逊相关系数,(即使相关系数接近于1或-1,也不一定就相关,受异常值的影响,这里在成线性关系的前提下检验才有意义)

    3、P是一种概率值,若P<0.01,表示在99%的置信水平下,拒绝原假设;P<0.05或0.1同理,一般与0.05比较。

    (R和P都是两两进行比较后得到的方阵。)

    这里的原假设是H0{H_0}:这两组数据的相关系数等于0。

    那么拒绝原假设,则表示相关系数显著于0,并不是等于0的,有一定的相关性。

    1.2 正态分布检验

    前面检验相关系数时,前提除了要成线性关系,还要服从正态分布。

    skewness(x) %偏度S,x是一个向量
    kurtosis(x) %峰度K

    偏度就是判断数据的分布的图像是否两边均匀分布

    峰度就是判断分布图像的尖锐程度,服从正态分布的话,这个值是3。

    1.2.1 雅克-贝拉检验

    (Jarque-Bera test)

    适用于大样本情况 n>30 ,也称 JB 检验 JB=n6[S2+(K3)24]{JB=\frac{n}{6}[S^2+\frac{(K-3)^2}{4}]}

    matlab进行JB检验的语法:
    [h,p]=jbtest(Test(:,1),0.05) [h,p] = jbtest(Test(:,1),0.05)
    其中,

    1、第一个参数为一个向量,表示一个指标下的一组数据;

    2、第二个表示显著性水平,一般取0.05;

    3、返回值 h 为1或0,1表示拒绝原假设,0表示接收原假设。

    4、p就是一个概率值,p<0.05则h等于1。

    (这里h和p都是一个数值)

    这里的原假设H0{H_0}:这组数据服从正态分布。

    例如:h为0,表示这组数据在95%的置信水平下,接收原假设,服从正态分布。

    1.2.2 夏皮洛-威尔克检验

    (Shapiro-wilk)

    适用于小样本 3≤n≤50 ,用软件spass,导入数据后,在“分析”->“描述统计”->“探索”–>“图”,选中”含检验的正态图“即可。

    1.2.3 Q-Q图

    要求样本数据量非常大(不推荐)

    matlab中的函数 qqplot(Test(:,1))

    1、只要一个参数,值为一个向量

    2、无返回值,出现一个figure

    若图像几乎在一条直线上,则近似于正态分布。

    二、斯皮尔曼相关系数

    (spearman)

    计算公式:rs=16i=1ndi2n(n21){r_s=1-\frac{6\sum_{i=1}^nd_i^2}{n(n^2-1)}}

    其中,di{d_i}表示Xi{X_i}Yi{Y_i}之间的等级差,等级就是那一列数据按从小到大排序的排名。

    另一种定义

    斯皮尔曼相关系数被定义为等级之间的皮尔逊相关系数

    matlab中的内置函数 corr 使用的是第二种定义方式。

    2.1 corr 计算Spearman相关系数

    用法

    (1)corr(X,Y,‘type’,‘Spearman’)

    X, Y为列向量

    (2)corr(X,‘type’,‘Spearman’)

    X为矩阵,计算X各列之间的相关系数

    2.2 相关系数的检验

    小样本

    n≤30,直接查临界表即可,计算得到的相关系数 r 要大于临界值,才能得到显著的结论。

    大样本

    比较p值

    corr函数用两个参数接收时,返回的第二个参数为p值。

    三、总结

    person相关系数要满足 连续数据、正态分布、线性关系,满足这些条件的情况下优先使用person相关系数,否则就使用Spearman相关系数,非线性、不满足正态分布等都可以用spearman。

    除此之外,定序数据之间也用spearman相关系数,例如,优、良、差。

    一般情况下,很难满足正态分布的条件,所以我们用spearman相关系数。

    展开全文
  • matlab图片相关性分析

    2021-03-22 17:30:29
    测试—by易家扬
  • 混沌图像加密以后用来分析图像相邻像素的相关性
  • matlab 图像相关性处理

    2013-05-30 16:42:32
    通过处理两个图像得到速度场。用于PIV实验处理。
  • MATLAB图像相关性分析程序,混沌图像加密以后用来分析图像相邻像素的相关性
  • MATLAB 数据点相关性计算

    热门讨论 2010-03-14 21:43:43
    MATLAB 数据点相关性计算MATLAB 数据点相关性计算
  • 相关性分析 matlab

    2018-08-11 14:57:21
    相关性分析的matlab代码,测试可行;主要用于数据分析
  • matlab开发-图像相关性

    2019-08-26 01:21:50
    matlab开发-图像相关性。使用标准化的互相关:类文件和演示在成对的图像中查找匹配的特征。
  • MATLAB分析曲线相关性

    千次阅读 2018-09-13 11:33:20
    有很多种方法,比如相关: corrcoef(y1, y2) 示例代码: &gt;&gt; corrcoef(a,b) ...其中(1,1)与(2,2)为aa和bb相关系数,(1,2)为a,b相关系数,(2,1)为b,a相关系数 ...norm(y1 - mean(y2...

    有很多种方法,比如相关:

    corrcoef(y1, y2)

    示例代码:

    >> corrcoef(a,b)

    ans =

        1.0000    0.6440
        0.6440    1.0000

    其中(1,1)与(2,2)为aa和bb相关系数,(1,2)为a,b相关系数,(2,1)为b,a相关系数

    比如R-square (VAF):

    norm(y1 - mean(y2))^2/norm(y2 - mean(y2))^2

    比如RMS (Root mean square):

    sqrt(sum((y1 - y2).^2)/length(y1));

    展开全文
  • 关于MATLAB图像相关性分析的问题

    万次阅读 2008-10-20 13:53:00
    对于下边的程序,它的功能是对读入的图像随机的选取1000对像素点,然后对像素点进行相关性分析:clear all;a=imread(lenac.bmp);for k=1:1000 i=fix(rand*250); j=fix(rand*250); x(k)=a(i+1,j+1); y(k)=a(i+2,j...

     对于下边的程序,它的功能是对读入的图像随机的选取1000对像素点,然后对像素点进行相关性分析:
    clear all;
    a=imread('lenac.bmp');
    for k=1:1000
        i=fix(rand*250);
        j=fix(rand*250);
        x(k)=a(i+1,j+1);
        y(k)=a(i+2,j+1);
    end
    sum=0.0;
    for i=1:1000
        sum=sum+x(i);
    end
    ex=sum/1000;
    sum=0.0;
    for i=1:1000
        sum=sum+y(i);
    end
    ey=sum/1000;
    sum=0.0;
    for i=1:1000
        sum=sum+x(i)*x(i);
    end
    ex2=sum/1000;
    sum=0.0;
    for i=1:1000
        sum=sum+y(i)*y(i);
    end
    ey2=sum/1000;
    dx=ex2-ex*ex;
    dy=ey2-ey*ey;
    sum=0.0;
    for i=1:1000
        sum=sum+x(i)*y(i);
    end
    exy=sum/1000;
    cov=exy-ex*ey;
    xg=cov/(sqrt(dx)*sqrt(dy))


    这里有两个错误:首先系统会提示:sqrt使用错误,原因是dx和dy是unit8类型的。还有一个就是计算错误,你会发现不管你怎么加sum后边的值都一直会是255。
    上边两处错误的原因其实都是出在unit8类型上,默认情况下,系统读入图像后储存的类型就是unit8。此时我们直接对储存图像的数据进行操作,则后边程序中出现的所有的变量就都是unit8类型的,由于unit8类型的最大值就是255,所以sum会一直停留在255不变,不管你加多少次。
    要改正这种情况有以下两种方式:
    1、将存储读入图像的矩阵强制改成double型;
    2、存储矩阵不变,但是在后边的计算中将每个变量都强制改为double型;


    如下程序就是用第二种方式改正后的程序:
    clear all;
    a=imread('lenac.bmp');
    for k=1:1000
        i=fix(rand*250);
        j=fix(rand*250);
        x(k)=a(i+1,j+1);
        y(k)=a(i+2,j+1);
    end
    sum=0.0;
    sum=double(sum);
    for i=1:1000
        sum=sum+double(x(i));
    end
    ex=sum/1000;
    sum=0.0;
    sum=double(sum);
    for i=1:1000
        sum=sum+double(y(i));
    end
    ey=sum/1000;
    sum=0.0;
    sum=double(sum);
    for i=1:1000
        sum=sum+double(x(i))*double(x(i));
    end
    ex2=sum/1000;
    sum=0.0;
    sum=double(sum);
    for i=1:1000
        sum=sum+double(y(i))*double(y(i));
    end
    ey2=sum/1000;
    dx=ex2-ex*ex;
    dy=ey2-ey*ey;
    sum=0.0;
    sum=double(sum);
    for i=1:1000
        sum=sum+double(x(i))*double(y(i));
    end
    exy=sum/1000;
    cov=exy-ex*ey;
    dx=double(dx);
    dy=double(dy);
    xg=cov/(sqrt(dx)*sqrt(dy))

    展开全文
  • matlab开发-图像拼接相关性。该代码利用相关技术完成了图像的基本拼接任务。
  • MATLAB源码集锦-药物相关性分析代码
  • 如何使用 MATLAB 工具计算相关性
  • apriori相关性分析(matlab)

    热门讨论 2010-04-29 16:06:30
    apriori相关性分析(matlab),对于想在matlab上用apriori分析相关性的同学不妨看看。
  • 信号相关性学习笔记及matlab分析声波(振动)信号相关性实例 信号相关性理论知识 在此之前,本人对信号相关性的知识知之甚少。感谢The_last_knight与只是有点小怂两位博主的分享: 信号相关性从向量内积说起 利用...

    信号相关性学习笔记及matlab分析声波(振动)信号相关性实例

    信号相关性理论知识

    在此之前,本人对信号相关性的知识知之甚少。感谢The_last_knight与只是有点小怂两位博主的分享:
    信号相关性从向量内积说起
    利用matlab函数xcorr对信号进行相关分析(包含为何加上无偏估计参数)
    下面附上本人的一些理解:
    信号相关性指的是一个信号与它自身或其他信号在各个时刻的相似程度。通过研究信号的相关性,可以在工程实际中有很好的应用,比如声波通信、测距等。通过分析发射出去的信号和接受到回波的信号的相关程度,可提取很多有用的信息,如延迟时间,知道延迟时间就可以得到距离信息。
    前面提到的两位博主在理解信号相关性的时候有两种不同的理解方式,前者从向量的角度阐述了信号相关性的含义,后者从概率论中的数学期望的角度出发。都易于理解。在这里不再叙述。
    信号相关分为自相关和互相关,其中自相关是表达信号与其自身相关程度的概念,而互相关则是表示不同信号间相关程度的概念。

    能量信号与功率信号

    在学习信号相关性之前有必要搞明白能量信号和功率信号之间的区别。
    在这里参考了括号先森关于能量信号和功率信号的博文
    在这里只说结论:
    对于一个信号来说,若它的能量有限且功率为零,则为能量信号;若能量无穷大且功率有限,则为功率信号;若能量无穷且功率也是无穷大,那这种信号称为非功非能信号。
    值得注意的是所有的周期信号都是功率信号,所有的有限数量脉冲信号都是能量信号。

    相关性涉及的公式

    • 能量信号的相关性度量
      能量信号的互相关由以下公式定义:
      能量信号互相关公式
      其中Rxy[l]表示x[n]和y[n-l]之间的相关性大小,它的值越大代表两个序列之间的相关程度越高,即这两个序列越相似。
      互关性的性质:互相关序列是一个奇序列。
      将上述公式中的y替换为x就可以得到能量信号的自相关序列,它是一个偶序列。特别的,当自相关序列中l=0时,rxx[0]就是序列x[n]的能量。
    • 周期信号和功率信号的相关性
      对于功率信号,它的能量为无穷大,对与序列x[n]和y[n]的互相关可定义为:
      功率信号互相关公式
      通过将上述公式中的y[n]替换为x[n]可得到功率信号的自相关公式。
      若x[n]和y[n]为周期信号,周期时N ,那么其互相关序列为:周期信号互相关序列

    自相关序列为:
    周期信号自相关序列
    从上述可以知道Rxy[n]和Rxx[n]都是周期为N的周期序列。

    matlab中相关性函数xcorr在声波(振动)信号处理中的应用

    • matlab中xcorr函数的用法
    xcorr(x,y,'option);
    

    其中x,y,表示两个序列,就是所说的信号。在具体应用时可以手动导入,或者使用程序的方法读取;option表示不同的参数,当option是
    "biased"为有偏的互相关函数估计;
    "unbiased"为无偏的互相关函数估计;
    "coeff"为0延时归一化序列的自相关计算;
    "none"为原始的互相关计算

    • 在声波(振动)信号中的应用
      matlab应用程序:
    clc;
    subplot(3,1,1);
    plot(CH1);//绘制手动导入的原始数据
    DATA1=CH1(53540:66060);//截取一个脉冲响应数据
    DATA2=CH1(103700:116220);//再截取一个脉冲响应数据
    t1=TIME(53540:66060);
    t2=TIME(103700:116220);
    subplot(3,1,2);
    plot(t1,DATA1);
    hold on;
    plot(t2,DATA2);//将两个脉冲响应波形绘制在同意坐标系下
    
    [a,b]=xcorr(DATA1,DATA2,'coeff');//采用归一化的相关系数表示相关性分析结果
     subplot(3,1,3);
    plot(b,a);//绘制相关性序列
    
    

    如下图所示为使用示波器采集的振动信号原始波形数据:
    原始声波波形数据
    上图中时一连串的冲击响应,取其中两个冲击响应作为分析他们的相关性,以此为依据研究冲击响应的稳定性。截取的两个响应数据如下图:
    截取的两个冲击响应的数据
    采用xcorr函数分析后的结果如下:
    相关性分析结果
    上图中横坐标为延迟时间,纵坐标为相关系数。
    结果表明两个脉冲信号的相关性达到了0.65左右,有很强的相关程度。证明该冲激响应的稳定性很高。

    展开全文
  • matlab开发-基于相关性的多变量系统动态时间扭曲。结合DTW和基于PCA的相似性度量。
  • 特征相关性计算及matlab程序

    千次阅读 2019-04-26 11:11:43
    在人工提取特征的时代,提取的特征往往具有较强的相关性,这会导致数据冗余,计算特征的...MATLAB程序如下: [m,n]=size(feature); correlation_matrix=zeros(n,n); for i=1:n for j=1:n X_Vector=feature(:,...
  • 基于matlab的m序列生成以及相关性研究,用两种方式生成m序列,最后有生成的图
  • Y = DOWNSIDECORRELATION(Y) 返回变量 Y 列的下行相关性。 Y = DOWNSIDECORRELATION(Y, m) 使用向量 m 作为变量 Y 的列的预期值返回下行相关性。 ================================================== == 下行相关...
  • Y = UPSIDECORRELATION(Y) 返回变量 Y 列的上行相关性。 Y = UPSIDECORRELATION(Y, m) 使用向量 m 作为变量 Y 的列的预期值返回上行相关性。 ================================================== == 上行相关定义...
  • m序列的生成及其相关性matlab分析.docx
  • 图像相邻像素相关性分析matlab

    千次阅读 2021-04-19 22:48:30
    %图像相邻像素相关性 %随机选取图像A中相邻的N个像素点,分别计算在水平,垂直,正对角和反对角方向上的相关系数 %注意是算密文图像 R G B分量分开算 function r=ImCoef(A,N) A=double(A);[m,n]=size(A);r=zeros(1,...
  • matlab开发-动物间的帧间相关性。该程序用于计算两幅相同尺寸灰度图像的帧间相关性
  • matlab开发-两个序列之间的相关性。在不使用内置xcorr函数的情况下,用程序查找两个序列之间的相关性
  • 估计从一个信号到另一个信号的信息流的连接强度和持续时间。 出版物: 1. Nan Xu、R Nathan Spreng 和 Peter C Doerschuk,“通过相关方法的概括对静息态 fMRI 有效连接性的估计进行初步验证。” 神经科学前沿,11:...
  • Matlab 利用小波计算相关性

    千次阅读 2019-08-02 08:22:17
    MATLAB帮助: https://ww2.mathworks.cn/help/wavelet/ref/modwtxcorr.html?s_tid=doc_ta modwtcorr: Multiscale correlation using the maximal overlap discrete wavelet transform modwtxcorr: Wavelet ...
  • 此函数计算矩阵的相互相干性。 输入:具有多于一列的实数或复数矩阵。 输出:相互的连贯性。
  • m序列特性 Walsh码的产生及特性 能够使用Matlab对m序列特性进行研究 能够使用Matlab产生Walsh码,并对其特性进行研究
  • 伪随机序列的相关性分析及Matlab仿真 m,G生成及相关性分析
  • matlab开发-高分辨率气候数据的空间相关性。高分辨率气候数据相关性的空间模式特征

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 994
精华内容 397
关键字:

matlab相关性

matlab 订阅