本文主要记录了基于python的数据相关统计检测的实现方法。
主要的东西:
1、连续变量VS连续变量:皮尔森相关系数
2、分类变量VS分类变量:卡方检验
3、连续变量VS多分类变量: f检验
4、连续变量VS二分类变量:当连续变量满足正态分布时,采用t检验。 否则,应用特异性烤鹅u检验
主要的python脚本如下。
froms klearn.feature _ selectionimportselectkbest,chi2
来自脚本导入状态
from scipy.stats import ttest_ind,levene
def corr _ continue _ continue (series _ 1,series_2) :
corr=Pearsonr(series_1,series_2) [1]
返回颜色
efcorr_cate_cate(series_1,series_2) :
Series_1=NP.Array(Series_1).reshape (-1,1 ) ) ) ) ) ) ) ) ) ) )。
model1=selectkbest(chi2,k=1) )。
model1.fit_transform(series_1,series_2) )。
corr=model1.scores_[0]
p_value=model1.pvalues_[0]
return corr,p_value
ef corr _ continue _ multi cate (fenlei _ series _ 1,lianxu_series_2) :
f,p=stats.f _ one way (fenlei _ series _ 1,lianxu_series_2) ) ) ) ) ) )。
return f,p
defnormal_test(series ) :
u=series.mean (
std=series.std (
statistic,pvalue=stats.kstest(series,' norm ',(u,std ) )
return statistic,pvalue
efcorr_continue_twocate(data,fenlei_var,lianxu_var ) :
fen lei=list (set (data [ fen lei _ var ] ) )
series _1=data [ Lian Xu _ var ] [ data [ fenlei _ var ]==fenlei [0] ]
series _2=data [ Lian Xu _ var ] [ data [ fenlei _ var ]==fenlei [1] ]
stats_1,pvalue_1=normal_test(series_1)
stats_2,pvalue_2=normal_test(series_2)
ifp value _ 10.05 ORP value _ 20.053360
t_value,p _ value=stats.mannwhitneyu (series _ 1,series_2,alternative='two-sided ' ) ) ) ) )
else:
_,levene_p_value=levene(series_1,series_2) ) )。
if levene_p_value0.05:
t_value,p_value=ttest_ind(series_1,series_2) ) ) ) ) ) ) ) ) ) ) ) ) 65
else:
t_value,p_value=ttest_ind(series_1,series_2,equal_var=False ) ) ) ) ) )。
return t_value,p_value,pvalue_1,pvalue_2