【数据分析系列】交叉列联表与卡方检验:数据解读与Python实践应用

news2024/11/25 19:54:43

目录

一、交叉列联表和卡方检验的关系

(一)什么是交叉列联表

(二)什么是卡方检验

(三)除了卡方检验,列联表分析还可以结合其他统计方法

二、列联表只能用于两个分类变量吗?

三、卡方检验:统计量与P值的协同作用及应用指南

卡方检验中的卡方统计量和P值的作用:

四、列联表和卡方检验实例

(一)数据收集

(二)列联表构造

(三)卡方检验步骤

Step1:建立原假设

Step2:计算期望频数/理论频数:

Step3:计算卡方统计量:

​编辑

Step4:确定自由度:

Step5:查χ2方分布临界值表,确定接受域

在卡方检验中,确定P值通常有以下几种方法:

五、Python实现交叉列联分析和卡方检验

 (一)导入库

(二)输入列联表数据

(三)使用chi2_contingency函数执行卡方检验

(四)输出卡方统计量

(五)输出P值 

(六) 输出自由度

(七) 输出理论频数

一、交叉列联表和卡方检验的关系

(一)什么是交叉列联表

交叉列联表是一种统计表格,用于展示两个或多个分类变量之间的频数分布情况。它通过将变量的不同类别交叉组合,形成一个表格,其中每个单元格表示相应类别的组合出现的频数。

例如,假设我们有一个关于学生性别和喜欢的学科的调查数据:男生中有30人喜欢数学,10人喜欢英语;女生中有20人喜欢数学,30人喜欢英语。我们可以将这些数据整理成一个交叉列联表,如下所示:

(二)什么是卡方检验

卡方检验是一种统计方法,用于检验两个分类变量之间是否独立。它通过比较观察频数和期望频数之间的差异来判断变量之间是否存在关联。

在交叉列联表中,我们可以使用卡方检验来分析变量之间的关系。例如,在上面的例子中,我们可以使用卡方检验来检验学生的性别是否与他们喜欢的学科有关。

