【Python】了解卡方检验方法及其应用

2024-05-10 04:52

本文主要是介绍【Python】了解卡方检验方法及其应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


是否幸福轻得太沉重
过度使用不痒不痛
烂熟透红空洞了的瞳孔
终于掏空终于有始无终
得不到的永远在骚动
被偏爱的都有恃无恐
玫瑰的红容易受伤的梦
握在手中却流失于指缝
又落空
                     🎵 陈奕迅《红玫瑰》


卡方检验(Chi-square test)是一种用于检验分类数据的统计方法,主要用于确定两个分类变量之间是否存在显著关联。它是一种非参数检验方法,因此适用于非正态分布数据。卡方检验可以广泛用于独立性检验和拟合优度检验。

独立性检验

独立性检验主要用于评估两个分类变量之间是否存在关联。通过比较实际观察的频数和理论期望频数来计算统计量,并判断两个变量的相关性。

计算公式

卡方统计量的公式如下:

在这里插入图片描述

自由度
自由度计算方式:
(𝑅−1)×(𝐶−1)
(R−1)×(C−1),其中 𝑅和 𝐶分别表示行和列的数量。

假设检验

零假设(H0):两个变量之间独立,无关联。
备择假设(H1):两个变量之间有显著关联。
通过比较计算出的卡方统计量与卡方分布表中的临界值,可以确定是否拒绝零假设。

拟合优度检验

拟合优度检验用于评估一个观测数据集与某个理论分布的拟合程度。其计算过程与独立性检验类似。

使用 Pandas 和 SciPy 实现卡方检验

下面举一个例子,使用Python库 Pandas 和 SciPy 进行卡方独立性检验:

import pandas as pd
from scipy.stats import chi2_contingency# 创建一个交叉表数据集
data = {'A': ['X', 'Y', 'X', 'Y', 'X', 'Y', 'X', 'Y'],'B': ['P', 'P', 'Q', 'Q', 'P', 'Q', 'Q', 'P']}
df = pd.DataFrame(data)# 创建一个列联表
contingency_table = pd.crosstab(df['A'], df['B'])# 进行卡方检验
chi2, p_value, dof, expected = chi2_contingency(contingency_table)# 输出结果
print(f"Chi-square Statistic: {chi2}")
print(f"P-value: {p_value}")
print(f"Degrees of Freedom: {dof}")
print("Expected Frequencies Table:")
print(expected)# 检查是否拒绝零假设
alpha = 0.05
if p_value < alpha:print("Reject the null hypothesis, variables are dependent.")
else:print("Fail to reject the null hypothesis, variables are independent.")

代码解释

交叉表:pd.crosstab 用于生成两个分类变量的交叉表。
卡方检验:chi2_contingency 计算卡方统计量、P值、自由度和期望频数表。
结果解释:通过比较 P 值与显著性水平,可以判断是否拒绝零假设并得出结论。

总结

卡方检验是一种强大的统计工具,可用于判断两个分类变量之间的关联性或数据分布与理论分布之间的拟合优度。它在市场分析、医学研究和社会科学等领域应用广泛。通过使用 Python 工具,数据分析师可以轻松地应用卡方检验来发现数据中的隐藏关联。

这篇关于【Python】了解卡方检验方法及其应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/975489

相关文章

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施: