解题步骤:描述性统计——正态性检验———(符合的话)皮尔逊 (不符合的话)斯皮尔曼——假设检验是否显著
皮尔逊 person相关系数和斯皮尔曼spearman等级相关系数,它们可用来衡量两个变量之间的相关性的大小,根据数据满足的不同条件,我们要选择不同的相关系数进行计算和分析(建模论文中最容易用错的方法)。
总体:所要考察对象的全部个体叫做总体。
样本:从总体所抽取的一部分个体叫总体的一个样本。
使用样本数据的样本均值和样本标准差来估计总体平均水平和偏离程度。
根据两组数据可知两总体均值,进而可以得出总体协方差。x,y变化一致,成正相关,方向相反成负相关。协方差可与用来反映相关性。
注意:但协方差的大小和两个变量的量纲有关,因此不适合做比较。
person相关系数就是用来消除量纲的影响,即将x和y标准化后的协方差。
可理解为数据X与Y的协方差/(X的标准差 *Y的标准差)
(1)、当相关系数为0时,X和Y两变量无关系。
(2)、当X的值增大(减小),Y值增大(减小),两个变量为正相关,相关系数在0.00与1.00之间。
(3)、当X的值增大(减小),Y值减小(增大),两个变量为负相关,相关系数在-1.00与0.00之间。
相关系数的绝对值越大,相关性越强,相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。
只能用来衡量两个变量线性相关程度的指标。也就是说必须确认这两个变量是线性相关,然后这个相关系数才能告诉你这两变量的相关程度如何。
一些特殊情况:
两个变量之间是线性关系,那么皮尔逊相关系数绝对值大就是相关性强。
如果不知道是什么关系的情况下,即使算出相关系数,也不能说明他们相关,一定要画出散点图来看。
例题:现有某中学八年级所有女学生的体测样本数据,请见下表,试计算各变量之间的皮尔逊相关系数。并分析数据之间的相关关系及显著性水平。
步骤一:通过spss做出数据的两两之间的散点图,观察数据间是否存在线性关系
spss操作方法:图形 - 旧对话框 - 散点图/点图 - 矩阵散点图
分析:直观上看(肺活量,50米跑)之间具有一定的线性关系
步骤二:皮尔逊相关系数计算
将数据导入matlab中,即在matlab工作区中-新建-变量命名为Test,另存为‘physical fitness test.mat’文件,通过matlab的load命令将数据加载入工作区中。
matlab计算皮尔逊相关系数代码如下:
clear;clc
load 'physical fitness test.mat' %文件名如果有空格隔开,那么需要加引号
%% 计算各列之间的相关系数
% 在计算皮尔逊相关系数之前,一定要做出散点图来看两组变量之间是否有线性关系
% 这里使用Spss比较方便: 图形 - 旧对话框 - 散点图/点图 - 矩阵散点图
[R,p] = corrcoef(Test) % correlation coefficient
步骤三:
按照之前R和P的联合分析来看,以三个R和P的联合数据匹配分析举例来看:
(1,3)即(身高,肺活量)的R=-0.2177且P=0.0000
由R即皮尔逊相关系数大小为负可知,身高和肺活量呈负相关;又P<0.05,相关性显著,即在当前的样本下可以明显的观察到两变量的呈负相关,两个变量的相关有统计学意义
(3,4)即(肺活量,50米跑)的R=0.2898且P=0.0000
由R即皮尔逊相关系数大小为正可知,肺活量和50米跑呈正相关;又P<0.05,相关性显著,即在当前的样本下可以明显的观察到两变量的呈正相关,两个变量的相关有统计学意义。
(1,5)即(身高,立定跳远)的R=0.0440且p=0.2859
因为P>0.1,所以身高和立定跳远无线性关系,可能为其他非线性关系,即使R为正。
方法一
第一步:提出原假设和备择假设
第二步:在原假设成立的情况下,构造符合某一分布的统计量
对于皮尔逊相关系数r而言,可以构造统计量t,是自由度为n-2的t分布
第三步:将要检验的值,代入统计量中得到一个检验值
第四步:画出该分布的概率密度,给出置信区间,找到临界值,画出统计量的接受域和拒绝域。
第五步:看计算出来的检验值是落在拒绝域还是接受域,并下结论。
%% 假设检验部分
x = -4:0.1:4;
y = tpdf(x,28); %求t分布的概率密度值 28是自由度
figure(1)
plot(x,y,'-')
grid on % 在画出的图上加上网格线
hold on % 保留原来的图,以便继续在上面操作
% matlab可以求出临界值,函数如下
tinv(0.975,28) % 2.0484
% 这个函数是累积密度函数cdf的反函数
plot([-2.048,-2.048],[0,tpdf(-2.048,28)],'r-')
plot([2.048,2.048],[0,tpdf(2.048,28)],'r-')
方法二:p值判断法
p值=检验值大于边界值的数值
双侧检验是单侧检验的两倍
比较p值和0.05的关系,大于接受h0,小于拒绝h0
%% 计算p值
x = -4:0.1:4;
y = tpdf(x,28);
figure(2)
plot(x,y,'-')
grid on
hold on
% 画线段的方法
plot([-3.055,-3.055],[0,tpdf(-3.055,28)],'r-')
plot([3.055,3.055],[0,tpdf(3.055,28)],'r-')
disp('该检验值对应的p值为:')
disp((1-tcdf(3.055,28))*2) %双侧检验的p值要乘以2
计算出数据的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颗星的位置
皮尔逊相关系数假设检验条件
1.数据来自于正态分布的总体
2.数据之间不能差异太大
3.每组样本之间独立抽样
正态分布偏度为0,峰度为3
计算偏度和峰度代码
% 正态分布的偏度和峰度
x = normrnd(2,3,100,1); % 生成100*1的随机向量,每个元素是均值为2,标准差为3的正态分布
skewness(x) %偏度
kurtosis(x) %峰度
JB统计量服从自由度为2的卡方分布
步骤一:做假设和备则假设
步骤二:计算偏度和峰度,得到检验值,并计算对应的p值
步骤三:p与0.05比较,小于拒绝原假设
% 检验第一列数据是否为正态分布
[h,p] = jbtest(Test(:,1),0.05)
[h,p] = jbtest(Test(:,1),0.01)
% 用循环检验所有列的数据
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)
在统计学中,Q‐Q图(Q代表分位数Quantile)是一种通过比较两个概 率分布的分位数对这两个概率分布进行比较的概率图方法。
首先选定分位数的对应概率区间集合,在此概率区间上,点(x,y)对应 于第一个分布的一个分位数x和第二个分布在和x相同概率区间上相同的分 位数。
这里,我们选择正态分布和要检验的随机变量,并对其做出QQ图, 可想而知,如果要检验的随机变量是正态分布,那么QQ图就是一条直线。
要利用Q‐Q图鉴别样本数据是否近似于正态分布,只需看Q‐Q图上的点 是否近似地在一条直线附近。(要求数据量非常大)
% Q-Q图
qqplot(Test(:,1))
公式如下:
例子:
有这样一组数据,X和Y,计算斯皮尔曼相关系数:
1).计算X和Y的等级
x=3的等级,是3在所有取值中从小到大排列的位置,为2,依次类推。在根据斯皮尔曼相关系数公式求解相关系数。
2).根据斯皮尔曼相关系数公式计算结果
另外一种spearman相关系数定义
斯皮尔曼相关系数被定义成等级之间的皮尔逊相关系数。matlab使用的是这种斯皮尔曼相关系数的定义。
%% 斯皮尔曼相关系数
X = [3 8 4 7 2]' % 一定要是列向量哦,一撇'表示求转置
Y = [5 10 9 10 6]'
% 第一种计算方法
1-6*(1+0.25+0.25+1)/5/24
% 第二种计算方法
coeff = corr(X , Y , ‘type’ , ‘Spearman’)
% 等价于:
RX = [2 5 3 4 1]
RY = [1 4.5 3 4.5 2]
R = corrcoef(RX,RY)
% 计算矩阵各列的斯皮尔曼相关系数
R = corr(Test, ‘type’ , ‘Spearman’)
斯皮尔曼相关系数的假设检验
小样本情况,n小于30,直接查临界值表即可
大样本情况
斯皮尔曼相关系数和皮尔逊相关系数选择:
1.连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用 spearman相关系数也可以, 就是效率没有pearson相关系数高。
2.上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。
3.两个定序数据之间也用spearman相关系数,不能用pearson相关系数。
定序数据是指仅仅反映观测对象等级、顺序关系的数据,是由定序尺度计量形成的,表现为类别,可以进行排序,属于品质数据。 例如:优、良、差; 我们可以用1表示差、2表示良、3表示优,但请注意,用2除以1得出的2并不代表任何含义。定序数据最重要的意义代表了一组数据中的某种逻辑顺序。