数学建模【相关性模型】

一、相关性模型简介

相关性模型并不是指一个具体的模型,而是一类模型,这一类模型用来判断变量之间是否具有相关性。一般来说,分析两个变量之间是否具有相关性,我们根据数据服从的分布和数据所具有的特点选择使用pearson(皮尔逊)相关系数和spearman(斯皮尔曼)等级相关系数;分析两组变量,每组变量都有多个指标的时候,无论是pearson相关系数还是spearman等级相关系数都无能为力,所以又要介绍一个新的典型相关分析来解决这个问题。

二、适用赛题

显而易见,这些相关性模型适用于探究变量之间的关系,帮助了解它们是否存在相关性,以及相关性的强度和方向。

三、模型流程

四、流程分析

因为整个流程包含三个模型,所以会以pearson相关系数,spearman等级相关系数,典型相关分析的顺序来讲解。

注:本篇存在大量的概率论与数理统计的知识,这里并不对其中出现的知识、定理等作概念说明和详细证明

1.pearson相关系数

可以从流程图看到,应用pearson相关系数条件还是比较苛刻的。首先得是两个变量之间,其次这两个变量的数据还要服从正态分布。其实应用pearson相关系数的条件还不止,后面会全部介绍。

①正态分布检验

为什么要正态分布检验?

  • 第一,实验数据通常假设是成对的来自于正态分布的总体。因为我们在求pearson相关系数以后,通常还会用t检验之类的方法来进行皮尔逊相关系数检验,而t检验是基于数据呈正态分布的假设的
  • 第二,实验数据之间的差距不能太大。皮尔逊相关性系数受异常值的影响比较大
  • 第三,每组样本之间是独立抽样的。构造t统计量时需要用到
Ⅰ正态分布JB检验(大样本 n > 30)

雅克-贝拉检验(Jarque-Bera test)

这是原理,但是在MATLAB中,代码很简单

注:有些地方正态分布峰度为0,MATLAB中是3

skewness(x) % 偏度
kurtosis(x) % 峰度

可以用这两句查询数据的偏度和峰度

MATLAB中进行JB检验的语法:

[h, p] = jbtest(x, alpha);

当输出h等于1时,表示拒绝原假设;h等于0则代表不能拒绝原假设。alpha就是显著性水平,一般取0.05, 此时置信水平为1 - 0.05 = 0.95。x就是我们要检验的随机变量,注意这里的x只能是向量。

ⅡShapiro-wilk检验(小样本 3 ≤ n ≤ 50)

Shapiro-wilk 夏皮洛-威尔克检验

此操作一般在SPSS软件上进行。

②计算相关系数

pearson相关系数的原理在概率论课本上有,无论是总体还是样本。这里给出MATLAB中如何求

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

关于pearson相关系数的总结

  •  如果两个变量本身就是线性的关系,那么pearson相关系数绝对值大的就是相关性强,小的就是相关性弱
  • 在不确定两个变量是什么关系的情况下,即使算出pearson相关系数,发现很大,也不能说明那两个变量线性相关,甚至不能说它们相关,我们一定要画出散点图来看才行
③假设检验

事实上,比起相关系数的大小,我们往往更关注的是显著性(假设检验)

原理这里不再给出,证明过于复杂。

这里用更好的方法:p值判断法

一行代码得到p值

[R, P] = corrcoef(test);

R返回的是相关系数表,P返回的是对应于每个相关系数的p值

注:拒绝原假设意味着pearson相关系数显著的异于0

2.spearman等级相关系数

pearson相关系数不能用,就使用spearman等级相关系数。鉴于pearson相关系数中已经介绍过正态分布检验,这里不在重复。

①计算相关系数

注:如果有的数值相同,则将它们所在的位置取算术平均。

举个例子:

在MATLAB中,代码也是很简单

coeff = corr(X, Y, 'type', 'Spearman'); % 这里的X和Y必须是列向量
coeff = corr(x, 'type', 'Spearman'); % 这时计算X矩阵各列之间的spearman相关系数
②假设检验
Ⅰ小样本情况(n ≤ 30)

直接查临界值表即可


n

单尾检验的显著水平

.05

.025

.01

.005

双尾检验的显著水平

.10

.05

.02

