Die Poisson distribution (implementiert in scipy als scipy.stats.poisson
) ist eine discrete distribution. Die diskreten Verteilungen in scipy haben keine fit
Methode.
Ich bin nicht sehr vertraut mit der seaborn.distplot
-Funktion, aber es scheint anzunehmen, dass die Daten aus einer kontinuierlichen Verteilung stammen. Wenn das der Fall ist, dann wäre scipy.stats.poisson
eine fit
Methode, es wäre keine geeignete Verteilung, die an distplot
übergeben werden.
Die Frage Titel „Wie man eine Poisson-Verteilung mit Seaborn passen?“, Also der Vollständigkeit halber, hier ist eine Möglichkeit, eine Darstellung der Daten und deren Sitz zu erhalten. seaborn
wird nur für das Balkendiagramm verwendet, wobei @ mwaskoms Vorschlag verwendet wird, seaborn.countplot
zu verwenden. Die Anpassung ist tatsächlich trivial, weil die Maximum-Likelihood-Schätzung für die Poisson-Verteilung einfach der Mittelwert der Daten ist.
Zunächst werden die Importe:
In [136]: import numpy as np
In [137]: from scipy.stats import poisson
In [138]: import matplotlib.pyplot as plt
In [139]: import seaborn
einige Daten generieren, mit zu arbeiten:
In [140]: x = poisson.rvs(0.4, size=100)
Dies sind die Werte in der x
:
In [141]: k = np.arange(x.max()+1)
In [142]: k
Out[142]: array([0, 1, 2, 3])
Verwenden seaborn.countplot
plotten die Daten:
In [143]: seaborn.countplot(x, order=k, color='g', alpha=0.5)
Out[143]: <matplotlib.axes._subplots.AxesSubplot at 0x114700490>
Die Maximum-Likelihood-Schätzung der Poisson-Parameter ist einfach der Mittelwert der Daten:
In [144]: mlest = x.mean()
Verwenden poisson.pmf()
die erwartete Wahrscheinlichkeit, zu erhalten und durch die Größe des Datensatzes zu erhalten, die erwarteten Zählwerte multiplizieren und plotten Sie dann unter Verwendung von matplotlib
. Die Balken sind die Zählungen der aktuellen Daten, und die Punkte sind die erwarteten Zählwerte der angepassten Verteilung:
In [145]: plt.plot(k, poisson.pmf(k, mlest)*len(x), 'go', markersize=9)
Out[145]: [<matplotlib.lines.Line2D at 0x114da74d0>]
Verwandte: https://github.com/scipy/scipy/issues/2184 – unutbu