Próbuję dopasować rozkład Poissona do moich danych przy użyciu statmodels, ale jestem zdezorientowany przez wyniki, które otrzymuję i jak korzystać z biblioteki.Dopasowywanie rozkładu Poissona do danych w statsmodels
Moje prawdziwe dane będą serią liczb, które moim zdaniem powinienem móc opisać jako posiadające rozkład poissona plus kilka wartości odstających, więc ostatecznie chciałbym zrobić solidne dopasowanie do danych.
ale dla celów testowych, po prostu utworzyć zestaw danych za pomocą scipy.stats.poisson
samp = scipy.stats.poisson.rvs(4,size=200)
Tak, aby dopasować ten pomocą statsmodels myślę, że po prostu trzeba mieć stałą „endog”
res = sm.Poisson(samp,np.ones_like(samp)).fit()
druku res.summary()
Poisson Regression Results
==============================================================================
Dep. Variable: y No. Observations: 200
Model: Poisson Df Residuals: 199
Method: MLE Df Model: 0
Date: Fri, 27 Jun 2014 Pseudo R-squ.: 0.000
Time: 14:28:29 Log-Likelihood: -404.37
converged: True LL-Null: -404.37
LLR p-value: nan
==============================================================================
coef std err z P>|z| [95.0% Conf. Int.]
------------------------------------------------------------------------------
const 1.3938 0.035 39.569 0.000 1.325 1.463
==============================================================================
Ok, to nie wygląda dobrze, ale jeśli to zrobię
res.predict()
Otrzymuję tablicę 4,03 (która była średnią dla tej próbki testowej). Tak więc, po pierwsze, bardzo myliłem się, jak interpretować ten wynik ze statsmodelu, a po drugie prawdopodobnie powinienem robić coś zupełnie innego, jeśli interesuje mnie niezawodna ocena parametrów dystrybucji, a nie dopasowywanie trendów, ale jak mam to zrobić?
Edytuj Naprawdę powinienem podać więcej szczegółów, aby odpowiedzieć na drugą część mojego pytania.
Mam zdarzenie, które występuje losowo po czasie rozpoczęcia. Kiedy wykreślam histogram czasów opóźnienia dla wielu zdarzeń, widzę, że dystrybucja wygląda jak skalowana dystrybucja Poissona plus kilka punktów odstających, które są normalnie spowodowane przez problemy w moim bazowym systemie. Tak więc po prostu chciałem znaleźć spodziewane opóźnienie dla zestawu danych, z wyłączeniem wartości odstających. Gdyby nie te odstające, mógłbym po prostu znaleźć średni czas. Przypuszczam, że mógłbym je wykluczyć ręcznie, ale pomyślałem, że mogę znaleźć coś bardziej wymagającego.
Edit W dalszej refleksji, będę rozważać inne dystrybucje zamiast trzymać z Poissonion i szczegółach mojego problemu są prawdopodobnie rozpraszać z oryginalnego pytanie, ale zostawiłem je tutaj tak.
Co masz na myśli mówiąc "solidny"? odporny na wartości odstające, odporny na błędy w specyfikacji, odporny na problemy numeryczne, ...? – user333700
Miałem na myśli mocne dla wartości odstających – robochat
Dodałem kilka komentarzy na temat dalekiej oceny wiarygodności mojej odpowiedzi. Zacząłem zaglądać do niego jakiś czas temu, ale wciąż pozostaje wiele do zrobienia, dopóki nie będziemy go mieli w statsmodelach. – user333700