目录

选择哪个相关系数

总步骤

皮尔逊相关系数、假设检验

总体皮尔逊Pearson相关系数

样本皮尔逊Pearson相关系数

皮尔逊相关系数注意点

对相关系数大小的解释

皮尔逊相关系数假设检验的条件

对数据进行正态分布检验:正态分布JB检验(大样本 n>30)

对数据进行正态分布检验:Shapiro-wilk夏皮洛‐威尔克检验(小样本3≤n≤50)

对数据进行正态分布检验:Q-Q图(大样本)(不推荐)

对皮尔逊相关系数进行假设检验

更好的方法:p值判断法

matlab计算相关系数及p值、得到显著性标记

SPSS显著性检验

Matlab计算描述性统计

Excel计算描述性统计

SPSS计算描述性统计

斯皮尔曼spearman相关系数

MATLAB中计算斯皮尔曼相关系数

斯皮尔曼相关系数的假设检验

小样本 n<=30 检验斯皮尔曼相关系数的显著性:查表

大样本检验斯皮尔曼相关系数的显著性


选择哪个相关系数

斯皮尔曼相关系数和皮尔逊相关系数选择 :
  1. 连续数据、正态分布、线性关系,用pearson相关系数最恰当,用spearman相关系数也可以,效率没有pearson相关系数高。
  2. 上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。
  3. 两个定序数据之间也用spearman相关系数,不能用pearson相关系数。

总步骤

目的:得到变量的相关系数、相关性

  1. 对数据进行描述性统计(笔记目录靠后部分 matlab、SPSS、excel)
  2. 在求皮尔逊相关系数前,先绘制数据的散点图,根据散点图粗略判断是否线性关系(用SPSS,步骤见笔记SPSS描述性统计)
  3. 满足线性关系,才可以计算皮尔逊相关系数 matlab:corrcoef函数
  4. 对数据进行正态性检验(大样本:JB 用matlab;小样本:Shapiro-wilk 用SPSS)
  5. 符合正态分布,才可以假设检验皮尔逊系数的显著性(matlab、spss)
  6. 连续数据、正态分布、线性关系 上述任一条件不满足,就用spearman相关系数
  7. 计算斯皮尔曼相关系数(matlab函数corr) 并 假设检验显著性(小样本查表、大样本假设检验p值判断)

皮尔逊相关系数、假设检验

总体皮尔逊Pearson相关系数

  • 协方差为正 - 正相关性:X、Y变化方向相同,即当X大于(小于)其均值时,Y 也大于(小于)其均值;
  • 协方差为负 - 负相关性:X、Y变化方向相反,即当X大于(小于)其均值时,Y 小于(大于)其均值,则协方差为负;
  • 如果X、Y变化方向之间相互无规律,即分子中有的项为正,有的项为负,那么累加后正负抵消,接近0

结论:协方差绝对值越接近 1 ,相关性越强;接近 0 ,相关性越弱

       但协方差的大小和两个变量的量纲有关,因此不适合直接做比较,消除量纲影响:将两个变量各自标准化后,再求协方差(即总体协方差除以两个变量的标准差)
标准化公式:   减去均值 除以标准差 —— 服从均值为0的正态分布

样本皮尔逊Pearson相关系数

与总体相关系数相比,是 n-1

皮尔逊相关系数注意点

  1. 只能用来衡量两个变量线性相关程度,必须先确认这两个变量是线性相关,不是线性相关不能用这个;
  2. 如何确定两变量线性相关:在求皮尔逊相关系数前,先绘制数据的散点图,根据散点图粗略判断是否线性关系;
  3. 计算出皮尔逊相关系数的绝对值很接近1:不能说明有很大相关性,因为可能受异常值、离群值的影响;
  4. 计算出皮尔逊相关系数的绝对值很接近0:只能说明没有线性相关性,可能存在非线性相关性

对相关系数大小的解释

