前话:对现在的数据量和技术而已,统计检验(主要是针对5000以下的小样本)已成为一种探索性的分析工具且被渐渐遗忘。但是由于上学接触过这么多次,还是总结一下。统计检验主要看两个值,p-value 和 alpha。
p-value就是算出统计量所代表的在原假设为真的前提下的一个指标,根据小概率事件原则,这个指标不应该很小,所以p-value小到一定程度(也就是事先给的alpha),也就是p<alpha了,那就可以说原假设实在“太假了”,必须要拒绝了。
正文开始
不同类型的变量统计检验方法
变量类型 | 分类变量 | 连续型变量 |
---|---|---|
分类变量 | 交叉表卡方检验 | T检验(二分类)、方差分析(多分类) |
连续变量 | T检验(二分类)、方差分析(多分类) | 相关系数(pearson、spearsman) |
1、卡方检验
卡方检验是对分类变量的频次的差异对比度。通过列联表的方式计算,分类变量本身可以是多分类,以二分类变量为例:点击实例博文
##### **2、双样本T检验 **
适用于连续变量和二分类变量的统计检验,例如房价和是否靠近河流有关。原假设一般认为两个变量组间均值相等,不存在差异。
- 变量独立分布
- 服从正态分布
- 检验方差齐性
import scipy.stats as stats
#是否符合正态分布
stats.shapiro(rvs1)
stats.shapiro(rvs2)
# 方差齐性检验
stats.levene(rvs1, rvs2)
#(1) LeveneResult(statistic=60.86272980706579, pvalue=8.383433156055471e-15)
# (2)pvalue 小于0.05,pvalue显著,则拒绝原假设,方差不齐
# (3)t检验,由于方差不齐,equal_var需要设置为False,默认为True
stats.ttest_ind(rvs1, rvs2, equal_var = False)
#(1)Ttest_indResult(statistic=9.31044652011902, pvalue=6.767370956912812e-20)
#(2)pvalue=0.0036,小于0.05,则拒绝原假设,说明房价与是否靠河有关.
3、方差分析
方差分析用于分析多分类变量与连续变量有无差异,比较时是按照分类变量将连续变量分为一组,比较各组连续数值的方差差异。例如有四个类别,则连续变量会分为四组。
- 正态分布(对微偏正态有一定耐性)
- 检验方差齐性
import scipy.stats as stats
#是否符合正态分布和方差齐性 见双样本T检验
# (1)如果方差不齐,使用kruskal
stats.kruskal(x1, x2,x3,x4)
#(2)如果方差齐性,使用f_oneway
stats.kruskal(x1, x2,x3,x4)
# Tips:方差分析由于多分类,多个分组变量传参会导致不便,可以将变量组成list,以*list 方式简化。
list_x=[x1,x2,x3,x4]
stats.kruskal(*list_x)
4、相关系数
4.1 pearson :绘图探索,适用于变量之间存在相关性。
相关系数在0.8-1:极强相关性;
相关系数在0.6-0.8:较强相关性;
相关系数在0.3-0.6:弱相关性。
4.2 speaman:适用于变量存在等级性。