您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

如何在Python中使用卡方检验进行统计分析?

2025/11/11 20:33:38发布25次查看
作为一种重要的统计方法,卡方检验(chi-square test)是常用的用于分类变量间关系的检验方法之一。在python中,scipy库提供了chisquare函数用于进行卡方检验。本文将介绍卡方检验的原理、使用方法及实现例子,帮助读者更好地理解和应用卡方检验。
一、卡方检验的原理
卡方检验的核心思想是比较实际观测值和理论值的差异,若两者差异显著,则说明两变量之间存在关系。卡方检验对不同维度数据的分析不同,本文主要介绍二维卡方检验的原理。
在二维表的情况下,卡方检验先假设两变量之间不存在关系,根据假设计算期望值e,再根据实际观测值o和期望值e计算出卡方值,最后通过查表或计算进行显著性检验,判断假设是否成立。
具体计算公式如下:
卡方值 χ²=(o-e)²/e
其中,o为实际观测值,e为期望值。
若卡方值越大,则两变量间的关系越显著,假设被拒绝;反之,若卡方值越小,则关系越不显著,假设被接受。
二、卡方检验的使用
数据准备在进行卡方检验之前,需要准备好数据。一般来说,数据以二维表形式存在,既包括实际观测值o,也要包括期望值e,如下所示:
类别a 类别b
变量1 70 30
变量2 40 60
其中,70表示变量1和类别a的交叉点数。
根据数据计算卡方值使用python中的scipy库可以方便地计算卡方值和对应的p值。代码如下:
from scipy.stats import chisquareimport numpy as npobs = np.array([[70, 30], [40, 60]]) #实际观测值exp = np.array([[50, 50], [50, 50]]) #期望值stat, pval = chisquare(obs.ravel(), f_exp=exp.ravel())print(stat, pval)
其中,chisquare函数用于计算卡方值和对应的p值,obs和exp分别表示实际观测值和期望值,ravel()函数将二维数组转换为一维数组,f_exp参数指定期望值,设置为none时使用obs.sum()/4作为期望值。
检验假设在得到卡方值和p值后,需要判断假设是否成立。一般设置显著性水平α为0.05,若p值小于等于α,则拒绝原假设,说明两变量存在关系;反之则接受原假设,说明不存在关系。
代码如下:
alpha = 0.05if pval <= alpha: print("reject null hypothesis, variables are related.")else: print("accept null hypothesis, variables are independent.")
三、实现例子
下面以一个简单的例子来演示卡方检验的使用。假设对一个电商网站进行了a/b测试,测试用户登录后对网站的浏览时长有无影响,数据如下:
浏览时长<10s 浏览时长>=10s

登录a 1000 2000
登录b 1500 2500
首先需要计算期望值e,根据数据计算得到期望值如下:
浏览时长<10s 浏览时长>=10s

登录a 1200 1800
登录b 1300 1900
使用python代码进行计算和假设检验如下:
obs = np.array([[1000, 2000], [1500, 2500]]) #实际观测值exp = np.array([[1200, 1800], [1300, 1900]]) #期望值stat, pval = chisquare(obs.ravel(), f_exp=exp.ravel())print(stat, pval)alpha = 0.05if pval <= alpha: print("reject null hypothesis, variables are related.")else: print("accept null hypothesis, variables are independent.")
最终结果为:拒绝原假设,说明用户登录方式对浏览时长有影响。
四、小结
卡方检验是一种常用的用于分类变量关系的检验方法,可以判断两变量之间是否存在关系。在python中,使用scipy库提供的chisquare函数可以很方便地进行卡方检验。通过本文的介绍,读者可以更好地理解和使用卡方检验,对数据的统计分析更加规范和科学化。
以上就是如何在python中使用卡方检验进行统计分析?的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product