惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
Security Latest
Security Latest
NISL@THU
NISL@THU
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
Cybersecurity and Infrastructure Security Agency CISA
Cloudbric
Cloudbric
T
Threat Research - Cisco Blogs
大猫的无限游戏
大猫的无限游戏
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
C
Cisco Blogs
V
Vulnerabilities – Threatpost
S
Security Archives - TechRepublic
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
J
Java Code Geeks
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Know Your Adversary
Know Your Adversary
博客园 - 叶小钗
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy International News Feed
P
Palo Alto Networks Blog
博客园_首页
V
V2EX
WordPress大学
WordPress大学
Schneier on Security
Schneier on Security
月光博客
月光博客
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
TaoSecurity Blog
TaoSecurity Blog
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
The Cloudflare Blog
罗磊的独立博客
美团技术团队
N
News | PayPal Newsroom
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Last Week in AI
Last Week in AI
K
Kaspersky official blog
Google Online Security Blog
Google Online Security Blog
S
SegmentFault 最新的问题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tailwind CSS Blog

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录 2025 Python 版本性能测试 Flutter Hello World Flutter 安装环境配置 Ubuntu VMware 硬盘扩容后 SMBus Host controller not enabled 报错问题解决 Python NetworkX 教程 Docker GPU 报错 - Failed to initialize NVML Unknown Error 解决方案 Python matplotlib 图表绘制 cuda-toolkit 安装替代 Cuda 与 Cudnn Jinja2 Python 利用 docxtpl 和 Jinja2 生成基于模板的 Word 文档 Docker 实现 CPU 核心隔离 LoFTR 基于 Transformer 的特征提取匹配算法 OmniGlue 特征匹配 SuperGlue 使用图神经网络学习特征匹配 Ubuntu 下将 xlsx 文件按照 sheet 转换为 图片 Python 使用 SQLAlchemy Python FastAPI 教程 openwrt 软路由配置安装 Nav2 地图文件(PGM/YAML)规范标准 3D OBJ 模型转换为 glb 瓦片格式 Python 源码 Redis 数据库介绍 Ubuntu 22.04 内核自动升级导致 MongoDB 7.0.12 错误记录 ubuntu 20.04 安装 ROS Noetic ubuntu 18.04 安装 ROS Melodic VMware Workstation Pro 个人免费版下载、安装、使用指南 Hybrid A-star 路径规划 Reeds-Shepp 曲线 Dubins 曲线 Linux kvm 虚拟机网络不通的问题解决方法 Ubuntu 自动内存清理 BiliBili 缓存视频转 mp4 Python 求解线性规划 3D Gaussian Splatting 官方源码实践记录 ImageMagick 教程 Ubuntu 22.04 安装 Colmap 对数几率 odds Ubuntu nmcli 网络管理工具使用指南 SuperPoint 自监督深度学习特征点提取 SyncTV Music Tag Web 在线音乐信息整理工具 ncm 格式转 mp3 MusicBrainz 音乐元数据百科数据库 Ubuntu 网络流量监控工具 私人云音乐平台 Navidrome 入门 手眼标定 四元数(Quaternions) OHTTPS 实现免费自动 https 证书申请、更新、部署 ubuntu 22.04 安装 CloudCompare 单机 KVM 虚拟机冷迁移 Ubuntu 22.04 使用 mdadm 实现软 raid 小鱼 一键安装 ROS-humble Fluid -46- 基于 Simpletex API 构建公式识别页面 公式识别 API 简介 -- Simpletex 使用 Python web 部署库 waitress 3D Gaussian Splatting for Real-Time Radiance Field Rendering Ubuntu Swap 简介与空间扩展 Ubuntu 24.04 安装 forticlient Clash Verge 使用 MongoDB 7.0.17 集群 Docker 构建源码 Error code - 2013. Lost connection to MySQL server during query 问题解决 Python 日志记录库 loguru 使用指北 Python 实现 Web 日志查看服务 MySQL LOAD DATA LOCAL INFILE 极速数据加载 Image size exceeds limit of 89478485 pixels 解决方案 Docker 使用 NVIDIA GPU 驱动错误解决 阿里云 docker 镜像仓库 Ubuntu中没有wired connected的解决方案 MinIO 简介 subconverter 代理订阅格式转换 修复 node –openssl-legacy-provider is not allowed in NODE_OPTIONS 错误
卡方检验 (chi-squared test)
Yiwei Zhang · 2023-11-03 · via 又见苍岚

