У меня есть данные размером 5000
Я сгенерировал свои данные ("vals")
1) сгенерировать 5 случайных чисел между (0,1)
2) найти среднее
3) запустить цикл 5000 раз
4) vals = 5000 означает
Мои вопросы:
1) Сначала я хочу построить гистограмму,
Я пытался
%matplotlib notebook
import matplotlib.pyplot as plt
n, bins, patches = plt.hist(vals,5000)
plt.show()
но на выходе получаются только вертикальные линии, соответствующие каждому значению значений.
Это не гистограмма, очевидно!
2) Как найти его гауссово распределение?
3) Мне нужно проверить его нормальность с помощью теста Шапиро – Вилка (без вызова уже существующего теста мне нужно его спроектировать)
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)
как и ожидалось.
Но мне нужно показать это, написав код для теста.