卡方独立性检验 您所在的位置:网站首页 独立性检验k2的观测值表 卡方独立性检验

卡方独立性检验

2023-09-03 05:33| 来源: 网络整理| 查看: 265

目录

1.独立性检验 

 2.卡方拟合性检验

3.自定义卡方检验

4.P值是什么

5.原假设/备择假设

1.独立性检验 

“独立性检验”验证从两个变量抽出的配对观察值组是否互相独立(例如:每次都从A国和B国各抽一个人,看他们的反应是否与国籍无关)。

独立性检验主要用于两个或两个以上因素多项分类的计数资料分析,也就是研究两类变量之间的关联性和依存性问题。如果两变量无关联即相互独立,说明对于其中一个变量而言,另一变量多项分类次数上的变化是在无差范围之内;如果两变量有关联即不独立,说明二者之间有交互作用存在。

独立性检验一般采用列联表的形式记录观察数据, 列联表是由两个以上的变量进行交叉分类的频数分布表,是用于提供基本调查结果的最常用形式,可以清楚地表示定类变量之间是否相互关联。又可具体分为:

四格表的独立性检验:又称为2*2列联表的卡方检验。四格表资料的独立性检验用于进行两个率或两个构成比的比较,是列联表的一种最简单的形式。行x列表资料的独立性检验:又称为RxC列联表的卡方检验。行x列表资料的独立性检验用于多个率或多个构成比的比较

理论频数表

''' (1)假设检验重要知识 H0:A与B相互独立 H1:A与B不相互独立 若卡方值大于临界值,拒绝原假设,表示A与B不相互独立,A与B相关 函数中re返回为1表示拒绝原假设,0表示接受原假设 ''' def chi2_independence(alpha, data): chis, p_value, dof, expctd = chi2_contingency(data) if dof == 0: print('自由度应该大于等于1') elif dof == 1: cv = chi2.isf(alpha * 0.5, dof) else: cv = chi2.isf(alpha * 0.5, dof-1) if chis > cv: re = 1 # 表示拒绝原假设 else: re = 0 # 表示接受原假设 return chis, p_value, dof, re, expctd alpha = 0.05 # 置信度,常用0.01,0.05,用于确定拒绝域的临界值 data = np.array([[178,272],[38,502]]) chis, p_value, dof, re, expctd = chi2_independence(alpha, data) print('卡方值:',chis) print('P值:',p_value) print('自由度:',dof) print('判读变量:',re) print('原数据数组同维度的对应理论值:',expctd) 卡方值: 150.2623232486362 P值: 1.5192261812214016e-34 自由度: 1 判读变量: 1 原数据数组同维度的对应理论值: [[ 98.18181818 351.81818182] [117.81818182 422.18181818]]  2.卡方拟合性检验

2.1 定义

卡方检验能检验单个多项分类名义型变量各分类间的实际观测次数与理论次数之间是否一致的问题,这里的观测次数是根据样本数据得多的实计数,理论次数则是根据理论或经验得到的期望次数。这一类检验称为拟合性检验。其自由度通常为分类数减去1,理论次数通常根据某种经验或理论。

总而言之,卡方拟合度检验用于判断不同类型结果的比例分布相对于一个期望分布的拟合程度。

2.2 应用条件

卡方拟合性检验适用于变量为类别型变量的情况。 例如:变量为有罪或无罪。

当每个类别中观察到的或预期的频率太小时,此检验无效。要求样本含量应大于40且每个格子中的理论频数不应小于5

2.3应用实例

随机抽取60名高一学生,问他们文理要不要分科,回答赞成的39人,反对的21人,问对分科的意见是否有显著的差异。

''' (1)假设检验重要知识 H0:类别A与B的比例没有差异 H1:类别A与B的比例有差异 若卡方值大于临界值,拒绝原假设,表示A与B不相互独立,A与B相关 函数中re返回为1表示拒绝原假设,0表示接受原假设 ''' import numpy as np from scipy.stats import chisquare from scipy.stats import chi2 def chi2_fitting(data, alpha, sp=None): chis, p_value = chisquare(data, axis=sp) i, j = data.shape # j为自由度 if j == 0: print('自由度应该大于等于1') elif j == 1: cv = chi2.isf(alpha * 0.5, j) else: cv = chi2.isf(alpha * 0.5, j - 1) if chis > cv: re = 1 # 表示拒绝原假设 else: re = 0 # 表示接受原假设 return chis, p_value, cv, j-1, re data = np.array([[39, 21], ]) alpha = 0.05 chis, p_value, cv, dof, re = chi2_fitting(data, alpha) print('卡方值:',chis) print('P值:',p_value) print('拒绝域临界值:',cv) print('自由度:',dof) print('判读变量:',re) 卡方值: 5.4 P值: 0.02013675155034633 拒绝域临界值: 5.02388618731489 自由度: 1 判读变量: 1

显然chis(卡方值)是大于cv(临界值)的,因此拒绝原假设,认为对于文理分科,学生们的态度是有显著的差异的。 

从表面上看,拟合性检验和独立性检验不论在列联表的形式上,还是在计算卡方的公式上都是相同的,所以经常被笼统地称为卡方检验。但是两者还是存在差异的。

首先,两种检验抽取样本的方法不同。如果抽样是在各类别中分别进行,依照各类别分别计算其比例,属于拟合优度检验。如果抽样时并未事先分类,抽样后根据研究内容,把入选单位按两类变量进行分类,形成列联表,则是独立性检验。

其次,两种检验假设的内容有所差异。拟合优度检验的原假设通常是假设各类别总体比例等于某个期望概率,而独立性检验中原假设则假设两个变量之间独立。

最后,期望频数的计算不同。拟合优度检验是利用原假设中的期望概率,用观察频数乘以期望概率,直接得到期望频数。独立性检验中两个水平的联合概率是两个单独概率的乘积。

 

stats.chi2.rvs()

stats.chi2.pdf()

stats.chi2.cdf()

stats.chi2.isf()

1.stats.chi2.rvs()卡方分布直方图

from scipy import stats import seaborn as sns import matplotlib.pyplot as plt samples = stats.chi2.rvs(size=10000, df=1)#产生服从指定分布的随机数,chi2指定了卡方分布 sns.distplot(samples) plt.title('$\chi^2$,df=1')#自由度为1 plt.show()

 

2.stats.chi2.pdf()概率分布密度函数  

from scipy import stats stats.chi2.pdf(2, df=1)#概率密度函数 #上图2对应的位置是0.1037 from scipy import stats stats.chi2.pdf(1, df=1)#概率密度函数 #上图1对应的位置是0.24

3.stats.chi2.cdf()随机变量的累积分布函数,它是概率密度函数的积分(也就是x时p(X



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有