【数学建模】——相关系数

news2024/10/5 14:15:35

第一部分:皮尔逊相关系数的计算以及数据的描述性统计

本讲我们将介绍两种最为常见的相关系数:皮尔逊person相关系数和斯皮尔曼spearman等级相关系数。它们可以用来衡量两个变量之间的相关性的大小,根据数组满足的不同条件,我们要选择不同的相关性系数进行行计算和分析(建模论文中最容易用错的方法)。

总体和样本:

总体皮尔逊相关系数:

皮尔逊相关系数中各专业术语的公式/定义:

总体皮尔逊相关系数:

样本皮尔逊相关系数(分母变为了n-1)


相关性可视化图(spss版):

关于皮尔逊相关系数的一些理解误区:(在我们使用皮尔逊系数前买两个变量本身必须满足线性的关系)

 

 

 

(在使用皮尔逊相关系数前我们可以提前绘制散点图来判断是否符合线性关系)

对相关系大小的解释:

列题:求八年级女生体测各数据之间的相关性:

解法1:利用matlab来求解各项数据之间的关系

(matlab中求各项数据用到的函数)

代码实现:

将得出的数据结果存入excel表中:

解法2:用spss软件

a.导入数据

b.数据统计

分析->描述->ctrl+a(全选)->选项(统计内容)->确定->等待生成数据图

皮尔逊相关系数(R)的计算:

a:matlab中有专门计算相关系数的函数corrcoef函数

R=corrcoef(传入的数据)

美化相关系数表:

将数据导入excel中

1调整行高,字体大小,字体位置(居中),列宽,小数点保留四位

2设置成便于观察的有色表格:开始->条件格式->色阶(随便选择一个都可以,上图中选择的红-白-蓝)->规则类型->编辑格式规则->最小值->数字->-1,中间值->数字->0->最大值->数字->1.

 

b:利用spss软件可以生成相关系数图

步骤:图形->旧对话框->散点图/点图->矩阵散点图->定义->ctrl+a(全选)导入矩阵变量->确定

生成图像:  

                                                                                 

第二部分:假设检验

  1. 第一步:零假设(H0):我们要验证或者推翻的假设,默认为所观察到的现象是由随机原因引起的,没有任何真实的效应或者关联。在这种情况下,我们可以假设没有校园交通事故与电动车超速之间的关联,即H0:电动车超速与校园交通事故无关。
  2. 备择假设(H1):对零假设的补充或者反面假设,表示我们想要证明的观察结果是由真实效应引起的。在这种情况下,备择假设可以是H1:电动车超速与校园交通事故有关。
  3. 显著性水平(α):代表我们在假设检验中所接受的错误率的界限。常见的显著性水平包括0.050.01。选择适当的显著性水平取决于研究的目的以及行业的标准。
  4. 检验统计量:根据研究问题和数据类型选择适当的检验统计量。对于校园交通事故与电动车超速之间的关系,可以使用统计方法(如卡方检验或者回归分析)来评估两者之间的相关性。
  5. 计算p值:根据所选择的检验统计量和样本数据计算出实际观察到的统计量的概率(即p值)。p值表示在零假设下观察到与实际观察到的统计量相同或更极端结果的概率。
  6. 做出决策:根据计算得到的p值与显著性水平进行比较,如果p值小于显著性水平,则拒绝零假设,认为结果具有统计显著性,支持备择假设。如果p值大于显著性水平,则无法拒绝零假设,无法得出结论。

需要注意的是,假设检验是一种统计推断方法,结果并不总是能得出确定的结论,而是提供了针对零假设的证据。此外,假设检验的可靠性还取决于采集的样本数据的质量、样本容量以及其他假设前提的满足程度。因此,在进行假设检验时,需要谨慎解释结果并综合考虑其他相关因素。

P值若小于我们假设的α则说明我们拒绝我们的零假设。

若p值大于则说明我们无法拒绝我们的零假设。

在假设检验中,我们可以使用单侧检验或双侧检验来评估零假设的可行性。这两种检验方法的选择取决于研究问题和预期效应的方向。

  1. 单侧检验(One-tailed test):在单侧检验中,我们关注的是假设效应在一个方向上是否显著。单侧检验适用于我们有明确的理论依据或研究目的,希望验证或推断效应的方向。例如,我们研究一种新药物是否能够显著降低血压,我们只关心药物对血压的降低是否显著,而不关心是否会增加血压。在单侧检验中,显著性水平(α)只存在于一个尾部。
  2. 双侧检验(Two-tailed test):在双侧检验中,我们关注的是假设效应在两个方向上是否显著。双侧检验适用于我们对效应的方向没有明确的预期,只想确定是否存在显著的效应。例如,我们研究一种新的教学方法是否能够显著提高学生的成绩,但我们不确定这种方法会显著提高还是显著降低学生成绩。在双侧检验中,显著性水平(α)在两个尾部进行比较。

