#python #numpy #statistics #probability-distribution #scipy.stats
#python #numpy #Статистика #распределение вероятностей #scipy.stats
Вопрос:
При случайной генерации случайных чисел с использованием numpy.random
пакета и scipy.stats
пакета, почему гистограмма (общие вероятности), сгенерированная первым пакетом, имеет такие большие значения с максимумом около 4, тогда как гистограмма последнего более разумна с максимумом намного меньше 1.
Предполагается, что распределения вероятностей суммируются только до 1, при этом индивидуальная вероятность не превышает 1. Хотя scipy
генератор выглядит более ручным, он все равно не суммируется с 1. Как я могу создать оба генератора из numpy.random
и scipy.stats
вести себя одинаково, т. Е. Не иметь ни одной вероятности, превышающей максимум 1?
import numpy as np
import pandas as pd
from numpy.random import rand, randn
from scipy.stats import norm, johnsonsu
n = 100
x = randn(n)*.1
y = johnsonsu.rvs(a = 2.55, b= 2.25, size=n)
for i in [x, y]:
print(sum(i))
pd.Series(i).plot.kde()
Помимо графика, результат одного прогона показывает, что суммы случайно сгенерированных векторов сильно отличаются:
0.9035925193845973
-144.49886490879146
Комментарии:
1. Вы работаете с непрерывными распределениями, что означает, что вы имеете дело не с вероятностями, а с плотностями вероятности. Для них это не сумма, а интеграл, который равен единице. В частности, значения больше 1 совершенно нормальны.
2. Как можно
randn
иjohnsonsu
можно исправить до уровня игрового поля