卡方检验(chi-squared test)是一种统计方法,用于确定观察到的频数和预期频数之间是否存在显著差异。它通常用于比较两个或多个分类变量之间的关系, 本文介绍相关内容。

简介

卡方检验是一种统计方法,用于确定观察到的数据与期望的数据之间是否存在显著差异。它通常用于分析两个或多个分类变量之间的关联性。

卡方检验基于观察到的频数和期望频数之间的差异来判断变量之间的关联程度。它的基本思想是,如果观察到的频数与期望频数之间的差异较大,那么就可能存在显著的关联。卡方检验计算出一个卡方值,然后将该值与自由度为 $(r-1) (c-1)$ 的卡方分布进行比较,其中 $r $ 是行数,$c$ 是列数。

卡方检验常用于以下情况:

  • 检验两个分类变量之间是否存在关联性,例如性别和吸烟习惯之间的关联性。
  • 检验一个分类变量在不同组之间的分布差异,例如不同年龄组中的偏好。
  • 检验观察到的数据与期望的理论分布之间的差异,例如检验一个骰子是否均匀。

在卡方检验中,如果计算得到的卡方值显著大于临界值,就可以拒绝原假设,即认为变量之间存在关联或差异。反之,如果卡方值不显著,则不拒绝原假设,即认为变量之间没有关联或差异。

常用的表示卡方检验的符号是:χ²,通常配合p值来进行结果解释。

卡方分布有多种检验应用,最常用的莫过于 Pearson卡方检验

基础概念

实际频数

卡方检验核心可以理解为判断两个分布之间有多大关系,用于描述分布的只能依靠采样的样本,那么样本如何表示分布呢,用的就是频数。

将分布的值域拆分为若干个互斥的 bin,统计采样中每个 bin 发生的次数,就是实际频数,一般用 O( Observation ) 表示。

虚无假设

“皮尔森卡方检定”的虚无假设($H_0$)是:一个样本中已发生事件的次数分配会遵守某个特定的理论分配。

在虚无假设的句子中,“事件”必须互斥,并且所有事件总机率等于1。或者说,每个事件是类别变数(英语:categorical variable)的一种类别或级别(英语:level)。

简单的例子:常见的六面骰子,事件=丢骰子的结果(可能是1~6任一个)属于类别变数,每一面都是此变数的一种(一个级别)结果,每种结果互斥(1不是2, 3, 4, 5, 6; 2不是1, 3, 4 …),六面的机率总和等于1。

期望频数

卡方分布判断两个分布之间的关系,基本逻辑是先做出假设,之后的统计量推算按照假设为真的方式进行,如果之后发现按照该假设得到的结论发生的可能性很低,则拒绝该假设。总体算下来有点类似数学中的反证法。

这其中,做出基本假设之后,两个分布之间会有一个假设的关系,那么按照这个假设就可以推算出理论上每个 bin 发生的次数,也就是期望频数,一般用 E( Expectation ) 表示。

卡方检验用的就是这个期望频数和实际频数之间相差多少来判定是否拒绝假设的。

显著性水平

定义根据假设推到出的结论是否“靠谱”,根据假设和样本,我们可以计算出在某个自由度下卡方统计量的值,这个值如果是落在“小概率”事件区间内则拒绝假设,那么如何定义小概率事件,多小的概率算得上小概率?这就是显著性水平,一般取 0.1 \ 0.05 \ 0.01 等,一般用字母 $\alpha$ 表示,也就是说在假设前提下发生样本所推导出的事情的概率低于 $\alpha $,我们判定为小概率事件。

列联表

两个分布,分别划分了互斥的 bin,将样本联合分布发生的实际次数填入一个二维表中,这个表就是列联表。

用途

