Python生成正态分布,判断数据是不是正态分布

  Python生成正态分布,判断数据是不是正态分布

  在对数据进行建模之前,我们往往需要对数据进行正态性检验,然后通过检验结果来确定下一步的分析方案。以下是Python中常用的一些常规测试方法:

  scipy . stats . kst

  KS是一个强大的测试模块,除了正态性测试,还可以测试scipy.stats中的其他数据分布类型。

  kstest(rvs,cdf,args=(),N=20,alternative=two_sided ,mode=approx ,**kwds)

  对于正态性检验,我们只需要手动设置三个参数:

  Rvs:要测试的数据

  Cdf:检验方法,这里我们设为‘norm’,即正态性检验。

  可选:默认为双尾检验,对于单尾检验,可以设置为“较小”或“较大”。

  将numpy作为np导入

  从scipy.stats导入kstest

  x=np.linspace(-15,15,9)

  kstest(x, norm )

  (0.44435602715924361, 0.038850142705171065)

  输出中第一个是统计,第二个是P值。

  详见官方文档scipy.stats.kstest。

  夏皮罗

  与kstest不同,shapiro是一个专门用于正态性检验的模块。

  注:夏皮罗不适合样本数> 5000的正态性检验,检验结果的P值可能不准确。

  scipy.stats.shapiro(x,a=无,reta=假)

  一般我们只用X参数,X是要检验的数据。

  从scipy导入统计

  随机种子(12345678)

  x=stats.norm.rvs(loc=5,scale=3,size=100)

  夏皮罗统计公司

  (0.9772805571556091, 0.08144091814756393)

  输出中第一个是统计,第二个是P值。

  详见官方文件scipy.stats.shapiro。

  scipy.stats.normaltest

  Normaltest也是一个专门用于正态性测试的模块。

  scipy.stats.normaltest(a,axis=0,nan_policy=propagate )

  这里有必要看一下三个参数:

  答:要测试的数据

  轴:默认值为0,表示在0轴上测试,即测试每一行数据的正态性。我们可以设置axis=None来测试整个数据。

  Nan_policy:当输入数据中有空值时的处理方法。默认值为“propagate”,它返回空值。当设置为“raise”时,将引发错误;当设置为“忽略”时,计算中将忽略空值。

  将numpy作为np导入

  从scipy.stats导入正常测试

  x=np.random.randn(10,20)

  正常测试(x,轴=无)

  NormaltestResult(statistic=0.3582062593239369,pvalue=0.83601967652440512)

  输出中第一个是统计,第二个是P值。

  详见官方文档scipy.stats.normaltest。

  scipy.stats.anderson

  Anderson是kstest的修改版。说是加强版也不为过。还可以做各种分布测试,默认测试是正态测试。

  scipy.stats.anderson(x,dist=norm )

  这里就不多说参数了,解释一下输出结果:

  安德森有三个输出值,第一个是统计值,第二个是评价值,第三个是显著性水平。评估值对应于显著性水平。

  对于正态检验,显著性水平为:15%,10%,5%,2.5%,1%。

  将numpy作为np导入

  来自scipy.stats import anderson

  x=np.linspace(-15,15,9)

  安德森(x)

  Anderson result(statistic=0.13676646631470213,critical_values=array([ 0.507,0.578,0.693,0.808,0.961]),significance_level=array([ 15。 10. 5. 2.5, 1.]))

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: