17

I'm new to Python and coming from the R world. I'm trying to fit distributions to sample data using SciPy and having good success. I can make distribution.fit(data) return sane results. What I've been unable to do is create the goodness of fit statistics which I'm used to with the fitdistrplus package in R. Is there a common method for comparing "best fit" from a number of different distributions with SciPy?

I'm looking for something like the Kolmogorov-Smirnov test or Cramer-von Mises or Anderson-darling tests

Josef
  • 21,998
  • 3
  • 54
  • 67
JD Long
  • 59,675
  • 58
  • 202
  • 294
  • For which distributions to you need the gof tests? With estimated parameters the distribution of the test statistic is different from the one with fully specified distributions. statsmodels, see John D Cooks' answer, has more in the sandbox and should be available by the end of summer. – Josef Jul 02 '12 at 09:58

2 Answers2

17

See the scipy.stats library: http://docs.scipy.org/doc/scipy/reference/stats.html

It contains K-S and Anderson-Darling, although apparently not Cramer-von Mises.

BrenBarn
  • 242,874
  • 37
  • 412
  • 384
  • 1
    many thanks! I wish I could accept both your answer and John's. – JD Long Jul 03 '12 at 16:11
  • Cramer-von Mises test is available with scipy.stats: https://docs.scipy.org/doc/scipy/reference/stats.html#statistical-tests – varsh Apr 27 '22 at 07:02
15

There's also statmodels goodness of fit tests.

John D. Cook
  • 29,517
  • 10
  • 67
  • 94