Случайный эксперимент биномиального распределения с использованием статистики в питоне - PullRequest
0 голосов
/ 12 марта 2019

Имитируйте случайный эксперимент по подбрасыванию монеты 10000 раз и определите количество голов.
Подсказка: определите биномиальное распределение с помощью n = 1 и p = 0.5.
Используйте функцию бинома от scipy.stats.
Установите случайное начальное число на 1.
Нарисуйте выборку из 10000 элементов из определенного распределения.
Предположите, что значения 0 и 1 представляют соответственно головы и хвосты.
Подсчитайте количество голов и отобразите их.Использовать метод bincount, доступный в numpy.

Я нашел ответ на него, но он был не из пакета scipy.stats, как было предложено, а из случайного пакета.Ниже моя попытка, но ответ не такой, как ожидалось.Пожалуйста, помогите мне исправить мою ошибку.

import scipy as sp
from scipy import stats
import numpy as np
import random

from scipy.stats import binom
data_binom = binom.rvs(n=1,p=0.5,size=10000)

np.random.seed(1)

#print(data_binom)

y = np.bincount(data_binom)
head = print(y[0])
print(head)

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

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

import scipy as sp
from scipy import stats
import numpy as np

np.random.seed(1)
from scipy.stats import binomdata_binom = binom.rvs(n=1,p=0.5,size=10000)
#print(data_binom)

y = np.bincount(data_binom)
head = print(y[0])
print(head)

Угадайте, это то, что вы ожидаете получить.Ура !!

0 голосов
/ 12 марта 2019

Я получил то, что ожидал.Не знаете, кто из них главный: 4995 или 5005?

print(y[0])
print(y[1])

4995
5005

Вот еще код, объясняющий ваше подбрасывание:

from scipy.stats import binom
data_binom = binom.rvs(n=1,p=0.5,size=10000)

heads = 0
tails = 0
edges = 0
count = 0

for coin in data_binom:
    count += 1
    if coin == 1:
        heads += 1
    elif coin == 0:
        tails += 1
    else:
        edges += 1

print("Observed " + str(count) + " of coin tossing with heads " + str(heads)
      + ", tails " + str(tails) + ", and edges " + str(edges))

Результаты четырех тестов:

$ python3.7 test.py
Observed 10000 of coin tossing with heads 4989, tails 5011, and edges 0
$ python3.7 test.py
Observed 10000 of coin tossing with heads 5109, tails 4891, and edges 0
$ python3.7 test.py 
Observed 10000 of coin tossing with heads 4968, tails 5032, and edges 0
$ python3.7 test.py 
Observed 10000 of coin tossing with heads 5046, tails 4954, and edges 0
...