Как реализовать тест Шапиро – Вилка для моих данных с помощью Python? - PullRequest
0 голосов
/ 13 января 2019

У меня есть данные размером 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) как и ожидалось.

Но мне нужно показать это, написав код для теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...