Как я могу сгенерировать n случайных значений из бимодального распределения в Python? - PullRequest
0 голосов
/ 17 марта 2020

Я попытался сгенерировать и объединить два унимодальных распределения, но думаю, что в моем коде что-то не так.

N=400
mu, sigma = 100, 5
mu2, sigma2 = 10, 40
X1 = np.random.normal(mu, sigma, N)
X2 = np.random.normal(mu2, sigma2, N)
w = np.random.normal(0.5, 1, N)
X = w*X1 + (1-w)*X2
X = X.reshape(-1,2)

Когда я строю график XI, бимодальное распределение не получается

1 Ответ

0 голосов
/ 17 марта 2020

Неясно, где ваша проблема; Также неясно, какова цель переменной w, и неясно, как вы оцениваете, что получили неправильный результат, поскольку мы не видим код графика или какой-либо другой код для подтверждения или отклонения биномиального распределения.
То есть ваш пример слишком неполный, чтобы точно ответил на ваш вопрос. Но я могу сделать обоснованное предположение.

Если я сделаю следующее ниже:

import numpy as np
import matplotlib.pyplot as plt

N=400
mu, sigma = 100, 5
mu2, sigma2 = 10, 40
X1 = np.random.normal(mu, sigma, N)
X2 = np.random.normal(mu2, sigma2, N)
X = np.concatenate([X1, X2])
plt.hist(X)

и получится следующая цифра:

histogram of X

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