对相关系数的解释应依赖于具体的应用背景和目的
事实上,比起相关系数的大小,我们往往更关注的是显著性。 (假设检验)

皮尔逊相关系数假设检验的条件

  1. 实验数据通常假设是成对的来自于正态分布的总体。在求皮尔逊相关性系数以后,通常还会用 t 检验之类的方法来检验皮尔逊相关性系数,而 t 检验是基于数据呈正态分布的假设的。(这个是最需要验证的条件:实验数据服从正态分布;后两个条件一般默认满足)
  2. 实验数据之间的差距不能太大。皮尔逊相关性系数受异常值的影响比较大。
  3. 每组样本之间是独立抽样的。构造t统计量时需要用到。

对数据进行正态分布检验:正态分布JB检验(大样本 n>30)

偏度和峰度:

matlab计算偏度和峰度:

x = normrnd(2,3,100,1); % 生成100*1的随机向量,每个元素是均值为2,标准差为3的正态分布
skewness(x)             %偏度
kurtosis(x)             %峰度

步骤:

  1. 构造JB统计量
  2. 进行假设检验、p值判断法

matlab将上述步骤封装到 jbtest 中:

%% 正态分布检验
% 检验第一列数据是否为正态分布
[h,p] = jbtest(Test(:,1),0.05)% 当输出h等于1时,表示拒绝原假设;h等于0则代表不能拒绝原假设
% p是p值,p < 置信水平0.05 就不是正态分布
% alpha就是显著性水平,一般取0.05,此时置信水平为1‐0.05=0.95
% x就是我们要检验的随机变量,注意这里的x只能是向量% 只能一列列数据检验
% 用循环检验所有列的数据n_c = size(Test,2); % 数据的列数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)

对数据进行正态分布检验:Shapiro-wilk夏皮洛‐威尔克检验(小样本3≤n≤50)

matlab没有实现这个,用SPSS:

得到的结果只要看最后一列显著性,这就是p值:小于置信水平0.05就不服从正态分布

对数据进行正态分布检验:Q-Q图(大样本)(不推荐)

原理:

       在统计学中, Q‐Q 图(Q代表分位数 Quantile )是一种通过比较两个概率分布的分位数对这两个概率分布进行比较的概率图方法。
       首先选定分位数的对应概率区间集合,在此概率区间上,点 (x,y) 对应于第一个分布的一个分位数x 和第二个分布在和 x 相同概率区间上相同的分位数。
      这里,我们选择正态分布要检验的随机变量,并对其做出 QQ 图,如果要检验的随机变量是正态分布,那么QQ 图就是一条直线。
关键:
        要利用Q‐Q图鉴别样本数据是否近似于正态分布,只需看Q‐Q图上的点是否近似地在一条直线附近。(要求数据量非常大)

matlab函数:qqplot

对皮尔逊相关系数进行假设检验

  • 置信水平 β = 1 - α:相信原假设成立的概率
  • 显著性水平 α :有多大的可能拒绝原假设,又称犯第一类错误的概率(原假设正确、但我们却认为错了)

假设检验皮尔逊相关系数是否显著接近于0

原假设:r = 0 皮尔逊系数与0没有显著差异,相关性并不强

x = -4:0.1:4;
y = tpdf(x,28);  % 服从t分布的概率密度曲线
plot(x,y,'-')
grid on % 在画出的图上加上网格线
t 分布表: https://wenku.baidu.com/view/d94dbd116bd97f192279e94a.html

更好的方法:p值判断法

根据检验值(把待检验的皮尔逊系数 r 带入到检验统计量后得到的值)得到该检验值对应的 p 值,该 p 值再与置信水平比较检验,p > 显著性水平,说明 p 落在接受域,接受假设

matlab代码:

disp((1-tcdf(3.055,28))*2)
% tcdf(3.055,28):x=3.055处,自由度为28的累积分布函数
% x处累积分布函数:-∞到x区间对应的概率
% 双侧检验的p值要乘以2

matlab计算相关系数及p值、得到显著性标记

