当前位置: 首页 > news >正文

5.23相关性分析

相关性分析是一件很自然而然的事情,在生活中和科学研究中,我们都可能会不由自主地关注两件或者多件事情之间的联系。比如性别和方向感有没有关系,有多大关系,辨别不同事物时如何说明特征的科学性(也就是该特征和事物的相关性),一开始可能是对某些现象的联系的模糊感觉,如何验证这种感觉,如何衡量事情之间的相关程度呢?这个过程其实做的就是相关性分析了。

写在前面,独立一定不相关(不管是什么维度的先关),不相关不一定独立。独立是更强的不相关,所以如果进行独立性检验之后得到不相关,无需再进行相关性分析。

目录

相关性分析方法

1. 皮尔逊相关系数(Pearson Correlation Coefficient)

2. 斯皮尔曼秩相关系数(Spearman's Rank Correlation Coefficient)

3. 肯德尔相关系数(Kendall's Tau)

5. 多元相关分析(Multiple Correlation)

6. 卡方检验(Chi-Square Test)

7. 格兰杰因果检验(Granger Causality Test)

方法选择

1. 数据类型

连续变量

有序数据

分类变量

时间序列数据

2. 数据分布和关系性质

线性关系

非线性或单调关系

3. 控制其他变量

控制混杂变量

4. 数据规模

大样本

小样本

5. 研究目标

简单相关性

多变量关系

因果关系

判断选择方法的适当性

实例举例


相关性分析方法

相关性分析是一种统计方法,用于研究变量之间的关系和依赖性。它广泛应用于社会科学、经济学、医学、市场研究等领域。以下是几种常见的相关性分析方法:

1. 皮尔逊相关系数(Pearson Correlation Coefficient)

  • 定义:衡量两个连续变量之间的线性关系,取值范围为-1到1。(0为不线性相关,负数值为负相关,正数值为正相关)

常用的概率论教材中提到的相关系数都是皮尔逊相关系数,注意的是它衡量的是线性关系,Pearson相关系数为0只能说明没有线性关系,变量之间可能存在更高维度的相关关系。

  • 公式

  • 优点:简单直观,适用于正态分布数据。
  • 缺点:只衡量线性关系,对异常值敏感。

用于分析两个连续变量之间的线性关系,如身高与体重、温度与电力消耗等。

2. 斯皮尔曼秩相关系数(Spearman's Rank Correlation Coefficient)

  • 定义:衡量两个变量的单调关系,不要求线性或正态分布。
  • 公式

    其中,𝑑𝑖​是第i对变量的秩差,n是样本数量。
  • 优点:对异常值不敏感,适用于非线性关系。
  • 缺点:不能区分多种不同类型的单调关系。

用于分析两个变量之间的非线性单调关系,如排名数据、非正态分布的数据。

3. 肯德尔相关系数(Kendall's Tau)

  • 定义:用于衡量两个变量排序一致性的统计量。
  • 公式

其中,C是顺序对数,D是逆序对数,n是样本数量。 

  • 优点:对小样本更稳健,适用于非线性关系。
  • 缺点:计算复杂度较高。

适用于小样本数据和排序数据,如社会科学中的问卷调查数据。

4. 偏相关分析(Partial Correlation)

  • 定义:在控制其他变量的影响下,测量两个变量之间的相关性。
  • 公式:偏相关系数r_{XY.Z}可以通过以下关系计算:

  • 优点:可以排除混杂变量的影响,更准确地描述两个变量之间的关系。
  • 缺点:需要更多的数据和计算。

用于多变量数据分析,如控制经济学中的其他因素研究收入与支出的关系。

5. 多元相关分析(Multiple Correlation)

  • 定义:用于研究一个因变量与多个自变量之间的关系。
  • 公式:多元相关系数R可以通过以下公式计算:

其中,SSE是回归模型的误差平方和,SST是总平方和。 

  • 优点:可以分析复杂系统中的多个变量。
  • 缺点:解释和模型构建较复杂。

适用于复杂系统中的多个变量分析,如市场研究中的多因素影响分析。

6. 卡方检验(Chi-Square Test)

  • 定义:用于分类变量之间的相关性分析。
  • 公式:卡方统计量𝜒2可以通过以下公式计算:

其中,O_i是观察频数,E_i是期望频数。 

  • 优点:适用于分类数据,不要求连续性
  • 缺点对小样本数据效果不佳

适用于分类数据分析,如市场调查中的性别与购买行为的相关性。

7. 格兰杰因果检验(Granger Causality Test)

  • 定义:用于时间序列数据,判断一个时间序列是否能预测另一个时间序列。
  • 方法:通过比较不同滞后期的回归模型,确定因果关系。
  • 优点:适用于动态系统中的时间序列数据。
  • 缺点:需要较长的时间序列数据。

适用于动态系统中的时间序列数据,如经济学中的GDP与消费之间的关系。

方法选择

已经把各种方法适用的场景进行了一定的说明,以下再进行一定的分析总结:

选择合适的相关性分析方法和分析系数需要综合考虑数据的特性、研究目标和具体的应用场景。以下是一些判断和选择相关性分析方法的指导原则:

1. 数据类型

连续变量
  • 皮尔逊相关系数:如果两个变量都是连续的,并且假设其关系是线性的,且数据接近正态分布。
  • 偏相关分析:如果需要在控制其他连续变量的情况下,分析两个连续变量的关系。
有序数据
  • 斯皮尔曼秩相关系数:如果数据是有序的,但不一定是连续的,且关系可能是单调的(非线性也可以)。
  • 肯德尔相关系数:用于分析有序数据间的一致性,更适合处理小样本数据。
分类变量
  • 卡方检验:如果数据是分类的,用于检测不同类别之间的相关性。
时间序列数据
  • 格兰杰因果检验:用于时间序列数据,检测一个时间序列是否能预测另一个时间序列。

2. 数据分布和关系性质

线性关系
  • 皮尔逊相关系数:适用于线性关系,且数据接近正态分布。
非线性或单调关系
  • 斯皮尔曼秩相关系数:适用于非线性但单调关系的数据,且对异常值不敏感。
  • 肯德尔相关系数:适用于测量排序数据之间的一致性,更适合处理小样本数据。

3. 控制其他变量

控制混杂变量
  • 偏相关分析:在控制其他变量的影响下,分析两个变量之间的关系。

4. 数据规模

大样本
  • 皮尔逊相关系数斯皮尔曼秩相关系数:均适用于大样本数据。
  • 偏相关分析多元相关分析:适用于大规模数据的复杂关系分析。
小样本
  • 肯德尔相关系数:对小样本更为稳健。
  • 卡方检验:注意小样本时的期望频数要求。

5. 研究目标

简单相关性
  • 皮尔逊相关系数:用于简单的线性相关性分析。
  • 斯皮尔曼秩相关系数肯德尔相关系数:用于简单的单调关系分析。
多变量关系
  • 偏相关分析:用于分析控制其他变量后的相关性。
  • 多元相关分析:用于研究一个因变量与多个自变量之间的关系。
因果关系
  • 格兰杰因果检验:用于时间序列数据中的因果关系检测。

判断选择方法的适当性

  1. 数据可视化:通过散点图、箱线图等可视化工具,初步判断数据的分布和关系性质。
  2. 检验假设:使用统计检验,如正态性检验,判断数据是否符合方法的假设条件。
  3. 计算并比较:实际计算各相关系数,并根据结果合理解释。比如,线性关系时皮尔逊系数高,而斯皮尔曼和肯德尔系数相对较低,则皮尔逊系数更适合。
  4. 文献查阅:参考类似研究中常用的方法,确保选择的分析方法具有合理性和可靠性。

实例举例

  • 实例1:分析学生的学习时间与考试成绩的关系

    • 数据类型:连续变量
    • 方法选择:皮尔逊相关系数(假设关系是线性的,且数据接近正态分布)
  • 实例2:分析客户满意度评分与服务质量评级的关系

    • 数据类型:有序数据
    • 方法选择:斯皮尔曼秩相关系数(评分和评级是有序的,关系可能是单调的)
  • 实例3:分析不同市场营销策略对销售量的影响

    • 数据类型:分类变量和连续变量
    • 方法选择:卡方检验(分类变量之间的相关性),皮尔逊相关系数(连续变量之间的线性关系)
  • 实例4:分析经济指标(如GDP)对消费支出的预测能力

    • 数据类型:时间序列数据
    • 方法选择:格兰杰因果检验(时间序列数据中的因果关系)

相关文章:

5.23相关性分析

相关性分析是一件很自然而然的事情,在生活中和科学研究中,我们都可能会不由自主地关注两件或者多件事情之间的联系。比如性别和方向感有没有关系,有多大关系,辨别不同事物时如何说明特征的科学性(也就是该特征和事物的…...

使用 Sonatype Nexus Repository Manager 如何安装npm.md

1. 安装与启动 Nexus2. 登录 Nexus Web UI3. 创建 npm 仓库4. (可选)配置 npm 代理仓库5. 创建 npm 仓库组6. 配置 npm 客户端7. 测试和使用 Sonatype Nexus Repository Manager (通常简称 Nexus) 是一个强大的二进制管理系统,用于存储和管理…...

console如何连接远程机器上的java程序

启动参数 -Djava.rmi.server.hostname192.168.1.10 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port12345 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse2.jdk安装目录/bin下执行 go jconsole![在这里插入…...

高稳定数显芯片防干扰抗噪数码屏驱动高亮LED驱动IC-VK16K33A/AA 最大13×3的按键扫描

产品型号:VK16K33A/AA 产品品牌:永嘉微电/VINKA 封装形式:SOP28/SSOP28 原厂,工程服务,技术支持! 概述 VK16K33A/AA是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有数据…...

Redis离线安装(单机)

目录 1-环境准备1-1下载redis-4.0.11.tar.gz1-2gcc环境 2-上传解压3-编译安装(需要gcc环境)4-配置redis5-启动Redis6-开启防火墙(root)7-添加开机启动脚本8-设置权限9-设置开机启动10-测试redis服务11-检查是否安装成功12-创建redis命令软连接13-测试redis14-必要时设置防火墙 …...

[Algorithm][动态规划][路径问题][不同路径][不同路径Ⅱ][珠宝的最高价值]详细讲解

目录 1.不同路径1.题目链接2.算法原理详解3.代码实现 2.不同路径 II1.题目链接2.算法原理详解3.代码实现 3.珠宝的最高价值1.题目链接2.算法原理详解3.代码实现 1.不同路径 1.题目链接 不同路径 2.算法原理详解 思路: 确定状态表示 -> dp[i][j]的含义 走到dp[…...

ChatGPT移动应用收入在GPT-4o发布后迎来最大涨幅

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

汉语拼音 如何 转化成粤语拼音 的

将汉语拼音(普通话拼音)转化为粤语拼音涉及到对声母、韵母以及声调的对照和调整。以下是详细的转换步骤和注意事项: 一、转换步骤 识别普通话拼音的声母和韵母查找对应的粤语拼音声母和韵母应用粤语声调 二、声母对照表 普通话拼音粤语拼…...

本地电子邮件测试工具-MailHog

通过MailHog,可以在浏览器中查看本机发的邮件内容,而无需发送到外网。 https://github.com/mailhog/MailHog在 macOS 环境下,下载文件后: 添加可执行权限:chmod x MailHog_darwin_amd64 运行:./MailHog_darwin_amd64 浏览器打开查看邮件:htt…...

Java18新特性

Java 18引入了若干新特性,以增强语言的功能性和性能。具体如下: 服务提供者接口(Service Provider Interfaces, SPI):允许开发者为Java模块系统定义服务加载机制,从而能够更灵活地发现和加载服务实现。简单…...

大象资讯:PostgreSQL 17 Beta 1 发布!

↑ 关注“少安事务所”公众号,欢迎⭐收藏,不错过精彩内容~ PostgreSQL 全球开发小组 发布于 2024-05-23 PostgreSQL 全球开发小组宣布,PostgreSQL 17 的第一个测试版本现已可供下载。此版本包含 PostgreSQL 17 正式发布时将提供的所有功能的预…...

Rust:如何在 Windows 的 Linux 子系统(WSL)下安装

一、安装步骤 在Windows Subsystem for Linux (WSL)下安装Rust,可以按照以下步骤进行: 打开WSL终端: 首先,确保你的WSL已经安装并正常运行。你可以在Windows搜索栏中输入“WSL”并选择你安装的Linux发行版(如Ubuntu&a…...

工具分享:VsCode注释神器,koro1FileHeader

他是有官方Wiki的。 https://github.com/OBKoro1/koro1FileHeader/wiki/ 项目在GitHub上开源。以下摘录部分wiki,用作介绍分享在这里插入代码片 如何找到setting.json设置模板 简单的输入命令 打开VSCode命令面板: mac: command p window: ctrl p输入> Ope…...

水面漂浮物生活垃圾识别检测系统

水面漂浮物生活垃圾识别检测系统通过现场监控摄像机对河道湖面等水体进行实时监测,水面漂浮物生活垃圾识别检测系统借助智能视频分析技术和YOLO深度学习技术,系统能够自动识别和抓拍水面上的垃圾漂浮物。一旦系统检测到有垃圾漂浮在水面上,立…...

通过python读取并发送二进制文件到串口

代码 #!python.exe """ filename send_bin.py brief According to the users input, read bin file, subpackage and send the file by UART. HowToUse send_bin.py -h author shadowThreeDgmail.com data 20220224 &q…...

前端笔记-day07

学成在线网站 文章目录 效果图代码展示index.htmlindex.cssbase.css 效果图 代码展示 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-w…...

【MySQL精通之路】INFORMATION_SCHEMA库-INNODB_METRICS表

INNODB_METRICS表提供了各种各样的INNODB性能信息&#xff0c;补充了INNODB性能模式表的特定重点领域。通过简单的查询&#xff0c;您可以检查系统的整体运行状况。通过更详细的查询&#xff0c;您可以诊断诸如性能瓶颈、资源短缺和应用程序问题等问题。 每个监视器表示InnoDB…...

React Native 之 定义全局状态管理库(九)

假设你正在使用基于单页面应用&#xff08;SPA&#xff09;的微前端框架。以下简化一个应用之间共享状态的例子。 1. 使用发布/订阅模式 // globalStateManager.js class GlobalStateManager { constructor() { this.subscribers {}; this.state {}; } subscribe(key…...

java线程池实战应用总结

一、线程池的创建方式 方式&#xff08;一&#xff09;&#xff1a;通过构造函数ThreadPoolExecutor()方式创建线程池 步骤1&#xff1a;先构建线程池 public class AsyncTaskExecutor {/*** 核心线程数*/private static final int corePoolSize 10;/*** 最大线程数*/priva…...

部署 harbor 创建私有项目

一在 Docker harbor 节点&#xff08;192.168.11.&#xff09;上操作 1 关闭防火墙防护 systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 2 安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-ma…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...