Реализация центральной предельной теоремы - какой генератор случайных чисел? - PullRequest
0 голосов
/ 03 августа 2020

так что в основном я пытаюсь провести сточасти c эксперимент. Все очень просто. По сути, я хотел проверить, выполняется ли то, что говорит центральная предельная теорема.

Итак, проще говоря, идея центральной предельной теоремы состоит в том, что если мы отбираем бесконечные выборки одного и того же размера из нашего эксперимента со сточастостью c, средние значения этих образцов распределены нормально.

Итак, рассмотрим игральные кости. Этот кубик является магическим c кубиком, и если вы его бросите, вы можете получить только 1,3,4 или 6. Таким образом, вы не можете получить 2 и 5. Вероятности следующие:

P[1] = 2/6
P[3] = 1/6
P[4] = 1/6
P[6] = 2/6

Теперь, если мы возьмем размер выборки 4, т.е. мы бросим кости 4 раза, запишем, что мы получили, возьмем среднее значение и сделаем это, скажем, 100 000 раз, мы должны, если мы построим график как гистограмму, см. нормальное распределение.

Я реализовал это вот так, используя python:

""" Set up the probability space """
experiment = [1,1,3,4,6,6]

    """ Experiment configuration """
    n = 4
    m = 100000
    bins = 20
    
    def throwDice():
        result = []
    
        for i in range(0,n):
            k = randrange(0,6)
            print(k)
            result.append(experiment[k])
    
        return result
    
    def sampleMeans():
        means = []
    
        for i in range(0,m):
            means.append(sum(throwDice())/4)
    
        return means
    
    def createHistrogram():
        means = sampleMeans()
    
        plt.hist(means, bins)
        plt.show()
    
    """ Run he experiment """
    createHistrogram()

, что дало мне это

введите описание изображения здесь

неудивительно, что у нас есть «дыры», например, в 2,75 и 4,75, поскольку нам не хватает 2 и 5, т.е. меньше возможных выборок со средним значением 2,75 и 4,75. То же самое можно сказать и о других.

Теперь, хотя все выглядит хорошо, мой вопрос на самом деле касается генератора случайных чисел python. Можно ли так делать? Какой генератор случайных чисел лучше всего подходит для такого простого «численного эксперимента»?

1 Ответ

0 голосов
/ 03 августа 2020

Согласно документации Python random , библиотека random использует Almost all module functions depend on the basic function random(), which generates a random float uniformly in the semi-open range [0.0, 1.0), поэтому это Единое распределение.

Поскольку большинство модулей являются псевдослучайными, это не хорошо для подтверждения вашего эксперимента (потому что он либо следит за распределением, либо не следит за ним). Я думаю, вы должны сгенерировать чистое случайное число из random.org, чтобы проверить результат.

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