-
作用:
它们可用来衡量两个变量之间的相关性的大小,根据 数据满足的不同条件,我们要选择不同的相关系数进 行计算和分析(建模论文中最容易用错的方法)。
-
一些定义
-
总体: 所要考察对象的全部个体叫做总体.
-
我们总是希望得到总体数据的一些特征(例如均值方差等)
-
-
样本: 从总体中所抽取的一部分个体叫做总体的一个样本
-
计算这些抽取的样本的统计量来估计总体的统计量
-
-
-
皮尔逊Pearson
-
协方差
-
定义:如果X、Y变化方向相同,即当X大于(小于)其均值时,Y也 大于(小于)其均值,在这两种情况下,乘积为正。如果X、Y的变化方向一直 保持相同,则协方差为正;同理,如果X、Y变化方向一直相反,则协方差为负; 如果X、Y变化方向之间相互无规律,即分子中有的项为正,有的项为负,那么 累加后正负抵消。
-
注意: 协方差的大小和两个变量的量纲有关,因此不适合做比较。
-
计算
数据X{X1,X2...Xn}和Y{Y1,Y2,Y3...Yn}为总体数据,总体均值为其中所有数据的均值
总体协方差:
-
-
计算样本皮尔逊Pearson相关系数:
-
样本协方差:
-
样本皮尔逊Pearson相关系数
注:Sx为样本标准差
-
-
皮尔逊相关系数的计算
-
corrcoef函数: correlation coefficient相关系数 R = corrcoef(A)
返回 A 的相关系数的矩阵,其中 A 的列表示随机变量(指标),行表示观测值(样本)。 R = corrcoef(A,B) 返回两个随机变量 A 和 B (两个向量)之间的系数。
要计算体测的六个指标之间的相关系数,只需要使用下面这个语句: R = corrcoef(Test);
-
美化方案见ppt
-
-
假设检验(当你有一个其他数据不确定是不是满足该分布时)
-
提出原假设Ho和备选假设H1(两个假设相反)
-
比如原假设为新数据满足分布,备选假设为不满足
-
-
构造其他数据符合的那个分布(一般为正态分布)
构造统计量
可以证明t是服从自由度为n-2的t分布
-
将值代入n处,求出t的值
-
按照目前数据已知的分布情况画出该分布的概率密度函数pdf,并给定一个置信水平一般为0.95
x = -4:0.1:4; %自由度为28的t分布 y = tpdf(x,28); plot(x,y,'-') grid on % 在画出的图上加上网格线
-
t分布表里找到对应的接受域和拒绝域
-
按照刚刚算出来的数据与接受域比较选择留下来的假设
-
p值判断法(上种方法的延申)
-
用计算出的t值再次计算出p值
disp('该检验值对应的p值为:') disp((1-tcdf(3.055,28))*2) %双侧检验的p值要乘以2 %注意这里的函数是tcdf:累积分布函数 %最后我们计算得到的p值为:0.0049
-
一行代码:[R,P] = corrcoef(Test)
R返回的是相关系数表,P返回的是对应于每个相关系数的p值
%% 计算各列之间的相关系数以及p值 [R,P] = corrcoef(Test) % 在EXCEL表格中给数据右上角标上显著性符号吧 P < 0.01 % 标记3颗星的位置 (P < 0.05) .* (P > 0.01) % 标记2颗星的位置 (P < 0.1) .* (P > 0.05) % 标记1颗星的位置
*** p<0.01, ** p<0.05, * p<0.1
-
注:Matlab计算的是双侧检验的p值,如果需要单侧的话只 需要除以2即可。
-
皮尔逊相关系数假设检验的条件:
-
实验数据通常假设是成对的来自于正态分布的总体。因为我们在求皮尔 逊相关性系数以后,通常还会用t检验之类的方法来进行皮尔逊相关性系数检验, 而t检验是基于数据呈正态分布的假设的。
-
实验数据之间的差距不能太大。皮尔逊相关性系数受异常值的影响比较大。
-
每组样本之间是独立抽样的。构造t统计量时需要用到
-
-
-
-
-
注:
-
这里的相关系数只是用来衡量两个变量线性相关程度的指标; 也就是说,你必须先确认这两个变量是线性相关的,然后这个相关系数才能 告诉你他俩相关程度如何。
-
非线性相关也会导致线性相关系数很大,例如图2
-
离群点对相关系数的影响很大,例如图3,去掉离群点后,相关系数为0.98。
-
如果两个变量的相关系数很大也不能说明两者相关,例如图4,可能是受到 了异常值的影响。
-
相关系数计算结果为0,只能说不是线性相关,但说不定会有更复杂的相关 关系(非线性相关),例如图5。
-
故:
-
如果两个变量本身就是线性的关系, 那么皮尔逊相关系数绝对值大的就是相关性 强,小的就是相关性弱;
-
在不确定两个变量是什么关系的情况 下,即使算出皮尔逊相关系数,发现很大, 也不能说明那两个变量线性相关,甚至不能 说他们相关,我们一定要画出散点图来看才行。
-
函数名 功能 min 数组的最小元素 mink 计算数组的 k 个最小元素 max 数组的最大元素 maxk 计算数组的 k 个最大元素 bounds 最小元素和最大元素 topkrows 按排序顺序的前若干行 mean 数组的均值 median 数组的中位数值 mode 数组的众数 skewness 数组的偏度 kurtosis 数组的峰度 std 标准差 var 方差 代码演示:
MIN = min(Test); % 每一列的最小值 MAX = max(Test); % 每一列的最大值 MEAN = mean(Test); % 每一列的均值 MEDIAN = median(Test); %每一列的中位数 SKEWNESS = skewness(Test); %每一列的偏度 KURTOSIS = kurtosis(Test); %每一列的峰度 STD = std(Test); % 每一列的标准差 RESULT = [MIN;MAX;MEAN;MEDIAN;SKEWNESS;KURTOSIS;STD] %将这些统计量放到一个矩阵中表示
-
-
正态分布JB检验(大样本n>30)
-
雅克‐贝拉检验(有点复杂,上代码...)
主代码:[h,p] = jbtest(x,alpha)
当输出h等于1时,表示拒绝原假设;h等于0则代表不能拒绝原假设。 alpha就是显著性水平,一般取0.05,此时置信水平为1‐0.05=0.95 x就是我们要检验的随机变量,注意这里的x只能是向量。
%% 正态分布检验 % 检验第一列数据是否为正态分布 [h,p] = jbtest(Test(:,1),0.05) % 用循环检验所有列的数据 n_c = size(Test,2); % number of column 数据的列数 H = zeros(1,6); P = zeros(1,6); for i = 1:n_c [h,p] = jbtest(Test(:,i),0.05); H(i)=h; P(i)=p; end disp(H) disp(P)
-
小样本3≤n≤50:Shapiro-wilk检验
可用软件实现
-
-
斯皮尔曼spearman相关系数
-
定义:X和Y为两组数据其斯皮尔曼(等级)相关系数:
其中, 为 和 之间的等级差一个数的等级,就是将它所在的一列数按照从小到大排序后,这个数所在的位置(如果有两个数数值相同,则取它们所在位置的平均数)
X Y X的等级 Y的等级 等级差 等级差的平方 3 5 2 1 1 1 8 10 5 4.5 0.5 0.25 4 8 3 3 0 0 7 10 4 4.5 -0.5 0.25 2 6 1 2 -1 1 -
matlab求解:
X = [3 8 4 7 2]' % 一定要是列向量哦,一撇'表示求转置 Y = [5 10 9 10 6]' coeff = corr(X , Y , 'type' , 'Spearman')
-
假设检验
公式:% 直接给出相关系数和p值 [R,P]=corr(Test, 'type' , 'Spearman')
-
-
两个相关系数的比较
-
连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用 spearman相关系数也可以, 就是效率没有pearson相关系数高。
-
上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。
-
两个定序数据之间也用spearman相关系数,不能用pearson相关系数。
-
-
注:
-
定序数据是指仅仅反映观测对象等级、顺序关系的数据,是由定序尺度计量 形成的,表现为类别,可以进行排序,属于品质数据。
-
例如:优、良、差; 我们可以用1表示差、2表示良、3表示优,但请注意,用2除以1得出的2并不 代表任何含义。定序数据最重要的意义代表了一组数据中的某种逻辑顺序。
-
清风数模课---相关系数
最新推荐文章于 2024-05-06 15:37:05 发布