在进行单侧检验或双侧检验时,我们需要计算得到的检验统计量与相应的临界值进行比较。对于单侧检验,我们只关注一个尾部的临界值;而对于双侧检验,我们要考虑两个尾部的临界值。如果计算得到的检验统计量在临界值范围内或小于显著性水平(α),则可以拒绝零假设,认为结果具有统计显著性。

需要注意的是,在选择单侧检验还是双侧检验时,要根据研究问题和预期效应来确定。如果有明确的预期效应方向,可以选择单侧检验;如果没有明确的预期效应方向,可以选择双侧检验。

(上图中就是单侧检验)

双侧检验的p值比较是需要×2再去比较:

                                                           

第三部分:皮尔逊相关系数假设检验

对相关系数大小的解释:

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

步骤:

 

Matlab中求临界值:

更好的判断方法P值判断法:

matlab中求p值:

corrcoef有两个接收值的时候第一个为相关性,第二个为p值

单侧:1-累计密度函数tcdf(x值,自由值)

双侧:单侧结果*2

显著性标记:一般p值<0.01***,p>0.01&&p<0.05**,p>0.05&&p<0.1*

计算各列之间的相关系数以及p值

也可以用spss计算p值更加方便: 

 

 

生成已经标记好的图像(spss中一般最多标记两个*):

                                                                            

第四部分皮尔逊相关系数假设性检验的条件

正态分布JB检验(大样本n>30)

定义:

偏度和峰度:

Matlab中JB检验的函数:(但是matlab中的jb检验只能按列检验,所以需要利用循环将将数据中的元素按列检验,得到每列的检验结果)

代码实现(检验数据:八年级女生体测):

%JB检验

%jbtest只能每次按列求

[h,p] = jbtest(S(:,1),0.05);%参数为正态分布,alpha(阿尔法)

[h,p] = jbtest(S(:,1),0.01);

%每列进行jb检验

[r,c] = size(S)

%提前开辟好相应的矩阵空间方便节省时间

H = zeros(1,c);

P = zeros(1,c);

%因为每次jb检验只能检验一列,所以利用for循环检验所有数据

for i=1:c

[h,p] = jbtest(S(:,i),0.05)

H(i) = h;

P(i) = p;

end

disp(H)

disp(P)

运行结果:

H是检验自己的零假设是否成立,返回0则成立返回1则不成立

P的值过小则返回0.01(可看成0)

夏皮洛-威尔克检验(小样本3<=n<=50):

利用spss软件检验

检验结果:

Q-Q图检验正态分布

看数据点是否都落在直线上,若有偏差的话则不符合正态分布(只能按列检验生成相应的QQ图)

Matlab中的QQ图函数:

qqplot(数据)

在spss中可以直接全部显示所有列的qq图:

(在夏洛皮及检验方法中就会生成qq图)

                                                                                  

第五部分:斯皮尔曼相关系数

定义:

斯皮尔曼相关系数是利用数据在经过排序后的在数据在的序号用来检验,通过计算得到R

斯皮尔曼的两种方法:

代码实现:

也可以用spss生成:

 

斯皮尔相关系数与皮尔逊相关系数的对比:

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

 

 

Matlab中斯皮尔假设检验的函数:

 

两个相关系数的总结与对比:

我们得到一组数据后可以先利用spss检验是否符合正态分布

分析->描述统计->探索-->导入数据-->图-->含检验的正态图

 

 

本篇文章中八年级女生体测数据代码参考:

clear;clc
%S为女生数据,B为男生数据
load 相关性系数\girl_data.mat
%统计描述
MIN = min(S);%最小值
MAX = max(S);%最大值
MEAN = mean(S);%均值
MEDIAN = median(S);%中位数值
SKEWNESS = skewness(S);%偏度
KURTOSIS = kurtosis(S);%峰度
STD = std(S);%标准差
Result = [MIN;MAX;MEAN;MEDIAN;SKEWNESS;KURTOSIS;STD];

