Генерация идеальных случайных гауссовских чисел

Я попытался сгенерировать серию случайных чисел с гауссовым распределением. Итак, я использовал numpy.random.normal (среднее, стандартное отклонение, размер). Однако, когда я преобразовал эти числа в функцию плотности вероятности с помощью numpy.histogram, это было не то же самое, что распределение Гаусса с тем же средним и стандартным отклонением, сделанное matplotlib.mlab.normpdf.

Я понимаю, что это может быть потому, что numpy.random.normal - это случайная выборка. Таким образом, PDF этих чисел не может быть идеально гауссовым.

Не могли бы вы дать какой-либо совет о том, как получить серию случайных чисел со средним значением и стандартным отклонением, которые имели бы гауссовский PDF-файл, если это возможно? Размер числа, который я пытался получить, - 660.

Буду очень признателен за любой совет и помощь.

С наилучшими пожеланиями,

Исаак


person Isaac    schedule 12.03.2014    source источник


Ответы (1)


Что ж, вы можете «z-оценку» выборки, вычитая среднее значение выборки и затем разделив на стандартное отклонение выборки:

x = np.random.normal(0, 1, size=660)
x = (x - x.mean()) / x.std()

Это заставит ваш вектор иметь среднее значение 0 и стандартное отклонение 1. Но это не значит, что у вас будут «совершенно гауссовские случайные числа». Я не думаю, что это действительно имеет смысл.

Было бы полезно знать, для какого приложения вы хотите это использовать, может быть, тогда будет проще предложить альтернативы.

person mwaskom    schedule 12.03.2014
comment
Цель моего приложения - генерировать серию случайно распределенных чисел с определенным средним и определенным стандартным отклонением. Используя эти среднее значение и стандартное отклонение, я могу построить график Gaussiand PDF с помощью matplotlib.mlab.normpdf. Могу ли я преобразовать этот гауссовский PDF-файл в серию чисел, а не преобразовывать числа в PDF-файл? Спасибо за ваш совет. - person Isaac; 12.03.2014
comment
Я думаю, что моего объяснения было недостаточно. Я хотел бы сравнить функцию плотности вероятности одного временного ряда скорости ветра, который у меня есть, и гауссовский PDF. Прежде чем сравнивать эти два PDF-файла, я хотел бы сравнить исходный временной ряд и ряд распределенных по Гауссу чисел со стандартным отклонением и средним значением из исходного ряда скоростей ветра. Итак, меня беспокоит, как сгенерировать эти числа. Для моей цели сгенерированные числа должны иметь PDF нормального распределения. Спасибо. - person Isaac; 12.03.2014
comment
Похоже, вы хотите нарисовать qqplot? - person mwaskom; 12.03.2014
comment
Привет, mwaskom, сюжет Q-Q - очень хорошая идея и идея. Однако моя цель намного проще. Просто покажите колебания исходного числа и распределенных по Гауссу чисел на одном и том же рисунке. С numpy.random.normal генерировать ряд чисел не так уж и сложно. Дело в том, что я хочу, чтобы эти сгенерированные числа имели PDF-файл, соответствующий гауссовскому PDF с тем же средним и стандартным отклонением. Спасибо. - person Isaac; 12.03.2014