精华内容
下载资源
问答
  • 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图像相关性分析的问题

    万次阅读 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))

    展开全文
  • 4 数组乘方 ) 元素对元素的幂 例 : a=[1 2 3];b=[4 5 6]; z=a^2 z = 1.00 4.00 9.00 z=a^b z = 1.00 32.00 729.00 5 向量函数 一般标量函数都可以用于数组此时函数作用于数组的 每个元素 > x=1:5;...
  • 相关性分析 matlab

    2018-08-11 14:57:21
    相关性分析matlab代码,测试可行;主要用于数据分析
  • 用于光谱分解的双色成像数据相关性分析的代码 使用Matlab R2018b和Windows 10.0进行编码和测试,所需的工具箱:统计和机器学习工具箱 无需安装; 只需将Matlab的工作目录导航到该文件夹​​即可。 安装时间:1分钟...
  • 高光谱图像数据分析 1.1 分析光谱波段的相关性 load('Indian_pines_corrected.mat') [width,height,band] = size(indian_pines_corrected); I = reshape(indian_pines_corrected,width * height,band); corr = ...

    一.高光谱图像数据分析

    1.分析光谱波段的相关性

    1.1 对于维度为(m,n,b)的高光谱数据,使用reshape函数将其变换为(N,b)维度的,其中N = m x n,表示像素数量,b表示波段数。

    1.2 分析样本(像素)间波段的相关性,采用函数corrcoef(),对于维度(N,b)的数据,计算互相关系数时,其规则是按列进行的,得出一个b x b的互相关系数矩阵c。c 的第 i 行表示第 i 列与第 j 列(j = 1:b)的互相关系数

    load('Indian_pines_corrected.mat')							% 加载数据
    [width,height,band] = size(indian_pines_corrected);			% 获取数维度
    I = reshape(indian_pines_corrected,width * height,band);	% 维度变换
    corr = corrcoef(I);											% 计算相关系数矩阵
    colormap(jet);												% 设置可视化的颜色标准
    imagesc(corr);												% 可视化系数矩阵
    colorbar;													% 设置颜色条
    xlabel('band');												% 设置标签
    ylabel('band');
    set(gca,'XTick',(0:50:200));								% 设置坐标轴刻度
    set(gca,'YTick',(0:50:200));
    

    1.3 运行结果
    在这里插入图片描述

    2.分析像素的相关性
    2.1 获取非0标签数据,分析像素的相关性。
    在这里插入图片描述

    3.相关性值为0,表示两变量相互独立,相关性绝对值为1,表示变量处处线性关系。线性相关,即存在a,b,使得Y=aX+b。若相关性为其他值,则存在部分相关性。

    展开全文
  • 针对一对长度相同的时间序列数据,既对整体序列对做相关性分析,也对分段后的序列对做相关性分析。 在分段时,设置的时间窗为60s(wintime=60),时间间隔为30s(hoptime=30),也就是每30s判断一次这一时间点前后共60s...

    对一对时间序列做相关性分析,包括pearson,sprearman和kendall相关分析三种。

    说明

    针对一对长度相同的时间序列数据,既对整体序列对做相关性分析,也对分段后的序列对做相关性分析。

    在分段时,设置的时间窗为60s(wintime=60),时间间隔为30s(hoptime=30),也就是每30s判断一次这一时间点前后共60s内的序列对相关性。

    matlab代码中,[r,p]为整体相关性的返回值,r1, r2, r3, p1, p2, p3为三种分段后的相关性分析的返回值。

    matlab代码如下

    x = []; %input x here
    y = []; %input y here
    
    [r,p] = corr(x,y,'type','pearson')
    
    length = size(x,1);
    path = 60/2; % compute corr every 30 datas with length of 60
    t = (ceil(length/path)-1);
    for i = 1:t
        if (i==t)
            a = x(path*(i-1)+1:length);
            b = y(path*(i-1)+1:length);
        else
            a = x(path*(i-1)+1:path*(i+1));
            b = y(path*(i-1)+1:path*(i+1));
        end
        [r1(i),p1(i)] = corr(a,b,'type','pearson');
        [r2(i),p2(i)] = corr(a,b,'type','spearman');
        [r3(i),p3(i)] = corr(a,b,'type','kendall');
        if isnan(r1(i))
            r1(i) = 0;
            r2(i) = 0;
            r3(i) = 0;
        end
    end
    
    k(1,:) = r1;
    k(2,:) = r2;
    k(3,:) = r3;
    k(4,:) = p1;
    k(5,:) = p2;
    k(6,:) = p3;
    
    展开全文
  • 本资源为常用伪随机码序列的相关性分析MATLAB仿真,对于数据组求取相关性具有相当作用。
  • 相关分析在科研过程中常常会碰到,表征了一种两个因素间的相关程度,其值的大小只能说明相关性的强弱。比如当我们有2000-2015年的NPP数据和2000-2015年的降水数据时,我们想查看两者在空间上随时间变化的相关性。...
  • 全州工业发展因素相关性分析——以MATLAB为经济模型计算载体.pdf
  • 在多元分析中我们经常要用到相关系数。常用的相关系数有三种:Pearson相关系数,Kendall相关系数和Spearman相关系数。 一、Pearson相关系数 Pearson相关系数是英国统计学家皮尔逊于20世纪提出的一种计算直线相关的...
  • 基于MATLAB的雾霾与大气可降水量相关性分析系统的研究.pdf
  • 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...
  • 相关性分析笔记

    千次阅读 2020-07-06 01:10:04
    相关性分析笔记
  • matlab数据分析

    2011-10-06 13:12:11
    利用数学软件进行分析,寻找数据之间的相关性,求解问题最优解
  • 如何使用我=用户数据数据); 数据:仅由字符串组成的单元格。 每列表示一个属性或... 当两个相邻的环具有相同的形状时,环的两个属性具有良好的相关性,如example.m中的图2。 更多解释将在论文中发表(待完成)。
  • 相关性分析

    2015-05-25 10:17:22
    matlab中对数据进行自相关和偏自相关的数据分析,并作图。
  • 相关性分析

    2019-07-02 09:38:03
    自相关于互相关 相关函数是描述信号X(s),Y... 这个是信号分析里的概念,他们分别表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程度,即互相关函数是描述随机信号x(t),y(t)在任意两...
  • 基于MATLAB程序快速制作散点图、相关性分析可以采用该快捷程序
  • 数学建模常用模型13 :相关性分析

    万次阅读 多人点赞 2018-08-20 12:48:45
    但你研究的两个变量必须是有关联的,如果你把历年人口总量和你历年的身高做相关性分析,分析结果会呈现显著地相关,但它没有实际的意义,因为人口总量和你的身高都是逐步增加的,从数据上来说是有一致性,但他们没有现实...
  • 最近在狂找关于相关性的函数及使用,自己总结一下大佬们的理解。 matlab中自带函数 1、xcorr——互相关函数 r = xcorr(x,y) r = xcorr(x) [r,lags] = xcorr(___)%r是输出数据,lags是移位量(滑动偏移值) ...
  • 基于相关性分析和主成分分析的变量筛选方法 https://www.zybuluo.com/notmylove/note/1508052 主成分分析法指标筛选 既然在课程专题四中讲到主成分分析法,那么这里再进一步介绍主成分分析法,概括起来说,...
  • SparkML之相关性分析

    千次阅读 2016-04-08 08:51:34
    相关性分析 相关性分析是考察两个变量之间的线性关系的一种统计方法,用于衡量两个变量因数的相关程度但是,请记住,相关性不等于因果性。接下来结合下图的txt格式的文件来对相关性分析进行了解两个重要的要素 从...
  • 数据特征分析 数据具有哪些特点? 通常使用可视化(绘制图表)、计算某些特征量等手段进行数 据的特征分析。     这里主要介绍的特征方法有: ...相关性分析     =========================
  • 全面学习MATLAB数据统计分析领域中的知识
  • 数据特征分析:分布分析、对比分析、统计量分析、周期性分析、贡献度分析、相关性分析; 主要函数 数据预处理 数据清洗:缺失值处理、异常值处理; 数据集成:实体识别、冗余属性识别; 数据变换: 数据...
  • 典型相关分析matlab实现代码典型相关分析:cca-zoo CCA,GCCA,MCCA,DCCA,DGCCA,DVCCA,DCCAE,KCCA和常规变体 现在可以使用pip install cca-zoo进行安装 这是用于CCA的方法的汇编,包括线性(ALS / scikit-learn...
  • 信号相关性学习笔记及matlab分析声波(振动)信号相关性实例 信号相关性理论知识 在此之前,本人对信号相关性的知识知之甚少。感谢The_last_knight与只是有点小怂两位博主的分享: 信号相关性从向量内积说起 利用...
  • MATLAB数据分析与挖掘 -- 数据探索篇

    千次阅读 2019-05-16 14:25:48
    数据质量分析 主要是检查原始数据中是否存在脏数据,是数据预处理的前提,主要包括以下几种: 缺失值:记录的缺失或某个字段信息的缺失,一般的做法是删除、插补或者不作处理。 异常值:也即离群点,常用简单...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,409
精华内容 1,763
关键字:

matlab数据相关性分析

matlab 订阅