%计算各列之间的相关系数R,P值 
[R,P] = corrcoef(S);
%通过P值判断法进行相关性检验
P<0.01 %标记三颗星
(P>0.01) .* (P<0.05);%标记两颗星
(P>0.05) .* (P<0.10);%标记一颗星
%构建一个随机的正态分布
x = normrnd(2,3,100);
%求其偏度
skewness(x);
%求其峰度
kurtosis(x);
%JB检验
%jbtest只能每次按列求
[h,p] = jbtest(S(:,1),0.05);%参数为正态分布,alpha(阿尔法)
[h,p] = jbtest(S(:,1),0.01);
%每列进行jb检验
[r,c] = size(S)
%提前开辟好相应的矩阵空间方便节省时间
H = zeros(1,c);
P = zeros(1,c);
%因为每次jb检验只能检验一列,所以利用for循环检验所有数据
for i=1:c
[h,p] = jbtest(S(:,i),0.05);
H(i) = h;
P(i) = p;
end
disp('H:')
disp(H)
disp('P:')
disp(P)
qqplot(S(:,1))
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%通过斯皮尔曼系数求男生数据
%求男生体测数据的列和行
[l,h] = size(B);
%利用斯皮尔曼相关系数求[相关性,显著性(p值)]
[R2,P2] = corr(B,'type','Spearman')

 

  博主主要跟着清风数学建模的课程学习,其中里面的一些图片都来源于上课视频的截图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/767361.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux图形界面总结——X、Xorg、WM、QT、GTK、KDE、GNOME的区别与联系

文章目录 一、 linux图形界面二、X协议三、Xfree86 Xorg四、WM(window manager:窗口管理器)五、X协议的Client端实现六、KDE、GNOME、QT和GTK直接关系七、参考&#xff1a; 一、 linux图形界面 linux本身没有图形界面&#xff0c;linux现在的图形界面的实现只是linux下的应用程…

网络类型及数据链路层协议

目录 网络类型的分类 数据链路层协议 MA网络以太网协议 P2P网络 HDLC ---高级数据链路控制协议 更改链路协议的方法 HDLC数据帧封装结构 PPP---点到点协议 PPP协议的优点 PPP数据帧封装结构 PPP会话的搭建 链路建立阶段---LCP建立 认证阶段 网络层协议协商阶段--- NCP协商 网络…

大型风电叶片研发项目管理体系建设实践︱中车时代新材PMO负责人姚运帅

中车株洲时代新材料科技股份有限公司风电运维事业部总经理、PMO负责人姚运帅先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;大型风电叶片研发项目管理体系建设实践。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01…

sqlserver 存储过程当中如何实现增删改查

--声明存储过程 新增编辑 ALTER procedure [dbo].[Eng_MyAddOrEdtADPro] My_Cocode int, Type int, -- --1 新增 2 编辑 My_KeyId uniqueidentifier, My_PCode int, My_SCode int, My_PName nvarchar(36), My_SName nvarchar(36), My_Orde…

IPUU的小工具拍了拍你(下)

IPUU是埃文科技旗下的综合性IP查询网站&#xff0c;提供多维度的IP数据信息。通过在线查询&#xff0c;用户可以获取目标IP地址的详尽信息&#xff0c;包括位置属性、网络属性、风险属性以及业务属性等&#xff0c;同时还可以查询域名信息。无论您是需要查看某个IP地址归属地&a…

1.13 通过aop日志监控service执行时间

步骤1&#xff1a;添加aop依赖包 <!-- aop切面 依赖--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>步骤2&#xff1a;创建AOP日记监控记录切面类 …

微服务架构——配置中心

「配置中心」&#xff0c;顾名思义&#xff0c;就是用来统一管理项目中所有配置的系统。虽然听起来很简单&#xff0c;但也不要小瞧了这个模块。如果一个中型互联网项目&#xff0c;不采用配置中心的模式&#xff0c;一大堆的各类配置项&#xff0c;各种不定时的修改需求&#…

TMS Aurelius v5.15 Source Crack

TMS Aurelius v5.15 Source Crack 面向Delphi的ORM框架&#xff0c;完全支持数据操作、复杂和高级查询、继承、多态等。。。 功能详细信息 支持多个数据库服务器(MS SQL Server、Firebird、MySQL、DB2、Interbase、Oracle等) 支持多个数据库访问组件(dbExpress、AnyDac、SQLDir…

Linux驱动开发:设备树dts详解

前言&#xff1a;掌握设备树是 Linux 驱动开发人员必备的技能&#xff01;因为在新版本的 Linux 中&#xff0c;ARM 相关的驱动全部采用了设备树(也有支持老式驱动的&#xff0c;比较少)&#xff0c;最新出的 CPU 其驱动开发也基本都是基于设备树的&#xff0c;比如 ST 新出的 …

Stable Diffusion + EbSynth + ControlNet 解决生成视频闪烁

