numpy.random.Generator.chisquare
метод
- random.Generator.chisquare(df, size=None)
-
Генерация выборок из хи-квадратного распределения.
Когда
dfнезависимые случайные величины, каждая из которых имеет стандартное нормальное распределение (математическое ожидание 0, дисперсия 1), возводятся в квадрат и суммируются, полученное распределение является хи-квадратным (см. Примечания). Это распределение часто используется в гипотетических тестах.- Параметры:
-
- dffloat или array_like из float
-
Число степеней свободы, должно быть > 0.
- sizeint или кортеж из int, необязательно
-
Форма выходных данных. Если заданная форма, например,
(m, n, k), тогдаm * n * kвыборок генерируется. Если размер равенNone(по умолчанию), возвращается одно значение, еслиdfявляется скалярным. В противном случае,np.array(df).sizeвыборок генерируется.
- Возвращает:
-
- outndarray или скаляр
-
Сгенерированные выборки из параметризованного хи-квадратного распределения.
- Исключения:
-
- ValueError
-
Если
df≤ 0 или если задан неподходящийsize(например,size=-1).
Примечания
Переменная, полученная в результате суммирования квадратов
dfнезависимых, стандартно нормально распределённых случайных величин:\[Q = \sum_{i=0}^{\mathtt{df}} X^2_i\]имеет распределение хи-квадрат, обозначаемое
\[Q \sim \chi^2_k.\]Функция плотности вероятности распределения хи-квадрат
\[p(x) = \frac{(1/2)^{k/2}}{\Gamma(k/2)} x^{k/2 - 1} e^{-x/2},\]где \(\Gamma\) — гамма-функция,
\[\Gamma(x) = \int_0^{-\infty} t^{x - 1} e^{-t} dt.\]Ссылки
[1]NIST “Справочник по инженерной статистике” https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm
Примеры
>>> rng = np.random.default_rng() >>> rng.chisquare(2,4) array([ 1.89920014, 9.00867716, 3.13710533, 5.62318272]) # random
Распределение случайной величины хи-квадрат с 20 степенями свободы выглядит следующим образом:
>>> import matplotlib.pyplot as plt >>> import scipy.stats as stats >>> s = rng.chisquare(20, 10000) >>> count, bins, _ = plt.hist(s, 30, density=True) >>> x = np.linspace(0, 60, 1000) >>> plt.plot(x, stats.chi2.pdf(x, df=20)) >>> plt.xlim([0, 60]) >>> plt.show()
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/random/generated/numpy.random.Generator.chisquare.html