scipy.stats.kappa4#

scipy.stats.kappa4 = <scipy.stats._continuous_distns.kappa4_gen object>[Quellcode]#

Kappa 4 Parameterverteilung.

Als Instanz der Klasse rv_continuous erbt das Objekt kappa4 davon eine Sammlung generischer Methoden (siehe unten für die vollständige Liste) und vervollständigt sie mit Details, die für diese spezielle Verteilung spezifisch sind.

Methoden

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

Zufallsvariaten.

pdf(x, h, k, loc=0, scale=1)

Wahrscheinlichkeitsdichtefunktion.

logpdf(x, h, k, loc=0, scale=1)

Logarithmus der Wahrscheinlichkeitsdichtefunktion.

cdf(x, h, k, loc=0, scale=1)

Kumulative Verteilungsfunktion.

logcdf(x, h, k, loc=0, scale=1)

Logarithmus der kumulativen Verteilungsfunktion.

sf(x, h, k, loc=0, scale=1)

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

logsf(x, h, k, loc=0, scale=1)

Logarithmus der Überlebensfunktion.

ppf(q, h, k, loc=0, scale=1)

Perzentilpunktfunktion (Umkehrung von cdf — Perzentile).

isf(q, h, k, loc=0, scale=1)

Umgekehrte Überlebensfunktion (Umkehrung von sf).

moment(order, h, k, loc=0, scale=1)

Nichtzentrales Moment der angegebenen Ordnung.

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

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

entropy(h, k, 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=(h, k), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)

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

median(h, k, loc=0, scale=1)

Median der Verteilung.

mean(h, k, loc=0, scale=1)

Mittelwert der Verteilung.

var(h, k, loc=0, scale=1)

Varianz der Verteilung.

std(h, k, loc=0, scale=1)

Standardabweichung der Verteilung.

interval(confidence, h, k, loc=0, scale=1)

Konfidenzintervall mit gleichen Flächen um den Median.

Hinweise

Die Wahrscheinlichkeitsdichtefunktion für kappa4 ist

\[f(x, h, k) = (1 - k x)^{1/k - 1} (1 - h (1 - k x)^{1/k})^{1/h-1}\]

wenn \(h\) und \(k\) nicht gleich 0 sind.

Wenn \(h\) oder \(k\) Null sind, kann die PDF vereinfacht werden

h = 0 und k != 0

kappa4.pdf(x, h, k) = (1.0 - k*x)**(1.0/k - 1.0)*
                      exp(-(1.0 - k*x)**(1.0/k))

h != 0 und k = 0

kappa4.pdf(x, h, k) = exp(-x)*(1.0 - h*exp(-x))**(1.0/h - 1.0)

h = 0 und k = 0

kappa4.pdf(x, h, k) = exp(-x)*exp(-exp(-x))

kappa4 nimmt \(h\) und \(k\) als Formparameter.

Die Kappa4-Verteilung gibt andere Verteilungen zurück, wenn bestimmte \(h\)- und \(k\)-Werte verwendet werden.

h

k=0.0

k=1.0

-inf<=k<=inf

-1.0

Logistisch

logistic(x)

Generalisierte Logistische (1)

0.0

Gumbel

gumbel_r(x)

Umgekehrte Exponential (2)

Generalisierte Extremwertverteilung

genextreme(x, k)

1.0

Exponential

expon(x)

Gleichverteilung

uniform(x)

Generalisierte Pareto

genpareto(x, -k)

  1. Es gibt mindestens fünf generalisierte logistische Verteilungen. Vier davon werden hier beschrieben: https://en.wikipedia.org/wiki/Generalized_logistic_distribution Die „fünfte“ ist die, der kappa4 entsprechen sollte, die derzeit nicht in scipy implementiert ist: https://en.wikipedia.org/wiki/Talk:Generalized_logistic_distribution https://www.mathwave.com/help/easyfit/html/analyses/distributions/gen_logistic.html

  2. Diese Verteilung ist derzeit nicht in scipy enthalten.

Referenzen

J.C. Finney, „Optimization of a Skewed Logistic Distribution With Respect to the Kolmogorov-Smirnov Test“, Eine Dissertation, eingereicht an der Graduate Faculty der Louisiana State University and Agricultural and Mechanical College, (August, 2004), https://digitalcommons.lsu.edu/gradschool_dissertations/3672

J.R.M. Hosking, „The four-parameter kappa distribution“. IBM J. Res. Develop. 38 (3), 25 1-258 (1994).

B. Kumphon, A. Kaew-Man, P. Seenoi, „A Rainfall Distribution for the Lampao Site in the Chi River Basin, Thailand“, Journal of Water Resource and Protection, Bd. 4, 866-869, (2012). DOI:10.4236/jwarp.2012.410101

C. Winchester, „On Estimation of the Four-Parameter Kappa Distribution“, Eine Arbeit, eingereicht an der Dalhousie University, Halifax, Nova Scotia, (März 2000). http://www.nlc-bnc.ca/obj/s4/f2/dsk2/ftp01/MQ57336.pdf

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 kappa4.pdf(x, h, k, loc, scale) identisch gleich kappa4.pdf(y, h, k) / 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 kappa4
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)

Ermitteln Sie den Träger (Support)

>>> h, k = 0.1, 0
>>> lb, ub = kappa4.support(h, k)

Berechnen Sie die ersten vier Momente

>>> mean, var, skew, kurt = kappa4.stats(h, k, moments='mvsk')

Zeigen Sie die Wahrscheinlichkeitsdichtefunktion (pdf) an

>>> x = np.linspace(kappa4.ppf(0.01, h, k),
...                 kappa4.ppf(0.99, h, k), 100)
>>> ax.plot(x, kappa4.pdf(x, h, k),
...        'r-', lw=5, alpha=0.6, label='kappa4 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 = kappa4(h, k)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')

Überprüfen Sie die Genauigkeit von cdf und ppf

>>> vals = kappa4.ppf([0.001, 0.5, 0.999], h, k)
>>> np.allclose([0.001, 0.5, 0.999], kappa4.cdf(vals, h, k))
True

Generieren Sie Zufallszahlen

>>> r = kappa4.rvs(h, k, 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-kappa4-1.png