scipy.stats.vonmises_line#
- scipy.stats.vonmises_line = <scipy.stats._continuous_distns.vonmises_gen object>[Quelle]#
Eine Von Mises-kontinuierliche Zufallsvariable.
Als Instanz der Klasse
rv_continuouserbt das Objektvonmises_linevon ihr eine Sammlung generischer Methoden (siehe unten für die vollständige Liste) und vervollständigt diese mit Details, die für diese spezielle Verteilung spezifisch sind.Methoden
rvs(kappa, loc=0, scale=1, size=1, random_state=None)
Zufallsvariaten.
pdf(x, kappa, loc=0, scale=1)
Wahrscheinlichkeitsdichtefunktion.
logpdf(x, kappa, loc=0, scale=1)
Logarithmus der Wahrscheinlichkeitsdichtefunktion.
cdf(x, kappa, loc=0, scale=1)
Kumulative Verteilungsfunktion.
logcdf(x, kappa, loc=0, scale=1)
Logarithmus der kumulativen Verteilungsfunktion.
sf(x, kappa, loc=0, scale=1)
Überlebensfunktion (auch definiert als
1 - cdf, aber sf ist manchmal genauer).logsf(x, kappa, loc=0, scale=1)
Logarithmus der Überlebensfunktion.
ppf(q, kappa, loc=0, scale=1)
Perzentilpunktfunktion (Umkehrung von
cdf— Perzentile).isf(q, kappa, loc=0, scale=1)
Umgekehrte Überlebensfunktion (Umkehrung von
sf).moment(order, kappa, loc=0, scale=1)
Nichtzentrales Moment der angegebenen Ordnung.
stats(kappa, loc=0, scale=1, moments=’mv’)
Mittelwert(‚m‘), Varianz(‚v‘), Schiefe(‚s‘) und/oder Kurtosis(‚k‘).
entropy(kappa, 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=(kappa,), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)
Erwartungswert einer Funktion (einer Variablen) bezüglich der Verteilung.
median(kappa, loc=0, scale=1)
Median der Verteilung.
mean(kappa, loc=0, scale=1)
Mittelwert der Verteilung.
var(kappa, loc=0, scale=1)
Varianz der Verteilung.
std(kappa, loc=0, scale=1)
Standardabweichung der Verteilung.
interval(confidence, kappa, loc=0, scale=1)
Konfidenzintervall mit gleichen Flächen um den Median.
Siehe auch
scipy.stats.vonmises_fisherVon-Mises Fisher-Verteilung auf einer Hypersphäre
Hinweise
Die Wahrscheinlichkeitsdichtefunktion für
vonmisesundvonmises_lineist\[f(x, \kappa) = \frac{ \exp(\kappa \cos(x)) }{ 2 \pi I_0(\kappa) }\]für \(-\pi \le x \le \pi\), \(\kappa \ge 0\). \(I_0\) ist die modifizierte Besselfunktion der Ordnung Null (
scipy.special.i0).vonmisesist eine zirkuläre Verteilung, die die Verteilung nicht auf ein festes Intervall beschränkt. Derzeit gibt es kein zirkuläres Verteilungsframework in SciPy. Diecdfist so implementiert, dasscdf(x + 2*np.pi) == cdf(x) + 1gilt.vonmises_lineist die gleiche Verteilung, definiert auf \([-\pi, \pi]\) auf der reellen Achse. Dies ist eine reguläre (d.h. nicht-zirkuläre) Verteilung.Hinweis zu Verteilungsparametern:
vonmisesundvonmises_linenehmenkappaals Formparameter (Konzentration) undlocals Ort (zirkulärer Mittelwert). Einscale-Parameter wird akzeptiert, hat aber keine Auswirkung.Beispiele
Importieren Sie die notwendigen Module.
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy.stats import vonmises
Definiere Verteilungsparameter.
>>> loc = 0.5 * np.pi # circular mean >>> kappa = 1 # concentration
Berechne die Wahrscheinlichkeitsdichte bei
x=0über die Methodepdf.>>> vonmises.pdf(0, loc=loc, kappa=kappa) 0.12570826359722018
Überprüfe, ob die Perzentilfunktion
ppfdie kumulative Verteilungsfunktioncdfbis auf Gleitkomma-Genauigkeit umkehrt.>>> x = 1 >>> cdf_value = vonmises.cdf(x, loc=loc, kappa=kappa) >>> ppf_value = vonmises.ppf(cdf_value, loc=loc, kappa=kappa) >>> x, cdf_value, ppf_value (1, 0.31489339900904967, 1.0000000000000004)
Ziehe 1000 Zufallsvariaten durch Aufruf der Methode
rvs.>>> sample_size = 1000 >>> sample = vonmises(loc=loc, kappa=kappa).rvs(sample_size)
Plotte die von-Mises-Dichte auf einem kartesischen und einem Polargitter, um zu betonen, dass es sich um eine zirkuläre Verteilung handelt.
>>> fig = plt.figure(figsize=(12, 6)) >>> left = plt.subplot(121) >>> right = plt.subplot(122, projection='polar') >>> x = np.linspace(-np.pi, np.pi, 500) >>> vonmises_pdf = vonmises.pdf(x, loc=loc, kappa=kappa) >>> ticks = [0, 0.15, 0.3]
Das linke Bild enthält die kartesische Darstellung.
>>> left.plot(x, vonmises_pdf) >>> left.set_yticks(ticks) >>> number_of_bins = int(np.sqrt(sample_size)) >>> left.hist(sample, density=True, bins=number_of_bins) >>> left.set_title("Cartesian plot") >>> left.set_xlim(-np.pi, np.pi) >>> left.grid(True)
Das rechte Bild enthält die Polardarstellung.
>>> right.plot(x, vonmises_pdf, label="PDF") >>> right.set_yticks(ticks) >>> right.hist(sample, density=True, bins=number_of_bins, ... label="Histogram") >>> right.set_title("Polar plot") >>> right.legend(bbox_to_anchor=(0.15, 1.06))