一、安装 1.1、安装ffmpeg 下载地址&#xff1a; 解压&#xff0c;配置环境变量 E:\AI\ffmpeg\bin 检查是否安装成功 1.2、安装SD的 EbSynth 插件 插件地址 https://github.com/s9roll7/ebsynth_utility 报错&#xff1a;ModuleNotFoundError: No module named extension…

后端查询出的数据库数字自动补零和不补零

select CAST(YTD_CHANGE*100 as decimal(18,1)), round(YTD_CHANGE*100,1) from RP where data_date 20211231补零 round(PYTD_CHANGE_PER*100,1)不补零 CAST(PYTD_CHANGE_PER*100 as decimal(18,1))

day39-Oracle分区表

0目录 Oracle分区表 1.2.3 1. Oracle分区表 1.1 作用&#xff1a; Oracle数据库的分区把表中的数据行按照分区划成几个区域&#xff0c;提高大数据量下表的性能 1.2 应用场景&#xff1a;常应用于数据量大的表 1.3 分类&#xff1a;Oracle中有范围分区&#xff08;最常见…

LCD-STM32液晶显示中英文-(5.字符编码)

目录 字符编码 字符编码说明参考网站 字符编码 ASCII编码 ASCII编码介绍 ASCII编码表 中文编码 1. GB2312标准 区位码 2. GBK编码 3. GB18030 各个标准的对比说明 4. Big5编码 字符编码 字符编码说明参考网站 字符编码及转换测试&#xff1a;导航菜单 - 千千秀字 …

代码随想录day6 | 1. 两数之和 454.四数相加II 383.赎金信 15.三数之和 18.四数之和

文章目录 1. 两数之和2. 四数相加II3. 赎金信4. 三数之和5. 四数之和 1. 两数之和 1. 两数之和 虽然是LeetCode第一题&#xff0c;但是还是挺难的&#xff01; 模拟一下&#xff1a; class Solution { public:vector<int> twoSum(vector<int> &nums, int ta…

解决appium-doctor报opencv4nodejs cannot be found

一、下载cmake 在CMake官网下载&#xff1a;cmake-3.6.1-win64-x64.msi 二、安装cmake cmake安装过程 在安装时要选择勾选为所有用户添加CMake环境变量 三、检查cmake安装 重新管理员打开dos系统cmd命令提示符&#xff0c;输入cmake -version cmake -version四、安装opencv4no…

美国某市政府出现重大数据泄露事件,疑似离职人员未删除权限

近日&#xff0c;美国得克萨斯州西部城市敖德萨市市长Javier Joven宣布&#xff0c;自2022年12月以来&#xff0c;已经有人多次使用前敖德萨市检察官Natasha Brooks的账户非法访问了该市的政府系统&#xff0c;并将大量敏感信息通过电子邮件转移到了一个私人账户&#xff0c;敖…

创建ReWorks自引导工程

自引导工程开发与集成流程 2、新建工程 3、资源配置 4、代码编写 5、构建项目 右键构件项目&#xff0c;或选择“构建按钮”构建项目 6、配置TFTP服务路径 右键IMX6Q_SMP文件夹&#xff0c;配置TFTP服务路径 或 7、打开串口终端 8、启动开发板 查看网卡 素材来源于&#xff1…

社区版、专业版、企业版、专有版,smardaten四个版本到底怎么选?

这是一篇新老用户都不容错过的文章&#xff01; 要问今年上半年smardaten最大的变化&#xff0c;轻量化版本的推出双手奉上~~ 这时每一个心痒痒的客户&#xff0c;几乎都要迷茫的问睿睿两个问题&#xff1a;“现有版本之间有什么区别&#xff1f;都怎么收费&#xff1f;”。 …

在Microsoft Excel中如何快速将上下两行数据合并为一行?

合并单元格是电子表格初学者最常用的选项之一。当一组单元格、行或列需要标题或标签时,合并单元格是一种常用的技术。 合并单元格时,仅保留区域左上角单元格中的值或公式,并将其显示在合并后的单元格中。将丢弃任何其他值或公式,那么如何在新的空白单元格中将两行数据合并…

yo!这里是类的默认成员函数

目录 前言 默认成员函数 构造函数 1.介绍 2.注意点 析构函数 1.介绍 2.注意点 拷贝构造函数 1.介绍 2.注意点 赋值运算符重载 1.介绍 2.注意点 取地址及const取地址操作符重载 1.介绍 2.注意点 后记 前言 在学习c的过程中&#xff0c;我们知道&#xff0c;c是…