当比较两组数据是否差异显著时,可用参数检验和非参数检验。因为参数检验会更加准确,所以一般会先用参数检验。不同的参数检验方法有不同的要求,如果不满足要求,可以对数据进行转换,如果转换后也无法达到要求,再用非参数检验。
1. 参数检验
参数检验数据都要满足正态分布或近似正态分布
1.1 数据处理
1.1.1 检验数据是否符合正态分布
由于参数检验都要求数据符合正态分布,所以检查数据是否符合。常用的检测方法有两种,KS-检验和 SW-检验。如果检验结果 P 值大于 0.05,则数据符合正态分布。
参考链接: https://blog.csdn.net/weixin_39796839/article/details/111089672
以下用 python 进行举例,也可用 spss 软件分析
大样本量(>50)用 KS-检验(Kolmogorov-Smirnov test)
# 检验一组数据是否符合正态分布
from scipy.stats import kstest
import numpy as np
x = np.random.normal(0,1,1000)
test_stat = kstest(x, 'norm')
# >>> test_stat
#(0.021080234718821145, 0.76584491300591395)
# p 值 = 0.765 > 0.05 , 符合正态分布
# 如果 p 值小于 0.05 则不符合正态分布
小样本量(3-50)用 SW-检验(Shapiro—Wilk test)
# 检验一组数据是否符合正态分布
from scipy.stats import shapiro
import numpy as np
x = np.array([4,8,15,7,15])
test_stat_sw = shapiro(x)
test_stat_sw
# >>> test_stat
# (0.8645032644271851, 0.24487225711345673)
# p 值 = 0.244 > 0.05 , 符合正态分布
# 如果 p 值小于 0.05 则不符合正态分布
1.1.2 数据转化为正态分布的方法及适用数据
如果数据经过正态检验后不符合,就需要对数据进行转换,使之符合正态分布。转换完成后就可以按照需求挑选检验方法。
参考链接: https://blog.csdn.net/zhouxuechao/article/details/114290696
对数变换:服从对数正态分布的数据。
平方根变换:服从 Poission 分布的数据。
倒数变换:资料两端波动较大的数据,可使极端值的影响减小。
平方根反正弦变换:服从二项分布的率或百分比的数据。
box-cox 变化:连续的响应变量不满足正态分布的数据。
1.2 t 检验
适用:两组数据间小样本量的比较(小于 30 个数据)
途径:比较均值
要求:所有 t 检验数据都要服从正态分布,或近似正态分布。
单样本 t 检验:比较一组和一个数据间有无差异。
成对样本 t 检验:比较成对样本间的差异。
独立样本 t 检验:要满足方差齐性检验,比较两组数据间的差异,两组数据个数可以不同。
1.3 F 检验
适用:两组或多组数据间的比较。适合大样本量的比较,小样本量也可以分析。
途径:比较均值
方差齐性检验:用来检验方差齐性。
方差分析:分离各有关因素并估计其对总变异的作用,分析因素间的交互作用。
线性回归显著性分析:显著呈线性,不显著可能是非线性。
2. 非参数检验
2.1 卡方检验
适用:比较两组数据是否属于同一个类别。
途径:通过比较预测值和真实值之间的差异,来定性。
参考内容
方差分析、T 检验、卡方分析如何区分?
链接: https://zhuanlan.zhihu.com/p/57