chisquare#
- class brainstate.random.chisquare(df, size=None, key=None, dtype=None)#
Draw samples from a chi-square distribution.
When df independent random variables, each with standard normal distributions (mean 0, variance 1), are squared and summed, the resulting distribution is chi-square (see Notes). This distribution is often used in hypothesis testing.
- Parameters:
df (float or array_like of floats) – Number of degrees of freedom, must be > 0.
size (
int|Sequence[int] |integer|Sequence[integer] |None) – Output shape. If the given shape is, e.g.,(m, n, k), thenm * n * ksamples are drawn. If size isNone(default), a single value is returned ifdfis a scalar. Otherwise,np.array(df).sizesamples are drawn.key (
int|Array|ndarray|None) – The key for the random number generator. If not given, the default random number generator is used.
- Returns:
out – Drawn samples from the parameterized chi-square distribution.
- Return type:
ndarray or scalar
- Raises:
ValueError – When df <= 0 or when an inappropriate size (e.g.
size=-1) is given.
Notes
The variable obtained by summing the squares of df independent, standard normally distributed random variables:
\[Q = \sum_{i=0}^{\mathtt{df}} X^2_i\]is chi-square distributed, denoted
\[Q \sim \chi^2_k.\]The probability density function of the chi-squared distribution is
\[p(x) = \frac{(1/2)^{k/2}}{\Gamma(k/2)} x^{k/2 - 1} e^{-x/2},\]where \(\Gamma\) is the gamma function,
\[\Gamma(x) = \int_0^{-\infty} t^{x - 1} e^{-t} dt.\]References
Examples
Generate chi-square samples with 2 degrees of freedom:
>>> import brainstate >>> samples = brainstate.random.chisquare(2, 4) >>> print(samples.shape) # (4,) >>> print((samples >= 0).all()) # True (chi-square is always non-negative)