.01

4

1.000

5

0.900

1.000

1.000

6

0.829

0.886

0.943

1.000

7

0.714

0.786

0.893

0.929

8

0.643

0.738

0.833

0.881

9

0.600

0.700

0.783

0.833

10

0.564

0.648

0.745

0.794

11

0.536

0.618

0.709

0.755

12

0.503

0.587

0.671

0.727

13

0.484

0.560

0.648

0.703

14

0.464

0.538

0.622

0.675

15

0.443

0.521

0.604

0.654

16

0.429

0.503

0.582

0.635

17

0.414

0.485

0.566

0.615

18

0.401

0.472

0.550

0.600

19

0.391

0.460

0.535

0.584

20

0.380

0.447

0.520

0.570

21

0.370

0.435

0.508

0.556

22

0.361

0.425

0.496

0.544

23

0.353

0.415

0.486

0.532

24

0.344

0.406

0.476

0.521

25

0.337

0.398

0.466

0.511

26

0.331

0.390

0.457

0.501

27

0.324

0.382

0.448

0.491

28

0.317

0.375

0.440

0.483

29

0.312

0.368

0.433

0.475

30

0.306

0.362

0.425

0.467

35

0.283

0.335

0.394

0.433

40

0.264

0.313

0.368

0.405

45

0.248

0.294

0.347

0.382

50

0.235

0.279

0.329

0.363

60

0.214

0.255

0.300

0.331

70

0.190

0.235

0.278

0.307

80

0.185

0.220

0.260

0.287

90

0.174

0.207

0.245

0.271

100

0.165

0.197

0.233

0.257

注:样本相关系数r必须大于等于表中的临界值,才能得出显著的结论。

Ⅱ大样本情况

依旧是选择更好用的p值检验法

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

这里和p值和pearson相关系数假设检验那里的p值解释相同。

3.pearson相关系数和spearman等级相关系数选择
  • 连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用spearman等级相关系数也可以,就是效率没有pearson相关系数高
  • 上述任一条件不满足,就用spearman等级相关系数,不能用pearson相关系数
  • 两个定序数据之间也用spearman等级相关系数,不能用pearson相关系数

定序数据是指仅仅反映观测对象等级、顺序关系的数据,是由定序尺度计量形成的,表现为类别,可以进行排序,属于品质数据。

例如:优、良、差;我们可以用1表示差、2表示良、3表示优,但请注意,用2除以1得出的2并不代表任何含义。定序数据最重要的意义代表了- -组数据中的某种逻辑顺序。

注:斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广,只要数据满足单调关系(例如线性函数、指数函数、对数函数等)就能够使用。

4.典型相关分析

声明:对于典型相关分析,其中原理、证明过于复杂,本篇不作涉及,只介绍得出结果的流程。

基本思想

典型相关分析由Hotelling提出,其基本思想和主成分分析非常相似。首先在每组变量中找出变量的线性组合,使得两组的线性组合之间具有最大的相关系数。然后选取和最初挑选的这对线性组合不相关的线性组合,使其配对,并选取相关系数最大的一对,如此继续下去,直到两组变量之间的相关性被提取完毕为此。被选出的线性组合配对称为典型变量,它们的相关系数称为典型相关系数。典型相关系数度量了这两组变量之间联系的强度。

①矩阵标准化变换

矩阵的准化变换属于线性代数的知识,这里介绍为什么要对矩阵进行标准化变化的操作

  • 典型相关分析涉及多个变量,不同的变量往往具有不同的量纲及不同的数量级别。在进行典型相关分析时,由于典型变量是原始变量的线性组合,具有不同量纲变量的线性组合显然失去了实际意义
  • 其次,不同的数量级别会导致“以大吃小”,即数量级别小的变量的影响会被忽略,从而影响了分析结果的合理性
  • 因此,为了消除量纲和数量级别的影响,必须对数据先做标准化变换处理,然后再做典型相关分析
②求解

再看过第一步之后肯定是一头雾水,矩阵是哪里来的?这里对典型相关分析中的变量做一些介绍

规定有

第一步的矩阵标准化就是对这四个矩阵进行操作

这里以一组数据为例子

