我有一个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) 如预期的那样。
但是我需要通过编写测试代码来显示它。