Hướng dẫn generalized chi-square distribution python

scipy.stats.chi2=[source]#

A chi-squared continuous random variable.

For the noncentral chi-square distribution, see ncx2.

As an instance of the rv_continuous class, chi2 object inherits from it a collection of generic methods [see below for the full list], and completes them with details specific for this particular distribution.

Notes

The probability density function for chi2 is:

\[f[x, k] = \frac{1}{2^{k/2} \Gamma \left[ k/2 \right]} x^{k/2-1} \exp \left[ -x/2 \right]\]

for \[x > 0\] and \[k > 0\] [degrees of freedom, denoted df in the implementation].

chi2 takes df as a shape parameter.

The chi-squared distribution is a special case of the gamma distribution, with gamma parameters a = df/2, loc = 0 and scale = 2.

The probability density above is defined in the “standardized” form. To shift and/or scale the distribution use the loc and scale parameters. Specifically, chi2.pdf[x, df, loc, scale] is identically equivalent to chi2.pdf[y, df] / scale with y = [x - loc] / scale. Note that shifting the location of a distribution does not make it a “noncentral” distribution; noncentral generalizations of some distributions are available in separate classes.

Examples

>>> from scipy.stats import chi2
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots[1, 1]

Calculate the first four moments:

>>> df = 55
>>> mean, var, skew, kurt = chi2.stats[df, moments='mvsk']

Display the probability density function [pdf]:

>>> x = np.linspace[chi2.ppf[0.01, df],
...                 chi2.ppf[0.99, df], 100]
>>> ax.plot[x, chi2.pdf[x, df],
...        'r-', lw=5, alpha=0.6, label='chi2 pdf']

Alternatively, the distribution object can be called [as a function] to fix the shape, location and scale parameters. This returns a “frozen” RV object holding the given parameters fixed.

Freeze the distribution and display the frozen pdf:

>>> rv = chi2[df]
>>> ax.plot[x, rv.pdf[x], 'k-', lw=2, label='frozen pdf']

Check accuracy of cdf and ppf:

>>> vals = chi2.ppf[[0.001, 0.5, 0.999], df]
>>> np.allclose[[0.001, 0.5, 0.999], chi2.cdf[vals, df]]
True

Generate random numbers:

>>> r = chi2.rvs[df, size=1000]

And compare the histogram:

>>> ax.hist[r, density=True, histtype='stepfilled', alpha=0.2]
>>> ax.legend[loc='best', frameon=False]
>>> plt.show[]

Methods

rvs[df, loc=0, scale=1, size=1, random_state=None]

Random variates.

pdf[x, df, loc=0, scale=1]

Probability density function.

logpdf[x, df, loc=0, scale=1]

Log of the probability density function.

cdf[x, df, loc=0, scale=1]

Cumulative distribution function.

logcdf[x, df, loc=0, scale=1]

Log of the cumulative distribution function.

sf[x, df, loc=0, scale=1]

Survival function [also defined as 1 - cdf, but sf is sometimes more accurate].

logsf[x, df, loc=0, scale=1]

Log of the survival function.

ppf[q, df, loc=0, scale=1]

Percent point function [inverse of cdf — percentiles].

isf[q, df, loc=0, scale=1]

Inverse survival function [inverse of sf].

moment[order, df, loc=0, scale=1]

Non-central moment of the specified order.

stats[df, loc=0, scale=1, moments=’mv’]

Mean[‘m’], variance[‘v’], skew[‘s’], and/or kurtosis[‘k’].

entropy[df, loc=0, scale=1]

[Differential] entropy of the RV.

fit[data]

Parameter estimates for generic data. See scipy.stats.rv_continuous.fit for detailed documentation of the keyword arguments.

expect[func, args=[df,], loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds]

Expected value of a function [of one argument] with respect to the distribution.

median[df, loc=0, scale=1]

Median of the distribution.

mean[df, loc=0, scale=1]

Mean of the distribution.

var[df, loc=0, scale=1]

Variance of the distribution.

std[df, loc=0, scale=1]

Standard deviation of the distribution.

interval[confidence, df, loc=0, scale=1]

Confidence interval with equal areas around the median.

Chủ Đề