卡方检验及python代码实现

卡方分布是什么?

卡方分布:n个独立同分布(标准正态分布N(0,1))变量的平方和服从自由度为n的卡方分布。

不同自由度的卡方分布的概率密度函数图示python代码

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

x1 = np.random.normal(0,1,1000000)
x2 = np.random.normal(0,1,1000000)
x3 = np.random.normal(0,1,1000000)
x4 = np.random.normal(0,1,1000000)
x5 = np.random.normal(0,1,1000000)
x6 = np.random.normal(0,1,1000000)

Q1 = x1**2
Q2 = Q1 + x2**2
Q3 = Q2 + x3**2
Q4 = Q3 + x4**2
Q5 = Q4 + x5**2
Q6 = Q5 + x6**2

plt.figure()
sns.distplot(Q1,hist=False,kde_kws={"shade":True},label='n=1')
sns.distplot(Q2,hist=False,kde_kws={"shade":True},label='n=2')
sns.distplot(Q3,hist=False,kde_kws={"shade":True},label='n=3')
sns.distplot(Q4,hist=False,kde_kws={"shade":True},label='n=4')
sns.distplot(Q5,hist=False,kde_kws={"shade":True},label='n=5')
sns.distplot(Q6,hist=False,kde_kws={"shade":True},label='n=6')

plt.xlabel('chisquare')
plt.ylabel('density')

可知自由度n越大,曲线越趋于对称,当自由度趋于无穷,卡方分布趋于正态分布。

卡方检验

卡方检验是一种假设检验方法,用于比较两个分类变量的关联性,基本思想是比较理论频数与实际频数的吻合程度。例如,在选举调查中,选民可能按性别(男性或女性)和投票偏好(民主党,共和党或独立团体)进行分类。我们可以使用卡方检验来确定独立性,以确定性别是否与投票偏好相关

变量A(A1,A2),B(B1,B2)独立性假设
H0:变量A与变量B之间独立no association,
H1:变量A与变量B之间存在相关性。

在独立性前提下,P(B1/A1)=P(B1/A2)=P(B1)计算理论频数,偏差(实际频数-理论频数)的平方与理论频数的加和记作卡方值。
由自由度判断卡方值大小,自由度=(行数-1)(列数-1)。如果卡方值小,则实际频数与理论频数偏差小,检验假设H0成立,否则检验假设不成立。
当卡方值≥卡方值[α]时,p≤0.05拒绝H0,接受H1;当卡方值<卡方值[α]时,p>0.05,尚没有理由拒绝H0.

实例

下面是工种与患高血压人数的列联表,我们希望知道这个统计结果能否说明患高血压与工种之间存在某种联系。
在这里插入图片描述

from scipy.stats import chi2_contingency
table = [[386,895],[65,322]]
chi2,pval,dof,expected = chi2_contingency(table)
print('理论数列联表如下\n',expected)
print("Null Hypothesis: prevalence rate(B) of diffent job(A) is same,α=0.05")
if pval < 0.05:
	print("Reject the Null Hypothesis. prevalence rate(B) of diffent job(A) is Diffent.")
else:
	print("Accept the Null Hypothesis.")

在这里插入图片描述
结论:不同职业的高血压患病率极显著意义,工人的高血压患病率显著高于农民。

资料:
卡方检验
《python科学计算第二版》

  • 8
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值