假设检验
两类错误
根据假设检验做出的推断有两类错误:
第一类错误:原假设为真,拒绝原假设(弃真)
第二类错误:原假设为假,接受原假设(采伪)
假设检验会在控制第一类错误的前提下,让第二类错误尽可能小;因为一般认为弃真带来的后果更严重,比如冤枉一个好人和放过一个坏人,认为杀一个好人后果更严重。
原假设和备择假设
因为假设检验保护原假设的思想,所以选择原假设和备择假设的时候,把没有充分理由不能否定的假设作为原假设,把没有充分理由不能接受的假设作为备择假设。
在实际问题中就是把想要验证的假设作为备择假设,因为拒绝原假设接受备择假设出错的概率很小。
假设检验的原理
首先默认原假设是对的,计算原假设条件下观测到的样本出现的概率大小,如果原假设下样本出现概率很小(<α)则认为原假设是错的,拒绝原假设认为备择假设正确,如果原假设下样本出现概率不够小(>=α)则没有理由拒绝原假设,根据不拒绝就接受的想法,认为原假设正确。
假设检验类型
理论上根据函数的密度函数:
Z检验:用于均值检验,样本服从正态分布且方差已知
T检验:用于均值检验,样本服从正态分布且方差未知
F检验:用于方差检验,样本服从正态分布
实际应用中:
因为当样本量足够大的时候可以用样本方差估计总体方差,所以即使方差未知也可以用Z检验
Z检验:用于均值检验,样本量大(>60),或者样本量较小(30<n<60)且方差已知
T检验:用于均值检验,样本量较小(30<n<60)且方差未知
F检验:用于方差检验,样本服从正态分布
当样本容量小于30,且不满足总体近似服从正态分布,不能用Z检验和T检验
ABtest
基于假设检验的思想对问题进行分析
1.基于实际情况提出假设
2.制定指标衡量效果
3.制定测试方法,获取数据
4.根据数据对假设进行验证,修改假设返回第一步
代码
Z检验
import statsmodels.stats.proportion as sp
zstat, p-value = sp.proportions_ztest(count,nobs,value = None,Alternative =‘two-side’,prop_var = False)
参数含义:
count:要检验的指标值大小
nobs:样本量大小
value:单样本检验时零假设的值,在双样本检验时原假设为prop [0]-prop [1] ,其中prop是两个样本中的比例,默认为 0
Alternative:[‘two-sided’, ‘smaller’, ‘larger’]
双边检验,单边检验(左侧,右侧)在两个样本检验中,smaller意味着替代假设p1 < p2成立,而larger意味着 p1 > p2。
prop_var:样本方差值,可用False或(0,1),prop_var为false,则根据样本比例计算比例估计的方差。
T检验
单样本检验
from scipy.stats import ttest_1samp
t, p = ttest_1samp(rvs, value)
参数含义:
rvs:样本值
value:零假设值
双样本检验
1.独立T检验
import scipy.stats
stats.levene(A, B) #方差检验
t, p =stats.ttest_ind(A,B,equal_var=True)
2.配对T检验
样本值成对出现
import scipy.stats
stats.ttest_rel(A0,A1)