第4章 探索性数据分析(多因子与复合分析)

4.1、多因子

4.1.1 假设检验与方差检验

  假设检验适用于(数据样本较小时

  方差检验适用于(数据样本较大时

import numpy as np
import scipy.stats as ss
#生成一20个数的标准正态分布
norm_dist = ss.norm.rvs(size=20)
#检测norm_dist是否是正态分布,使用的方法是基于峰度和偏度的
print(ss.normaltest(norm_dist))

#结果:NormaltestResult(statistic=0.2025598777545946, pvalue=0.9036800223028876)
     #第一个是统计值,第二个值是p值

(1)P分布检验常用于比较两种样本是否一致(例如:临床医疗上药物是否有效);

(2)独立分布t检验用于检测两组值的均值是都有比较大的差异性

print(ss.ttest_ind(ss.norm.rvs(size=10),ss.norm.rvs(size=20)))
#结果:Ttest_indResult(statistic=-0.575484958550556, pvalue=0.5695598474341583)

  由于p值大于0.05(假定),可以接受该假设

(3)卡方检验常常用于确定两因素件是否有比较强的联系

 

import scipy.stats as ss
print(ss.chi2_contingency([[15,95],[85,5]]))
#结果:(126.08080808080808, 2.9521414005078985e-29, 1, array([[55., 55.],[45., 45.]]))
     #第一个值为卡方值,第二个值为P值,第三个值为自由度,第四个为与原数据数组同维度的对应理论值

 由于p值小于0.05(假定),拒绝该假设

(4)F检验常用于方差分析

   检测统计量F,做假设检验【F满足自由度(m-1,n-m)的F分布】

SST:总变差平方和

SSM:平均平方和(组间平方和)

SSE:残差平方和(组内平方和)

print(ss.f_oneway([49,50,39,40,43],[28,32,30,26,34,],[38,40,45,42,48]))
#结果:F_onewayResult(statistic=17.619417475728156, pvalue=0.0002687153079821641)

(5)使用qq图来对比一个分布是否属于一个已知的分布

     方法:看散点图的是否在x,y轴的角平分线上

from statsmodels.graphics.api import qqplot
import matplotlib.pyplot as plt
qqplot(ss.norm.rvs(size=100))
plt.show()

猜你喜欢

转载自www.cnblogs.com/Cheryol/p/11421346.html