两种“皮尔森卡方检定”的常用的比较情境:拟合度检验和独立性检定。

  • 适配度检定”验证一组观察值的次数分配是否异于理论上的分配,也称作" 分类变量的比较检验 "。
  • 独立性检定”验证从两个变数抽出的配对观察值组是否互相独立(例如:每次都从A国和B国各抽一个人,看他们的反应是否与国籍无关)。

步骤

  1. 计算卡方检定的统计值 $\chi ^{2}$ :把每一个观察值和理论值的差做平方后、除以理论值、再加总。
  2. 计算 $\chi ^{2}$ 统计值的自由度 $df$。
  3. 依据研究者设定的置信水平(显著性水平、P值或对应Alpha值),查出自由度为 $df$ 的卡方分配临界值,比较它与第1步骤得出的 $\chi ^{2}$统计值,推论能否拒绝虚无假说。

Pearson卡方检验Pearson’s chi squared test

皮尔森卡方检定,由著名统计学家Karl Pearson提出, 是最有名卡方检定之一(其他常用的卡方检定还有叶氏连续校正、似然比检定、一元混成检验等等--它们的统计值之机率分配都近似于卡方分配,故称卡方检定)。 科学文献中,当提及卡方检定而没有特别指明类型时,通常即指皮尔森卡方检定。

该检验方法广泛应用于分类变量(categorical data)的独立性检验中,也可用于分类变量的比较检验中。这两种检验都需要用到R×C列联表(R×C contingency table),其中R表示行(Row),C表示列(Column)。本文只讨论行列变量都是无序变量的情形,最简单的情形是行与列都是二分类无序变量,这样的数据也称为四格表资料

列联表要求

  1. 样本来自简单随机抽样;
  2. 各个格子是相互独立的;
  3. 样本量应尽可能大。总观察数应不小于40,且每个格子的频数应大于等于5;
  4. 依据样本数据计算出的理论频数应不小于5。

分类变量的比较检验

定义: 主要使用样本数据检验总体分布形态或比例的假说。测验决定所获得的的样本比例与虚无假设中的总体比例的拟合程度如何。

:对于分类变量的比较检验,如下例,某种癌症化疗只有两种疗法:单纯化疗和复合化疗,且没有顺序;其疗效只有缓解和未缓解两类,且没有顺序,现要根据样本数据检验这两种化疗疗效有无差异:

疗法\疗效 缓解 未缓解 总和
单纯化疗 $a$ $b$ $a+b$
复合化疗 $c $ $d$ $c+d$
总和 $a+c$ $b+d$ $n$

原假设和备择假设:

$H_0$:两种治疗方法无差异。
$H_1 $:两种治疗方法存在差异。

分类变量的独立性检验

检验两个变量分布是否相互独立。

:从某总体中经过简单随机抽样获得的频数数据,性别只分男女两类,且没有顺序;研究色盲问题时只有色盲和正常两类,也没有顺序,现要根据样本数据检验色盲与性别是否独立(也即色盲与性别有无关系):

性别\视觉 正常 色盲 总和
$a$ $b$ $a+b$
$c $ $d$ $c+d$
总和 $a+c$ $b+d$ $n$

原假设和备择假设:

$H_ 0$:色盲与性别无关。
$H_1$:性别与色盲有关。

计算卡方统计量

上述场景都需要用同样方法计算卡方统计量,这里以独立性检验的例子为例描述。

假设 $H_0 $ 成立。

我们是在总的人群中简单随机抽取 $n$ 个样本,首先考虑列变量:根据样本数据,我们共有 $a+c$ 个正常人,$b+d$ 个色盲患者,也就是说正常人占总人群的比例为$ \frac{a+c}{(a+c)+(b+d)}=\frac{a+c}{n} $;

再考虑行变量,男性占总人群的比例为 $ \frac{a+b}{(a+b)+(c+d)}=\frac{a+b}{n} $;

倘若$H_0$ 成立,即色盲与性别无关,根据概率的乘法法则,正常男性理论上应该有 $ \frac{a+c}{n} \frac{a+b}{n} n=\frac{(a+c)(a+b)}{n} $ 个 ,称为第一个格子的理论频数(或者称期望频数),基于这样一种思想,我们可以算出其他三个格子中的理论频数,列在实际频数的后面,并用括号括起来:

