R语言基础——简单相关性分析(1)

article/2025/10/15 0:10:40

简单相关性分析(1)

  • 简介
  • 1. 协方差和相关系数
    • 1.1 协方差
    • 1.2 相关系数
  • 2. 相关性分析
  • 参考


简介

初次接触相关性分析,在摸索中前进,也顺便将笔记记录下来,未雨绸缪嘛!
简单来说,相关性分析就是衡量两个变量之间的依赖性强弱的一种统计学方法。相关系数可以用来描述定量变量之间的关系。相关系数的符号(±)表明关系的方向(正相关或负相关),其值的大小表示关系的强弱程度(完全不相关时为0,完全相关时为1)。

1. 协方差和相关系数

1.1 协方差

公式:
在这里插入图片描述

三种情况:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
协方差的缺陷:

  1. 协方差不能反映斜率大小,只能反映斜率的正负。
  2. 协方差不能反映每一个观测靠近拟合线y=ax+b的程度。
  3. 协方差对数据更加敏感,示例如下:
    在这里插入图片描述

1.2 相关系数

公式:
在这里插入图片描述
相关性绝对值为1和0的情况:
在这里插入图片描述
在这里插入图片描述
从图中可以明显看出,协方差和相关性之间的差异!
R语言中,cor()cov()函数分别用来计算相关性系数和协方差。

2. 相关性分析

R可以计算多种相关系数,包括Pearson相关系数、Spearman相关系数、Kendall相关系数等,本次主要以Pearson相关系数进行探索,可视化以R基础函数为主。

2.1 产生多维正态随机矩阵,并转换为数据框

library(mvtnorm)
library(dplyr)
N <- 100
Sigma <- matrix(c(1, 0.75, 0.75, 1), nrow = 2, ncol = 2) * 1.5
means <- list(c(11, 3), c(9, 5), c(7, 7), c(5, 9), c(3, 11))
dat <- lapply(means, function(mu)rmvnorm(N, mu, Sigma))
dat <- as.data.frame(Reduce(rbind, dat)) %>%mutate(Z = as.character(rep(seq_along(means), each = N)))
names(dat) <- c("X", "Y", "Z")
knitr::kable(head(dat),align = "c")
XYZ
12.7255114.31958621
9.2589081.97661761
13.1776865.98418621
9.7252970.54743561
8.8428310.45256701
10.7306922.12256721

2.2 X和Y的总体相关性分析和可视化

with(dat,cor(X,Y))
# [1] -0.7294138
par(mar = c(5,5,5,5))
with(dat,{plot(X,Y,pch = 21,col = "black",bg = "gray")lines(X,fitted(lm(Y ~ X)),lwd = 2,lty = 1,col = "red")
})
text(12,12,labels = paste("cor",round(with(dat,cor(X,Y)),digits = 2),sep = " = "))

在这里插入图片描述
2.2 X和Y在Z水平上的相关性分析和可视化

