随手写程序——分布拟合的卡方检验法

首先介绍一下scipy

 scipy是Python中使用最为广泛的科学计算工具包,再加上numpy和matplotlib,基本上可以处理大部分的计算和作图任务。

scipy的子模块

模块名 功能
scipy.cluster 向量量化
scipy.constants 数学常量
scipy.fftpack 快速傅里叶变换
scipy.integrate 积分
scipy.interpolate 插值
scipy.io 数据输入输出
scipy.linalg 线性代数
scipy.ndimage N维图像
scipy.odr 正交距离回归
scipy.optimize 优化算法
scipy.signal 信号处理
scipy.sparse 稀疏矩阵
scipy.spatial 空间数据结构和算法
scipy.special 特殊数学函数
scipy.stats 统计函数

下面的例子主要运用stats,stats中缩写含义如下

缩写 全拼 中文名 解释
CDF Cumulative Distribution Function 累计分布函数  连续型和离散型随机变量都有,一般用F(X)F(X)表示
PDF Probability Density Function 概率密度分布函数 连续型随机变量在各点的取值规律,用f(x)f(x)或fX(x)fX(x)表示
PMF Probability Mass Function 概率质量分布函数 离散随机变量在各特定取值上的概率
RVS Random Variate Sample 随机变量的样本 从一个给定分布取样
PPF Percentile Point Function 百分位数点函数 CDF的反函数
IQR Inter Quartile Range 四分位数间距 25%分位数与75%分位数之差
SD Standard Error 标准差 用于描述随机变量取值的集中程度
SEM Standard Error of the Mean

样本均值的估计标准误差,

简称平均值标准误差

 
CI Confidence Interval 置信区间  

stats中有很多函数就不一一介绍了。

回顾一下数理统计的知识

卡方分布(希腊字母符号太难打了,用汉字代替一下)与Γ分布和T分布是抽样分布的三大应用,通过样本来估计总体的分布。

若n个相互独立的随机变量ξ1,ξ2,⋯,ξn均服从标准正态分布,则这n个随机变量的平方和构成一新的随机变量X,其分布规律称为卡方分布。

卡方检验是统计学中常用来计数数据分析的方法,对于总体的分布不作任何假设,因此它属于非参数检验法中的一种。

公式(不好打,截个图)

检验步骤:

1.接受原假设

2.计算统计量

3.查卡方分布临界值表,确定接受域和拒绝域

例题:来自http://blog.sina.com.cn/s/blog_4d69c7430101ndub.html

随手写程序——分布拟合的卡方检验法_第1张图片

Ho:色觉与性别相互不独立;H1:色觉与性别相互独立

import numpy as np
from scipy.stats import chi2_contingency
from scipy.stats import chi2
d = np.array([[442, 514],[38,6]])
chi2_contingency(d)
def chi2_independence(alpha, data):
     g, p, dof, expctd = chi2_contingency(data)
     if dof==0:
         print('wrong')
     elif dof==1:
         cv=chi2.isf(alpha*0.5,dof)
     else:
         cv=chi2.isf(alpha*0.5,dof-1)
         
     if g>cv:
             re=1 #拒绝原假设
     else:
             re=0 #接受原假设
             return g,p,dof,re,expctd
print(re)

结果拒绝原假设。则色觉与性别相互独立

g     --- 卡方值,也就是统计量
p     --- P值(统计学名词),与置信度对比,也可进行假设检验,P值小于置信度,即可拒绝原假设
dof   --- 自由度
re    --- 判读变量,1表示拒绝原假设,0表示接受原假设
expctd--- 原数据数组同维度的对应理论值

ps:使用from import导入的模板之后,不需要加上前缀名即可使用。编写代码时注意缩进。

 

你可能感兴趣的:(随手写程序——分布拟合的卡方检验法)