数据分析学习笔记2

常用的假设检验

1、正太分布检验

1、1正太密度直方图
1、2PP图跟QQ图
1、3K-S检验与Shapiro检验
# 正太密度直方图:
import seaborn as sns
import scipy.stats as stats
sns.distplot(a=data.price,
            fit=stats.norm,
            norm_hist=True,
            hist_kws={'color':'steelblue','edgecolor':'black'},
            kde_kws={'linestyle':'--','label':'核密度曲线'},
            fit_kws={'linestyle':':','label':'正太密度曲线'}
            )
plt.legend()

# PP图跟QQ图的绘制:
import statsmodels.api as sm
pp_qq_plot = sm.ProbPlot(data.price)
pp_plot = pp_qq_plot.ppplot(line='45')  # 绘制PP图
qq_plot=pp_qq_plot.qqplot(line="q")  # 绘制QQ图

# 数据超过5000用K-S检验
stats.kstest(rvs=data.price,
             cdf='norm',  # 指定分布函数为正太分布函数
            args=(data.price.mean(),data.price.std())  # 利用实际数据的均值与标准差来设定理论的正态分布
            )  # 结果返回统计量和P值


# 数据小于5000时用Shapiro检验
import numpy as np
x1=np.random.normal(5,2,3500)
x2=np.random.uniform(1,100,400)
x1_test=stats.shapiro(x=x1)
x2_test=stats.shapiro(x=x2)
print(x1_test)
print(x2_test)

2、卡方检验

from scipy.stats import chi2_contingency
crosstable = pd.crosstab(data.day,data.time)  # 构造两离散变量之间的频次统计表(列联表)
crosstable
chi2_contingency(crosstable)

3、t检验

# 单样本t检验
data=[512,498,490,512,509,493,510,489,508,493,501,496,508,490]
stats.ttest_1samp(a=data,
                 popmean=500  # 指定总体均值
                 )

# 独立样本t检验
stats.levene(data_man,data_women)  # 先进行方差检验,查看方差是否相等
stats.ttest_ind(a=data_man,b=data_women,equal_var=True)

# 配对样本t检验
data1=[512,498,490,512,509,493,510,489,508,493,501,496,508,490]
data2=[532,489,510,478,508,445,590,512,490,500,489,502,490,500]
stats.ttest_rel(a=data1,b=data2)

你可能感兴趣的:(机器学习,python,数据分析,统计学)