卡方检验Chi-square test

1.什么是卡方检验
卡方检验是一种用途很广的假设检验方法,属于非参数检验的范畴。
主要是比较两个或两个以上样本率以及两个分类变量的关联性分析。
根本思想是在于比较理论频次与实际频次的吻合程度或拟合优度问题。
分子代表了实际值与期望值的偏差,而分母则是标准化过程。因此卡方的值越小,表示观测值与期望值(理论值) 越接近,说明两个变量之间越符合卡方分布。而卡方分布的前提是变量之间相互独立,因此卡方值越小,越表示两个变量之间独立。
我们以经典的四格表为例,看看卡方检验的基本流程
1.建立假设检验,原假设一般都是变量之间相互独立。
2.计算期望频次。
3.代入卡方统计公式计算卡方值。
4.计算自由度。
5.查表,比较卡方值或者P值或者α \alphaα值。
————————————————
通过上表可以看出来,自由度为1,显著性水平为0.05,当卡方值<3.84的时候,可以接受原假设,即变量之间没有相关性。卡方值越小,不相关的概率越大。现在卡方值远大于3.84,说明两者不相关的概率很小,即抽烟与肺癌有关。

5.P-value
P值,也就是常见到的 P-value。P 值是一种概率,指的是在 H0 假设为真的前提下,样本结果出现的概率。如果 P-value 很小,则说明在原假设为真的前提下,样本结果出现的概率很小,甚至很极端,这就反过来说明了原假设很大概率是错误的。通常,会设置一个显著性水平(significance level)α \alphaα与 P-value 进行比较。如果P − v a l u e < α P-value < \alphaP−value<α ,则说明在显著性水平 α \alphaα 下拒绝原假设。
————————————————
举例说明:
研究职业与咖啡口味的关系时,如果关心的是职业与咖啡是否有关系,则应进行独立性检验。随机抽取一个人群样本后,将职业和咖啡口味分为不同的组,形成列联表进行检验。

研究是不同职业组对不同咖啡口味的要求是否一致,则应进行一致性检验。在不同职业组中进行抽样。把每一个职业组作为一个类别,检验在不同咖啡口味上的分布是否一致。

 卡方检验 (Chi-square test / Chi-square goodness-of-fit test)_dqhl1990的博客-CSDN博客

Python卡方检验实现

一、引言

卡方检验是用于检验两种变量之间是否存在关联的一种统计方法。它可以判断两个变量之间的关系是否是随机的。卡方检验在很多领域都有着广泛的应用,如医学、社会科学、经济学和生物学等领域。在Python中,使用scipy库中的stats模块就可以很方便地实现卡方检验。

二、原理

卡方检验用于检验两个分类变量之间是否存在关联。其原理在于,假设两个变量之间没有关联,则预期的频数可以通过行总计与列总计的比例来计算。如果观测值与预期值有较大的偏差,则可以认为两个变量之间存在关联。卡方检验的计算公式如下:

def chi_square(observed, expected):
    return np.sum(np.power(observed - expected, 2) / expected)

其中,observed为实际观测频数,expected为预期频数。

三、实现

1. 导入依赖库

import numpy as np
from scipy.stats import chi2_contingency

导入一个numpy库作为计算的基础,以及调用scipy.stats库下的卡方检验函数。

2. 使用numpy生成模拟数据

data = np.array([[10, 20, 30], [20, 30, 40], [30, 40, 50]])

这里使用numpy生成了一个3 x 3的矩阵,每个元素代表两个分类变量之间的观测频数。

3. 计算卡方检验结果

stat, p, dof, expected = chi2_contingency(data)
print('stat=%.3f, p=%.3f, dof=%d' % (stat, p, dof))
print(expected)

chi2_contingency函数将生成的数据传递到API中进行计算。计算结果中,在截尾的情况下,p值越小,说明两个变量之间越有可能存在关联。在这里也打印输出了期望频数。

4. 结语

上述就是Python中通过scipy库实现卡方检验的方法。卡方检验是一种非常重要的统计方法,在分析数据时经常用到,也非常基础。了解和掌握此方法对数据分析师和数据科学家都是非常有帮助的。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卡方检验是一种用于检验观测频数与期望频数之间差异的统计方法。在Python中,可以使用scipy.stats模块中的chisquare函数进行卡方检验卡方检验可以分为独立性卡方检验和一致性卡方检验。独立性卡方检验用于判断两个变量之间是否存在独立关系,而一致性卡方检验用于判断一个变量在不同条件下的分布是否一致。 对于独立性卡方检验,可以使用Pythonchisquare函数进行计算。例如,给定观测频数列表list_observe和期望频数列表list_expect,可以通过调用chisquare函数来进行独立性卡方检验。 对于一致性卡方检验,也可以使用相同的chisquare函数进行计算。只需将观测频数列表和期望频数列表作为参数传递给函数即可。 在计算卡方检验时,需要注意观测频数和期望频数不能低于5,否则结果可能不可靠。通过计算卡方值和对应的p-value,可以判断是否存在显著差异。如果p-value大于0.05或者为"nan",则可以认为没有差异;反之,如果p-value小于等于0.05,则可以认为存在差异。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [卡方检验 python](https://blog.csdn.net/sinat_23971513/article/details/111192975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [python数据分析 - 卡方检验](https://blog.csdn.net/weixin_42010722/article/details/124296654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值