(三)除了卡方检验,列联表分析还可以结合其他统计方法

  1. 费舍尔精确检验(Fisher's Exact Test):适用于样本量较小的情况,当样本量较大时,其结果与卡方检验相似。
  2. 列联系数(如Phi系数、Cramer's V系数):用于衡量变量之间的关联强度。
  3. 修正的卡方检验或Yates' continuity correction:用于处理某些特殊情况下的数据偏差。
  4. 多维度扩展分析:对多个变量进行Log-linear模型分析,探索变量间的复杂关系和相互作用模式。

二、列联表只能用于两个分类变量吗?

虽然列联表最基础的形式是用于展示两个分类变量之间的频数分布情况,但这并不意味着它仅限于两个变量。列联表同样可以扩展以分析多个分类变量之间的关系,这种情况下通常称为多维列联表或多路列联表。

在多维列联表中,表格会有更多的维度,用来表示三个或三个以上变量的交叉分类。例如,如果你正在分析学生的学科成绩(优秀、良好、及格、不及格)、性别(男、女)以及是否参加过辅导班(是、否)之间的关系,那么就需要一个三维列联表来呈现这些变量的所有可能组合及其频数分布。

多维列联表可能会更加复杂,难以直接可视化,因此在分析时可能需要借助特定的统计软件来进行汇总和解释,也可能需要应用更高级的统计方法,如对多个变量进行的log-linear模型分析,来探索变量间的复杂关系和相互作用模式。

三、卡方检验:统计量与P值的协同作用及应用指南

卡方检验中的卡方统计量通常指计算得出的测试统计值,而P值则代表在原假设为真的条件下,观察到的统计量或更极端情况的概率。在实际应用中,两者都非常重要,但通常以P值作为判断假设是否成立的最终标准。

卡方检验中的卡方统计量和P值的作用:

1. 卡方统计量的计算与意义
   - 卡方统计量是通过比较观察频数与理论频数之间的差异来计算的。
   - 它反映了数据与预期模式之间的偏离程度。
   - 卡方值越大,表明观察数据与理论预期的差异越大,进而说明原假设可能不成立。

2. P值的获取与解释
   - P值是依据卡方统计量、数据的自由度以及预设的显著性水平(通常为0.05)来获取的[。
   - P值小,意味着在原假设成立的条件下,出现当前结果或更极端情形的概率低,因此有理由拒绝原假设。
   - 相反,P值较大时,没有足够证据拒绝原假设,从而认为数据与预期模式相符。

3. P值的确定:
   - 根据卡方统计量和相应的自由度,查找卡方分布表或使用统计软件得到P值。
   - P值表示在原假设成立的情况下,观察到当前卡方统计量或更极端情况的概率。

4. 结论推断:
   - 如果P值小于或等于显著性水平(通常为0.05),则拒绝原假设,认为分类变量之间存在显著关系。
   - 如果P值大于显著性水平,则没有足够证据拒绝原假设,认为分类变量之间无显著关系。

综上所述,卡方统计量提供了量化的数据变异性大小,而P值给出了这种变异性是否具有统计学意义的概率解释。两者共同构成了完整的卡方检验流程,协助研究者做出更准确的统计推断。在具体应用时,应结合研究目的和数据特性选择合适的检验方法,并正确解读卡方统计量与P值,以便得出科学合理的结论。

四、列联表和卡方检验实例

让我们通过一个详细的实例来理解列联表和卡方检验的应用。假设我们想要探究大学生的专业选择(文科 vs. 理科)与其性别(男 vs. 女)之间是否存在关联。这是一个典型的定类变量间关系的研究问题,非常适合使用列联表和卡方检验。

(一)数据收集

(二)列联表构造

(三)卡方检验步骤

Step1:建立原假设
  • 零假设 (H0): 学生的性别与其专业选择之间是相互独立的,即性别不影响专业选择。
  • 备择假设 (H1): 学生的性别与其专业选择之间存在关联。

Step2:计算期望频数/理论频数

对于每个单元格,根据行总和与列总和计算如果两个变量完全独立时该单元格应有的频数。

在这个表格中,我同时展示了:

  • 每个格子左上角的实际观察频数(最初提供的数据);
  • 每个格子右下角的计算出的期望频数(基于假设变量间独立的理论值)。

这样的展示方式有助于直观对比实际数据与理论期望之间的差异,进而进行卡方检验分析,判断这些差异是否具有统计学意义。

Step3:计算卡方统计量

计算得出的卡方统计量(χ²)大约为0.646。

Step4:确定自由度

对于2x2表,自由度 = (行数 - 1) * (列数 - 1) = (2-1)*(2-1) = 1。

Step5:查χ2方分布临界值表,确定接受域

假设显著性水平a取0.05

使用卡方分布表来确定P值。根据计算的卡方统计量(χ²)和确定自由度(df),得到p值为0.818,0.42>0.05,则P值大于显著性水平,则没有足够证据拒绝原假设,认为分类变量之间无显著关系,即学生的性别与其专业选择之间是相互独立的,即性别不影响专业选择。
在卡方检验中,确定P值通常有以下几种方法:
  1. 查表法

    • 使用卡方分布表来确定P值。首先,你需要计算卡方统计量(χ²)和确定自由度(df)。
    • 在卡方分布表中找到对应的自由度,然后找到大于或等于你的卡方统计量的值。
    • 对应的表格值就是你的P值或者P值范围。
  2. 统计软件

    • 使用统计软件(如SPSS、R、Stata、Excel等)进行卡方检验,软件会直接给出P值。
    • 在R语言中,可以使用chisq.test()函数来进行卡方检验,它会返回包括P值在内的完整检验结果。
    • 在Excel中,可以使用CHIDIST函数来计算给定卡方值和自由度的P值。
  3. 在线计算器

    使用在线卡方检验P值计算器输入你的卡方统计量和自由度,计算器会给出P值

五、Python实现交叉列联分析和卡方检验

 (一)导入库

from scipy.stats import chi2_contingency
import numpy as np

(二)输入列联表数据

# 假设observed是观察频数列联表,例如此例题中的两个分类变量的频数分布
observed = np.array([[ 20, 30],
            [25, 25]])

(三)使用chi2_contingency函数执行卡方检验

chi2, p, dof, expected = chi2_contingency(observed)

(四)输出卡方统计量

print("Chi-square statistic:", chi2)

(五)输出P值 

print("Expected frequencies:")
print(expected)
print("P-value:", p)

(六) 输出自由度

print("Degrees of freedom:", dof)

(七) 输出理论频数

print("Expected frequencies:")
print(expected)

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

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

相关文章

随机点名软件,教师必备NO.106

事先需要新建一个txt文本文档,里面输入名单,一行一个 点击文件-导入TXT-点击开始抽取 资源来源于网络,免费分享仅供学习和测试使用,请勿用于商业用途,如有侵权请联系删除! 下载地址:点击查看…

CISCN2023 初赛部分复现

Misc 1. 被加密的生产流量 涉及到modbus协议 modbus && frame.len 66过滤之后,每条流量最后两个字节是base32的密文 脚本一键提取 #modbus_exp import pysharkflag tmp 0 cap pyshark.FileCapture(input_file"D:/下载/CTF附件/ciscn2023/modbu…

js调试过程中修改变量值

1.在想要变更的地方添加断点 2.添加监视表达式 3.执行网页代码,当执行到断点处则会停止 4.点击执行下一步,则会执行监视表达式

68. UE5 RPG 处理多个角色后续bug

我们现在已经有了四个敌人角色,接下来,处理一下在战斗中遇到的问题。 处理角色死亡后还会攻击的问题 因为我们有角色溶解的效果,角色在死亡以后的5秒钟才会被销毁掉。所以在这五秒钟之内,角色其实还是会攻击。主要时因为AI行为树…

MySQL基础---库的操作和表的操作(配着自己的实操图,简单易上手)

绪论​ 勿问成功的秘诀为何,且尽全力做您应该做的事吧。–美华纳;本章是MySQL的第二章,本章主要写道MySQL中库和表的增删查改以及对库和表的备份处理,本章是基于上一章所写若没安装mysql可以查看Linux下搭建mysql软件及登录和基本…

Android.基本用法学习笔记

设置文本的内容 先在strings.xml声明变量 方法1. 方法2. 设置文本的大小 1.单位dp,大家可以去学一下有关的单位换算 2. 设置文本颜色 1. 2. 4.设置文本背景颜色 1. 2. 设置视图的宽高 与上级视图一致,也就是上一级有多宽就有多少 1. 2. 3. 4. 设置视图…

1.VMware软件的安装与虚拟机的创建

1. VMware软件的安装 1.1 为什么需要虚拟机 嵌入式Linux开发需要在Linux系统下运行,我们选择Ubuntu。   1、双系统安装     有问题,一次只能使用一个系统。Ubuntu基本只做编译用。双系统安装不能同时运行Windows和Linux。   2、虚拟机软件   …

pytorch 实现语义分割(Pytorch 27)

一 语义分割 在目标检测问题中,我们一直使用方形边界框来标注和预测图像中的目标。下面探讨语义分割(semantic segmentation)问题,它重点关注于 如何将图像分割成属于不同语义类别的区域。 与目标检测不同,语义分割可…

k8s 1.28 搭建rabbitmq集群

1.环境 1.1 k8s 1.28 1.2 rabbit 3.8 1.3 工作空间default 1.4 注意,内存最好充足一点,因为我就两个节点一个master、一个node,起初我的node是8g,还剩3~4G,集群竟然一直起不来,后来将虚拟机内存扩大&#x…

ROS1配置husky仿真环境遇到的一些问题+方法论

ROS 系列学习教程(总目录) 本文目录 一、问题描述二、问题分析2.1 分析日志2.2 尝试一(失败)2.3 尝试二(成功) 三、husky仿真需要安装的软件包四、总结 - 方法论4.1 文件路径不合法4.2 文件内容不合法4.3 ROS 环境变量4.3.1 方法一…

consul做配置中心

1. 分布式配置中心 consul不仅可做注册中心,还可做配置中心 applicaiton.yml与bootstrap.yml: applicaiton.yml是用户级的资源配置项bootstrap.yml是系统级的,优先级更加高 Spring Cloud会创建一个“Bootstrap Context”,作为Spring应用…

blender

通用设置: 仅显示/取消隐藏:数字键盘/ 移动视角:shift鼠标中键 Blender如何给场景添加参考图片-百度经验 (baidu.com) 进入编辑模式:Tab 编辑模式:点-线-面 两个视图 法向显示:就能变成恶心的蓝红色 显…

AI大模型探索之路-实战篇16:优化决策流程:Agent智能数据分析平台中Planning功能实践

系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

设计软件有哪些?照明工具篇,渲染100邀请码1a12

阴影和照明涉及到图片的真实感和氛围,所以熟练使用照明工具是设计师的必备能力,这次我们介绍一些照明工具。 1、VRaySun VRaySun是VRay渲染器中的一个功能,用于模拟太阳光源。它是一种方便易用的光源类型,能够产生逼真的日光效果…

高考分数查询结果自动推送至微信(卷II)

祝各位端午节安康!只要心中无结,每天都是节,开心最重要! 在上一篇文章高考分数查询结果自动推送至微信(卷Ⅰ)-CSDN博客中谈了思路,今天具体实现。文中将敏感信息已做处理,读者根据自…

2024-6-10-Model-Agnostic Meta-Learning (MAML)

摘自:Meta-Transfer Learning for Zero-Shot Super-Resolution 近年来,提出了各种元学习算法。它们可以分为三类: 基于度量的方法:这些方法通过学习度量空间,使得在少量样本内进行高效的学习。例如[35, 38, 39]。基于…

认识和使用 Vite 环境变量配置,优化定制化开发体验

Vite 官方中文文档:https://cn.vitejs.dev/ 环境变量 Vite 内置的环境变量如下: {"MODE": "development", // 应用的运行环境"BASE_URL": "/", // 部署应用时使用的 URL 前缀"PROD": false, //应用…

第1章Hello world 3/5:Cargo.lock:确保构建稳定可靠:运行第一个程序

讲动人的故事,写懂人的代码 1.6 Cargo.lock:确保构建稳定可靠 “看!”席双嘉一边指着屏幕一边说,“终端窗口提示符的颜色,从绿变黄了。这就意味着代码在上次提交后有点变化。” 赵可菲:“但是我们只是运行了程序,代码应该没动呀。” 席双嘉敲了下git status -uall,这…

【研发日记】Matlab/Simulink软件优化(三)——利用NaNFlag为数据处理算法降阶

文章目录 前言 背景介绍 初始算法 优化算法 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 见《【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法》 背景介绍 在一个嵌入式软件开发项目中,需要开…

kubernetes(k8s)集群部署(2)

目录 k8s集群类型 k8s集群规划: 1.基础环境准备: (1)保证可以连接外网 (2)关闭禁用防火墙和selinux (3)同步阿里云服务器时间(达到集群之间时间同步) &…