R语言统计分析——相关

devtools/2024/9/24 14:21:43/

参考资料:R语言实战【第2版】

        相关系数可以用来描述定量变量之间的关系。相关系数的符号(±)表明关系的方向(正相关或负相关),其值的大小表示关系的强弱程度(完全不相关时为0,完全相关时为1)。

        本文中将使用R语言基础安装中的state.x77数据集。

1、相关的类型

        R语言可以计算多种相关系数,包括Pearson相关系数,Spearman相关系数、Kendall相关系数、偏相关系数、多分格(polychoric)相关系数和多系列(polyserial)相关系数

(1)Pearson、Spearman和Kendall相关

        Pearson积差相关系数衡量了两个定量变量之间的线性相关程度

        Spearman等级相关系数则衡量分级定序变量之间的相关程度。

        Kendall's Tau相关系数也是一种非参数的等级相关度量。

        cor()函数可以计算着三种相关系数,而cov函数用来计算协方差。两个函数的参数有很多,其中与相关系数的计算有关的参数可以简化为:

        cor(x,use="everything",method="pearson")

x表示矩阵或数据框;

use用于指定缺失数据的处理方式。可选的方式为all.obs(假设不存在缺失数据——遇到缺失数据时将报错)、everything(遇到缺失数据时,相关系数的计算结果将被设为missing)、complete.obs(行删除)以及pairwise.complete.obs(成对删除,pairwise deletion)

method指定相关系数的类型。可选类型为pearsonspearmankendall

# 加载数据集
states<-state.x77[,1:6]
# 查看数据集
states
# 计算协方差矩阵
cov(states)
# 计算pearson相关系数
cor(states)
# 计算spearman相关系数
cor(states,method="spearman")

        请注意,在默认情况下cor()函数得到的结果是一个方阵(所有变量之间两两计算相关),我们也可以计算非方形的相关矩阵,如下:

x<-states[,c('Population','Income','Illiteracy','HS Grad')]
y<-states[,c('Life Exp','Murder')]
cor(x,y)

        当我们对一组变量与另外一组变量之间的关系感兴趣时,cor()函数的这种用法是非常实用的。注意,cor()函数的结果并未指明相关系数是否显著不为0,所以还需要对相关系数进行显著性检验。

(2)偏相关

        偏相关是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系。我们可以使用ggm包中的pcor()函数计算偏相关系数。ggm包没有被默认安装,在第一次使用之前需要先行安装。函数的调用格式为:

        pcor(u,S)

u是一个数值向量,前面两个数值表示要计算相关系数的变量下标,其余的数值为条件变量(即要排除影响的变量)下标。S为变量的协方差阵。

# 加载ggm包
library(ggm)
# 展示列名
colnames(states)
# 计算偏相关系数
pcor(c(1,5,2,3,6),cov(states))

        结果表明,在控制了2,3,6(即收入、文盲率、高中毕业率)的影响时,1和5(即人口和谋杀率)之间的相关系数为0.346。偏相关系数常用于社会科学的研究中。

2、相关的显著性检验

        相关性统计显著性检验常用的原假设为变量间不相关(即总体的相关系数为0)。我们可以使用cor.test()函数对单个的Pearson、Spearman和kendall相关系数进行检验,简化后的使用格式为:cor.test(x,y,alternative=,method=)

其中,x和y为要检验相关性的变量,alternative则用来指定双侧检验或单侧检验(取值为"two.side"、"less"或"greater",默认为two.side),而method用以指定要计算的相关类型("pearson","spearman","kendall")。

# 相关性的显著性检验
cor.test(states[,3],states[,5])

        本例,原假设是:与其寿命和谋杀率的pearson相关系数为0。检验结果显示p值远小于0.01,则拒绝原假设,即预期寿命和谋杀率之间的总体相关度不为0.

        但cor.test()函数每次只能检验一种相关关系。psych包提供的corr.test()函数可以一次做更多检验。corr.test()函数可以为Pearson、Spearman或Kendall相关计算相关矩阵和显著性水平。

# 加载psych包
library(psych)
# 计算相关矩阵并进行显著性检验
corr.test(states,use="complete")

        在多元正态性的假设下,ggm包中的pcor.test()函数可以用来检验在控制一个或多个额外变量时两个变量之间的条件独立性。使用格式为:

        pcor.test(r,q,n)

其中,r是pcor()函数计算得到的偏相关系数,q为要控制的变量数(以数值表示位置),n为样本量大小。


http://www.ppmy.cn/devtools/92601.html

相关文章

前端JS总结(中)

目录 前言 正文 对象&#xff1a; 分类&#xff1a; 自定义对象&#xff1a; 内置对象&#xff1a; 重点&#xff1a; 常用内置对象&#xff1a; 字符串对象&#xff1a;String 获取字符串长度&#xff1a; 大小写转换&#xff1a; 获取某个字符&#xff1a; 截取字…

LInux - 一文了解 ssh端口敲门knock

文章目录 基本概念工作原理实操注意事项 基本概念 SSH端口敲门技术是一种网络安全措施&#xff0c;用于防止未经授权的访问。通过端口敲门&#xff0c;可以动态地在防火墙上打开指定端口&#xff08;如SSH端口&#xff09;&#xff0c;仅允许符合特定敲门序列的用户访问。此技…

MySQL的DROP/DELETE/TRUNCATE区别

DROP/DELETE/TRUNCATE 在数据库管理中&#xff0c;DROP、DELETE和TRUNCATE都是用来移除数据的命令&#xff0c;但它们的用途、效果和内部工作原理有显著差异。以下是每个命令的详细介绍、它们的共同点和区别&#xff1a; DELETE 作用 DELETE命令用于删除表中的一行或多行记…

pycharm使用虚拟环境

创建虚拟环境 conda create -n torch-one python3.7 安装需要的库&#xff0c;或者后面需要什么再安也行 pip install … 通过pycharm打开项目 File->settings->project:你的项目名->python interpreter 右上角设置按钮 点设置->add->conda environment->ex…

UE开发中的设计模式(二) —— 中介者模式

上一篇文章介绍了观察者模式如何降低观察者和目标之间的耦合&#xff0c;并通过一个实例具体实现了观察者模式&#xff0c;本篇文章从上篇文章的实例继续&#xff0c;介绍中介者模式是如何带来对象间进一步的松耦合。 文章目录 问题提出概述问题解决总结优点缺点模式应用 参考资…

【网络】从零认识IPv4

目录 IP地址定义 网络标识和主机标识 子网掩码 IPv4地址的分类 全局地址和私有地址 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 IP地址定义 IP是网络中每台设备的唯一标识符&#xff0c;用于识别和定位计算机、服务器、路由器等设备&#xff0c;以便它们能够在网络上…

100 Exercises To Learn Rust 挑战!构文・整数・变量

前一篇文章 【0】准备 【1】构文・整数・变量 ← 本次全部文章列表 《100 Exercise To Learn Rust》第2回&#xff0c;也就是实际演习的第1回&#xff01;从这次开始&#xff0c;我们会适度减少前置说明&#xff0c;直接进入问题的解决&#xff01; 本次的相关页面 1.1. Syn…

单例模式(懒汉式、饿汉式)

一、普通情况 正常在实体类下定义一个属性&#xff0c;在测试类中去创建他两次&#xff0c;此时stu1和stu2的内存地址不同 public class Student {private String name; } 二、单例模式下 (一) 懒汉式 在实体类下设计私有的构造方法&#xff0c;导致在测试类中无法new一个…