Распределение Poission / Normal и Beta в Python - Помогите понять статистику - PullRequest
0 голосов
/ 03 мая 2018

У меня есть вопрос по поводу этого кода на Python. Мне нужна помощь, чтобы понять выходные ответы. У меня есть простой отличный код на python для генерации ядовитого, нормального и бета-дистрибутива, я хочу помочь понять цифры, которые выходят.

Прежде чем опубликовать мой код, давайте подумаем о простом сценарии: каждую минуту в город въезжает определенное количество автомобилей, среднее время прибытия - 63, а сигма - 25,

Хорошо, вот мой код:

import scipy as sp
import numpy as np
import matplotlib.pyplot as plt

mu, sigma = 64, 24


#normal distribution
s = np.random.normal(mu, sigma, 1000)

count, bins, ignored = plt.hist(s, 30, normed=True)

plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
         np.exp( - (bins -mu )**2 / (2 * sigma**2)),
    linewidth=2, color='r')
plt.show()



#Poisson distribution

s = np.random.poisson(5, 10000)

import matplotlib.pyplot as plt
count, bins, ignored = plt.hist(s, 14, normed=True)
plt.show()


#Beta distribution

s = np.random.beta(mu, sigma, 1000)


count, bins, ignored = plt.hist(s, 30, normed=True)
plt.show()

Вот результат кода:

Пуассона

Нормальный

Beta

Вопрос 1: Что эти цифры говорят в зависимости от сценария?

Вопрос 2. Можно ли изменить X-линии (от -0,15 до 175 для пуассона), (от -3 до 4 для нормального) и (от 0,55 до 0,85 для бета-версии)?

Вопросы 3 и 4: я спросил внутри кода.

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Если вы хотите построить pdf (Пуассон будет pmf, так как это дискретное распределение), то я бы предложил использовать scipy, который вы уже используете.

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm, poisson, beta

mu, sigma = 64, 24

# normal
s = np.random.normal(mu, sigma, 1000)
x = np.linspace(norm.ppf(0.001, mu, sigma), norm.ppf(0.999, mu, sigma), 300)
plt.hist(s, 30, normed=True)
plt.plot(x, norm.pdf(x, mu, sigma), 'r', lw=2)
plt.title("Normal with mu=64, sigma=24")
plt.show()

# poisson
s = np.random.poisson(5, 10000)
x = np.arange(poisson.ppf(0.001, 5), poisson.ppf(0.999, 5))
plt.hist(s, 14, normed=True)
plt.plot(x, poisson.pmf(x, 5), 'r')
plt.title("Poisson with mu=5")
plt.show()

# beta
s = np.random.beta(mu, sigma, 1000)
x = np.linspace(beta.ppf(0.001, mu, sigma), beta.ppf(0.999, mu, sigma), 300)
plt.hist(s, 30, normed=True)
plt.plot(x, beta.pdf(x, mu, sigma), 'r')
plt.title("Beta with mu=64, sigma=24")
plt.show()

Результат:

enter image description here

0 голосов
/ 03 мая 2018

Так же, как общий комментарий, вы, кажется, не «сделали свою домашнюю работу», прежде чем задавать вопросы. Большинство людей рекомендуют немного изучить и ознакомиться с предметом перед тем, как задавать вопросы, и чувствуют, что это лучше для вас и для тех, кто ломает голову над вашими вопросами. Тем не менее, давайте разберемся с вашими вопросами, а затем, пожалуйста, возьмите вводную книгу по вероятности и статистике - или просто Google, и начните читать.

"Question 1: What does these numbers tell based on the scenario?"

A1: Этот вопрос настолько неясен, что на него невозможно ответить, кроме как сказать «Да».

"Question 2: Is it possible to change the X lines(-0,15 to 175 on poission), 
(-3 to 4 on normal) and 
(0.55 to 0.85 on beta)?"

A2: Конечно ... вы можете изменить эти значения на что угодно, но как это продвигает ваши усилия здесь? Другими словами, что вы пытаетесь сделать?

QUESTION 3: WHAT IS THIS NUMBER 3830? 

A3: Мммм ... вы действительно отдали себя здесь, поскольку показали, что вы не RTFM. numpy имеет много доступной документации, и на самом деле вот ссылка, которая отвечает вашему Q3 : 3830 - это количество выборок, которые можно извлечь из распределения с указанным вами средним и дисперсией.

QUESTION 4: AND WHAT ARE THESE NUMBERS? 

A4: тот же ответ, что и на самом деле # 3, только в этом случае распределение называется "t ученика" , а ссылка numpy дает ответ : числа являются degrees of freedom распределения и количество выборок из этого распределения.

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