首先介绍一下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)表示 |
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
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导入的模板之后,不需要加上前缀名即可使用。编写代码时注意缩进。