性别\视觉 正常 色盲 总和
$a\left(\frac{(a+c)(a+b)}{n}\right)$ $b\left(\frac{(b+d)(a+b)}{n}\right)$ $a+b$
$c\left(\frac{(a+c)(c+d)}{n}\right)$ $d\left(\frac{(b+d)(c+d)}{n}\right)$ $c+d$
总和 $a+c$ $b+d$ $n$

给出一般地情形方便后面讨论:

性别\视觉 正常 色盲 总和
$A_{11}\left(T_{11}\right)$ $A_{12}\left(T_{12}\right)$ $a+b$
$A_{21}\left(T_{21}\right)$ $A_{22}\left(T_{22}\right)$ $c+d$
总和 $a+c$ $b+d$ $n$

Pearson证明了,当样本量足够大时:

$$ \chi_{\text {Pearson }}^{2}=\sum_{i=1}^{2} \sum_{j=1}^{2} \frac{\left(A_{i j}-T_{i j}\right)^{2}}{T_{i j}} \sim \chi^{2}(1) $$

对于四格表资料,上述计算有一个简化的公式:

$$ \chi_{\text {Pearson }}^{2}=\frac{(a d-b c)^{2} n}{(a+b)(c+d)(a+c)(b+d)} \sim \chi^{2}(1) $$

倘若$H_0$ 成立,上述统计量理应不会很大,取定显著性水平$\alpha$后,若计算出来的 $\chi_{\text {Pearson }}^{2}>\chi_{\alpha, 1}^{2} $, 则拒绝 $H_0$ ,接受$H_1 $, 认为“属性”和“组别”有关(在这个例子中是色盲和性别有关)。

具体计算显著性水平下的卡方值可以查表

推广

可以推广到R×C列联表中,同样地,要求行列变量是无序的分类变量:

组别\属性 $Y_1$ $Y_2$ $Y_C$ 总和
$G_1$ $A_{11}\left(T_{11}\right)$ $A_{12}\left(T_{12}\right)$ $A_{1C}\left(T_{1C}\right)$ $\sum_{c=1}^{C} A_{1 c}$
$G_2$ $A_{21}\left(T_{21}\right)$ $A_{22}\left(T_{22}\right)$ $A_{2C}\left(T_{2C}\right)$ $\sum_{c=1}^{C} A_{2 c}$
$G_R$ $A_{R1}\left(T_{R1}\right)$ $A_{R2}\left(T_{R2}\right)$ $A_{RC}\left(T_{RC}\right)$ $\sum_{c=1}^{C} A_{R c}$
总和 $\sum_{r=1}^{R} A_{r 1}$ $\sum_{r=1}^{R} A_{r 2}$ $\sum_{r=1}^{R} A_{r C}$ $N$

理论频次:
$$
T_{i j}=\frac{\sum_{c=i}^{C} A_{i c} \sum_{r=1}^{R} A_{r j}}{N}
$$
有:

$$ \chi_{\text {Pearson }}^{2}=\sum_{i=1}^{R} \sum_{j=1}^{C} \frac{\left(A_{i j}-T_{i j}\right)^{2}}{T_{i j}} \sim \chi^{2}((R-1)(C-1)) $$

该公式也有一个不用计算理论频数的简化版:

$$ \chi_{\text {Pearson }}^{2}=N\left(\sum_{i=1}^{R} \sum_{j=1}^{c} \frac{A_{i j}^{2}}{\sum_{c=i}^{C} A_{i c} \sum_{r=1}^{R} A_{r j}}-1\right) \sim \chi^{2}((R-1)(C-1)) $$

同样地,确定显著性水平后,若计算出来的统计量大于临界值,则拒绝原假设,认为行列变量相关(在分类变量的比较检验中的备择假设则是:行变量对于列变量的治疗或处理等效果有差异)。

参考资料

文章链接:
https://www.zywvvd.com/notes/study/probability/chi-squared-test/chi-squared-test/