如何使用Python对我的数据实施Shapiro–Wilk测试?

时间:2019-01-13 17:46:36

标签: python testing gaussian normal-distribution

我有一个5000大小的数据,

我生成了我的数据(“ vals”) 1)在(0,1)之间生成5个随机数 2)求平均值 3)运行循环5000次 4)vals =这5000个平均值

我的问题是:

1)首先,我想绘制一个直方图,

我尝试过

%matplotlib notebook
import matplotlib.pyplot as plt

n, bins, patches = plt.hist(vals,5000)
plt.show()

,但是输出只是对应于val的每个值的垂直线。 显然不是直方图!

2)如何找到其高斯分布?

3)我需要使用Shapiro-Wilk测试来测试其正常性(不调用现有测试,我需要对其进行设计) https://en.wikipedia.org/wiki/Shapiro – Wilk_test

import math
import statistics
import random
import numpy as np

def experiment():
    sum = 0
    global list_of_numbers
    list_of_numbers = []
    for i in range (5):
        a= np.random.uniform(0,1,1)
        sum += a
        list_of_numbers += [a]
        ave = sum / 5
    print(' ave = ' + str(ave))
    return(ave)

for x in range(5000):
    experiment()

vals=[experiment() for x in range(5000)]

np.mean(vals)

我使用

进行了测试
from scipy import stats
stats.shapiro(vals)

蠕虫的输出是(W,p)=(0.9990314841270447,0.005679483991116285) 如预期的那样。

但是我需要通过编写测试代码来显示它。

0 个答案:

没有答案