matlab 计算的是双侧检验的 p 值,单侧就手动除以2

%% 计算各列之间的相关系数以及双侧检验的p值,单侧就手动除以2[R,P] = corrcoef(Test)% 下面的运算得到01矩阵,1的位置就是显著性标志的位置
% 在EXCEL表格中手动加上显著性标记 *P < 0.01 % 标记3颗星的位置
(P < 0.05) .* (P > 0.01) % 标记2颗星的位置
(P < 0.1) .* (P > 0.05) % 标记1颗星的位置

SPSS显著性检验

SPSS进行显著性标记:“双变量”选项

Matlab计算描述性统计

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]
%将这些统计量放到一个矩阵中表示

corrcoef函数: correlation coefficient相关系数
  R = corrcoef(A)  
返回 A 的相关系数的矩阵,其中 A 的列表示随机变量(指标),行表示观测值(样本)。
  R = corrcoef(A,B)
返回两个随机变量 A 和 B (两个向量)之间的系数。

Excel计算描述性统计

美化表:

SPSS计算描述性统计

在计算皮尔逊相关系数之前 , 一定要做出散点图来看两组变量之间是否有线性关系:

斯皮尔曼spearman相关系数

斯皮尔曼相关系数 定义1:下面的公式

斯皮尔曼相关系数 定义2:斯皮尔曼 求的是这两列等级之间的 皮尔逊相关系数

MATLAB中计算斯皮尔曼相关系数

两种用法
  1. corr(X , Y , 'type' , 'Spearman') % 这里的X 和 Y必须是列向量
  2. corr(X , 'type' , 'Spearman') % 计算X矩阵各列之间的斯皮尔曼相关系数,matlab这一函数封装使用的是定义2的计算方式

斯皮尔曼相关系数的假设检验

小样本 n<=30 检验斯皮尔曼相关系数的显著性:查表

r < 表中的数值:假设成立,r 与 0没有显著性差异

大样本检验斯皮尔曼相关系数的显著性

p 值 大于 显著性水平,接受假设,相关系数与0没有显著性差别

 Matlab:

% 直接给出相关系数和p值
[R,P]=corr(Test, 'type' , 'Spearman')

 SPSS:

下表只需要相关系数那一行贴到论文中,因为包括了计算出的相关系数及显著性标志 * ;下面的双尾显著性水平就是 p 值,属于计算过程不需要贴入论文;第三行是样本个数