康复俱乐部对20名中年人测量了三个生理指标:体重(x1),腰围(x2),脉搏(x3);三个训练指标:引体向上次数(y1),起坐次数(y2),跳跃次数(y3)。分析生理指标与训练指标的相关性。

根据数据可得

在标准化之后,矩阵用R表示

设置A和B

这里A和B的特征值是相同的

则可得

每一个a和b都是对应的特征向量,在这里也就是典型相关系数

第二对和第三对也是如此。

③假设检验

对于每一对典型变量进行计算

④典型载荷分析

进行典型载荷分析有助于更好解释分析已提取的p对典型变量。所谓的典型载荷分析是指原始变量与典型变量之间相关性分析。

⑤典型冗余分析

5.补充

可以看见,典型相关分析过于复杂,不过可以利用SPSS软件完成对数据相关性的分析,包括pearson相关系数和spearman等级相关系数。

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

https://htmlunit.sourceforge.io/

https://htmlunit.sourceforge.io/ 爬虫 HtmlUnit – Welcome to HtmlUnit HtmlUnit 3.11.0 API https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit/2.70.0 https://s01.oss.sonatype.org/service/local/repositories/releases/content/org/htmlunit…

启动spark-shell时报错java.lang.NumberFormatException: For input string: “0x100“

一、问题描述 安装完Spark后,启动spark shell时报错 java.lang.NumberFormatException: For input string: "0x100" 如下图: 二、解决办法 1.更换scala的版本 2.更改环境变量 使用vim编辑器打开用户的环境变量配置文件 vim ~/.bashrc s…

单片机51 定时器

一、基本概念 1.1简介 单片机的定时器是一种内部功能模块,用于产生计时、计数、延时等功能。定时器通常由一个或多个计数器和相关的控制逻辑组成。单片机的定时器可以运行在不同的工作模式下,以适应不同的计时和计数需求。 C51中的定时器和计数器是同…

代码随想录算法训练营day26

题目:39_组合总数(没看题解) 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字&…

设计模式(十) - 工厂方式模式

前言 在此前的设计模式(四)简单工厂模式中我们介绍了简单工厂模式,在这篇文章中我们来介绍下工厂方法模式,它同样是创建型设计模式,而且又有些类似,文章的末尾会介绍他们之间的不同。 1.工厂方法模式简介 …

AI赋能Oracle DBA:以自然语言与Oracle数据库互动

DBA AI助手:以自然语言与Oracle数据库互动 0. 引言1. AI赋能Oracle DBA的优势2. AI如何与Oracle数据库交互3. 自然语言查询的一些示例4. 未来展望 0. 引言 传统的Oracle数据库管理 (DBA) 依赖于人工操作,包括编写复杂的SQL语句、分析性能指标和解决各种…

Python入门必学:print函数--从基础语法到高级用法

Python入门必学:print函数–从基础语法到高级用法 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您…

李亚飞:什么是开发人员的工程能力?如何考察?

可以说工程能力是软件工程师最核心的能力,工程能力强的人工作效率往往很高,在动手之前就想清楚更多研发风险,也可以提出更多产品意见。 但到底什么是工程能力,该如何考察,是本文想跟大家探讨的内容。 知乎上关于【工…

并发编程基础

为什么开发中需要并发编程? 加快响应用户的时间使你的代码模块化、异步化、简单化充分利用CPU资源 基础概念 进程和线程 进程 我们常听说的应用程序,由指令和数据组成。当我们不运行应用程序时,这些应用程序就是放在磁盘上的二进制的代码…

matlab 线性四分之一车体模型

1、内容简介 略 57-可以交流、咨询、答疑 路面采用公式积分来获得,计算了车体位移、非悬架位移、动载荷等参数 2、内容说明 略 3、仿真分析 略 线性四分之一车体模型_哔哩哔哩_bilibili 4、参考论文 略

学算法要读《算法导论》吗?

大家好,我是 方圆。这篇文章是我学习算法的心得,希望它能够给一些将要学习算法且准备要读大部头算法书籍的朋友一些参考,节省一些时间,也为了给经典的“黑皮书”祛魅,我觉得这些书籍在大部分互联网从业者心中已经不再是…

网络安全与信创产业发展:构建数字时代的护城河

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua,在这里我会分享我的知识和经验。&#x…