dat1 <- dat %>% group_by(Z) %>% summarise(cor = cor(X,Y))
dat1
# A tibble: 5 x 2Z       cor<chr> <dbl>
1 1     0.738
2 2     0.772
3 3     0.743
4 4     0.847
5 5     0.783
tt <- round(dat1$cor,digits = 2)
tt <- paste("cor",tt,sep = " = ")
par(mar = c(5,5,5,5))
with(dat,{plot(X,Y,pch = 21,col = "black",bg = Z)
})
for(i in 1:5){dat1 = dat[dat$Z==i,]with(dat1,{lines(X,fitted(lm(Y ~ X)),lwd = 2,lty = 1,col = Z)text(13,14-i+1,labels = tt[i],col = dat1$Z)})

在这里插入图片描述
可以看到,在对样本观测进行分组之后,数据呈现出的相关性和之前总体的X和Y相关性尽然不同。

cor.test()函数可以对相关性进行显著性检验。

with(dat,cor.test(X,Y))
#
Pearson's product-moment correlationdata:  X and Y
t = -23.795, df = 498, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:-0.7679821 -0.6855744
sample estimates:cor 
-0.7294138 

初次探索相关性分析,欢迎大家留言讨论!


##侵权请联系作者删除!

参考

[1]《R语言实战》
[2] StatQuest


http://chatgpt.dhexx.cn/article/66eOPtk7.shtml

相关文章

分类变量、有序变量与数值变量相关性分析方法总结及 R 语言应用

文章目录 一、分类 & 分类相关性分析二、有序 & 有序相关性分析三、数值 & 数值相关性分析四、分类 & 有序相关性分析五、分类 & 数值相关性分析六、有序 & 数值相关性分析 本文全部假设显著性水平为0.05&#xff0c;特殊说明的除外。 一、分类 & …

数据分析方法和思维—相关性分析法

01 写在前面 在数据分析的问题中, 经常会遇见的一种问题就是相关的问题, 比如抖音短视频的产品经理经常要来问留存&#xff08;是否留下来&#xff09;和观看时长, 收藏的次数, 转发的次数, 关注的抖音博主数等等是否有相关性, 相关性有多大。 因为只有知道了哪些因素和留存比较…

python相关性分析_python实践统计学中的三大相关性系数,并绘制相关性分析的热力图...

本文首发地址&#xff1a; https://yishuihancheng.blog.csdn.net/article/details/83547648 欢迎关注我的博客【Together_CZ】&#xff0c;我是沂水寒城&#xff01; 今天我简单地使用了scipy模块进行了统计学中三大相关性分析方法&#xff08;皮尔森相关性系数、斯皮尔曼相…

数据相关性分析笔记

一、数据相关性的含义 数据类型 数据可以是连续的值&#xff0c;比如声音、图像&#xff0c;称为模拟数据。也可以是离散的&#xff0c;如符号、文字&#xff0c;称为数字数据。(ppt)数值型数据、分类型数据、定序数据。 数据相关性 数据相关性是指数据之间存在某种关系&#…

ArcGIS栅格数据图层空间相关性分析方法

ArcGIS栅格数据图层空间相关性分析方法 也不知道严谨不严谨&#xff0c;先Mark吧欸。 矢量的空间相关分析可以通过Spatial Join以后&#xff0c;导出属性表到EXCEL中&#xff0c;进行相关分析Correlation Analysis.  而两个栅格数据图层直接能不能直接在ArcMap中进行相关分…

IBM SPSS Statistics常用的相关性分析方法

灵活运用IBM SPSS Statistics做数据的统计和分析是每个数据分析师都应该掌握的技能&#xff0c;这款软件为用户提供了全面的数据分析方法&#xff0c;可以解决我们在数据分析过程中遇到的各种难题。 接下来小编就为大家介绍一下SPSS相关性分析的方法。 图1&#xff1a;SPSS软件…

神经网络相关性分析方法,神经网络相关性分析图

1、bp神经网络怎么确定输入与输出是正相关还是负相关&#xff1f; 想了解输入输出关系你可以求协方差&#xff0c;进而求peason相关系数 当然你也可以求spearman 等&#xff0c;看他们的相关度即可&#xff0c;正负就代表是正相关还是负相关&#xff0c;具体值代表相关性度量 …

重剑无锋!15种相关分析算法,总有一款适合你!

相关系数&#xff08;Correlation coefficient&#xff09;可用于评估两个变量之间的线性关系&#xff0c;它的值在-1到1之间&#xff0c;-1或1代表完美的负相关和正相关&#xff0c;0表示不存在线性关系。 计算相关系数的方法种类繁多&#xff0c;各有自己的定义以及适用情况…

Keil MDK5中对结构体变量使用结构体成员运算符.后不自动显示结构体成员

MDK5在对结构体变量使用结构体成员运算符.时是会显示结构体成员的&#xff0c;如图所示&#xff1a; 但是有时候使用结构体成员运算符.时并不会出现结构体成员&#xff0c;导致这个问题的原因是没有将自己写的文件添加到工程之中&#xff0c;解决办法如下&#xff1a; 检查是…

【C语言】结构体的创建和使用与结构体内存对齐

结构体创建 前言结构体的声明全局声明特殊声明 结构体变量定义与成员初始化成员类型变量定义匿名结构体变量定义 结构体的自引用结构体成员的访问成员初始化操作符结构体传参 结构体内存对齐对齐数对齐规则 前言 在生活中我们要描述一个人时是不是要知道他的名字、性别、年龄啊…

C语言struct结构体内存

对齐规则&#xff1a; &#xff08;i&#xff09;结构体内 成员存储位置 的起始地址为成员自身长度与默认对齐值 中的较小者的整倍数。 &#xff08;ii&#xff09;结构体A嵌套在结构体B内&#xff0c;则A在B内存储位置起始地址为 A内成员最长长度 的整数倍。 &#xff08;iii&…

嵌入式系统开发:C语言中的位结构体

在嵌入式开发中&#xff0c;经常需要表示各种系统状态&#xff0c;位结构体的出现大大方便了我们&#xff0c;尤其是在进行一些硬件层操作和数据通信时。但是在使用位结构体的过程中&#xff0c;是否深入思考一下它的相关属性&#xff1f;是否真正用到它的便利性&#xff0c;来…

keil中,编写结构体成员运算符(.)后不能自动弹出结构体成员

keil中&#xff0c;编写结构体成员运算符&#xff08;.&#xff09;后不能自动弹出结构体成员 解决办法&#xff1a; 1、确保源文件里面包含sys.h/stm32f10x.h文件&#xff08;或者源文件里面的头文件也行&#xff09; 2、把源文件路径加载到keil里面&#xff08;魔术棒->C/…

c++中的结构体案例

结构体案例一 案例描述&#xff1a;学生做毕设项目&#xff0c;每名老师有5个学生&#xff0c;总共有3个老师&#xff0c;需求如下&#xff1a; 设计学生和老师的结构体&#xff0c;在老师的结构体中&#xff0c;有老师的姓名和一个存放了5名学生的数组作为成员学生的成员有姓…

C语言:位结构体

位结构体是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构体比按位运算符更加方便。 一、位结构—简介 有些信息在存储时&#xff0c;并不需要占用一个完整的字节&#xff0c; 而只需占几个或一个二进制位。 例如在存放一个开关量时&#xff0c;只有0和1 两种状…

C 语言编程 — 构造数据类型 — 结构体(struct)

目录 文章目录 目录结构体声明一个结构体类型定义一个结构体类型的变量定义一个结构体类型的指针变量结构体的成员结构体的内存分布 结构体 结构体&#xff08;Structure&#xff09;是一种由不同类型的数据成员组成的数据类型。通过定义结构体&#xff0c;我们可以将多个不同…

C语言结构体和其他构造数据类型详解

结构体和其他构造数据类型 结构体 “结构”是一种构造类型&#xff0c;它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构既然是一种“构造”而成的数据类型&#xff0c;那么说明和使用之前必须先定义它&#xff0c;也就是构造它。 结…

C的实用笔记38——结构体的引入和定义

1.为什么要用结构体&#xff1f; 0、原因&#xff1a;实际开发中&#xff0c;我们需要将不同类型的数据组合成一个整体&#xff0c;这就是结构体。结构体是自创的类型。 1、查找一名学生信息的两种方案&#xff1a;在EXCEL表格和数据库中经常有这种情况&#xff0c;比方说一个…

7.IDA-创建结构体

结构体分类 结构体的一个显著特点在于&#xff0c;结构体中的数据字段是通过名称访问&#xff0c;而不是像数组那样通过索引访问。不好的是&#xff0c;字段名称被编译器转换成了数字偏移量。结果&#xff0c;在反汇编代码清单中&#xff0c;访问结构体字段的方式看起来与使用…

结构体的初步认识以及其内存的计算

目录 前言 结构体的定义 结构体的自引用 结构体的初始化 结构体内存的计算 前言 我们知道&#xff0c;通过不同的数据类型我们可以表达不同意义的数据&#xff0c;如长度宽度面积只需要定义一个 int 类型的数据就可以符合大部分的需求。但是&#xff0c;有些东西自存在就是一…