scipy.stats.chi2#

scipy.stats.chi2 = <scipy.stats._continuous_distns.chi2_gen Objekt>[Quelle]#

Eine kontinuierliche Zufallsvariable nach dem Chi-Quadrat-Verteilung.

Für die nichtzentrale Chi-Quadrat-Verteilung siehe ncx2.

Als Instanz der rv_continuous-Klasse erbt chi2 von dieser eine Sammlung von generischen Methoden (siehe unten für die vollständige Liste) und ergänzt diese um Details, die für diese spezielle Verteilung spezifisch sind.

Methoden

rvs(df, loc=0, scale=1, size=1, random_state=None)

Zufallsvariaten.

pdf(x, df, loc=0, scale=1)

Wahrscheinlichkeitsdichtefunktion.

logpdf(x, df, loc=0, scale=1)

Logarithmus der Wahrscheinlichkeitsdichtefunktion.

cdf(x, df, loc=0, scale=1)

Kumulative Verteilungsfunktion.

logcdf(x, df, loc=0, scale=1)

Logarithmus der kumulativen Verteilungsfunktion.

sf(x, df, loc=0, scale=1)

Überlebensfunktion (auch definiert als 1 - cdf, aber sf ist manchmal genauer).

logsf(x, df, loc=0, scale=1)

Logarithmus der Überlebensfunktion.

ppf(q, df, loc=0, scale=1)

Perzentilpunktfunktion (Umkehrung von cdf — Perzentile).

isf(q, df, loc=0, scale=1)

Umgekehrte Überlebensfunktion (Umkehrung von sf).

moment(order, df, loc=0, scale=1)

Nichtzentrales Moment der angegebenen Ordnung.

stats(df, loc=0, scale=1, moments=’mv’)

Mittelwert(‚m‘), Varianz(‚v‘), Schiefe(‚s‘) und/oder Kurtosis(‚k‘).

entropy(df, loc=0, scale=1)

(Differential-)Entropie der RV.

fit(data)

Parameterschätzungen für generische Daten. Siehe scipy.stats.rv_continuous.fit für eine detaillierte Dokumentation der Schlüsselwortargumente.

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

Erwartungswert einer Funktion (einer Variablen) bezüglich der Verteilung.

median(df, loc=0, scale=1)

Median der Verteilung.

mean(df, loc=0, scale=1)

Mittelwert der Verteilung.

var(df, loc=0, scale=1)

Varianz der Verteilung.

std(df, loc=0, scale=1)

Standardabweichung der Verteilung.

interval(confidence, df, loc=0, scale=1)

Konfidenzintervall mit gleichen Flächen um den Median.

Siehe auch

ncx2

Hinweise

Die Wahrscheinlichkeitsdichtefunktion für chi2 ist

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

für \(x > 0\) und \(k > 0\) (Freiheitsgrade, in der Implementierung als df bezeichnet).

chi2 verwendet df als Formparameter.

Die Chi-Quadrat-Verteilung ist ein Spezialfall der Gamma-Verteilung mit den Gamma-Parametern a = df/2, loc = 0 und scale = 2.

Die obige Wahrscheinlichkeitsdichte ist in der „standardisierten“ Form definiert. Um die Verteilung zu verschieben und/oder zu skalieren, verwenden Sie die Parameter loc und scale. Insbesondere ist chi2.pdf(x, df, loc, scale) identisch äquivalent zu chi2.pdf(y, df) / scale mit y = (x - loc) / scale. Beachten Sie, dass das Verschieben des Ortes einer Verteilung diese nicht zu einer „nichtzentralen“ Verteilung macht; nichtzentrale Verallgemeinerungen einiger Verteilungen sind in separaten Klassen verfügbar.

Beispiele

>>> import numpy as np
>>> from scipy.stats import chi2
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)

Ermitteln Sie den Träger (Support)

>>> df = 55
>>> lb, ub = chi2.support(df)

Berechnen Sie die ersten vier Momente

>>> mean, var, skew, kurt = chi2.stats(df, moments='mvsk')

Zeigen Sie die Wahrscheinlichkeitsdichtefunktion (pdf) an

>>> 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')

Alternativ kann das Verteilungsobjekt (als Funktion) aufgerufen werden, um die Form-, Orts- und Skalierungsparameter festzulegen. Dies gibt ein „eingefrorenes“ RV-Objekt zurück, das die angegebenen Parameter beibehält.

Frieren Sie die Verteilung ein und zeigen Sie die eingefrorene pdf an

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

Überprüfen Sie die Genauigkeit von cdf und ppf

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

Generieren Sie Zufallszahlen

>>> r = chi2.rvs(df, size=1000)

Und vergleichen Sie das Histogramm

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
../../_images/scipy-stats-chi2-1.png