数学建模:6 相关系数相关推荐

  1. 数学建模-5.相关系数

    相关系数-皮尔逊pearson相关系数 衡量两个变量之间相关性的大小 原理 协方差可以反应两个变量之间的关系,但是协方差大小与量纲有关,皮尔逊相关系数则是将X和Y标准化后的协方差,即去除了两个变量量纲 ...

  2. 数学建模 --- 使用工具进行描述性统计

    描述性统计 简单统计量 matlab Excel SPSS 相关系数 斯皮尔曼相关系数 皮尔逊相关系数 Stata做概率密度估计图 并 保存图片 Stata对数据描述性统计 定量数据 定性数据 Exc ...

  3. 【7.0】 数学建模 | 相关系数详解 | Person相关系数、Spearman相关系数

    总体Person相关系数 如果两组数据X:{X1,X2,⋯,Xn}和Y:{Y1,Y2,⋯,Yn}是总体数据(例如普查结果)那么总体均值:E(X)=∑i=1nXin,E(Y)=∑i=1nYin总体协方差 ...

  4. 数学建模笔记-第五讲-相关系数

    文章目录 相关系数 pearson相关系数 相关性可视化 误区 相关系数大小的解释 例题 描述性统计 matlab excel SPSS 矩阵散点图 计算相关系数 热力图美化结果 对相关系数进行假设检 ...

  5. 数学建模:相关性分析学习——皮尔逊(pearson)相关系数与斯皮尔曼(spearman)相关系数

    目录 前言 一.基本概念及二者适用范围比较 1.什么是相关性分析 2.什么是相关系数 3.适用范围比较 二.相关系数 1.皮尔逊相关系数(Pearson correlation) 1.线性检验 2.正 ...

  6. 《数学建模:基于R》一一2.1 回归分析

    本节书摘来自华章计算机<数学建模:基于R>一书中的第2章,第2.1节,作者:薛 毅 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.1 回归分析 在许多实际 ...

  7. spss数据预处理步骤_数学建模准备必备的十个数据分析软件(数学建模从入门到精通)...

    前几天咋们聊了很多关于数学建模的干货,比如怎么样去前期准备学习数学建模,又比如数学建模需要哪些疾病软件?再比如数学建模论文摘要写作技巧.昨天那篇更是直接把数学建模常用的思维导图.流程图软件全部统统介绍 ...

  8. python dendrogram_【聚类分析】《数学建模算法与应用》第十章 多元分析 第一节 聚类分析 python实现...

    第十章 多元分析 第一节 聚类分析 介绍 这里是司守奎教授的<数学建模算法与应用>全书案例代码python实现,欢迎加入此项目将其案例代码用python实现 GitHub项目地址:Math ...

  9. 数学建模7 多元线性回归分析

    1.回归思想 相关性(不是因果性) Y:因变量,常常是我们需要研究的核心变量,分为连续值型,0-1型,定序变量,计数变量,生存变量 X:自变量(解释变量) 回归分析:研究x和y之间的相关性的分析,尝试 ...

  10. 病毒传播数学建模matlab分析,数学建模MATLAB之分析法(一)

    [toc] 本篇分别有主成分分析,层次分析,聚类分析,因子分析的简单介绍以及在MATLAB(2018a)上使用的简单介绍 ( 附源码 ) 主成分分析 主成分分析-百度百科 简单讲:主成分分析就是取出几 ...

最新文章

  1. 【数理逻辑】谓词逻辑 ( 谓词逻辑基本等值式 | 消除量词等值式 | 量词否定等值式 | 量词辖域收缩扩张等值式 | 量词分配等值式 )
  2. 课程名称翻译大全(zz)
  3. semester 2 deadline from the computer science and electronic engineering
  4. c# socket接收字符串_socket通信很难?这一文让你轻松搞定!
  5. cubemx 读卡器_cubeMX 之 SD卡读写
  6. C++ vector容器删除操作
  7. AntDB上使用表空间
  8. 事务保存点savepoint
  9. 设置中文环境_我花几年时间找到的学习中文好方法,值得你一看
  10. C++编程积累——C++实现十进制与二进制之间的互相转换
  11. Ubuntu 想在 Windows 的 WSL 中做到领先
  12. RTOS原理与实现07:邮箱实现
  13. 《构建之法》第四章读后感--软件工程
  14. sharepoint 2007,sharepoint 2010网站的备份还原
  15. FastDFS实现原理及流程
  16. Snipaste下载以及一部分使用的快捷方式
  17. 【Get深一度】矩形窗/bartlett/Blackman/hamming/Hanning/kaiser -相控阵雷达原理
  18. 新一代智能会议中控系统
  19. 上海租房住房公积金提取
  20. HTML+CSS打造简单的横向时间轴

热门文章

  1. 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-4.跨域且传输数据,并优化后端接口
  2. 炫酷科技感黑客感瀑布流html+js+css代码
  3. matlab 设置网格线为虚线
  4. 《互联网理财一册通》一一12.2 投资软件与操盘软件
  5. 使用 Unicode Math 键入/输入 无穷符号 infinite/infinity \infty
  6. 计算机视觉顶级会议和期刊(中英文全称)
  7. 如何精确监控DB响应延时
  8. nvarchar在mysql中是_如何在MySQL中创建NVARCHAR列?
  9. Linux 防火墙及端口配置
  10. 只要单片机具有真正唯一ID,就可以让加密坚不可摧